




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第7章MCS-51單片機與鍵盤、顯示器的接口主要內容7.4MCS-51單片機與鍵盤接口7.5MCS-51單片機與LED顯示器接口7.6MCS-51單片機與行程開關、晶閘管、繼電器的接口7.4MCS-51單片機與鍵盤接口鍵盤是人機接口的重要部件鍵盤實際上是由排列成矩陣形式的一系列按鍵開關組成,用戶通過鍵盤可以向CPU輸入數據、地址和命令。7.4.1鍵盤的工作原理
7.4MCS-51單片機與鍵盤接口P1.1VCCGND斷開閉合斷開P1.1(a)(b)
鍵盤實際上是一組按鍵開關的集合,平時按鍵開關總是處于斷開狀態,當按下鍵時它才閉合。鍵盤的處理主要涉及三個方面:1.按鍵的識別:根據輸出信號的高低電平來確定2.抖動的消除消除按鍵盤抖動通常有兩種方法:硬件消抖和軟件消抖。斷開閉合+5V+5V輸出軟件消抖是利用延時來跳過抖動過程7.4MCS-51單片機與鍵盤接口3.鍵位的編碼通常有兩種方法編碼。(1)用連接鍵盤的I/O線的二進制組合進行編碼。如(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獨立式鍵盤與單片機的接口鍵盤的安裝方式有兩種:
獨立式鍵盤:當按鍵個數為1-4個矩陣式鍵盤:當按鍵個數>4獨立式鍵盤就是各按鍵相互獨立,每個按鍵各接一根I/O口線,每根I/O口線上的按鍵都不會影響其它的I/O口線。圖(a)為中斷方式工作的獨立式鍵盤的結構形式,(b)為查詢方式工作的獨立式鍵盤的結構形式GNDVCCGNDVCC與(b)8051(a)INT08051P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.77.4MCS-51單片機與鍵盤接口
針對查詢方式的匯編語言形式的鍵盤程序。總共有8個鍵位,KEY0~KEY7為8個鍵的功能程序。START:MOVA,#0FFH;MOVP1,A;置P1口為輸入狀態MOVA,P1;鍵狀態輸入CPLAJZSTART;沒有鍵按下,則轉開始JBACC.0,Key0;檢測0號鍵是否按下,按下轉JBACC.1,Key1;檢測1號鍵是否按下,按下轉JBACC.2,Key2;檢測2號鍵是否按下,按下轉JBACC.3,Key3;檢測3號鍵是否按下,按下轉JBACC.4,Key4;檢測4號鍵是否按下,按下轉JBACC.5,Key5;檢測5號鍵是否按下,按下轉JBACC.6,Key6;檢測6號鍵是否按下,按下轉JBACC.7,Key7;檢測7號鍵是否按下,按下轉JMPSTART;無鍵按下返回,再順次檢測7.4MCS-51單片機與鍵盤接口KEY0:……;0號鍵功能程序JMPSTART;0號鍵功能程序執行完返回KEY1:……;0號鍵功能程序JMPSTART;1號鍵功能程序執行完返回……KEY7:……;7號鍵功能程序JMPSTART;7號鍵功能程序執行完返回7.4MCS-51單片機與鍵盤接口下圖就是通過8255A芯片擴展的并行I/O口連接48的矩陣鍵盤。PA7PA6PA5PA4PA3PA2PA1PA0PC0PC1PC2PC30123456789101112131415316171819202122232425262728293031CS74LS373WRRDA1A0P2.7WRRDALEP0.0~P0.7D0~D7RESET1K20F+5V+5V82555.1K480517.4MCS-51單片機與鍵盤接口7.4.3矩陣式鍵盤與單片機的接口1.矩陣鍵盤的工作過程對矩陣鍵盤的工作過程可分兩步:第一步是CPU首先檢測鍵盤上是否有鍵按下;第二步是再識別是哪一個鍵按下。①
檢是否有鍵按下:將列線送入全掃描字,讀入行線的狀態來判別其具體過程如下:PA口輸出00H,即所有列線置成低電平,然后將行線電平狀態讀入累加器A中。如果有鍵按下,總會有一根行線電平被拉至低電平,從而使行輸入狀態不全為"1"。7.4MCS-51單片機與鍵盤接口②
識別哪一個鍵按下:將列線逐列置低電平,檢查行輸入狀態,稱為逐列掃描。
從PA0開始,依次輸出“0”,置對應的列線為低電平,然后從PC口讀入行線狀態,如果全為“1”,則按下的鍵不在此列;如果不全為“1”,則按下的鍵必在此列,而且是該列與“0”電平行線相交的交點上的那個鍵。為求取編碼,在逐列掃描時,可用計數器記錄下當前掃描列的列號,檢測到第幾行有鍵按下,就用該行的首鍵碼加列號得到當前按鍵的編碼。7.4MCS-51單片機與鍵盤接口7.4MCS-51單片機與鍵盤接口2.矩陣式鍵盤的工作方式
查詢工作方式定時掃描工作方式中斷工作方式①查詢工作方式:在主程序中插入鍵盤檢測子程序主程序每執行一次則鍵盤檢測子程序被執行一次,對鍵盤進行檢測一次,如果把沒有鍵按下,則跳過鍵識別,直接執行主程序;如果有鍵按下,則通過鍵盤掃描子程序識別按鍵,得到按鍵的編碼值,然后根據編碼值進行相應的處理,處理完后再回到主程序執行。。開始有鍵按下否?調用6ms延時子程序?調用12ms延時子程序?有鍵按下否?判閉合鍵,編碼入棧保護閉合鍵釋放否?編碼A返回否否否是是是7.4MCS-51單片機與鍵盤接口鍵盤掃描子程序流程圖8255A的A口、B口、C口和控制口地址分別為7F00H、7F01H、7F02H、7F03H,設8255A已在主程序中初始化。已設定為A口方式0輸出,C口的低4位方式0輸入。)KEY1:ACALLKS1
;調用判斷有無鍵按下子程序 JNZLK1;有鍵按下時,(A)≠0轉消抖延時KEY2:ACALLTM6ms AJMPKEY1;無鍵按下返回LK1:ACALLTM12ms;調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口讀入行狀態JBACC.0,LONE;查第0行無鍵按下,轉查第1行MOVA,#00H;第0行有鍵按下,行首鍵碼#00H→AAJMPLKP;轉求鍵碼LONE:JBACC.1,LTWO;查第1行無鍵按下,轉查第2行MOVA,#08H;第1行有鍵按下,行首鍵碼#08H→A AJMPLKP;轉求鍵碼LTWO:JBACC.2,LTHR;查第2行無鍵按下,轉查第3行MOVA,#10H;第2行有鍵按下,行首鍵碼#10H→AAJMPLKP;轉求鍵碼LTHR:JBACC.3,NEXT;查第3行無鍵按下,轉該查下一列MOVA,#18H;第3行有鍵按下,行首鍵碼#18H→ALKP:ADDA,R4;求鍵碼,鍵碼=行首鍵碼+列號 PUSHACC;鍵碼進棧保護LK3:ACALLKS1;等待鍵釋放 JNZLK3;鍵未釋放,等待 POPACC;鍵釋放,鍵碼→A RET;鍵掃描結束,出口狀態(A)=鍵碼7.4MCS-51單片機與鍵盤接口NEXT:INCR4;準備掃描下一列,列號加1MOVA,R2;取列掃描字送累加器A JNBACC.7,KEND;判斷8列掃描否?掃描完返回 RLA;掃描字左移一位,變為下一列掃描字 MOVR2,A;掃描字送入R2保存 AJMPLK4;轉下一列掃描KEND:AJMPKEY1KS1:MOVDPTR,#7F00H;DPTR指向8155PA口MOVA,#00H;全掃描字→AMOVX@DPTR,A;全掃描字送往8155PA口INCDPTR;DPTR指向8155PC口INCDPTRMOVXA,@DPTR;讀入PC口行狀態CPLA;變正邏輯,以高電平表示有鍵按下ANLA,#0FH;屏蔽高4位,只保留低4位行線值RET;出口狀態:(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;出口狀態:(A)≠0時有鍵按下TM12ms:MOVR7,#18H;延時12ms子程序TM: MOVR6,#0FFHTM6:DJNZR6,TM6DJNZR7,TMRETLKP:ADDA,R4RET7.4MCS-51單片機與鍵盤接口2定時掃描工作方式3中斷工作方式7.5.1LED顯示器的結構與原理
圖
七段顯示塊管腳與結構圖共陰數碼管共陽數碼管管腳配置7.5單片機與顯示器LED接口7.5單片機與顯示器LED接口各段碼位的對應關系如下:
表
七段LED的段選碼顯示字符共陰極段選碼共陽極段選碼顯示字符共陰極段選碼共陽極段選碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HΓ31HCEH707HF8Hy6EH91H87FH80H8.FFH00H96FH90H“滅”00HFFHA77H88HB7CH83H
7.5單片機與顯示器LED接口dpgfedcba01110001dpgfedcba100011107.5.2LED數碼管顯示器的譯碼方式譯碼方式是指由顯示字符轉換得到對應的字段碼的方式硬件譯碼方式——利用專門的硬件電路實現顯示字符到字段碼的轉換。軟件譯碼方式——
就是通過編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼。7.5單片機與顯示器LED接口硬件譯碼方式CD4511:BCD轉換、消隱和鎖存控制、七段譯碼及驅動共陰極數碼管
7.5.3LED數碼管的顯示方式1.LED靜態顯示
LED靜態顯示時,其公共端直接接地(共陰極)或接電源(共陽極),各段選線分別與I/O口線相連。要顯示字符,直接在I/O線送相應的字段碼。abcdefgdpI/O(1)abcdefgdpI/O(2)7.5單片機與顯示器LED接口2.LED動態顯示方式
LED動態顯示是將所有的數碼管的段選線并接在一起,用一個I/O口控制,公共端不是直接接地(共陰極)或電源(共陽極),而是通過相應的I/O口線控制。D3D2D1D0I/O(1)I/O(2)7.5單片機與顯示器LED接口7.5.4LED顯示器與單片機的接口
LED顯示器從譯碼方式上有硬件譯碼方式和軟件譯碼方式。從顯示方式上有靜態顯示方式和動態顯示方式。在使用時可以把它們組合起來。在實際應用時,如果數碼管個數較少,通常用硬件譯碼靜態顯示,在數碼管個數較多時,則通常用軟件譯碼動態顯示。7.5單片機與顯示器LED接口1.硬件譯碼靜態顯示下圖是一個兩位數碼管硬件譯碼靜態顯示的接口電路圖。abcdefgMC14495abcdefgabcdefgABCDLEMC14495abcdefgABCDLEP1.0P1.1P1.2P1.3P1.4P1.580517.5單片機與顯示器LED接口2.軟件譯碼動態顯示圖中用8255A擴展并行I/O口接數碼管,數碼管采用動態顯示方式,8位數碼管的段選線并聯與8255A的A口通過74LS373相連,8位數碼管的公共端通過74LS373分別與8255A的B口相連。也即8255A的B口輸出位選碼選擇要顯示的數碼管,8255A的A口輸出字段碼使數碼管顯示相應的字符,8255A的A口和B口都工作于方式0輸出。A口、B口、C口和控制口的地址分別為7F00H、7F01H、7F02H和7F03H。7.5單片機與顯示器LED接口D0D1D2D7Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7GOEVCC74LS373Q0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D7GOEVCC74LS373PA0PA1PA2PA3PA4PA5PA6PA7PB0PB1PB2PB3PB4PB5PB6PB7CSWRRD74LS373P2.7WRRDALEP0.0~P0.78051D0~D7A1A0GA1A08255位碼字型碼7.5單片機與顯示器LED接口軟件譯碼動態顯示匯編語言程序為:(設8個數碼管的顯示緩沖區為片內RAM的57H~50H單元)DISPLAY:MOVA,#10000000B;8255初始化MOVDPTR,#7F03H;使DPTR指向8155控制寄存器端口MOVX@DPTR,AMOVR0,#57H;動態顯示初始化,使R0指向緩沖區首址MOVR3,#7FH;首位位選字送R3MOVA,R3LD0:MOVDPTR,#7F01H;使DPTR指向PB口MOVX@DPTR,A;選通顯示器低位(最右端一位)DECDPTR;使DPTR指向PA口MOVA,@R0;讀要顯示數ADDA,#0DH;調整距段選碼表首的偏移量7.5單片機與顯示器LED接口MOVCA,@A+PC;查表取得段選碼MOVX@DPTR,A;段選碼從PA口輸出ACALLDL1;調用1ms延時子程序DECR0;指向緩沖區下一單元MOVA,R3;位選碼送累加器AJNBACC.0,LD1;判斷8位是否顯示完畢,顯示完返回RRA;未顯示完,把位選字變為下一位選字MOVR3,A;修改后的位選字送R3AJMPLD0;循環實現按位序依次顯示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接口軟件譯碼動態顯示C語言程序為:#include<reg51.h>#include<absacc.h>//定義絕對地址訪問#defineucharunsignedchar#defineuintunsignedintvoiddelay(uint);
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB 11215-1989核輻射環境質量評價一般規定》(2025版)深度解析
- 中專護理教學課件
- 合伙開設物流公司協議書模板
- 供應商合同供貨協議范本
- 科研儀器租賃合同
- 商用空間裝修保障合同
- 三方債權債務承接合同
- 肇慶市實驗中學高三生物三四五高效課堂教學設計:雜交實驗一相關練習
- 山東省德州市寧津縣南環小學2024-2025學年數學五年級第二學期期末達標檢測試題含答案
- 自愿收養合同書
- 2025年重慶渝開發股份有限公司招聘筆試參考題庫含答案解析
- 中華優秀傳統文化的內涵與特點【考點精研+知識架構+提分專練】高中歷史統編版(2019)選擇性必修三文化交流與傳播
- 光伏工程強條執行記錄表
- GB 15892-2009生活飲用水用聚氯化鋁
- 24雙匯系統操作手冊
- 硬筆書法:幼小銜接識字寫字教學課件
- 盤扣支模架工程監理細則
- 橋梁工程梁板的預制和安裝監理實施細則
- 施工電梯租賃合同及安全協議
- 加油站臨時用電專項方案
- MTBF測試驗證規范文件和報告
評論
0/150
提交評論