一、前言
在開發(fā)指南(二)中,我們簡單介紹了按鍵中斷的使用方法,由于示例程序的各個測試內(nèi)容都有使用到LCD顯示,所以本章先給大家講解一下LCD顯示的基本使用方法,參考應(yīng)用手冊第25章節(jié)。
二、LCD結(jié)構(gòu):
在講解LCD顯示功能之前先了解一下LCD整體結(jié)構(gòu)圖,如下圖1:
圖1. LCD整體結(jié)構(gòu)圖
從圖中我們看到LCD整體結(jié)構(gòu)分為Charge pump電路和LCD Driver電路,前者負責(zé)提供VLCD電壓給LCD驅(qū)動電路,后者負責(zé)根據(jù)設(shè)置驅(qū)動LCD進行顯示,其中控制VLCD電壓即可控制LCD顯示的灰度,寫入LCDDATA即可控制顯示內(nèi)容,注意VLCD需外接1uF電容到VDD/GND,否則會影響顯示效果。
三、LCD顯示:
接下來我們按照main函數(shù)的執(zhí)行順序簡單介紹一下如何控制LCD驅(qū)動液晶屏進行正常顯示。上電后先對LCD模塊進行初始化(見圖2),第一步還是要先開啟外設(shè)時鐘源,然后根據(jù)使用的液晶屏規(guī)格選擇COM數(shù)量和SEG數(shù)量,示例程序使用的液晶屏為4COM,顯示內(nèi)容‘123456’只需要12個SEG即可滿足,因此可以選擇任意的12個SEG引腳作為液晶腳,示例程序以SEG0-SEG11作為液晶腳,其他SEG引腳仍做數(shù)字功能使用,選擇VLCD電壓為3.3V,其余設(shè)置保持默認值,最后打開Charge pump模塊和LCD驅(qū)動電路。
圖2. LCD初始化函數(shù)
LCD初始化完成后,接下來要在液晶屏上顯示‘123456’。首先液晶屏的每個引腳都有對應(yīng)控制的段碼(參考圖3),其中PIN1-PIN12引腳可以對應(yīng)連接到芯片的任意12個SEG引腳,為了便于代碼編寫,我們選擇將PIN1-PIN12連接至芯片的SEG0-SEG11引腳,PIN13-PIN16連接至芯片的COM0-COM3引腳。
圖3. 液晶屏段碼
圖4. 液晶屏段碼對應(yīng)
參考圖4的示例和圖3的段碼可以發(fā)現(xiàn)每個‘8’形狀的全部段碼都被分配在兩個相鄰的PIN腳,也就是說控制SEG0-1、SEG2-3、SEG4-5、SEG6-7、SEG8-9、SEG10-11就可以完全獨立的控制6個‘8’的顯示。
我們再看一下LCD_DR2寄存器(見圖5,與其他LCD_DRx寄存器僅控制的SEG不同),可以分為4個部分S11C7-0,S10C7-0,S09C7-0,S08C7-0,其中S是SEG的縮寫,C是COM的縮寫,即S11C3代表可以控制SEG11&COM3對應(yīng)的液晶段,也就意味著一個LCD_DRx寄存器就能控制4個SEG口進行顯示,在8COM設(shè)置下可驅(qū)動最多32段液晶段顯示4個‘8’,由于我們使用的液晶僅需要4COM,因此僅能驅(qū)動16段液晶段顯示2個‘8’。
圖5. LCD_DR2寄存器
由此可以根據(jù)需求控制液晶段組合顯示成阿拉伯?dāng)?shù)字、大小寫英文字母或其他人為定義的顯示內(nèi)容,例如從圖3中可以看到SEG11控制6F、6G、6E、P6,SEG10控制6A、6B、6C、6D,SEG9控制5F、5G、5E、P5,SEG8控制5A、5B、5C、5D,共16段,按順序在LCD_DR2寄存器寫入0x0E0B0C0B,就可以控制LCD顯示數(shù)字‘5’和‘6’(如圖6),最后我們將常用的顯示內(nèi)容進行組合定義,便于隨時取用(如圖7,不同液晶屏的組合順序不同,使用時需要注意)。
圖6. LCD顯示‘56’
圖7. LCD顯示字符組合
當(dāng)這些準(zhǔn)備工作完成之后,驅(qū)動LCD顯示我們想要的內(nèi)容就變得非常簡單了,首先確定我們要顯示在哪一位上,要顯示的是什么字符,再調(diào)用函數(shù)LCD_DisplayData,其中Num表示顯示在哪一位,Data表示顯示的是什么字符,例如在第1位顯示數(shù)字‘0’,則Num=1,Data=0x00,通過比較即可將宏定義結(jié)果‘Disp_Num0’取出(如圖8的過程),再進入顯示程序LCD_MyDisplay即可將數(shù)字‘0’顯示在第1位上。
圖8. 自編LCD函數(shù)
最后我們按順序顯示‘123456’,實際運行后的結(jié)果如圖9。
圖9.LCD顯示驗證結(jié)果
四、開發(fā)問題簡析:
開發(fā)階段使用LCD模塊遇到最多的問題是顯示亂碼、亮度不夠、屏幕閃爍,要重點關(guān)注SEG口選擇是否正確、寫入LCD_DR寄存器的順序是否正確、宏定義是否正確以及VLCD電容是否外接,根據(jù)需要選擇合適的負載驅(qū)動能力。
五、總結(jié):
LCD模塊的使用最重要的還是要理解如何準(zhǔn)確點亮液晶屏對應(yīng)的液晶段,其他的如顯示字符、閃爍等等內(nèi)容都只是在基礎(chǔ)上進行應(yīng)用。
審核編輯:湯梓紅
-
mcu
+關(guān)注
關(guān)注
146文章
17168瀏覽量
351410 -
lcd
+關(guān)注
關(guān)注
34文章
4426瀏覽量
167628 -
adc
+關(guān)注
關(guān)注
98文章
6503瀏覽量
544846 -
soc
+關(guān)注
關(guān)注
38文章
4173瀏覽量
218381
發(fā)布評論請先 登錄
相關(guān)推薦
評論