LCD1602与51单片机
本篇文章將使用如圖的LCD1602來顯示一行字符
可以搭配DTH11來實(shí)時檢測溫濕度?
引腳圖
第 1 腳: VSS 為電源地
第 2 腳: VDD 接 5V 正電源
第 3 腳: VL 為液晶顯示器對比度調(diào)整端,接VCC時對比度最弱,接GND時對比度最高,對比度,過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10K 的電位器調(diào)整對比度。
第 4 腳:RS 為寄存器選擇,RS = 1時選擇數(shù)據(jù)寄存器、RS = 0時選擇指令寄存器。
第 5 腳:R/W 為讀寫信號線,RW = 1時進(jìn)行讀操作,RW = 0時進(jìn)行寫操作。
當(dāng)?RS = 0, RW = 0 時可以寫入指令或者顯示地址,
當(dāng) RS = 0, RW = 1時可以讀忙信號,
當(dāng) RS = 1, RW = 0時可以寫入數(shù)據(jù)。
第 6 腳:E 端為使能端,E = 1時讀取數(shù)據(jù),E為下降沿(1->0)時執(zhí)行指令
第 7~14 腳:D0~D7 為 8 位雙向數(shù)據(jù)線。
第 15 腳:背光源正極(接VCC)。
第 16 腳:背光源負(fù)極(接GND)。
對于想要LCD1602顯示字符,無非就是LCD1602初始化;在哪里顯示字符(寫入地址指令);顯示什么內(nèi)容(寫入數(shù)據(jù));
寫入指令
根據(jù)時序圖,定義一個寫指令函數(shù)和寫數(shù)據(jù)函數(shù)
?
?在每次寫操作之前,我們都要檢測忙信號,如果忙時,我們無法進(jìn)行寫操作,此時我們需要讀LCD1602的數(shù)據(jù)來檢測忙信號
?BF為內(nèi)部忙操作標(biāo)志,BF=1,表示模塊正在進(jìn)行內(nèi)部操作,此時模塊不 接收任何外部指令和數(shù)據(jù)
根據(jù)讀時序圖,我們定義一個檢測忙信號函數(shù)
LCD1602初始化
我們可以查看LCD1602手冊來獲得初始化過程
(1)延時15ms
(2)寫指令 38H(不檢測忙信號)
(3)延時 5ms
(4)以后每次寫指令,讀/寫數(shù)據(jù)操作均需要檢測忙信號
(5)寫指令 38H:顯示模式設(shè)置
(6)寫指令 08H:顯示關(guān)閉
(7)寫指令 01H:顯示清屏
(8)寫指令06H:顯示光標(biāo)移動設(shè)置
(9)寫指令0CH:顯示開及光標(biāo)設(shè)置
LCD數(shù)據(jù)顯示地址
?
例如第二行第一個字符的地址是40H那么是否直接寫入40H就可以將光標(biāo)定位在第二行第
一個字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時要求最高位 D7恒定為高電平1所以實(shí)
際寫入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(COH)。
dingy函數(shù)封裝LCD1602顯示內(nèi)容
?附上源碼
?效果如圖
我沒有用電位器調(diào)節(jié)鬼影,因此后面顯示會有小方格。
總結(jié)
以上是生活随笔為你收集整理的LCD1602与51单片机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机科学 实践调查报告,计算机专业调查
- 下一篇: 世平信息参与2020计世传媒优秀安全企业