![單片機人機交互系統(tǒng)的語言編程_第1頁](http://file4.renrendoc.com/view/7489b607ceaeb3db1faff94d9b0d0d28/7489b607ceaeb3db1faff94d9b0d0d281.gif)
![單片機人機交互系統(tǒng)的語言編程_第2頁](http://file4.renrendoc.com/view/7489b607ceaeb3db1faff94d9b0d0d28/7489b607ceaeb3db1faff94d9b0d0d282.gif)
![單片機人機交互系統(tǒng)的語言編程_第3頁](http://file4.renrendoc.com/view/7489b607ceaeb3db1faff94d9b0d0d28/7489b607ceaeb3db1faff94d9b0d0d283.gif)
![單片機人機交互系統(tǒng)的語言編程_第4頁](http://file4.renrendoc.com/view/7489b607ceaeb3db1faff94d9b0d0d28/7489b607ceaeb3db1faff94d9b0d0d284.gif)
![單片機人機交互系統(tǒng)的語言編程_第5頁](http://file4.renrendoc.com/view/7489b607ceaeb3db1faff94d9b0d0d28/7489b607ceaeb3db1faff94d9b0d0d285.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、單片機人機交互系統(tǒng)的語言編程第1頁,共81頁,2022年,5月20日,2點33分,星期二教學提示 在單片機應用系統(tǒng)中,經常會涉及顯示器、鍵盤等人機交互設備。如何將它們與單片機的輸入/輸出端口相連并編程實現(xiàn)特定的功能是單片機應用開發(fā)人員必須掌握的基本技術。常用的顯示器有LED數(shù)碼管顯示器、LED點陣顯示器、LCD顯示器;常用的鍵盤有非編碼鍵盤、編碼鍵盤。本章將重點介紹上述元器件與單片機的連接方式以及C51語言的編程方法。第2頁,共81頁,2022年,5月20日,2點33分,星期二教學要求 了解單片機輸入/輸出端口的特點及使用注意事項;熟練掌握LED數(shù)碼管顯示器的使用方法;掌握LED點陣顯示器、L
2、CD顯示器的使用方法;熟練掌握非編碼鍵盤的使用方法;掌握外部擴展存儲器的使用方法。第3頁,共81頁,2022年,5月20日,2點33分,星期二5.1 單片機的輸入/輸出端口1. P0口2. P1口3. P2口4. P3口 51系列單片機有4個8位的雙向并行輸入/輸出(I/O)端口,稱為P0口、P1口、P2口和P3口。各個端口既可以按字節(jié)輸入、輸出,也可以按位進行輸入、輸出。利用這4個I/O端口可以方便地實現(xiàn)單片機與外部數(shù)字設備或芯片的信息交換。下面簡要介紹單片機輸入/輸出端口的特點及使用注意事項。第4頁,共81頁,2022年,5月20日,2點33分,星期二5.2 LED數(shù)碼管顯示器 5.2.1
3、 LED數(shù)碼管顯示器簡介 5.2.2 靜態(tài)顯示編碼 5.2.3 動態(tài)顯示編碼靜態(tài)顯示編程 第5頁,共81頁,2022年,5月20日,2點33分,星期二5.2.1 LED數(shù)碼管顯示器簡介圖5.1 通用7段LED數(shù)碼管 圖5.2 專用LED數(shù)碼管 LED顯示器按用途可分為通用7段LED顯示器和專用LED顯示器,分別如圖5.1和圖5.2所示。本節(jié)重點介紹通用7段LED顯示器(以下簡稱為數(shù)碼管)。 第6頁,共81頁,2022年,5月20日,2點33分,星期二圖5.3 共陰極數(shù)碼管 圖5.4 共陽極數(shù)碼管 數(shù)碼管由8個LED(a、b、c、d、e、f、g、h)構成,按結構分為共陰極和共陽極兩種,如圖5.3
4、和5.4所示。 要使LED數(shù)碼管顯示出相應的數(shù)字或字符,必須向其數(shù)據(jù)口輸入相應的字形編碼。LED數(shù)碼管的常用字形編碼見表5-2。第7頁,共81頁,2022年,5月20日,2點33分,星期二表5-2 LED數(shù)碼管的常用字型編碼表 第8頁,共81頁,2022年,5月20日,2點33分,星期二續(xù)表5-2第9頁,共81頁,2022年,5月20日,2點33分,星期二 LED數(shù)碼管顯示器的外型結構如圖5.5所示。 LED數(shù)碼管有靜態(tài)顯示和動態(tài)顯示兩種方式,在具體使用時,要求LED驅動電路能提供額定的LED導通電流,還要根據(jù)外接電源及額定LED導通電流來確定相應的限流電阻。圖5.5 數(shù)碼管的外型結構 第10
5、頁,共81頁,2022年,5月20日,2點33分,星期二5.2.2 靜態(tài)顯示編程 靜態(tài)顯示是指數(shù)碼管顯示某一字符時,相應的LED恒定導通或恒定截止。靜態(tài)顯示時,各位數(shù)碼管是相互獨立的,每個數(shù)碼管的8個LED分別與一個8位I/O口地址相連,只要I/O口有字型碼輸出,相應字符即顯示出來,并保持不變,直到I/O口輸出新的字型碼。 采用靜態(tài)顯示方式,較小的電流即可獲得較高的亮度,且占用CPU時間少,編程簡單,顯示便于監(jiān)測和控制,但其占用的口線多,硬件電路復雜,成本高,只適合于顯示位數(shù)較少的場合。第11頁,共81頁,2022年,5月20日,2點33分,星期二【例5.1】 電路如圖5.6所示,單片機采用A
6、T89C51,振蕩器頻率fOSC為12MHz,數(shù)碼管LED1、LED2采用7SEG-COM-CAT-GRN(共陰極,綠色),兩位數(shù)碼管分別連接在AT89C51的P0口、P1口,按鍵K1接在引腳P2.3上,RP1為排阻。試編程實現(xiàn)下列功能。(1) 開機顯示00。(2) 按一次K1鍵,數(shù)字加1。(3) 當計數(shù)到99時,再按一次K1鍵,又從00開始計數(shù)。第12頁,共81頁,2022年,5月20日,2點33分,星期二圖5.6 例5.1電路圖 第13頁,共81頁,2022年,5月20日,2點33分,星期二5.2.3 動態(tài)顯示編程 動態(tài)顯示是逐位地輪流點亮各位數(shù)碼管,這種逐位點亮顯示器的方式稱為位掃描。通
7、常,各位數(shù)碼管的相應LED選線并聯(lián)在一起,由一個8位的I/O口控制;各位的位選線(公共陰極或陽極)由另外的I/O口線控制。 動態(tài)方式顯示時,各數(shù)碼管分時輪流選通,要使其穩(wěn)定顯示必須采用掃描方式,即在某一時刻只選通一位數(shù)碼管,并送出相應的字型碼,在另一時刻選通另一位數(shù)碼管,并送出相應的字型碼,依此規(guī)律循環(huán),即可使各位數(shù)碼管顯示將要顯示的字符,雖然這些字符是在不同的時刻分別顯示,但由于人眼存在視覺暫留效應,只要每位顯示間隔足夠短就可以給人同時顯示的感覺。第14頁,共81頁,2022年,5月20日,2點33分,星期二 采用動態(tài)顯示方式比較節(jié)省I/O口,硬件電路也較靜態(tài)顯示方式簡單,但其亮度不如靜態(tài)顯
8、示方式,而且在顯示位數(shù)較多時,CPU要依次掃描,占用CPU較多的時間。【例5.2】 電路如圖5.7所示,單片機采用AT89C51,振蕩器頻率fosc為12MHz,數(shù)碼管LED1、LED2采用7SEG-COM-CAT-GRN(共陰極,綠色),兩位數(shù)碼管分別連接在AT89C51的P0口、P1口,按鍵K1接在引腳P2.3上,RP1為排阻。試編程實現(xiàn)下列功能。(1) 開機顯示00。(2) 按一次K1鍵,數(shù)字加1。(3) 當計數(shù)到99時,再按一次K1鍵,又從00開始計數(shù)。第15頁,共81頁,2022年,5月20日,2點33分,星期二圖5.7 例5.2電路圖 第16頁,共81頁,2022年,5月20日,2
9、點33分,星期二5.3 LED數(shù)碼管點陣顯示器 5.3.1 字母、數(shù)字及圖形的顯示 5.3.2 中文字符的顯示 LED數(shù)碼管點陣顯示器是由LED按矩陣方式排列而成的,按照尺寸大小,LED點陣顯示器有57、58、68、88等多種規(guī)格;按照LED發(fā)光顏色的變化情況,LED點陣顯示器分為單色、雙色、三色;按照LED的連接方式,LED點陣顯示器又有共陰極、共陽極之分。第17頁,共81頁,2022年,5月20日,2點33分,星期二 在使用時,只要點亮相應的LED,LED點陣顯示器即可按要求顯示英文字母、阿拉伯數(shù)字、圖形以及中文字符等。LED點陣顯示器廣泛地應用于股票顯示板、活動信息公告板、活動字幕廣告板
10、等場合。 Proteus ISIS中只提供了單色的57、88兩種LED點陣顯示器,如圖5.8所示。(a) 57LED點陣顯示器 (b) 88LED點陣顯示器圖5.8 LED點陣顯示器第18頁,共81頁,2022年,5月20日,2點33分,星期二5.3.1 字母、數(shù)字及圖形的顯示 單個的西文字母或阿拉伯數(shù)字通常采用57點陣顯示,圖5.9所示為字母“A”的57 字形點陣示意圖。值得注意的是,字形并不是唯一的,應根據(jù)具體需要而定。圖5.9 字母A的57 字形點陣示意圖 第19頁,共81頁,2022年,5月20日,2點33分,星期二5.3.1 字母、數(shù)字及圖形的顯示【例5.3】 電路如圖5.11所示,
11、單片機采用AT89C51,振蕩器頻率fOSC為12MHz,LED-DOT為88共陽極LED點陣顯示器(MATRIX-88-GREEN)。試編程實現(xiàn)下列功能:循環(huán)顯示字符0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。 電路中采用帶輸出鎖存器的8位串入并出移位寄存器74HC595作為列驅動器,目的是為了解決列掃描過程中列數(shù)據(jù)準備與列數(shù)據(jù)顯示之間的矛盾問題。圖5.10 74HC595原理圖第20頁,共81頁,2022年,5月20日,2點33分,星期二圖5.11 例5.3電路圖 第21頁,共81頁,2022年,5月20日,2點33分,星期二字符數(shù) 據(jù) 碼字符數(shù) 據(jù) 碼03EH, 41
12、H, 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,
13、 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, 48
14、H, 00H, 00H, 00H表5-3 字符09、AF的57數(shù)據(jù)碼 假設所有字符均以57點陣在顯示器的左下角顯示,則各字符的數(shù)據(jù)編碼見表5-3。第22頁,共81頁,2022年,5月20日,2點33分,星期二 利用LED點陣顯示器,可以方便地顯示各種圖形,如正方形、三角形、菱形等,圖5.12所示為一個44正方形。通過編程,還可以實現(xiàn)圖形的動態(tài)顯示。圖5.12 用88 LED點陣顯示器顯示自定義圖形 第23頁,共81頁,2022年,5月20日,2點33分,星期二圖 形數(shù) 據(jù) 碼88正方形FFH, 81H, 81H, 81H, 81H, 81H, 81H, FFH77正方形FEH, 82H, 82
15、H, 82H, 82H, 82H, FEH, 00H66正方形FCH, 84H, 84H, 84H, 84H, FCH, 00H, 00H55正方形F8H, 88H, 88H, 88H, F8H, 00H, 00H, 00H44正方形F0H, 90H, 90H, F0H, 00H, 00H, 00H, 00H33正方形E0H, A0H, E0H, 00H, 00H, 00H, 00H, 00H22正方形C0H, C0H, 00H, 00H, 00H, 00H, 00H, 00H11正方形80H, 00H, 00H, 00H, 00H, 00H, 00H, 00H表5-4 自定義圖形編碼 【例5
16、.4】 在例5.3的基礎上,編程實現(xiàn)下列功能:以顯示器的左上角為原點,依次循環(huán)顯示表5-4所定義的各種圖形。第24頁,共81頁,2022年,5月20日,2點33分,星期二5.3.2 中文字符的顯示 利用LED點陣顯示器可以方便地實現(xiàn)中文字符的顯示,由于國標漢字是用1616點陣(256個像素)來表示的,因此需要用4塊88的LED點陣顯示器組合成1616 LED點陣顯示器,才可以完整地顯示一個漢字。圖5.13所示為漢字“電”的1616 字形點陣示意圖。 值得注意的是,字形并不是唯一的,應根據(jù)具體需要而定。第25頁,共81頁,2022年,5月20日,2點33分,星期二圖5.13 “電”的1616 字
17、形點陣示意圖 為了使用8位的51系列單片機控制漢字的顯示,通常把一個漢字分成上、下兩個部分,如圖5.13所示。 單片機從上半部左側開始,掃描完上半部的第1列后,繼續(xù)掃描下半部的第1列;然后又從上半部的第2列開始掃描,掃描完上半部的第2列后,繼續(xù)掃描下半部的第2列;以此類推,直到掃描下半部右側最后一列為止。第26頁,共81頁,2022年,5月20日,2點33分,星期二漢字“電”的掃描代碼第27頁,共81頁,2022年,5月20日,2點33分,星期二【例5.5】 用4塊88的紅色LED點陣顯示器構成1塊1616的LED電子廣告屏,用來顯示圖形和漢字字符。具體要求如下: 開機以卷簾出的形式出現(xiàn)一個笑
18、臉,然后以左跑馬的形式出現(xiàn)“零五智能電子班是最棒的!”,再以下滾屏的形式出現(xiàn)“零五智能電子是最棒的!”。最后再以卷簾入的形式出現(xiàn)另一個笑臉。接著不斷循環(huán)上面的步驟。第28頁,共81頁,2022年,5月20日,2點33分,星期二(a) 總電路圖圖5.14 例5.5電路圖 第29頁,共81頁,2022年,5月20日,2點33分,星期二(b) 1616 LED點陣顯示器內部接線圖 圖5.14 例5.5電路圖 第30頁,共81頁,2022年,5月20日,2點33分,星期二圖5.15 例5.5程序流程圖 根據(jù)題目要求,主程序的流程圖如圖5.15所示。第31頁,共81頁,2022年,5月20日,2點33分
19、,星期二5.4 液晶顯示器 5.4.1 點陣字符型LCD的內部結構 5.4.2 點陣字符型LCD的指令系統(tǒng) 5.4.3 點陣字符型LCD應用舉例 液晶顯示器(LCD)由于功耗低、抗干擾能力強等優(yōu)點,日漸成為各種便攜式產品、儀器儀表以及工控產品的理想顯示器。LCD種類繁多,按顯示形式及排列形狀可分為字段型、點陣字符型、點陣圖形型。單片機應用系統(tǒng)中主要使用后兩種。第32頁,共81頁,2022年,5月20日,2點33分,星期二 本節(jié)重點介紹1602點陣字符型LCD(Proteus ISIS中的LM016L),16代表每行可顯示16個字符; 02表示共有2行,即這種LCD顯示器可同時顯示32個字符,如
20、圖5.16所示。圖5.16 1602點陣字符型LCD 第33頁,共81頁,2022年,5月20日,2點33分,星期二5.4.1 點陣字符型LCD的內部結構圖5.17 1602點陣字符型LCD的內部結構框圖 1602點陣字符型LCD顯示模塊(LCM) 由LCD控制器、LCD 驅動器、LCD顯示裝 置(液晶屏)等組成, 主要用于顯示數(shù)字、 字母、圖形符號及少 量自定義符號,內部 結構如圖5.17所示。第34頁,共81頁,2022年,5月20日,2點33分,星期二 高4位低4位0000(CGRAM)0010001101000101011001110000(1)0Pp0001(2)!1AQaq0010
21、(3)”2BRbr0011(4)#3CScs0100(5)4DTdt0101(6)%5EUeu0110(7)&6FVfv0111(8)7GWgw表5-5 字符發(fā)生器中部分常用的57點陣字符代碼 第35頁,共81頁,2022年,5月20日,2點33分,星期二1000(1)(8HXhx1001(2)9IYiy1010(3)*:JZjz1011(4)+;Kk1100(5),Nn1111(8)/?Oo續(xù)表5-5 字符發(fā)生器中部分常用的57點陣字符代碼 第36頁,共81頁,2022年,5月20日,2點33分,星期二圖5.19 1602點陣字符型LCD的顯示地址編碼 第37頁,共81頁,2022年,5月2
22、0日,2點33分,星期二5.4.2 點陣字符型LCD的指令系統(tǒng) 點陣字符型液晶顯示模塊是一個智能化的器件,所有的顯示功能都是由指令實現(xiàn)的。點陣字符型LCD的指令系統(tǒng)共有11條指令,下面分別介紹。第38頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D0100000000011. 清屏指令編碼:01H。指令功能:用字符代碼為20H的“空格”刷新屏幕,同時將光標移到屏幕的左上角。第39頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D010000000012. 光標返回原
23、點指令編碼:02H或03H。指令功能:將光標移到屏幕的左上角,同時清零地址計數(shù)器AC,而DDRAM的內容不變?!啊北硎驹撐豢梢詾?或1(下同)。第40頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D0100000001I/DS3. 設置字符/光標移動模式指令編碼:04H07H。指令功能:(1) I/D=1,表示當讀或寫完一個數(shù)據(jù)操作后,地址指針AC加l,且光標加1(光標右移1格);I/D=0,表示當讀或寫完一個數(shù)據(jù)操作后,地址指針AC減1,且光標減1(光標左移1格)。(2) S=1,表示當寫一個數(shù)據(jù)操作時,整屏顯示左移(I/D=
24、1)或右移(I/D=0),以得到光標不移動而屏幕移動的效果;S=0,表示當寫一個數(shù)據(jù)操作時,整屏顯示不移動。第41頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D010000001DCB4. 顯示器開/關控制指令編碼:08H0FH。指令功能:(1) D=0,顯示器關閉,DDRAM中的顯示數(shù)據(jù)保持不變;D=1,顯示器打開,立即顯示DDRAM中的內容。(2) C=1,表示在顯示屏上顯示光標;C=0,表示光標不顯示。(3) B=1,表示光標出現(xiàn)后會閃爍;B=0,表示光標不閃爍。第42頁,共81頁,2022年,5月20日,2點33分,星
25、期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D01000001S/CR/L5. 光標或字符移位指令編碼:10H1FH。指令功能:(1) S/C=1,表示顯示屏上的畫面平移1個字符位;S/C=0,表示光標平移1個字符位。(2) R/L=1,表示右移;R/L=0,表示左移。第43頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D0100001DLNF6. 設置功能指令編碼:20H3FH。指令功能:(1) DL=1,表示采用8位數(shù)據(jù)接口;DL=0,表示采用4位數(shù)據(jù)接口,使用D7D4位,分兩次送入1個完整的字符數(shù)據(jù)。(2)
26、 N=1,表示采用雙行顯示;N=0,表示采用單行顯示。(3) F=1,表示采用510點陣字符;F=0,表示采用57點陣字符。第44頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D0100017. 設置CGRAM地址指令編碼:40H7FH。指令功能:設定下一個要讀/寫數(shù)據(jù)的CGRAM地址,地址由(D5D0)給出,可設定003FH共64個地址。第45頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D010018. 設置DDRAM地址指令編碼:80HFFH。指令功能:設定
27、下一個要讀/寫數(shù)據(jù)的DDRAM地址,地址由(D6D0)給出,可設定007FH共128個地址。當N=0時單行顯示(參見6:設置功能)。D6D0的取值范圍為000FH(參見圖5.19);當N=1時雙行顯示(參見6:設置功能),首行D6D0的取值范圍為00H0FH,次行D6D0的取值范圍為40H4FH(參見圖5.19)。第46頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D0101BF9. 忙碌標志位BF或AC的值 忙碌標志位BF用來指示LCD目前的工作情況,當BF=1時,表示正在進行內部數(shù)據(jù)的處理,不接收單片機送來的指令或數(shù)據(jù);當B
28、F=0時,表示已準備接收命令或數(shù)據(jù)。 當程序讀取此數(shù)據(jù)的內容時,D7表示BF,D6D0的值表示CGRAM或DDRAM中的地址。至于是指向哪一個地址,則根據(jù)最后寫入的地址設定指令而定。第47頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D011010. 寫數(shù)到CGRAM或DDRAM 先設定CGRAM或DDRAM地址,再將數(shù)據(jù)寫入D7 D0中,以使LCD顯示出字形,也可以使用戶自定義的字符圖形存入CGRAM中。第48頁,共81頁,2022年,5月20日,2點33分,星期二控制信號指令編碼ERSR/WD7D6D5D4D3D2D1D01
29、1111. 從CGRAM或DDRAM中讀數(shù) 先設定CGRAM或DDRAM地址,再讀取其中的數(shù)據(jù)。 第49頁,共81頁,2022年,5月20日,2點33分,星期二5.4.3 點陣字符型LCD應用舉例 液晶顯示模塊與單片機的連接方式有兩種:一種為直接訪問方式(總線方式),另一種為間接控制方式(模擬口線方式)。直接訪問方式是將液晶顯示模塊的接口作為存儲器或I/O設備直接掛在單片機總線上,單片機以訪問存儲器或I/O設備的方式控制液晶顯示模塊的工作。間接控制方式是單片機通過自身的或系統(tǒng)中的并行接口與液晶顯示模塊連接,單片機通過對這些接口的操作,實現(xiàn)對液晶顯示模塊的控制。間接控制方式的特點是電路簡單,節(jié)省
30、單片機外圍的數(shù)字邏輯電路,控制時序由軟件產生,可以實現(xiàn)高速的單片機與液晶顯示模塊的接口。本節(jié)將通過實例介紹間接控制方式的使用方法。第50頁,共81頁,2022年,5月20日,2點33分,星期二【例5.6】 電路如圖5.20所示,單片機采用AT89C51,振蕩器頻率fOSC為12MHz,顯示器采用162的字符型LCD (Proteus ISIS中的LM016L)。試編寫程序,讓顯示器顯示兩行字符串,第1行為“ZhuHai ChengShi”,共15個字符;第2行為“JiShu XueYuan”,共14個字符。第51頁,共81頁,2022年,5月20日,2點33分,星期二圖5.20 例5.6電路圖
31、 第52頁,共81頁,2022年,5月20日,2點33分,星期二【例5.7】 電路如圖5.21所示,單片機采用AT89C51,振蕩器頻率fosc為12MHz,顯示器采用162的字符型LCD (Proteus ISIS中的LM016L)。 試編寫程序,在LCD的左上角顯示鍵名,如按A鍵顯示字符“A”。第53頁,共81頁,2022年,5月20日,2點33分,星期二(a) 主機部分 (b) 按鍵、顯示部分 圖5.21 例5.7電路圖 第54頁,共81頁,2022年,5月20日,2點33分,星期二5.5 非編碼鍵盤 5.5.1 線性非編碼鍵盤 5.5.2 矩陣非編碼鍵盤 鍵盤是單片機應用系統(tǒng)中最常用的
32、輸入設備,通過鍵盤輸入數(shù)據(jù)或命令,可以實現(xiàn)簡單的人機對話。 鍵盤有編碼鍵盤和非編碼鍵盤之分。 目前,單片機應用系統(tǒng)中普遍采用非編碼鍵盤。按照鍵開關的排列形式,非編碼鍵盤又分為線性非編碼鍵盤和矩陣非編碼鍵盤兩種。第55頁,共81頁,2022年,5月20日,2點33分,星期二5.5.1 線性非編碼鍵盤 線性非編碼鍵盤的鍵開關(K1、K2、K3、K4)通常排成一行或一列,一端連接在單片機I/O口(P1)的引腳(P0.0、P0.1、P0.2、P0.3)上,同時經上拉電阻接至+5V電源,另一端則串接在一起作為公共接地端,如圖5.22所示。 線性非編碼鍵盤的工作原理是:當無按鍵被按下時,引腳P0.0、P0
33、.1、P0.2、P0.3為高電平;當按下某個按鍵時,對應的I/O口引腳為低電平。單片機只要讀取I/O口引腳的狀態(tài),就可以獲得按鍵信息,識別有無鍵被按下、哪個鍵被按下。第56頁,共81頁,2022年,5月20日,2點33分,星期二 在編寫鍵盤處理程序時要考慮如何消除按鍵抖動的問題。具體方法是:首先讀取I/O口狀態(tài)并第1次判斷有無鍵被按下,若有鍵被按下則等待10ms,然后讀取I/O口狀態(tài)并第2次判斷有無鍵被按下,若仍然有鍵被按下則說明某個按鍵處于穩(wěn)定的閉合狀態(tài);若第2次判斷時無鍵被按下,則認為第1次是按鍵抖動引起的無效閉合。圖5.22 線性非編碼鍵盤的應用 (a) 主機、顯示部分 (b) 鍵盤部分
34、 第57頁,共81頁,2022年,5月20日,2點33分,星期二 線性非編碼鍵盤的狀態(tài)掃描及鍵值處理流程圖如圖5.23所示。圖5.23 線性非編碼鍵盤按鍵處理流程圖 第58頁,共81頁,2022年,5月20日,2點33分,星期二【例5.8】 電路如圖5.22所示,單片機采用AT89C51,振蕩器頻率fOSC為12MHz,在P1口接有8只發(fā)光二極管D1D8。試編寫程序實現(xiàn)下列要求。(1) 開機D1D8全亮。(2) 僅按下K1鍵時,依次點亮D1D8,時間間隔為50ms。(3) 僅按下K2鍵時,依次點亮D8D1,時間間隔為50ms。(4) 僅按下K3鍵時,D8D1閃爍,時間間隔為50ms。(5) 僅
35、按下K4鍵時,熄滅D1D8。第59頁,共81頁,2022年,5月20日,2點33分,星期二5.5.2 矩陣非編碼鍵盤 矩陣非編碼鍵盤的鍵開關處于行線與列線的交叉點上,每個鍵開關的一端與行線相連,另一端與列線相連。圖5.24所示是一個43的矩陣非編碼鍵盤。圖5.24 矩陣非編碼鍵盤 第60頁,共81頁,2022年,5月20日,2點33分,星期二 矩陣非編碼鍵盤鍵代碼的確定通常采用逐行掃描法,其處理流程如圖5.25所示。圖5.25 矩陣非編碼鍵盤按鍵處理流程 第61頁,共81頁,2022年,5月20日,2點33分,星期二【例5.9】 基于圖5.26所示的硬件電路,試編寫程序,用7段數(shù)碼管顯示矩陣非
36、編碼鍵盤的鍵名。例如,按1鍵則顯示“1”。 圖5.26所示是44矩陣非編碼鍵盤與單片機的典型連接方式。4根行線分別與單片機P1口的P1.0P1.3引腳相連,稱為行掃描口;4根列線分別與單片機P1口的P1.4 P1.7引腳相連,稱為列檢測口。16個按鍵的鍵名分別為0 9、AF。第62頁,共81頁,2022年,5月20日,2點33分,星期二(a) 主機、顯示部分 (b) 鍵盤部分 圖5.26 矩陣非編碼鍵盤的應用 第63頁,共81頁,2022年,5月20日,2點33分,星期二 根據(jù)矩陣非編碼鍵盤逐行掃描法處理流程,鍵盤掃描程序應包括以下內容:(1) 查詢是否有鍵被按下 首先單片機向行掃描口輸出掃描
37、碼F0H,然后從列檢測口讀取列檢測信號,只要有一列信號不為“1”,即P1口的值不等于F0H,則表示有鍵被按下;否則表示無鍵被按下。(2) 查詢閉合鍵所在的行列位置 若有鍵被按下,單片機將得到的列檢測信號取反,列檢測口中為1的位便是閉合鍵所在的列。第64頁,共81頁,2022年,5月20日,2點33分,星期二 列號確定后,還需要進行逐行掃描以確定行號。單片機首先向行掃描口輸出第1行的掃描碼FEH,接著讀列檢測口,若列檢測信號全為“1”,則表示閉合鍵不在第1行。接著向行掃描口輸出第2行的掃描碼FDH,再讀列檢測口,。以此類推,直到找到閉合鍵所在的行,并將該行的掃描碼取反保存。如果掃描完所有的行后仍
38、沒有找到閉合鍵,則結束行掃描,判定本次按鍵是誤動作。第65頁,共81頁,2022年,5月20日,2點33分,星期二(3) 對得到的行號和列號進行譯碼,確定鍵值 根據(jù)圖5.26所示的硬件電路,1、2、3、4行的掃描碼分別為0 xfe、0 xfd、0 xfb、0 xf7;1、2、3、4列的列檢測數(shù)據(jù)分別為0 xe0、0 xd0、0 xb0、0 x70。設行掃描碼為HSM,列檢測數(shù)據(jù)為LJC,鍵值為KEY,則有 例如,“0”鍵處在第1行第1列,其HSM = 0 xfe,LJC = 0 xe0,代入上式,可得“0”鍵的鍵值為第66頁,共81頁,2022年,5月20日,2點33分,星期二鍵 名鍵 值鍵
39、名鍵 值00 x1180 x1410 x2190 x2420 x41A0 x4430 x81B0 x8440 x12C0 x1850 x22D0 x2860 x42E0 x4870 x82F0 x88表5-6 44矩陣非編碼鍵盤的鍵值 根據(jù)上述算法,可計算出所有按鍵的鍵值,見表5-6。第67頁,共81頁,2022年,5月20日,2點33分,星期二(4) 按鍵防抖動處理 當用手按下一個按鍵時,一般都會產生抖動,即所按下的鍵會在閉合位置與斷開位置之間跳動幾下才能達到穩(wěn)定狀態(tài)。抖動持續(xù)的時間長短不一,通常小于10ms。若抖動問題不解決,就會導致對閉合鍵的多次讀入。解決的方法是:在發(fā)現(xiàn)有鍵按下后,延時
40、10ms再進行逐行掃描。因為鍵被按下時的閉合時間遠遠大于10ms,所以延時后再掃描也不遲。第68頁,共81頁,2022年,5月20日,2點33分,星期二5.6 本章小結 1. 51系列單片機有4個8位的雙向并行輸入/輸出(I/O)端口,稱為P0口、P1口、P2口和P3口。各個端口既可以按字節(jié)輸入、輸出,又可以按位進行輸入、輸出。利用這4個I/O端口可以方便地實現(xiàn)單片機與外部數(shù)字設備或芯片的信息交換。 2. LED數(shù)碼管顯示器按用途可分為通用7段LED數(shù)碼管顯示器和專用LED數(shù)碼管顯示器。通用7段LED數(shù)碼管顯示器按內部結構劃分,數(shù)碼管又分為共陰極和共陽極兩種。數(shù)碼管的控制方式分為靜態(tài)和動態(tài)兩種
41、。第69頁,共81頁,2022年,5月20日,2點33分,星期二 3. LED數(shù)碼管點陣顯示器是由LED按矩陣方式排列而成的,按照尺寸大小,LED點陣顯示器有57、58、68、88等多種規(guī)格;按照LED發(fā)光顏色的變化情況,LED點陣顯示器分為單色、雙色、三色;按照LED的連接方式,LED點陣顯示器又有共陰極、共陽極之分。 4. 液晶顯示器由于功耗低、抗干擾能力強等優(yōu)點,日漸成為各種便攜式產品、儀器儀表以及工控產品的理想顯示器。LCD種類繁多,按顯示形式及排列形狀可分為字段型、點陣字符型、點陣圖形型。單片機應用系統(tǒng)中主要使用后兩種。第70頁,共81頁,2022年,5月20日,2點33分,星期二 5. 液晶顯示模塊與單片機的連接方式有兩種:一種為直接訪問方式,另一種為間接控制方式。 6. 鍵盤是單片機應用系統(tǒng)中最常用的輸入設備,通過鍵盤輸入數(shù)據(jù)或命令,可以實現(xiàn)簡單的人機對話。鍵盤有編碼鍵盤和非編碼鍵盤之分。編碼鍵盤除了鍵開關外,還需去鍵抖動電路、防串鍵保護電路以及專門的、用于識別閉合鍵并產生鍵代碼的集成電路(如8255、8279等)。 編碼鍵盤的優(yōu)點是所需軟件簡短;缺點是硬件電路比較復雜,成本較高。第
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 產權交易合同意向書
- 個人綜合授信貸款合同范文
- 個人房屋租賃合同樣本范本
- 個人房產轉讓合同樣本修訂版
- 中小學教師工資集體合同范本
- 業(yè)務員委托合同范本
- 個人小額信貸合同樣本
- 個人設備租賃標準合同
- 個人車輛保險合同標準模板
- 個人友情借款合同樣本
- 神經外科課件:神經外科急重癥
- 頸復康腰痛寧產品知識課件
- 2024年低壓電工證理論考試題庫及答案
- 微電網市場調查研究報告
- 《民航服務溝通技巧》教案第14課民航服務人員上行溝通的技巧
- MT/T 538-1996煤鉆桿
- 小學六年級語文閱讀理解100篇(及答案)
- CB/T 467-1995法蘭青銅閘閥
- 氣功修煉十奧妙
- 勾股定理的歷史與證明課件
- 中醫(yī)診斷學八綱辨證課件
評論
0/150
提交評論