單片機(jī)人機(jī)交互系統(tǒng)的語(yǔ)言編程_第1頁(yè)
單片機(jī)人機(jī)交互系統(tǒng)的語(yǔ)言編程_第2頁(yè)
單片機(jī)人機(jī)交互系統(tǒng)的語(yǔ)言編程_第3頁(yè)
單片機(jī)人機(jī)交互系統(tǒng)的語(yǔ)言編程_第4頁(yè)
單片機(jī)人機(jī)交互系統(tǒng)的語(yǔ)言編程_第5頁(yè)
已閱讀5頁(yè),還剩76頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單片機(jī)人機(jī)交互系統(tǒng)的語(yǔ)言編程第一頁(yè),共八十一頁(yè),2022年,8月28日教學(xué)提示

在單片機(jī)應(yīng)用系統(tǒng)中,經(jīng)常會(huì)涉及顯示器、鍵盤(pán)等人機(jī)交互設(shè)備。如何將它們與單片機(jī)的輸入/輸出端口相連并編程實(shí)現(xiàn)特定的功能是單片機(jī)應(yīng)用開(kāi)發(fā)人員必須掌握的基本技術(shù)。常用的顯示器有LED數(shù)碼管顯示器、LED點(diǎn)陣顯示器、LCD顯示器;常用的鍵盤(pán)有非編碼鍵盤(pán)、編碼鍵盤(pán)。本章將重點(diǎn)介紹上述元器件與單片機(jī)的連接方式以及C51語(yǔ)言的編程方法。第二頁(yè),共八十一頁(yè),2022年,8月28日教學(xué)要求

了解單片機(jī)輸入/輸出端口的特點(diǎn)及使用注意事項(xiàng);熟練掌握LED數(shù)碼管顯示器的使用方法;掌握LED點(diǎn)陣顯示器、LCD顯示器的使用方法;熟練掌握非編碼鍵盤(pán)的使用方法;掌握外部擴(kuò)展存儲(chǔ)器的使用方法。第三頁(yè),共八十一頁(yè),2022年,8月28日5.1單片機(jī)的輸入/輸出端口1.P0口2.P1口3.P2口4.P3口51系列單片機(jī)有4個(gè)8位的雙向并行輸入/輸出(I/O)端口,稱(chēng)為P0口、P1口、P2口和P3口。各個(gè)端口既可以按字節(jié)輸入、輸出,也可以按位進(jìn)行輸入、輸出。利用這4個(gè)I/O端口可以方便地實(shí)現(xiàn)單片機(jī)與外部數(shù)字設(shè)備或芯片的信息交換。下面簡(jiǎn)要介紹單片機(jī)輸入/輸出端口的特點(diǎn)及使用注意事項(xiàng)。第四頁(yè),共八十一頁(yè),2022年,8月28日5.2LED數(shù)碼管顯示器

5.2.1LED數(shù)碼管顯示器簡(jiǎn)介5.2.2靜態(tài)顯示編碼5.2.3動(dòng)態(tài)顯示編碼靜態(tài)顯示編程

第五頁(yè),共八十一頁(yè),2022年,8月28日5.2.1LED數(shù)碼管顯示器簡(jiǎn)介圖5.1通用7段LED數(shù)碼管圖5.2專(zhuān)用LED數(shù)碼管LED顯示器按用途可分為通用7段LED顯示器和專(zhuān)用LED顯示器,分別如圖5.1和圖5.2所示。本節(jié)重點(diǎn)介紹通用7段LED顯示器(以下簡(jiǎn)稱(chēng)為數(shù)碼管)。

第六頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.3共陰極數(shù)碼管圖5.4共陽(yáng)極數(shù)碼管數(shù)碼管由8個(gè)LED(a、b、c、d、e、f、g、h)構(gòu)成,按結(jié)構(gòu)分為共陰極和共陽(yáng)極兩種,如圖5.3和5.4所示。要使LED數(shù)碼管顯示出相應(yīng)的數(shù)字或字符,必須向其數(shù)據(jù)口輸入相應(yīng)的字形編碼。LED數(shù)碼管的常用字形編碼見(jiàn)表5-2。第七頁(yè),共八十一頁(yè),2022年,8月28日表5-2LED數(shù)碼管的常用字型編碼表第八頁(yè),共八十一頁(yè),2022年,8月28日續(xù)表5-2第九頁(yè),共八十一頁(yè),2022年,8月28日LED數(shù)碼管顯示器的外型結(jié)構(gòu)如圖5.5所示。LED數(shù)碼管有靜態(tài)顯示和動(dòng)態(tài)顯示兩種方式,在具體使用時(shí),要求LED驅(qū)動(dòng)電路能提供額定的LED導(dǎo)通電流,還要根據(jù)外接電源及額定LED導(dǎo)通電流來(lái)確定相應(yīng)的限流電阻。圖5.5數(shù)碼管的外型結(jié)構(gòu)第十頁(yè),共八十一頁(yè),2022年,8月28日5.2.2靜態(tài)顯示編程

