新聞中心

        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!= 主站蜘蛛池模板: 平罗县| 奉化市| 通城县| 从江县| 宁安市| 团风县| 台东市| 应城市| 桐柏县| 稻城县| 建水县| 周至县| 高陵县| 洛川县| 凤凰县| 曲阜市| 连平县| 南通市| 清河县| 合川市| 常德市| 陈巴尔虎旗| 南昌县| 宾川县| 聊城市| 安西县| 东平县| 达日县| 庆安县| 宜君县| 黎城县| 美姑县| 迁西县| 宝应县| 固始县| 建始县| 香格里拉县| 体育| 靖宇县| 苏州市| 邓州市|