新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機控制LCD1602顯示字符(測試通過)

        單片機控制LCD1602顯示字符(測試通過)

        作者: 時間:2016-11-28 來源:網絡 收藏
        本次測試的是常用LCD1602顯示屏,操作流程很簡單,但有些小問題要注意,如該LCD處理速度有些慢,單片機在發送控制指令時需要適當延時,否則可能操作失敗。

        一、硬件簡介

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

        1>引腳介紹

        具體引腳如下:

        單片機需要操作的引腳有:RS、RW、E及DB0~7

        2>指令介紹

        在這里,僅僅介紹下什么是CGRAM、什么是DDRAM?

        CGRAM:是用戶自定義字符存放存儲器,可以自己在指定地址定義字符

        DDRAM:是對應屏幕位置的存儲器,設定了該地址,就確定了從屏幕什么位置開始顯示字符

        二、軟件部分

        #include
        #include
        #define DATA P0
        sbit RS=P2^6;
        sbit RW=P2^5;
        sbit EN=P2^7;
        unsigned char zifu[]={"Hello,World!0"};
        unsigned char wangzhi[]={"http://shop108408772.taobao.com/"};
        void delayms(unsigned char m) //適當延時
        {unsigned char i;
        while(m--)
        {
        for(i=0;i<=250;i++)
        {_nop_();
        }
        }
        }
        void WRITE_BYTE(unsigned char canshu) //寫1個字節
        {
        RW=0;
        _nop_();
        _nop_();
        EN=1;
        _nop_();
        DATA=canshu;
        EN=0;
        _nop_();
        _nop_();
        }


        void main()
        {
        unsigned char *point;
        RS=0;
        WRITE_BYTE(1);//清屏
        delayms(10);//約延時23ms
        WRITE_BYTE(2);//光標歸位
        delayms(10);
        WRITE_BYTE(6);// AC自動增1,屏幕不動
        delayms(10);
        WRITE_BYTE(0x0F);//光標顯示閃爍
        delayms(10);
        WRITE_BYTE(0x14);//光標右移
        delayms(10);
        WRITE_BYTE(0x38);//兩行顯示,5X7字符
        delayms(10);
        WRITE_BYTE(0x80);//設定DDRAM地址
        delayms(10);
        _nop_();
        point=wangzhi;
        while(*point!= 主站蜘蛛池模板: 双柏县| 中方县| 绥宁县| 洞头县| 富顺县| 汽车| 饶阳县| SHOW| 邛崃市| 曲麻莱县| 石嘴山市| 奎屯市| 获嘉县| 宿州市| 津南区| 枝江市| 四子王旗| 青川县| 永和县| 库车县| 通河县| 麻城市| 乐业县| 两当县| 天祝| 吉林省| 玉山县| 沁阳市| 双峰县| 青川县| 武宣县| 定日县| 五家渠市| 武宁县| 瓦房店市| 女性| 洛扎县| 民权县| 柘荣县| 高平市| 师宗县|