靜態(tài)顯示是指數(shù)碼管顯示某一字符時(shí),相應(yīng)的LED恒定導(dǎo)通或恒定截止。靜態(tài)顯示時(shí),各位數(shù)碼管是相互獨(dú)立的,每個(gè)數(shù)碼管的8個(gè)LED分別與一個(gè)8位I/O口地址相連,只要I/O口有字型碼輸出,相應(yīng)字符即顯示出來(lái),并保持不變,直到I/O口輸出新的字型碼。采用靜態(tài)顯示方式,較小的電流即可獲得較高的亮度,且占用CPU時(shí)間少,編程簡(jiǎn)單,顯示便于監(jiān)測(cè)和控制,但其占用的口線多,硬件電路復(fù)雜,成本高,只適合于顯示位數(shù)較少的場(chǎng)合。第十一頁(yè),共八十一頁(yè),2022年,8月28日【例5.1】電路如圖5.6所示,單片機(jī)采用AT89C51,振蕩器頻率fOSC為12MHz,數(shù)碼管LED1、LED2采用7SEG-COM-CAT-GRN(共陰極,綠色),兩位數(shù)碼管分別連接在AT89C51的P0口、P1口,按鍵K1接在引腳P2.3上,RP1為排阻。試編程實(shí)現(xiàn)下列功能。(1)開(kāi)機(jī)顯示00。(2)按一次K1鍵,數(shù)字加1。(3)當(dāng)計(jì)數(shù)到99時(shí),再按一次K1鍵,又從00開(kāi)始計(jì)數(shù)。第十二頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.6例5.1電路圖第十三頁(yè),共八十一頁(yè),2022年,8月28日5.2.3動(dòng)態(tài)顯示編程

動(dòng)態(tài)顯示是逐位地輪流點(diǎn)亮各位數(shù)碼管,這種逐位點(diǎn)亮顯示器的方式稱(chēng)為位掃描。通常,各位數(shù)碼管的相應(yīng)LED選線并聯(lián)在一起,由一個(gè)8位的I/O口控制;各位的位選線(公共陰極或陽(yáng)極)由另外的I/O口線控制。動(dòng)態(tài)方式顯示時(shí),各數(shù)碼管分時(shí)輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時(shí)刻只選通一位數(shù)碼管,并送出相應(yīng)的字型碼,在另一時(shí)刻選通另一位數(shù)碼管,并送出相應(yīng)的字型碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時(shí)刻分別顯示,但由于人眼存在視覺(jué)暫留效應(yīng),只要每位顯示間隔足夠短就可以給人同時(shí)顯示的感覺(jué)。第十四頁(yè),共八十一頁(yè),2022年,8月28日采用動(dòng)態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示方式簡(jiǎn)單,但其亮度不如靜態(tài)顯示方式,而且在顯示位數(shù)較多時(shí),CPU要依次掃描,占用CPU較多的時(shí)間。【例5.2】電路如圖5.7所示,單片機(jī)采用AT89C51,振蕩器頻率fosc為12MHz,數(shù)碼管LED1、LED2采用7SEG-COM-CAT-GRN(共陰極,綠色),兩位數(shù)碼管分別連接在AT89C51的P0口、P1口,按鍵K1接在引腳P2.3上,RP1為排阻。試編程實(shí)現(xiàn)下列功能。(1)開(kāi)機(jī)顯示00。(2)按一次K1鍵,數(shù)字加1。(3)當(dāng)計(jì)數(shù)到99時(shí),再按一次K1鍵,又從00開(kāi)始計(jì)數(shù)。第十五頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.7例5.2電路圖第十六頁(yè),共八十一頁(yè),2022年,8月28日5.3LED數(shù)碼管點(diǎn)陣顯示器

