新聞中心

        EEPW首頁 > 消費電子 > 設計應用 > 使用1602液晶顯示的實驗例子

        使用1602液晶顯示的實驗例子

        作者: 時間:2011-04-06 來源:網絡 收藏

        1602

        本文引用地址:http://www.104case.com/article/166186.htm

        SMC1602A(16*2)模擬口線接線方式
        連接線圖:

        |LCM-----51  | LCM-----51  | LCM------51 |
        |
        |DB0-----P1.0 | DB4-----P1.4 | RW-------P2.0 |
        |DB1-----P1.1 | DB5-----P1.5 | RS-------P2.1 |
        |DB2-----P1.2 | DB6-----P1.6 | E--------P2.2 |
        |DB3-----P1.3 | DB7-----P1.7 | VLCD接1K電阻到GND|

        [注:AT89S5112M晶振]

        #define LCM_RW P2_0 //定義引腳
        #define LCM_RS P2_1
        #define LCM_E P2_2
        #define LCM_Data P1
        #define Busy 0x80 //用于檢測LCM狀態字中的Busy標識

        #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(); //啟動等待,等LCM講入工作狀態
        LCMInit(); //LCM初始化
        Delay5Ms(); //延時片刻(可不要)

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

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

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

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 博野县| 湛江市| 双辽市| 凤凰县| 安岳县| 伽师县| 湖南省| 武夷山市| 德化县| 同仁县| 横峰县| 苗栗县| 平和县| 夏邑县| 大关县| 江孜县| 旬邑县| 井研县| 蒲江县| 连州市| 那坡县| 遂川县| 通山县| 诏安县| 安新县| 巧家县| 信宜市| 洮南市| 丰宁| 吴川市| 开原市| 宁河县| 兴安县| 桐城市| 曲麻莱县| 临沂市| 河津市| 涟源市| 银川市| 盘锦市| 驻马店市|