<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          單片機(jī)·LCD1602

          作者: 時(shí)間:2016-11-24 來源:網(wǎng)絡(luò) 收藏
          LCD1602 (能夠同時(shí)顯示16x02 ,32個(gè)字符)
          一、管腳功能介紹

          1.GND 地線
          2.VCC 電源正極
          3.VL 液晶顯示偏壓信號(hào)(對(duì)比度清晰一點(diǎn))
          4.RS 數(shù)據(jù)/命令選擇端
          5.R/W 讀/寫選擇端
          6.EN 使能信號(hào)
          7.D0~D7 P0口數(shù)據(jù)傳輸
          8.BL+ 背光源正極
          9.BL- 背光源負(fù)極
          二、字符集
          這是LCD1602特別值得注意的一點(diǎn),我開始學(xué)習(xí)的時(shí)候,以后可以使用通用的ascii碼,但是實(shí)驗(yàn)了很久,得不到自己想要的結(jié)果,最后才發(fā)現(xiàn)LCD1602有自己的字符集
          (最長使用的十六進(jìn)制中的A-F,可以通過 A+7來確定)

          三、LCD1602 的基本時(shí)序
          1.讀狀態(tài):輸入:RS = 0, RW = 1, EN = 1 , 輸出:D0-D7 = 狀態(tài)字 ;
          2.寫指令:輸入:RS = 0, RW = 1, EN = 0 , EN = 1 ,(高脈沖) 輸出:D0-D7 = 指令碼 ;
          3.讀數(shù)據(jù):輸入:RS = 0, RW = 1, EN = 1 , 輸出:D0-D7 = 數(shù)據(jù) ;
          4.寫數(shù)據(jù):輸入:RS = 0, RW = 1, EN = 0 ,EN = 1 ,(高脈沖) 輸出:D0-D7 = 數(shù)據(jù);
          四、LCD1602的狀態(tài)字的說明
          D7 D6 D5 D4 D3 D2 D1 D0
          其中bit7是判斷LCD忙狀態(tài)的標(biāo)志,每次讀寫LCD1602必須對(duì)其狀態(tài)進(jìn)行判斷。
          五、LCD1602初始化設(shè)置
          1.顯示模式設(shè)置
          指令碼 功能
          0011 1000 16x2顯示,5x7點(diǎn)陣,8位數(shù)據(jù)口
          2.顯示開關(guān)及光標(biāo)設(shè)置
          指令碼 功能
          0000 1DCB D=1 開顯示;D=0 關(guān)顯示 ;
          C=1 顯示光標(biāo);C=0 不顯示光標(biāo) ;
          B=1 光標(biāo)閃爍;B=0 光標(biāo)不閃爍 ;
          0000 01NS N=1 讀寫一位,指針+1,光標(biāo)+1 ;
          N=0 讀寫一位,指針 -1,光標(biāo) -1 ;
          S =1 讀寫一位,屏幕左移(N=1)或者右移(N=0);
          S =0 屏幕不移動(dòng) ;
          3.指令碼 01H 1.數(shù)據(jù)指針清0 ;
          2.所有顯示清0 ;
          02H 1.數(shù)據(jù)指針清0 ;
          六、實(shí)驗(yàn)
          實(shí)驗(yàn)1:通過LCD1602顯示簡單的字符串
          程序:
          main.h
          #ifndef _1602_H_
          #define _1602_H_
          typedef unsigned char uint8 ;
          sbit RS = P1^0 ;
          sbit RW = P1^1 ;
          sbit EN = P1^5 ;
          sbit BUSY = P0^7 ;
          unsigned char code word1[] = {"yang zhou"} ;
          unsigned char code word2[] = {"I love you"} ;
          #endif
          main.c
          #include
          #include
          #include"1602.h"
          void wait()
          {
          P0 = 0xFF ;
          while(BUSY)
          {
          RS = 0 ;
          RW = 1 ;
          EN = 0 ;
          EN = 1 ;
          }
          EN = 0 ;
          }
          void W_cmd(uint8 cmd)
          {
          wait() ;
          EN = 0 ;
          P0 = cmd ;
          RS = 0 ;
          RW = 0 ;
          EN = 1 ;
          EN = 0 ;
          }
          void Init_LCD1602()
          {
          W_cmd(0x38) ;
          W_cmd(0x0C) ;
          W_cmd(0x06) ;
          W_cmd(0x01) ;
          }
          void W_dat(uint8 dat)
          {
          EN = 0 ;
          P0 = dat ;
          RS = 1 ;
          RW = 0 ;
          EN = 1 ;
          EN = 0 ;
          }
          void W_string(uint8 *p)
          {
          while(*p !=看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();