5.3.1字母、數(shù)字及圖形的顯示5.3.2中文字符的顯示LED數(shù)碼管點(diǎn)陣顯示器是由LED按矩陣方式排列而成的,按照尺寸大小,LED點(diǎn)陣顯示器有5×7、5×8、6×8、8×8等多種規(guī)格;按照LED發(fā)光顏色的變化情況,LED點(diǎn)陣顯示器分為單色、雙色、三色;按照LED的連接方式,LED點(diǎn)陣顯示器又有共陰極、共陽(yáng)極之分。第十七頁(yè),共八十一頁(yè),2022年,8月28日在使用時(shí),只要點(diǎn)亮相應(yīng)的LED,LED點(diǎn)陣顯示器即可按要求顯示英文字母、阿拉伯?dāng)?shù)字、圖形以及中文字符等。LED點(diǎn)陣顯示器廣泛地應(yīng)用于股票顯示板、活動(dòng)信息公告板、活動(dòng)字幕廣告板等場(chǎng)合。ProteusISIS中只提供了單色的5×7、8×8兩種LED點(diǎn)陣顯示器,如圖5.8所示。(a)5×7LED點(diǎn)陣顯示器(b)8×8LED點(diǎn)陣顯示器圖5.8LED點(diǎn)陣顯示器第十八頁(yè),共八十一頁(yè),2022年,8月28日5.3.1字母、數(shù)字及圖形的顯示單個(gè)的西文字母或阿拉伯?dāng)?shù)字通常采用5×7點(diǎn)陣顯示,圖5.9所示為字母“A”的5×7字形點(diǎn)陣示意圖。值得注意的是,字形并不是唯一的,應(yīng)根據(jù)具體需要而定。圖5.9字母A的5×7字形點(diǎn)陣示意圖第十九頁(yè),共八十一頁(yè),2022年,8月28日5.3.1字母、數(shù)字及圖形的顯示【例5.3】電路如圖5.11所示,單片機(jī)采用AT89C51,振蕩器頻率fOSC為12MHz,LED-DOT為8×8共陽(yáng)極LED點(diǎn)陣顯示器(MATRIX-8×8-GREEN)。試編程實(shí)現(xiàn)下列功能:循環(huán)顯示字符0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。電路中采用帶輸出鎖存器的8位串入并出移位寄存器74HC595作為列驅(qū)動(dòng)器,目的是為了解決列掃描過(guò)程中列數(shù)據(jù)準(zhǔn)備與列數(shù)據(jù)顯示之間的矛盾問(wèn)題。圖5.1074HC595原理圖第二十頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.11例5.3電路圖第二十一頁(yè),共八十一頁(yè),2022年,8月28日字符數(shù)據(jù)碼字符數(shù)據(jù)碼03EH,41H,41H,41H,3EH,00H,00H,00H836H,49H,49H,49H,36H,00H,00H,00H111H,21H,7FH,01H,01H,00H,00H,00H979H,49H,49H,49H,7FH,00H,00H,00H223H,45H,49H,51H,21H,00H,00H,00HA1FH,24H,44H,24H,1FH,00H,00H,00H322H,49H,49H,49H,36H,00H,00H,00HB7FH,49H,49H,49H,36H,00H,00H,00H40CH,14H,24H,7FH,04H,00H,00H,00HC3EH,41H,41H,41H,22H,00H,00H,00H57AH,49H,49H,49H,4EH,00H,00H,00HD41H,7FH,41H,41H,3EH,00H,00H,00H67FH,49H,49H,49H,4FH,00H,00H,00HE7FH,49H,49H,49H,49H,00H,00H,00H720H,40H,40H,40H,7FH,00H,00H,00HF7FH,48H,48H,48H,48H,00H,00H,00H表5-3字符0~9、A~F的5×7數(shù)據(jù)碼假設(shè)所有字符均以5×7點(diǎn)陣在顯示器的左下角顯示,則各字符的數(shù)據(jù)編碼見(jiàn)表5-3。第二十二頁(yè),共八十一頁(yè),2022年,8月28日利用LED點(diǎn)陣顯示器,可以方便地顯示各種圖形,如正方形、三角形、菱形等,圖5.12所示為一個(gè)4×4正方形。通過(guò)編程,還可以實(shí)現(xiàn)圖形的動(dòng)態(tài)顯示。圖5.12用8×8LED點(diǎn)陣顯示器顯示自定義圖形第二十三頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D形數(shù)據(jù)碼8×8正方形FFH,81H,81H,81H,81H,81H,81H,FFH7×7正方形FEH,82H,82H,82H,82H,82H,FEH,00H6×6正方形FCH,84H,84H,84H,84H,FCH,00H,00H5×5正方形F8H,88H,88H,88H,F8H,00H,00H,00H4×4正方形F0H,90H,90H,F0H,00H,00H,00H,00H3×3正方形E0H,A0H,E0H,00H,00H,00H,00H,00H2×2正方形C0H,C0H,00H,00H,00H,00H,00H,00H1×1正方形80H,00H,00H,00H,00H,00H,00H,00H表5-4自定義圖形編碼【例5.4】在例5.3的基礎(chǔ)上,編程實(shí)現(xiàn)下列功能:以顯示器的左上角為原點(diǎn),依次循環(huán)顯示表5-4所定義的各種圖形。第二十四頁(yè),共八十一頁(yè),2022年,8月28日5.3.2中文字符的顯示利用LED點(diǎn)陣顯示器可以方便地實(shí)現(xiàn)中文字符的顯示,由于國(guó)標(biāo)漢字是用16×16點(diǎn)陣(256個(gè)像素)來(lái)表示的,因此需要用4塊8×8的LED點(diǎn)陣顯示器組合成16×16LED點(diǎn)陣顯示器,才可以完整地顯示一個(gè)漢字。圖5.13所示為漢字“電”的16×16字形點(diǎn)陣示意圖。值得注意的是,字形并不是唯一的,應(yīng)根據(jù)具體需要而定。第二十五頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.13“電”的16×16字形點(diǎn)陣示意圖為了使用8位的51系列單片機(jī)控制漢字的顯示,通常把一個(gè)漢字分成上、下兩個(gè)部分,如圖5.13所示。單片機(jī)從上半部左側(cè)開(kāi)始,掃描完上半部的第1列后,繼續(xù)掃描下半部的第1列;然后又從上半部的第2列開(kāi)始掃描,掃描完上半部的第2列后,繼續(xù)掃描下半部的第2列;……以此類(lèi)推,直到掃描下半部右側(cè)最后一列為止。第二十六頁(yè),共八十一頁(yè),2022年,8月28日漢字“電”的掃描代碼第二十七頁(yè),共八十一頁(yè),2022年,8月28日【例5.5】用4塊8×8的紅色LED點(diǎn)陣顯示器構(gòu)成1塊16×16的LED電子廣告屏,用來(lái)顯示圖形和漢字字符。具體要求如下:開(kāi)機(jī)以卷簾出的形式出現(xiàn)一個(gè)笑臉,然后以左跑馬的形式出現(xiàn)“零五智能電子班是最棒的!”,再以下滾屏的形式出現(xiàn)“零五智能電子是最棒的!”。最后再以卷簾入的形式出現(xiàn)另一個(gè)笑臉。接著不斷循環(huán)上面的步驟。第二十八頁(yè),共八十一頁(yè),2022年,8月28日(a)總電路圖圖5.14例5.5電路圖第二十九頁(yè),共八十一頁(yè),2022年,8月28日(b)16×16LED點(diǎn)陣顯示器內(nèi)部接線圖圖5.14例5.5電路圖第三十頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.15例5.5程序流程圖根據(jù)題目要求,主程序的流程圖如圖5.15所示。第三十一頁(yè),共八十一頁(yè),2022年,8月28日5.4液晶顯示器

