51單片機(jī)對(duì)LCD1602液晶顯示器的控制
要想實(shí)現(xiàn)人機(jī)交互,顯示裝置是不可缺少的。這篇文章主要關(guān)于如何控制液晶顯示,并在此基礎(chǔ)上加上定時(shí)器的功能,把原來(lái)已用數(shù)碼管顯示的定時(shí)器搬到液晶屏上來(lái)。
這里用到的液晶為L(zhǎng)CD1602,能夠同時(shí)顯示16x02即32個(gè)字符(16列2行)。1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)等,直接向其寫(xiě)入ASCII碼即可顯示相應(yīng)字符。1602共16個(gè) 管腳,管腳功能如下:
實(shí)際應(yīng)用時(shí),所用液晶模塊與單片機(jī)的連接圖如下:
其中7~14管腳為IO,與單片機(jī)的P0口相接,單片機(jī)可通過(guò)向P0口發(fā)送數(shù)據(jù)被液晶模塊并行接收。
4管腳為數(shù)據(jù)命令選擇端,與單片機(jī)P3^5口相連。故可通過(guò)控制P3^5口的電平高低,向液晶模塊寫(xiě)入命令或數(shù)據(jù)。由數(shù)據(jù)手冊(cè)得知,
寫(xiě)指令時(shí),RS=L,RW=L,D0~D7為指令碼,E管腳為一高電平脈沖;
寫(xiě)數(shù)據(jù)時(shí),RS=H,RW=L,D0~D7為數(shù)據(jù),E管腳也為一高電平脈沖。
P3^4與液晶模塊6管腳相連,控制液晶模塊使能。
首先介紹液晶模塊的指令。
初始化指令0x38:設(shè)置液晶為16x2顯示。
顯示開(kāi)關(guān)及光標(biāo)設(shè)置:
00001DCB D=1,開(kāi)顯示;
C=1。顯示光標(biāo);
B=1,光標(biāo)閃爍。
000001NS N=1,讀寫(xiě)一個(gè)字符后地址指針加1,光標(biāo)加1;
N=0,讀寫(xiě)一個(gè)字符后地址指針減1,光標(biāo)減1
S=1,寫(xiě)一個(gè)字符時(shí),整屏顯示向左移動(dòng)(N=1)或右移(N=0)
S=0,不移動(dòng)
數(shù)據(jù)寫(xiě)入控制指令:
LCD模塊中的RAM地址映射如下
要想把數(shù)據(jù)寫(xiě)入X地址,則先要輸入指令0x80+X;
例如想讓字符顯示在第二行的第一個(gè),則在將字符傳入前,要寫(xiě)入指令write_command(0x80+0x40)
此外,0x01H表示顯示清屏,數(shù)據(jù)指針清零,所有顯示清零;
0x02H表示顯示回車(chē),數(shù)據(jù)指針清零。
了解了這些之后,可以知道如果我們想要控制液晶的顯示,就要先學(xué)會(huì)怎樣向液晶寫(xiě)指令和寫(xiě)數(shù)據(jù)。
寫(xiě)指令函數(shù)
//向LCD1602寫(xiě)指令
voidwrite_com(ucharcom)
{
lcdrs=0;//RS=L
P0=com;//P0口輸出
delay(5);//延時(shí)
lcden=1;//E=H
delay(5);
lcden=0;//延時(shí)后,E變?yōu)長(zhǎng),造成了一個(gè)高電平脈沖,P0口高低電平被寫(xiě)入
}
寫(xiě)數(shù)據(jù)的方法與此類(lèi)似,照葫蘆畫(huà)瓢即可:
//向LCD1602寫(xiě)數(shù)據(jù)
/*
只需要將RS置高即可,
其他語(yǔ)句與寫(xiě)指令函數(shù)相同
*/
voidwrite_date(uchardate)
{
lcdrs=1;//RS=H
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
有了這兩個(gè)函數(shù),我們就可以向液晶模塊里面寫(xiě)入指令和數(shù)據(jù),從而實(shí)現(xiàn)對(duì)其的控制了。
為了實(shí)現(xiàn)一個(gè)完整的對(duì)LCD1602功能的封裝體現(xiàn),我們還要再寫(xiě)一個(gè)初始化的函數(shù),用于對(duì)LS1602的初始化工作
voidInital()
{
lcden=0;//先不使能
write_com(0x38);//寫(xiě)入初始化指令
write_com(0x0e);//顯示開(kāi),光標(biāo)顯示但不閃爍
write_com(0x06);//讀寫(xiě)后指針加1,光標(biāo)加1
write_com(0x01);//顯示清屏,指針清零
}
至此,就完成了對(duì)LCD1602的功能封裝,在其他的程序中,就可以使用這些函數(shù)用于液晶顯示,例如下面實(shí)現(xiàn)的用1602顯示計(jì)時(shí)器。
計(jì)時(shí)器量程為1小時(shí),顯示格式為XX:XX(前面為分,后面為秒)
用到了單片機(jī)中的計(jì)時(shí)器0,工作方式1,。50ms發(fā)生一次中斷,使一個(gè)用于計(jì)數(shù)的number自增一次。number初值設(shè)為1,故number自增至20時(shí),說(shuō)明計(jì)時(shí)1s已到,可以Do Something,也就是把處理函數(shù)加進(jìn)來(lái)了。
C文件如下:
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitlcden=P3^4;
sbitlcdrs=P3^5;
ucharnum=1;
ucharmiao=0;
ucharfen=0;
voidInital();
voidInital_Time();
voidwrite_com(ucharcom);
voidwrite_date(uchardate);
voiddelay(ucharTIme);
voidClock();
voidDisplay(ucharx,uchary);
voidmain()容-源-電-子-網(wǎng)-為你提供技術(shù)支持
本文地址:http://www.189yp.com/dz/22/15458067412848.shtml
本文標(biāo)簽:
猜你感興趣:
運(yùn)用單片機(jī)便是了解單片機(jī)硬件結(jié)構(gòu),以及內(nèi)部資源的運(yùn)用,在匯編或C語(yǔ)言中學(xué)會(huì)各種功用的初始化設(shè)置,以及完成各種功用的程序編制。 運(yùn)用按鈕輸入信號(hào),發(fā)光二極管顯現(xiàn)輸出
關(guān)鍵詞:51單片機(jī)PIC單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
現(xiàn)場(chǎng)總線技術(shù)已經(jīng)廣泛應(yīng)用于工業(yè)控制中,尤其是CAN(Controler Area Nerwork)總線由于具有可靠性高、成本低、容易實(shí)現(xiàn)等優(yōu)點(diǎn),在現(xiàn)場(chǎng)總線實(shí)際工程應(yīng)用中占有了較大份額。
關(guān)鍵詞:單片機(jī) 所屬欄目:設(shè)計(jì)編程
我的答案是:不可以原因如下:一、軟件仿真多用于教學(xué),把更多精力用在軟件的實(shí)現(xiàn)上由于學(xué)生學(xué)習(xí)時(shí)間寶貴,焊接一套單片機(jī)實(shí)驗(yàn)板又比較花時(shí)間,并且實(shí)驗(yàn)項(xiàng)目太多,所以為了
關(guān)鍵詞:PIC單片機(jī)51單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
對(duì)于新手來(lái)說(shuō),首先根據(jù)自己學(xué)的什么樣單片機(jī)就選什么類(lèi)型的單片機(jī),熟悉什么類(lèi)型的單片機(jī)就選什么類(lèi)型的單片機(jī)。因?yàn)閱纹瑱C(jī)不僅要設(shè)計(jì)電路,還要設(shè)計(jì)控制軟件。選自己熟悉的單片機(jī)上手最快,也最容易獲得成功。下面介紹如何選擇最適合的單片機(jī)。
關(guān)鍵詞: 所屬欄目:設(shè)計(jì)編程
單片機(jī)晶振的作用是什么
在初學(xué)單片機(jī)的時(shí)候,總是伴隨很多有關(guān)于晶振的問(wèn)題,其實(shí)晶振就是如同人的心臟,是血液的脈搏,把單片機(jī)的晶振問(wèn)題搞明白了,51單片機(jī)的其他問(wèn)題
關(guān)鍵詞:51單片機(jī)PIC單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
Keil單片機(jī)編程軟件Keil C51是單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì),因而易學(xué)易用。Keil提供了包括C編譯器、宏匯
關(guān)鍵詞:51單片機(jī)PIC單片機(jī) 所屬欄目:設(shè)計(jì)編程
詳解51單片機(jī)運(yùn)行過(guò)程 注:1.ROM:只讀存儲(chǔ)器,單片機(jī)的只讀存儲(chǔ)區(qū)大多用于存儲(chǔ)程序固又稱(chēng)程序存儲(chǔ)器。51單片機(jī)是EPROM,所謂的EPROM是可擦除的只
關(guān)鍵詞: 所屬欄目:設(shè)計(jì)編程
pic單片機(jī)和c51有什么區(qū)別(區(qū)別1)總線結(jié)構(gòu):MCS-51單片機(jī)的總線結(jié)構(gòu)是馮-諾依曼型,計(jì)算機(jī)在同一個(gè)存儲(chǔ)空間取指令和數(shù)據(jù),兩者不能同時(shí)進(jìn)行;而PIC單片機(jī)的總線結(jié)構(gòu)是哈佛結(jié)構(gòu)
關(guān)鍵詞:單片機(jī)PIC單片機(jī)51單片機(jī) 所屬欄目:設(shè)計(jì)編程
實(shí)例分析51單片機(jī)出現(xiàn)故障及解決辦法。詳細(xì)如下:
故障現(xiàn)象:做了一個(gè)單片機(jī)溫度監(jiān)測(cè)系統(tǒng),仿真機(jī)上一切正常,燒寫(xiě)芯片無(wú)法工作。相關(guān)電路框圖: 用51做處理器,外圍電路如
關(guān)鍵詞:單片機(jī)51單片機(jī) 所屬欄目:設(shè)計(jì)編程
PIC單片機(jī)匯編語(yǔ)言指令詳解
pic單片機(jī)為最常用單片機(jī)之一,許多程序均基于pic單片機(jī)進(jìn)行開(kāi)發(fā)。因此,熟練pic單片機(jī)編程尤為重要。為保證大家能準(zhǔn)確、熟練掌握pic單片機(jī)的使
關(guān)鍵詞:PIC單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
三種51單片機(jī)程序下載方法介紹
一般只能通過(guò)三種方式下載程序到單片機(jī)中:1.JTAG 2.ISP 3.IAP1.JTAG要使用JTAG方式下載程序,不管是使用J-LINK、ULINK、ST-LINK,只需要把
關(guān)鍵詞:PIC單片機(jī)51單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
I2C每一位信號(hào)的時(shí)序流程,而I2C通信在字節(jié)級(jí)的傳輸中,也有固定的時(shí)序要求。I2C通信的起始信號(hào)(Start)后,首先要發(fā)送一個(gè)從機(jī)的地址,這個(gè)地址一共有 7位,緊跟著的第 8
關(guān)鍵詞:PIC單片機(jī)51單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
越來(lái)越多的測(cè)量?jī)x器提供GPIB(General Purpose Intefface Bus)總線接口,通過(guò)該總線可以方便快捷地連接帶有GPIB接口的儀器及計(jì)算機(jī),組成一個(gè)GPlB網(wǎng)絡(luò)。GPIB設(shè)備與計(jì)算機(jī)連
關(guān)鍵詞:PIC單片機(jī)51單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
每個(gè)單片機(jī)系統(tǒng)里都有晶振,全程是叫晶體震蕩器,在單片機(jī)系統(tǒng)里晶振的作用非常大,他結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,單片機(jī)的一切指令的執(zhí)行都是建立
關(guān)鍵詞:51單片機(jī)PIC單片機(jī)單片機(jī) 所屬欄目:設(shè)計(jì)編程
引言變頻調(diào)速作為交流電機(jī)調(diào)速的主要手段已經(jīng)在工業(yè)領(lǐng)域中應(yīng)用的十分廣泛,其具有的調(diào)速范圍寬、穩(wěn)速精度高、動(dòng)態(tài)響應(yīng)快、適用范圍廣、運(yùn)行可靠等技術(shù)性能,已逐步取代直流
關(guān)鍵詞:單片機(jī)變頻器 所屬欄目:設(shè)計(jì)編程
電子密碼鎖按照輸入密碼方式的不同可分為好多種,其中最常用的一種是用數(shù)字鍵盤(pán)輸入密碼的電子密碼鎖。這一講主要介紹用ATmega8和LCD1602液晶顯示器等組成的電子密碼鎖,這
關(guān)鍵詞:單片機(jī) 所屬欄目:設(shè)計(jì)編程
1.實(shí)驗(yàn)任務(wù)如圖所示,監(jiān)視開(kāi)關(guān)K1(接在P3.0端口上),用發(fā)光二極管L1(接在單片機(jī)P1.0端口上)顯示開(kāi)關(guān)狀態(tài),如果開(kāi)關(guān)合上,L1亮,開(kāi)關(guān)打開(kāi),L1熄滅。2.電路原理圖3.系統(tǒng)
關(guān)鍵詞:單片機(jī)LEDLED電路圖 所屬欄目:設(shè)計(jì)編程
近日,有媒體報(bào)道稱(chēng),北京微電子技術(shù)研究所日前成功研制出國(guó)內(nèi)首個(gè)自主可控的宇航用千萬(wàn)門(mén)級(jí)高性能高可靠FPGA(現(xiàn)場(chǎng)可編程門(mén)陣列)芯片。FPGA一直是國(guó)內(nèi)的短板,市場(chǎng)基本被
關(guān)鍵詞:單片機(jī) 所屬欄目:設(shè)計(jì)編程
怎么學(xué)單片機(jī)?也常看到有人說(shuō)學(xué)了好幾個(gè)月可就是沒(méi)有什么進(jìn)展。當(dāng)然,受限于每個(gè)人受到的教育水平不同和個(gè)人理解能力的差異,學(xué)習(xí)起來(lái)會(huì)有快慢之分,但我感覺(jué)最重的就是學(xué)
關(guān)鍵詞:單片機(jī) 所屬欄目:設(shè)計(jì)編程
在單片機(jī)中有一些獨(dú)立的存儲(chǔ)單元是用來(lái)控制這些器件的,被稱(chēng)之為特殊功能寄存器(SFR)。 <特殊功能寄存器地址映象表(一)> <特殊功能寄存器地址映象表(二)> <
關(guān)鍵詞:單片機(jī)寄存器 所屬欄目:設(shè)計(jì)編程