色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 單片機(jī)控制LCD1602顯示字符(測(cè)試通過(guò))

          單片機(jī)控制LCD1602顯示字符(測(cè)試通過(guò))

          作者: 時(shí)間:2016-11-28 來(lái)源:網(wǎng)絡(luò) 收藏
          本次測(cè)試的是常用LCD1602顯示屏,操作流程很簡(jiǎn)單,但有些小問(wèn)題要注意,如該LCD處理速度有些慢,單片機(jī)在發(fā)送控制指令時(shí)需要適當(dāng)延時(shí),否則可能操作失敗。

          一、硬件簡(jiǎn)介

          本文引用地址:http://cafeforensic.com/article/201611/322667.htm

          1>引腳介紹

          具體引腳如下:

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

          2>指令介紹

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

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

          DDRAM:是對(duì)應(yīng)屏幕位置的存儲(chǔ)器,設(shè)定了該地址,就確定了從屏幕什么位置開始顯示字符

          二、軟件部分

          #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) //適當(dāng)延時(shí)
          {unsigned char i;
          while(m--)
          {
          for(i=0;i<=250;i++)
          {_nop_();
          }
          }
          }
          void WRITE_BYTE(unsigned char canshu) //寫1個(gè)字節(jié)
          {
          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);//約延時(shí)23ms
          WRITE_BYTE(2);//光標(biāo)歸位
          delayms(10);
          WRITE_BYTE(6);// AC自動(dòng)增1,屏幕不動(dòng)
          delayms(10);
          WRITE_BYTE(0x0F);//光標(biāo)顯示閃爍
          delayms(10);
          WRITE_BYTE(0x14);//光標(biāo)右移
          delayms(10);
          WRITE_BYTE(0x38);//兩行顯示,5X7字符
          delayms(10);
          WRITE_BYTE(0x80);//設(shè)定DDRAM地址
          delayms(10);
          _nop_();
          point=wangzhi;
          while(*point!=