久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3086|回復(fù): 1
收起左側(cè)

單片機(jī)資料 字符液晶1062

[復(fù)制鏈接]
ID:79207 發(fā)表于 2015-5-7 18:56 | 顯示全部樓層 |閱讀模式
#include <reg51.h>
#include<intrins.h>

#define        Uchar unsigned char
#define Uint unsigned int

// LCM1602A端口地址定義
char xdata Lcd1602CmdPort _at_ 0x7cff;                //E=1 RS=0 RW=0
char xdata Lcd1602WdataPort _at_ 0x7eff;            //E =1 RS=1 RW=0
char xdata Lcd1602StatusPort _at_ 0x7dff;            //CS=1 RS=0 RW=1

#define Busy        0x80                                                 // 忙判別位

code char exampl[]="For an example. - By xiaoqi\n";

void Delay400Ms(void);
void Delay5Ms(void);
void LcdWriteData( char dataW );
void LcdWriteCommand( Uchar CMD,Uchar AttribC );
void LcdReset( void );
void Display( Uchar dd );
void DispOneChar(Uchar x,Uchar y,Uchar Wdata);
void ePutstr(Uchar x,Uchar y, Uchar code *ptr);

//主程序
void main(void)
{
        Uchar temp;
       
        Delay400Ms();                                //啟動時必須的延時,等待lcm進(jìn)入工作狀態(tài)

        LcdReset();                                    //這也是必需的....初始化
        temp = 32;
        ePutstr(0,0,exampl);                    //上面一行顯示一個預(yù)定字符串

        Delay400Ms();                            //保留顯示內(nèi)容
        Delay400Ms();
        Delay400Ms();
        Delay400Ms();
        Delay400Ms();
        Delay400Ms();
        Delay400Ms();
        Delay400Ms();

        while(1)
        {
                temp &= 0x7f;                            //只顯示ASCII字符

                if (temp<32)temp=32;           //屏蔽控制字符,不予顯示
                Display( temp++ );
               
                Delay400Ms();
        }
}

//顯示字符串
void ePutstr(Uchar x,Uchar y, Uchar code *ptr)
{
Uchar i,l=0;
        while (ptr[l] >31){l++;};
        for (i=0;i<l;i++) {
                DispOneChar(x++,y,ptr[i]);
                if ( x == 16 )
{
                        x = 0; y ^= 1;
                }
        }
}

// 演示一行連續(xù)字符串,配合上位程序演示移動字串
void Display( Uchar dd )
{

Uchar i;
       
        for (i=0;i<16;i++)
{

                DispOneChar(i,1,dd++);
               
                dd &= 0x7f;
                if (dd<32) dd=32;
        }
}

// 顯示光標(biāo)定位
void LocateXY( char posx,char posy)
{

Uchar temp;

        temp = posx & 0xf;
        posy &= 0x1;
        if ( posy )temp |= 0x40;
        temp |= 0x80;
        LcdWriteCommand(temp,0);
}

// 按指定位置顯示數(shù)出一個字符
void DispOneChar(Uchar x,Uchar y,Uchar Wdata)
{
        LocateXY( x, y );                                     // 定位顯示地址
        LcdWriteData( Wdata );                             // 寫字符
}

// 初始化程序, 必須按照產(chǎn)品資料介紹的初始化過程進(jìn)行
void LcdReset( void ) {

           LcdWriteCommand( 0x38, 0);                        // 顯示模式設(shè)置(不檢測忙信號)
                Delay5Ms();
        LcdWriteCommand( 0x38, 0);                        // 共三次
                Delay5Ms();
        LcdWriteCommand( 0x38, 0);
                Delay5Ms();

        LcdWriteCommand( 0x38, 1);                        // 顯示模式設(shè)置(以后均檢測忙信號)
    LcdWriteCommand( 0x08, 1);                        // 顯示關(guān)閉
           LcdWriteCommand( 0x01, 1);                        // 顯示清屏
        LcdWriteCommand( 0x06, 1);                        // 顯示光標(biāo)移動設(shè)置
        LcdWriteCommand( 0x0c, 1);                        // 顯示開及光標(biāo)設(shè)置
}

// 寫控制字符子程序: E=1 RS=0 RW=0

void LcdWriteCommand( Uchar CMD,Uchar AttribC ) {

        if (AttribC) while( Lcd1602StatusPort & Busy );                // 檢測忙信號?
        Lcd1602CmdPort = CMD;
}
       
// 當(dāng)前位置寫字符子程序: E =1 RS=1 RW=0
void LcdWriteData( char dataW ) {

        while( Lcd1602StatusPort & Busy );                                // 檢測忙信號
        Lcd1602WdataPort = dataW;
}

// 短延時
void Delay5Ms(void)
{
        Uint i = 5552;
        while(i--);
}

//長延時
void Delay400Ms(void)
{
        Uchar i = 5;
        Uint j;
        while(i--)
        {
                j=7269;
                while(j--);
        };
}


相關(guān)帖子

回復(fù)

使用道具 舉報

ID:79207 發(fā)表于 2015-5-7 18:57 | 顯示全部樓層
覺得有用就進(jìn)來瞧瞧
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 精品一区二区三区四区五区 | 91国内产香蕉| 欧美日韩免费 | 日本精品一区二区三区在线观看视频 | 日日夜夜天天久久 | 伊人久久综合影院 | 2一3sex性hd| 日韩日韩日韩日韩日韩日韩日韩 | 日本一本在线 | 国产精品视频一区二区三区四蜜臂 | 91麻豆精品国产91久久久久久 | 麻豆精品国产91久久久久久 | 国产成人区 | 亚洲日产精品 | 成人在线欧美 | 91精品国产综合久久精品 | 成人日韩 | 国产日韩精品一区二区 | 99这里只有精品视频 | 欧美不卡一区二区三区 | 二区不卡| 亚洲免费视频播放 | 国内精品视频免费观看 | 亚洲天堂中文字幕 | 日本精品久久久久久久 | 亚洲色在线视频 | 欧美日韩综合视频 | 免费观看黄色片视频 | 国内久久 | 欧洲精品在线观看 | 精品久久久一区 | 自拍 亚洲 欧美 老师 丝袜 | 中文字幕日本一区二区 | 一区二区三区视频在线观看 | 国产成人精品网站 | 91欧美| 少妇无套高潮一二三区 | 人人看人人搞 | 中文字幕精品一区二区三区精品 | 亚洲精品成人 | 午夜免费视频观看 |