中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 消費(fèi)電子 > 設(shè)計(jì)應(yīng)用 > 1602液晶顯示實(shí)驗(yàn)

        1602液晶顯示實(shí)驗(yàn)

        作者: 時(shí)間:2012-06-21 來源:網(wǎng)絡(luò) 收藏

        本文引用地址:http://www.antipu.com.cn/article/165400.htm

        //讀狀態(tài)
        unsigned char ReadStatusLCM(void)
        {
        LCM_Data = 0xFF;
        LCM_RS = 0;
        LCM_RW = 1;
        LCM_E = 0;
        LCM_E = 0;
        LCM_E = 1;
        while (LCM_Data Busy); //檢測(cè)忙信號(hào)
        return(LCM_Data);
        }

        void LCMInit(void) //LCM初始化
        {
        LCM_Data = 0;
        WriteCommandLCM(0x38,0); //三次顯示模式設(shè)置,不檢測(cè)忙信號(hào)
        Delay5Ms();
        WriteCommandLCM(0x38,0);
        Delay5Ms();
        WriteCommandLCM(0x38,0);
        Delay5Ms();

        WriteCommandLCM(0x38,1); //顯示模式設(shè)置,開始要求每次檢測(cè)忙信號(hào)
        WriteCommandLCM(0x08,1); //關(guān)閉顯示
        WriteCommandLCM(0x01,1); //顯示清屏
        WriteCommandLCM(0x06,1); // 顯示光標(biāo)移動(dòng)設(shè)置
        WriteCommandLCM(0x0C,1); // 顯示開及光標(biāo)設(shè)置
        }

        //按指定位置顯示一個(gè)字符
        void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
        {
        Y = 0x1;
        X = 0xF; //限制X不能大于15,Y不能大于1
        if (Y) X |= 0x40; //當(dāng)要顯示第二行時(shí)地址碼+0x40;
        X |= 0x80; //算出指令碼
        WriteCommandLCM(X, 0); //這里不檢測(cè)忙信號(hào),發(fā)送地址碼
        WriteDataLCM(DData);
        }

        //按指定位置顯示一串字符
        void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
        {
        unsigned char ListLength;

        ListLength = 0;
        Y = 0x1;
        X = 0xF; //限制X不能大于15,Y不能大于1
        while (DData[ListLength]>0x20) //若到達(dá)字串尾則退出
        {
        if (X = 0xF) //X坐標(biāo)應(yīng)小于0xF
        {
        DisplayOneChar(X, Y, DData[ListLength]); //顯示單個(gè)字符
        ListLength++;
        X++;
        }
        }
        }

        //5ms延時(shí)
        void Delay5Ms(void)
        {
        unsigned int TempCyc = 5552;
        while(TempCyc--);
        }

        //400ms延時(shí)
        void Delay400Ms(void)
        {
        unsigned char TempCycA = 5;
        unsigned int TempCycB;
        while(TempCycA--)
        {
        TempCycB=7269;
        while(TempCycB--);
        };
        }

        [注:AT89S51使用12M晶振]

        #define LCM_RW P2_0 //定義引腳
        #define LCM_RS P2_1
        #define LCM_E P2_2
        #define LCM_Data P1
        #define Busy 0x80 //用于檢測(cè)LCM狀態(tài)字中的Busy標(biāo)識(shí)

        #include at89x51.h>

        void WriteDataLCM(unsigned char WDLCM);
        void WriteCommandLCM(unsigned char WCLCM,BuysC);
        unsigned char ReadDataLCM(void);
        unsigned char ReadStatusLCM(void);
        void LCMInit(void);
        void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData);
        void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData);
        void Delay5Ms(void);
        void Delay400Ms(void);

        unsigned char code cdle_net[] = {www.cdle.net};
        unsigned char code email[] = {pnzwzw@cdle.net};

        void main(void)
        {
        Delay400Ms(); //啟動(dòng)等待,等LCM講入工作狀態(tài)
        LCMInit(); //LCM初始化
        Delay5Ms(); //延時(shí)片刻(可不要)

        DisplayListChar(0, 0, cdle_net);
        DisplayListChar(0, 1, email);
        ReadDataLCM();//測(cè)試用句無意義
        while(1);
        }

        //寫數(shù)據(jù)
        void WriteDataLCM(unsigned char WDLCM)
        {
        ReadStatusLCM(); //檢測(cè)忙
        LCM_Data = WDLCM;
        LCM_RS = 1;
        LCM_RW = 0;
        LCM_E = 0; //若晶振速度太高可以在這后加小的延時(shí)
        LCM_E = 0; //延時(shí)
        LCM_E = 1;
        }

        //寫指令
        void WriteCommandLCM(unsigned char WCLCM,BuysC) //BuysC為0時(shí)忽略忙檢測(cè)
        {
        if (BuysC) ReadStatusLCM(); //根據(jù)需要檢測(cè)忙
        LCM_Data = WCLCM;
        LCM_RS = 0;
        LCM_RW = 0;
        LCM_E = 0;
        LCM_E = 0;
        LCM_E = 1;
        }

        //讀數(shù)據(jù)
        unsigned char ReadDataLCM(void)
        {
        LCM_RS = 1;
        LCM_RW = 1;
        LCM_E = 0;
        LCM_E = 0;
        LCM_E = 1;
        return(LCM_Data);
        }


        上一頁 1 2 下一頁

        關(guān)鍵詞: 實(shí)驗(yàn) 液晶顯示

        評(píng)論


        相關(guān)推薦

        技術(shù)專區(qū)

        關(guān)閉