5.4.1點(diǎn)陣字符型LCD的內(nèi)部結(jié)構(gòu)5.4.2點(diǎn)陣字符型LCD的指令系統(tǒng)5.4.3點(diǎn)陣字符型LCD應(yīng)用舉例液晶顯示器(LCD)由于功耗低、抗干擾能力強(qiáng)等優(yōu)點(diǎn),日漸成為各種便攜式產(chǎn)品、儀器儀表以及工控產(chǎn)品的理想顯示器。LCD種類(lèi)繁多,按顯示形式及排列形狀可分為字段型、點(diǎn)陣字符型、點(diǎn)陣圖形型。單片機(jī)應(yīng)用系統(tǒng)中主要使用后兩種。第三十二頁(yè),共八十一頁(yè),2022年,8月28日本節(jié)重點(diǎn)介紹1602點(diǎn)陣字符型LCD(ProteusISIS中的LM016L),16代表每行可顯示16個(gè)字符;02表示共有2行,即這種LCD顯示器可同時(shí)顯示32個(gè)字符,如圖5.16所示。圖5.161602點(diǎn)陣字符型LCD第三十三頁(yè),共八十一頁(yè),2022年,8月28日5.4.1點(diǎn)陣字符型LCD的內(nèi)部結(jié)構(gòu)圖5.171602點(diǎn)陣字符型LCD的內(nèi)部結(jié)構(gòu)框圖1602點(diǎn)陣字符型LCD顯示模塊(LCM)由LCD控制器、LCD驅(qū)動(dòng)器、LCD顯示裝置(液晶屏)等組成,主要用于顯示數(shù)字、字母、圖形符號(hào)及少量自定義符號(hào),內(nèi)部結(jié)構(gòu)如圖5.17所示。第三十四頁(yè),共八十一頁(yè),2022年,8月28日高4位低4位0000(CGRAM)0010001101000101011001110000(1)0@P\p0001(2)!1AQaq0010(3)”2BRbr0011(4)#3CScs0100(5)$4DTdt0101(6)%5EUeu0110(7)&6FVfv0111(8)'7GWgw表5-5字符發(fā)生器中部分常用的5×7點(diǎn)陣字符代碼第三十五頁(yè),共八十一頁(yè),2022年,8月28日1000(1)(8HXhx1001(2))9IYiy1010(3)*:JZjz1011(4)+;K[k{1100(5),<L¥l|1101(6)ˉ=M]m}1110(7)·>N^n→1111(8)/?O—o←續(xù)表5-5字符發(fā)生器中部分常用的5×7點(diǎn)陣字符代碼第三十六頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.191602點(diǎn)陣字符型LCD的顯示地址編碼第三十七頁(yè),共八十一頁(yè),2022年,8月28日5.4.2點(diǎn)陣字符型LCD的指令系統(tǒng)點(diǎn)陣字符型液晶顯示模塊是一個(gè)智能化的器件,所有的顯示功能都是由指令實(shí)現(xiàn)的。點(diǎn)陣字符型LCD的指令系統(tǒng)共有11條指令,下面分別介紹。第三十八頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D0100000000011.清屏指令編碼:01H。指令功能:用字符代碼為20H的“空格”刷新屏幕,同時(shí)將光標(biāo)移到屏幕的左上角。第三十九頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D01000000001×2.光標(biāo)返回原點(diǎn)指令編碼:02H或03H。指令功能:將光標(biāo)移到屏幕的左上角,同時(shí)清零地址計(jì)數(shù)器AC,而DDRAM的內(nèi)容不變?!啊痢北硎驹撐豢梢詾?或1(下同)。第四十頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D0100000001I/DS3.設(shè)置字符/光標(biāo)移動(dòng)模式指令編碼:04H~07H。指令功能:(1)I/D=1,表示當(dāng)讀或?qū)懲暌粋€(gè)數(shù)據(jù)操作后,地址指針AC加l,且光標(biāo)加1(光標(biāo)右移1格);I/D=0,表示當(dāng)讀或?qū)懲暌粋€(gè)數(shù)據(jù)操作后,地址指針AC減1,且光標(biāo)減1(光標(biāo)左移1格)。(2)S=1,表示當(dāng)寫(xiě)一個(gè)數(shù)據(jù)操作時(shí),整屏顯示左移(I/D=1)或右移(I/D=0),以得到光標(biāo)不移動(dòng)而屏幕移動(dòng)的效果;S=0,表示當(dāng)寫(xiě)一個(gè)數(shù)據(jù)操作時(shí),整屏顯示不移動(dòng)。第四十一頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D010000001DCB4.顯示器開(kāi)/關(guān)控制指令編碼:08H~0FH。指令功能:(1)D=0,顯示器關(guān)閉,DDRAM中的顯示數(shù)據(jù)保持不變;D=1,顯示器打開(kāi),立即顯示DDRAM中的內(nèi)容。(2)C=1,表示在顯示屏上顯示光標(biāo);C=0,表示光標(biāo)不顯示。(3)B=1,表示光標(biāo)出現(xiàn)后會(huì)閃爍;B=0,表示光標(biāo)不閃爍。第四十二頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D01000001S/CR/L××5.光標(biāo)或字符移位指令編碼:10H~1FH。指令功能:(1)S/C=1,表示顯示屏上的畫(huà)面平移1個(gè)字符位;S/C=0,表示光標(biāo)平移1個(gè)字符位。(2)R/L=1,表示右移;R/L=0,表示左移。第四十三頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D0100001DLNF××6.設(shè)置功能指令編碼:20H~3FH。指令功能:(1)DL=1,表示采用8位數(shù)據(jù)接口;DL=0,表示采用4位數(shù)據(jù)接口,使用D7~D4位,分兩次送入1個(gè)完整的字符數(shù)據(jù)。(2)N=1,表示采用雙行顯示;N=0,表示采用單行顯示。(3)F=1,表示采用5×10點(diǎn)陣字符;F=0,表示采用5×7點(diǎn)陣字符。第四十四頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D010001××××××7.設(shè)置CGRAM地址指令編碼:40H~7FH。指令功能:設(shè)定下一個(gè)要讀/寫(xiě)數(shù)據(jù)的CGRAM地址,地址由(D5~D0)給出,可設(shè)定00~3FH共64個(gè)地址。第四十五頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D01001×××××××8.設(shè)置DDRAM地址指令編碼:80H~FFH。指令功能:設(shè)定下一個(gè)要讀/寫(xiě)數(shù)據(jù)的DDRAM地址,地址由(D6~D0)給出,可設(shè)定00~7FH共128個(gè)地址。當(dāng)N=0時(shí)單行顯示(參見(jiàn)6:設(shè)置功能)。D6~D0的取值范圍為00~0FH(參見(jiàn)圖5.19);當(dāng)N=1時(shí)雙行顯示(參見(jiàn)6:設(shè)置功能),首行D6~D0的取值范圍為00H~0FH,次行D6~D0的取值范圍為40H~4FH(參見(jiàn)圖5.19)。第四十六頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D0101BF×××××××9.忙碌標(biāo)志位BF或AC的值忙碌標(biāo)志位BF用來(lái)指示LCD目前的工作情況,當(dāng)BF=1時(shí),表示正在進(jìn)行內(nèi)部數(shù)據(jù)的處理,不接收單片機(jī)送來(lái)的指令或數(shù)據(jù);當(dāng)BF=0時(shí),表示已準(zhǔn)備接收命令或數(shù)據(jù)。當(dāng)程序讀取此數(shù)據(jù)的內(nèi)容時(shí),D7表示BF,D6~D0的值表示CGRAM或DDRAM中的地址。至于是指向哪一個(gè)地址,則根據(jù)最后寫(xiě)入的地址設(shè)定指令而定。第四十七頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D0110××××××××10.寫(xiě)數(shù)到CGRAM或DDRAM先設(shè)定CGRAM或DDRAM地址,再將數(shù)據(jù)寫(xiě)入D7~D0中,以使LCD顯示出字形,也可以使用戶自定義的字符圖形存入CGRAM中。第四十八頁(yè),共八十一頁(yè),2022年,8月28日控制信號(hào)指令編碼ERSR/WD7D6D5D4D3D2D1D0111××××××××11.從CGRAM或DDRAM中讀數(shù)先設(shè)定CGRAM或DDRAM地址,再讀取其中的數(shù)據(jù)。第四十九頁(yè),共八十一頁(yè),2022年,8月28日5.4.3點(diǎn)陣字符型LCD應(yīng)用舉例液晶顯示模塊與單片機(jī)的連接方式有兩種:一種為直接訪問(wèn)方式(總線方式),另一種為間接控制方式(模擬口線方式)。直接訪問(wèn)方式是將液晶顯示模塊的接口作為存儲(chǔ)器或I/O設(shè)備直接掛在單片機(jī)總線上,單片機(jī)以訪問(wèn)存儲(chǔ)器或I/O設(shè)備的方式控制液晶顯示模塊的工作。間接控制方式是單片機(jī)通過(guò)自身的或系統(tǒng)中的并行接口與液晶顯示模塊連接,單片機(jī)通過(guò)對(duì)這些接口的操作,實(shí)現(xiàn)對(duì)液晶顯示模塊的控制。間接控制方式的特點(diǎn)是電路簡(jiǎn)單,節(jié)省單片機(jī)外圍的數(shù)字邏輯電路,控制時(shí)序由軟件產(chǎn)生,可以實(shí)現(xiàn)高速的單片機(jī)與液晶顯示模塊的接口。本節(jié)將通過(guò)實(shí)例介紹間接控制方式的使用方法。第五十頁(yè),共八十一頁(yè),2022年,8月28日【例5.6】電路如圖5.20所示,單片機(jī)采用AT89C51,振蕩器頻率fOSC為12MHz,顯示器采用16×2的字符型LCD(ProteusISIS中的LM016L)。試編寫(xiě)程序,讓顯示器顯示兩行字符串,第1行為“ZhuHaiChengShi”,共15個(gè)字符;第2行為“JiShuXueYuan”,共14個(gè)字符。第五十一頁(yè),共八十一頁(yè),2022年,8月28日?qǐng)D5.20例5.6電路圖第五十二頁(yè),共八十一頁(yè),2022年,8月28日【例5.7】電路如圖5.21所示,單片機(jī)采用AT89C51,振蕩器頻率fosc為12MHz,顯示器采用16×2的字符型LCD(ProteusISIS中的LM016L)。試編寫(xiě)程序,在LCD的左上角顯示鍵名,如按A鍵顯示字符“A”。第五十三頁(yè),共八十一頁(yè),2022年,8月28日(a)主機(jī)部分(b)按鍵、顯示部分圖5.21例5.7電路圖第五十四頁(yè),共八十一頁(yè),2022年,8月28日5.5非編碼鍵盤(pán)

