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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3017|回復(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();                                //啟動時(shí)必須的延時(shí),等待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;
}

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

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


相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产 日韩 欧美 在线 | 中文在线一区二区 | 国产精品久久久久久久午夜片 | 国产精品夜夜夜一区二区三区尤 | 国产亚洲欧美在线视频 | 少妇淫片aaaaa毛片叫床爽 | 日韩精品一区二区三区 | 午夜精品一区二区三区免费视频 | 羞羞的视频在线 | 99精品久久| 欧美在线视频网站 | 欧美激情视频网站 | 一区二区小视频 | 黄色片视频 | 亚洲一区二区电影网 | 中文字幕亚洲国产 | 午夜影视大全 | 成人自拍视频网站 | 日韩中文字幕视频在线 | 超碰97免费 | 久久久www成人免费精品 | 中文无吗 | 国产欧美一级二级三级在线视频 | 自拍视频一区二区三区 | 国产精品亚洲精品 | av乱码 | 免费一二区| 亚洲高清视频在线观看 | 一级一级一级毛片 | 日韩欧美一区二区三区 | 欧美精品在线一区 | 天堂中文在线观看 | 欧美日韩专区 | 男人阁久久 | 日韩一区二区三区精品 | 国产成人综合久久 | 国产精品久久久久久高潮 | 色综合一区 | 久久久久无码国产精品一区 | 日本一区视频在线观看 | 色狠狠桃花综合 |