版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第7章MCS-51單片機與鍵盤、顯示器的接口主要內(nèi)容7.4MCS-51單片機與鍵盤接口7.5MCS-51單片機與LED顯示器接口7.6MCS-51單片機與行程開關(guān)、晶閘管、繼電器的接口7.4MCS-51單片機與鍵盤接口鍵盤是人機接口的重要部件鍵盤實際上是由排列成矩陣形式的一系列按鍵開關(guān)組成,用戶通過鍵盤可以向CPU輸入數(shù)據(jù)、地址和命令。7.4.1鍵盤的工作原理
7.4MCS-51單片機與鍵盤接口P1.1VCCGND斷開閉合斷開P1.1(a)(b)
鍵盤實際上是一組按鍵開關(guān)的集合,平時按鍵開關(guān)總是處于斷開狀態(tài),當(dāng)按下鍵時它才閉合。鍵盤的處理主要涉及三個方面:1.按鍵的識別:根據(jù)輸出信號的高低電平來確定2.抖動的消除消除按鍵盤抖動通常有兩種方法:硬件消抖和軟件消抖。斷開閉合+5V+5V輸出軟件消抖是利用延時來跳過抖動過程7.4MCS-51單片機與鍵盤接口3.鍵位的編碼通常有兩種方法編碼。(1)用連接鍵盤的I/O線的二進(jìn)制組合進(jìn)行編碼。如(a)圖(2)順序排列編碼。如(b)圖,處理方法:編碼值=行首編碼值X+列號Y。7.4MCS-51單片機與鍵盤接口P1.088848281484442412824222118141211FEDCBA9876543210(a)(b)P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.77.4MCS-51單片機與鍵盤接口7.4.2獨立式鍵盤與單片機的接口鍵盤的安裝方式有兩種:
獨立式鍵盤:當(dāng)按鍵個數(shù)為1-4個矩陣式鍵盤:當(dāng)按鍵個數(shù)>4獨立式鍵盤就是各按鍵相互獨立,每個按鍵各接一根I/O口線,每根I/O口線上的按鍵都不會影響其它的I/O口線。圖(a)為中斷方式工作的獨立式鍵盤的結(jié)構(gòu)形式,(b)為查詢方式工作的獨立式鍵盤的結(jié)構(gòu)形式GNDVCCGNDVCC與(b)8051(a)INT08051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.77.4MCS-51單片機與鍵盤接口
針對查詢方式的匯編語言形式的鍵盤程序??偣灿?個鍵位,KEY0~KEY7為8個鍵的功能程序。START:MOVA,#0FFH;MOVP1,A;置P1口為輸入狀態(tài)MOVA,P1;鍵狀態(tài)輸入CPLAJZSTART;沒有鍵按下,則轉(zhuǎn)開始JBACC.0,Key0;檢測0號鍵是否按下,按下轉(zhuǎn)JBACC.1,Key1;檢測1號鍵是否按下,按下轉(zhuǎn)JBACC.2,Key2;檢測2號鍵是否按下,按下轉(zhuǎn)JBACC.3,Key3;檢測3號鍵是否按下,按下轉(zhuǎn)JBACC.4,Key4;檢測4號鍵是否按下,按下轉(zhuǎn)JBACC.5,Key5;檢測5號鍵是否按下,按下轉(zhuǎn)JBACC.6,Key6;檢測6號鍵是否按下,按下轉(zhuǎn)JBACC.7,Key7;檢測7號鍵是否按下,按下轉(zhuǎn)JMPSTART;無鍵按下返回,再順次檢測7.4MCS-51單片機與鍵盤接口KEY0:……;0號鍵功能程序JMPSTART;0號鍵功能程序執(zhí)行完返回KEY1:……;0號鍵功能程序JMPSTART;1號鍵功能程序執(zhí)行完返回……KEY7:……;7號鍵功能程序JMPSTART;7號鍵功能程序執(zhí)行完返回7.4MCS-51單片機與鍵盤接口下圖就是通過8255A芯片擴展的并行I/O口連接48的矩陣鍵盤。PA7PA6PA5PA4PA3PA2PA1PA0PC0PC1PC2PC30123456789101112131415316171819202122232425262728293031CS74LS373WRRDA1A0P2.7WRRDALEP0.0~P0.7D0~D7RESET1K20F+5V+5V82555.1K480517.4MCS-51單片機與鍵盤接口7.4.3矩陣式鍵盤與單片機的接口1.矩陣鍵盤的工作過程對矩陣鍵盤的工作過程可分兩步:第一步是CPU首先檢測鍵盤上是否有鍵按下;第二步是再識別是哪一個鍵按下。①
檢是否有鍵按下:將列線送入全掃描字,讀入行線的狀態(tài)來判別其具體過程如下:PA口輸出00H,即所有列線置成低電平,然后將行線電平狀態(tài)讀入累加器A中。如果有鍵按下,總會有一根行線電平被拉至低電平,從而使行輸入狀態(tài)不全為"1"。7.4MCS-51單片機與鍵盤接口②
識別哪一個鍵按下:將列線逐列置低電平,檢查行輸入狀態(tài),稱為逐列掃描。
從PA0開始,依次輸出“0”,置對應(yīng)的列線為低電平,然后從PC口讀入行線狀態(tài),如果全為“1”,則按下的鍵不在此列;如果不全為“1”,則按下的鍵必在此列,而且是該列與“0”電平行線相交的交點上的那個鍵。為求取編碼,在逐列掃描時,可用計數(shù)器記錄下當(dāng)前掃描列的列號,檢測到第幾行有鍵按下,就用該行的首鍵碼加列號得到當(dāng)前按鍵的編碼。7.4MCS-51單片機與鍵盤接口7.4MCS-51單片機與鍵盤接口2.矩陣式鍵盤的工作方式
查詢工作方式定時掃描工作方式中斷工作方式①查詢工作方式:在主程序中插入鍵盤檢測子程序主程序每執(zhí)行一次則鍵盤檢測子程序被執(zhí)行一次,對鍵盤進(jìn)行檢測一次,如果把沒有鍵按下,則跳過鍵識別,直接執(zhí)行主程序;如果有鍵按下,則通過鍵盤掃描子程序識別按鍵,得到按鍵的編碼值,然后根據(jù)編碼值進(jìn)行相應(yīng)的處理,處理完后再回到主程序執(zhí)行。。開始有鍵按下否?調(diào)用6ms延時子程序?調(diào)用12ms延時子程序?有鍵按下否?判閉合鍵,編碼入棧保護(hù)閉合鍵釋放否?編碼A返回否否否是是是7.4MCS-51單片機與鍵盤接口鍵盤掃描子程序流程圖8255A的A口、B口、C口和控制口地址分別為7F00H、7F01H、7F02H、7F03H,設(shè)8255A已在主程序中初始化。已設(shè)定為A口方式0輸出,C口的低4位方式0輸入。)KEY1:ACALLKS1
;調(diào)用判斷有無鍵按下子程序 JNZLK1;有鍵按下時,(A)≠0轉(zhuǎn)消抖延時KEY2:ACALLTM6ms AJMPKEY1;無鍵按下返回LK1:ACALLTM12ms;調(diào)12ms延時子程序 ACALLKS1;查有無鍵按下,若有則真有鍵按下 JNZLK2;鍵(A)≠0逐列掃描 AJMPKEY2;不是真有鍵按下,返回LK2:MOVR2,#0FEH;初始列掃描字(0列)送入R2 MOVR4,#00H;初始列(0列)號送入R4LK4:MOVDPTR,#7F00H;DPTR指向8155PA口 MOVA,R2;列掃描字送至8155PA口 MOVX@DPTR,A INCDPTR;DPTR指向8155PC口 INCDPTR7.4MCS-51單片機與鍵盤接口7.4MCS-51單片機與鍵盤接口MOVXA,@DPTR;從8155PC口讀入行狀態(tài)JBACC.0,LONE;查第0行無鍵按下,轉(zhuǎn)查第1行MOVA,#00H;第0行有鍵按下,行首鍵碼#00H→AAJMPLKP;轉(zhuǎn)求鍵碼LONE:JBACC.1,LTWO;查第1行無鍵按下,轉(zhuǎn)查第2行MOVA,#08H;第1行有鍵按下,行首鍵碼#08H→A AJMPLKP;轉(zhuǎn)求鍵碼LTWO:JBACC.2,LTHR;查第2行無鍵按下,轉(zhuǎn)查第3行MOVA,#10H;第2行有鍵按下,行首鍵碼#10H→AAJMPLKP;轉(zhuǎn)求鍵碼LTHR:JBACC.3,NEXT;查第3行無鍵按下,轉(zhuǎn)該查下一列MOVA,#18H;第3行有鍵按下,行首鍵碼#18H→ALKP:ADDA,R4;求鍵碼,鍵碼=行首鍵碼+列號 PUSHACC;鍵碼進(jìn)棧保護(hù)LK3:ACALLKS1;等待鍵釋放 JNZLK3;鍵未釋放,等待 POPACC;鍵釋放,鍵碼→A RET;鍵掃描結(jié)束,出口狀態(tài)(A)=鍵碼7.4MCS-51單片機與鍵盤接口NEXT:INCR4;準(zhǔn)備掃描下一列,列號加1MOVA,R2;取列掃描字送累加器A JNBACC.7,KEND;判斷8列掃描否?掃描完返回 RLA;掃描字左移一位,變?yōu)橄乱涣袙呙枳?MOVR2,A;掃描字送入R2保存 AJMPLK4;轉(zhuǎn)下一列掃描KEND:AJMPKEY1KS1:MOVDPTR,#7F00H;DPTR指向8155PA口MOVA,#00H;全掃描字→AMOVX@DPTR,A;全掃描字送往8155PA口INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,@DPTR;讀入PC口行狀態(tài)CPLA;變正邏輯,以高電平表示有鍵按下ANLA,#0FH;屏蔽高4位,只保留低4位行線值RET;出口狀態(tài):(A)≠0時有鍵按下7.4MCS-51單片機與鍵盤接口TM12ms:MOVR7,#18H;延時12ms子程序TM:MOVR6,#0FFHTM6:DJNZR6,TM6 DJNZR7,TMRETTM6ms:MOVR7,#0CH;延時6ms子程序TM2:MOVR6,#0FFHTM62:DJNZR6,TM6DJNZR7,TMRET7.4MCS-51單片機與鍵盤接口ANLA,#0FH;屏蔽高4位,只保留低4位行線值RET;出口狀態(tài):(A)≠0時有鍵按下TM12ms:MOVR7,#18H;延時12ms子程序TM: MOVR6,#0FFHTM6:DJNZR6,TM6DJNZR7,TMRETLKP:ADDA,R4RET7.4MCS-51單片機與鍵盤接口2定時掃描工作方式3中斷工作方式7.5.1LED顯示器的結(jié)構(gòu)與原理
圖
七段顯示塊管腳與結(jié)構(gòu)圖共陰數(shù)碼管共陽數(shù)碼管管腳配置7.5單片機與顯示器LED接口7.5單片機與顯示器LED接口各段碼位的對應(yīng)關(guān)系如下:
表
七段LED的段選碼顯示字符共陰極段選碼共陽極段選碼顯示字符共陰極段選碼共陽極段選碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HΓ31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“滅”00HFFHA77H88HB7CH83H
7.5單片機與顯示器LED接口dpgfedcba01110001dpgfedcba100011107.5.2LED數(shù)碼管顯示器的譯碼方式譯碼方式是指由顯示字符轉(zhuǎn)換得到對應(yīng)的字段碼的方式硬件譯碼方式——利用專門的硬件電路實現(xiàn)顯示字符到字段碼的轉(zhuǎn)換。軟件譯碼方式——
就是通過編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼。7.5單片機與顯示器LED接口硬件譯碼方式CD4511:BCD轉(zhuǎn)換、消隱和鎖存控制、七段譯碼及驅(qū)動共陰極數(shù)碼管
7.5.3LED數(shù)碼管的顯示方式1.LED靜態(tài)顯示
LED靜態(tài)顯示時,其公共端直接接地(共陰極)或接電源(共陽極),各段選線分別與I/O口線相連。要顯示字符,直接在I/O線送相應(yīng)的字段碼。abcdefgdpI/O(1)abcdefgdpI/O(2)7.5單片機與顯示器LED接口2.LED動態(tài)顯示方式
LED動態(tài)顯示是將所有的數(shù)碼管的段選線并接在一起,用一個I/O口控制,公共端不是直接接地(共陰極)或電源(共陽極),而是通過相應(yīng)的I/O口線控制。D3D2D1D0I/O(1)I/O(2)7.5單片機與顯示器LED接口7.5.4LED顯示器與單片機的接口
LED顯示器從譯碼方式上有硬件譯碼方式和軟件譯碼方式。從顯示方式上有靜態(tài)顯示方式和動態(tài)顯示方式。在使用時可以把它們組合起來。在實際應(yīng)用時,如果數(shù)碼管個數(shù)較少,通常用硬件譯碼靜態(tài)顯示,在數(shù)碼管個數(shù)較多時,則通常用軟件譯碼動態(tài)顯示。7.5單片機與顯示器LED接口1.硬件譯碼靜態(tài)顯示下圖是一個兩位數(shù)碼管硬件譯碼靜態(tài)顯示的接口電路圖。abcdefgMC14495abcdefgabcdefgABCDLEMC14495abcdefgABCDLEP1.0P1.1P1.2P1.3P1.4P1.580517.5單片機與顯示器LED接口2.軟件譯碼動態(tài)顯示圖中用8255A擴展并行I/O口接數(shù)碼管,數(shù)碼管采用動態(tài)顯示方式,8位數(shù)碼管的段選線并聯(lián)與8255A的A口通過74LS373相連,8位數(shù)碼管的公共端通過74LS373分別與8255A的B口相連。也即8255A的B口輸出位選碼選擇要顯示的數(shù)碼管,8255A的A口輸出字段碼使數(shù)碼管顯示相應(yīng)的字符,8255A的A口和B口都工作于方式0輸出。A口、B口、C口和控制口的地址分別為7F00H、7F01H、7F02H和7F03H。7.5單片機與顯示器LED接口D0D1D2D7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7GOEVCC74LS373Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7GOEVCC74LS373PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7CSWRRD74LS373P2.7WRRDALEP0.0~P0.78051D0~D7A1A0GA1A08255位碼字型碼7.5單片機與顯示器LED接口軟件譯碼動態(tài)顯示匯編語言程序為:(設(shè)8個數(shù)碼管的顯示緩沖區(qū)為片內(nèi)RAM的57H~50H單元)DISPLAY:MOVA,#10000000B;8255初始化MOVDPTR,#7F03H;使DPTR指向8155控制寄存器端口MOVX@DPTR,AMOVR0,#57H;動態(tài)顯示初始化,使R0指向緩沖區(qū)首址MOVR3,#7FH;首位位選字送R3MOVA,R3LD0:MOVDPTR,#7F01H;使DPTR指向PB口MOVX@DPTR,A;選通顯示器低位(最右端一位)DECDPTR;使DPTR指向PA口MOVA,@R0;讀要顯示數(shù)ADDA,#0DH;調(diào)整距段選碼表首的偏移量7.5單片機與顯示器LED接口MOVCA,@A+PC;查表取得段選碼MOVX@DPTR,A;段選碼從PA口輸出ACALLDL1;調(diào)用1ms延時子程序DECR0;指向緩沖區(qū)下一單元MOVA,R3;位選碼送累加器AJNBACC.0,LD1;判斷8位是否顯示完畢,顯示完返回RRA;未顯示完,把位選字變?yōu)橄乱晃贿x字MOVR3,A;修改后的位選字送R3AJMPLD0;循環(huán)實現(xiàn)按位序依次顯示LD1:RETTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;字段碼表 DB7FH,6FH,77H,7CH,39H,5EH,79H,71HDL1:MOVR7,#02H;延時子程序DL:MOVR6,#0FFHDL0:DJNZR6,DL0DJNZR7,DLRET7.5單片機與顯示器LED接口軟件譯碼動態(tài)顯示C語言程序為:#include<reg51.h>#include<absacc.h>//定義絕對地址訪問#defineucharunsignedchar#defineuintunsignedintvoiddelay(uint);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度高端汽車銷售代理服務(wù)合同3篇
- 二零二五年度沖擊鉆施工安全防護(hù)措施合同4篇
- 綠色辦公環(huán)境的營造與策略研究
- 跨越領(lǐng)域的學(xué)習(xí)學(xué)生自主學(xué)習(xí)的跨學(xué)科應(yīng)用
- 實驗室自動化設(shè)備的智能化轉(zhuǎn)型
- 電商助力小區(qū)內(nèi)快消品市場的線上化轉(zhuǎn)型之路
- 二零二五年度車輛租賃合同電子化管理范本7篇
- 2025版專業(yè)烘焙食材配送合同書(含定制化服務(wù))3篇
- 二零二五年度財務(wù)數(shù)據(jù)保密及風(fēng)險評估協(xié)議2篇
- 二零二五年度餐廳品牌跨界合作開發(fā)合同3篇
- 醫(yī)院急診醫(yī)學(xué)小講課課件:急診呼吸衰竭的處理
- 腸梗阻導(dǎo)管在臨床中的使用及護(hù)理課件
- 調(diào)料廠工作管理制度
- 2023年MRI技術(shù)操作規(guī)范
- 小學(xué)英語單詞匯總大全打印
- 衛(wèi)生健康系統(tǒng)安全生產(chǎn)隱患全面排查
- GB/T 15114-2023鋁合金壓鑄件
- 三相分離器原理及操作
- 貨物驗收單表格模板
- 600字A4標(biāo)準(zhǔn)作文紙
- GB/T 18015.2-2007數(shù)字通信用對絞或星絞多芯對稱電纜第2部分:水平層布線電纜分規(guī)范
評論
0/150
提交評論