5.5.1線性非編碼鍵盤(pán)

5.5.2矩陣非編碼鍵盤(pán)

鍵盤(pán)是單片機(jī)應(yīng)用系統(tǒng)中最常用的輸入設(shè)備,通過(guò)鍵盤(pán)輸入數(shù)據(jù)或命令,可以實(shí)現(xiàn)簡(jiǎn)單的人機(jī)對(duì)話。鍵盤(pán)有編碼鍵盤(pán)和非編碼鍵盤(pán)之分。目前,單片機(jī)應(yīng)用系統(tǒng)中普遍采用非編碼鍵盤(pán)。按照鍵開(kāi)關(guān)的排列形式,非編碼鍵盤(pán)又分為線性非編碼鍵盤(pán)和矩陣非編碼鍵盤(pán)兩種。第五十五頁(yè),共八十一頁(yè),2022年,8月28日5.5.1線性非編碼鍵盤(pán)線性非編碼鍵盤(pán)的鍵開(kāi)關(guān)(K1、K2、K3、K4)通常排成一行或一列,一端連接在單片機(jī)I/O口(P1)的引腳(P0.0、P0.1、P0.2、P0.3)上,同時(shí)經(jīng)上拉電阻接至+5V電源,另一端則串接在一起作為公共接地端,如圖5.22所示。線性非編碼鍵盤(pán)的工作原理是:當(dāng)無(wú)按鍵被按下時(shí),引腳P0.0、P0.1、P0.2、P0.3為高電平;當(dāng)按下某個(gè)按鍵時(shí),對(duì)應(yīng)的I/O口引腳為低電平。單片機(jī)只要讀取I/O口引腳的狀態(tài),就可以獲得按鍵信息,識(shí)別有無(wú)鍵被按下、哪個(gè)鍵被按下。第五十六頁(yè),共八十一頁(yè),2022年,8月28日在編寫(xiě)鍵盤(pán)處理程序時(shí)要考慮如何消除按鍵抖動(dòng)的問(wèn)題。具體方法是:首先讀取I/O口狀態(tài)并第1次判斷有無(wú)鍵被按下,若有鍵被按下則等待10ms,然后讀取I/O口狀態(tài)并第2次判斷有無(wú)鍵被按下,若仍然有鍵被按下則說(shuō)明某個(gè)按鍵處于穩(wěn)定的閉合狀態(tài);若第2次判斷時(shí)無(wú)鍵被按下,則認(rèn)為第1次是按鍵抖動(dòng)引起的無(wú)效閉合。圖5.22線性非編碼鍵盤(pán)的應(yīng)用(a)主機(jī)、顯示部分(b)鍵盤(pán)部分第五十七頁(yè),共八十一頁(yè),2022年,8月28日線性非編碼鍵盤(pán)的狀態(tài)掃描及鍵值處理流程圖如圖5.23所示。圖5.23線性非編碼鍵盤(pán)按鍵處理流程圖第五十八頁(yè),共八十一頁(yè),2022年,8月28日【例5.8】電路如圖5.22所示,單片機(jī)采用AT89C51,振蕩器頻率fOSC為12MHz,在P1口接有8只發(fā)光二極管D1~D8。試編寫(xiě)程序?qū)崿F(xiàn)下列要求。(1)開(kāi)機(jī)D1~D8全亮。(2)僅按下K1鍵時(shí),依次點(diǎn)亮D1~D8,時(shí)間間隔為50ms。(3)僅按下K2鍵時(shí),依次點(diǎn)亮D8~D1,時(shí)間間隔為50ms。(4)僅按下K3鍵時(shí),D8~D1閃爍,時(shí)間間隔為50ms。(5)僅按下K4鍵時(shí),熄滅D1~D8。第五十九頁(yè),共八十一頁(yè),2022年,8月28日5.5.2矩陣非編碼鍵盤(pán)矩陣非編碼鍵盤(pán)的鍵開(kāi)關(guān)處于行線與列線的交叉點(diǎn)上,每個(gè)鍵開(kāi)關(guān)的一端與行線相連,另一端與列線相連。圖5.24所示是一個(gè)4×3的矩陣非編碼鍵盤(pán)。圖5.24矩陣非編碼鍵盤(pán)第六十頁(yè),共八十一頁(yè),2022年,8月28日矩陣非編碼鍵盤(pán)鍵代碼的確定通常采用逐行掃描法,其處理流程如圖5.25所示。圖5.25矩陣非編碼鍵盤(pán)按鍵處理流程第六十一頁(yè),共八十一頁(yè),2022年,8月28日【例5.9】基于圖5.26所示的硬件電路,試編寫(xiě)程序,用7段數(shù)碼管顯示矩陣非編碼鍵盤(pán)的鍵名。例如,按1鍵則顯示“1”。圖5.26所示是4×4矩陣非編碼鍵盤(pán)與單片機(jī)的典型連接方式。4根行線分別與單片機(jī)P1口的P1.0~P1.3引腳相連,稱(chēng)為行掃描口;4根列線分別與單片機(jī)P1口的P1.4~P1.7引腳相連,稱(chēng)為列檢測(cè)口。16個(gè)按鍵的鍵名分別為0~9、A~F。第六十二頁(yè),共八十一頁(yè),2022年,8月28日(a)主機(jī)、顯示部分(b)鍵盤(pán)部分圖5.26矩陣非編碼鍵盤(pán)的應(yīng)用第六十三頁(yè),共八十一頁(yè),2022年,8月28日根據(jù)矩陣非編碼鍵盤(pán)逐行掃描法處理流程,鍵盤(pán)掃描程序應(yīng)包括以下內(nèi)容:(1)查詢(xún)是否有鍵被按下首先單片機(jī)向行掃描口輸出掃描碼F0H,然后從列檢測(cè)口讀取列檢測(cè)信號(hào),只要有一列信號(hào)不為“1”,即P1口的值不等于F0H,則表示有鍵被按下;否則表示無(wú)鍵被按下。(2)查詢(xún)閉合鍵所在的行列位置若有鍵被按下,單片機(jī)將得到的列檢測(cè)信號(hào)取反,列檢測(cè)口中為1的位便是閉合鍵所在的列。第六十四頁(yè),共八十一頁(yè),2022年,8月28日列號(hào)確定后,還需要進(jìn)行逐行掃描以確定行號(hào)。單片機(jī)首先向行掃描口輸出第1行的掃描碼FEH,接著讀列檢測(cè)口,若列檢測(cè)信號(hào)全為“1”,則表示閉合鍵不在第1行。接著向行掃描口輸出第2行的掃描碼FDH,再讀列檢測(cè)口,……。以此類(lèi)推,直到找到閉合鍵所在的行,并將該行的掃描碼取反保存。如果掃描完所有的行后仍沒(méi)有找到閉合鍵,則結(jié)束行掃描,判定本次按鍵是誤動(dòng)作。第六十五頁(yè),共八十一頁(yè),2022年,8月28日(3)對(duì)得到的行號(hào)和列號(hào)進(jìn)行譯碼,確定鍵值根據(jù)圖5.26所示的硬件電路,1、2、3、4行的掃描碼分別為0xfe、0xfd、0xfb、0xf7;1、2、3、4列的列檢測(cè)數(shù)據(jù)分別為0xe0、0xd0、0xb0、0x70。設(shè)行掃描碼為HSM,列檢測(cè)數(shù)據(jù)為L(zhǎng)JC,鍵值為KEY,則有例如,“0”鍵處在第1行第1列,其HSM=0xfe,LJC=0xe0,代入上式,可得“0”鍵的鍵值為第六十六頁(yè),共八十一頁(yè),2022年,8月28日鍵名鍵值鍵名鍵值00x1180x1410x2190x2420x41A0x4430x81B0x8440x12C0x1850x22D0x2860x42E0x4870x82F0x88表5-64×4矩陣非編碼鍵盤(pán)的鍵值根據(jù)上述算法,可計(jì)算出所有按鍵的鍵值,見(jiàn)表5-6。第六十七頁(yè),共八十一頁(yè),2022年,8月28日(4)按鍵防抖動(dòng)處理當(dāng)用手按下一個(gè)按鍵時(shí),一般都會(huì)產(chǎn)生抖動(dòng),即所按下的鍵會(huì)在閉合位置與斷開(kāi)位置之間跳動(dòng)幾下才能達(dá)到穩(wěn)定狀態(tài)。抖動(dòng)持續(xù)的時(shí)間長(zhǎng)短不一,通常小于10ms。若抖動(dòng)問(wèn)題不解決,就會(huì)導(dǎo)致對(duì)閉合鍵的多次讀入。解決的方法是:在發(fā)現(xiàn)有鍵按下后,延時(shí)10ms再進(jìn)行逐行掃描。因?yàn)殒I被按下時(shí)的閉合時(shí)間遠(yuǎn)遠(yuǎn)大于10ms,所以延時(shí)后再掃描也不遲。第六十八頁(yè),共八十一頁(yè),2022年,8月28日5.6本章小結(jié)1.51系列單片機(jī)有4個(gè)8位的雙向并行輸入/輸出(I/O)端口,稱(chēng)為P0口、P1口、P2口和P3口。各個(gè)端口既可以按字節(jié)輸入、輸出,又可以按位進(jìn)行輸入、輸出。利用這4個(gè)I/O端口可以方便地實(shí)現(xiàn)單片機(jī)與外部數(shù)字設(shè)備或芯片的信息交換。2.LED數(shù)碼管顯示器按用途可分為通用7段LED數(shù)碼管顯示器和專(zhuān)用LED數(shù)碼管顯示器。通用7段LED數(shù)碼管顯示器按內(nèi)部結(jié)構(gòu)劃分,數(shù)碼管又分為共陰極和共陽(yáng)極兩種。數(shù)碼管的控制方式分為靜態(tài)和動(dòng)態(tài)兩種。第六十九頁(yè),共八十一頁(yè),2022年,8月28日3.LED數(shù)碼管點(diǎn)陣顯示器是由LED按矩陣方式排列而成的,按照尺寸大小,LED點(diǎn)陣顯示器有5×7、5×8、6×8、8×8等多種規(guī)格;按照LED發(fā)光顏色的變化情況,LED點(diǎn)陣顯示器分為單色、雙色、三色;按照LED的連接方式,LED點(diǎn)陣顯示器又有共陰極、共陽(yáng)極之分。4.液晶顯示器由于功耗低、抗干擾能力強(qiáng)等優(yōu)點(diǎn),日漸成為各種便攜式產(chǎn)品、儀器儀表以及工控產(chǎn)品的理想顯示器。LCD種類(lèi)繁多,按顯示形式及排列形狀可分為字段型、點(diǎn)陣字符型、點(diǎn)陣圖形型。單片機(jī)應(yīng)用系統(tǒng)中主要使用后兩種。第七十頁(yè),共八十一頁(yè),2022年,8月28日5.液晶顯示模塊與單片機(jī)的連接方式有兩種:一種為直接訪問(wèn)方式,另一種為間接控制方式。6.鍵盤(pán)是單片機(jī)應(yīng)用系統(tǒng)中最常用的輸入設(shè)備,通過(guò)鍵盤(pán)輸入數(shù)據(jù)或命令,可以實(shí)現(xiàn)簡(jiǎn)單的人機(jī)對(duì)話。鍵盤(pán)有編碼鍵盤(pán)和非編碼鍵盤(pán)之分。編碼鍵盤(pán)除了鍵開(kāi)關(guān)外,還需去鍵抖動(dòng)電路、防串鍵保護(hù)電路以及專(zhuān)門(mén)的、用于識(shí)別閉合鍵并產(chǎn)生鍵代碼的集成電路(如8255、8279等)。編

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論