教學課件PPT MCS51單片機IO接口技術(shù)
《教學課件PPT MCS51單片機IO接口技術(shù)》由會員分享,可在線閱讀,更多相關(guān)《教學課件PPT MCS51單片機IO接口技術(shù)(60頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第九章第九章 MCS-51單片機單片機I/O接口技術(shù)接口技術(shù)MCS-51單片機具有四個并行單片機具有四個并行8位位I/O口(即口(即P0, P1, P2, P3),),原理上這四個原理上這四個I/O口均可用做雙向并行口均可用做雙向并行I/O接口,但在實際應(yīng)接口,但在實際應(yīng)用中,可提供給用戶使用的用中,可提供給用戶使用的I/O口只有口只有P1口。口。在單片機的在單片機的I/O口線不夠用的情況下,可以借助外部器件對口線不夠用的情況下,可以借助外部器件對I/O口進行擴展??少Y選用的器件很多,方案也有多種??谶M行擴展??少Y選用的器件很多,方案也有多種。訪問擴展訪問擴展I/O口的方法與訪問數(shù)據(jù)存儲器完全
2、相同,使用相口的方法與訪問數(shù)據(jù)存儲器完全相同,使用相 同的指令,所有擴展的同的指令,所有擴展的I/O口與片外數(shù)據(jù)存儲器統(tǒng)一編址??谂c片外數(shù)據(jù)存儲器統(tǒng)一編址。9.1 可編程并行可編程并行I/O接口芯片擴展接口芯片擴展 9.2 MCS-51單片機與鍵盤的接口技術(shù)單片機與鍵盤的接口技術(shù)9.3 MCS-51單片機與顯示器的接口技術(shù)單片機與顯示器的接口技術(shù) 9.1 可編程并行可編程并行I/O接口芯片擴展接口芯片擴展 可編程可編程I/OI/O接口芯片的特點:適應(yīng)多種功能需求,使用接口芯片的特點:適應(yīng)多種功能需求,使用靈活,可擴展多個并行靈活,可擴展多個并行I/OI/O口,可以編程設(shè)定為輸入或輸出口,可以編
3、程設(shè)定為輸入或輸出口,應(yīng)用非常廣泛???,應(yīng)用非常廣泛。 1可編程并行口可編程并行口8255A芯片芯片 Intel 8255AIntel 8255A芯片是通用可編程并行接口電路,廣泛應(yīng)用芯片是通用可編程并行接口電路,廣泛應(yīng)用于單片機擴展并行于單片機擴展并行I/OI/O口???。 它具有它具有3 3個個8 8位并行口位并行口PA, PBPA, PB和和PCPC,一個,一個8 8位的數(shù)據(jù)口位的數(shù)據(jù)口D0D0D7 D7 ,PCPC口分高口分高4 4位和低位和低4 4位。高位。高4 4位可與位可與PAPA口合為一組口合為一組(A(A組組),),低低4 4位可與位可與PBPB口合為一組口合為一組(B(B組組
4、) ) ,PCPC口可按位置位口可按位置位/ /復(fù)位。復(fù)位。4040條引條引腳,腳,DIPDIP封裝。封裝。8255A引腳信號圖 (1)A口、口、B口和口和C口???。A口、口、B口和口和C口均為口均為8位位I/O數(shù)據(jù)口,數(shù)據(jù)口,但結(jié)構(gòu)上略有差別。但結(jié)構(gòu)上略有差別。A口由一個口由一個8位的數(shù)據(jù)輸出緩沖位的數(shù)據(jù)輸出緩沖/鎖存器鎖存器和一個和一個8位的數(shù)據(jù)輸入緩沖位的數(shù)據(jù)輸入緩沖/鎖存器組成。鎖存器組成。B口由一個口由一個8位的數(shù)位的數(shù)據(jù)輸出緩沖據(jù)輸出緩沖/鎖存器和一個鎖存器和一個8位的數(shù)據(jù)輸入緩沖器組成。三個位的數(shù)據(jù)輸入緩沖器組成。三個端口都可以和外設(shè)相連,分別傳送外設(shè)的輸入端口都可以和外設(shè)相連,
5、分別傳送外設(shè)的輸入/輸出數(shù)據(jù)或控輸出數(shù)據(jù)或控制信息。制信息。 (2) A、B組控制電路。這是兩組根據(jù)組控制電路。這是兩組根據(jù)CPU的命令字控制的命令字控制8255工作方式的電路。工作方式的電路。A組控制組控制A口及口及C口的高口的高4位,位,B組控制組控制B口及口及C口的低口的低4位。位。 (3) 數(shù)據(jù)緩沖器。這是一個雙向三態(tài)數(shù)據(jù)緩沖器。這是一個雙向三態(tài)8位的驅(qū)動口,用于位的驅(qū)動口,用于和單片機的數(shù)據(jù)總線相連,傳送數(shù)據(jù)或控制信息。和單片機的數(shù)據(jù)總線相連,傳送數(shù)據(jù)或控制信息。 (4) 讀讀/寫控制邏輯。這部分電路接收寫控制邏輯。這部分電路接收MCS-51送來的讀送來的讀/寫寫命令和選口地址,用于
6、控制命令和選口地址,用于控制8255的操作。的操作。分三部分:分三部分: 總線接口部分;內(nèi)部邏輯部分總線接口部分;內(nèi)部邏輯部分 ;外設(shè)接口部分外設(shè)接口部分 (1)總線接口部分)總線接口部分 /CS 片選線片選線A1、A0 端口選擇線(選片內(nèi)四個端口寄存器)端口選擇線(選片內(nèi)四個端口寄存器) /RD 讀信號線讀信號線 /WR 寫信號線寫信號線 (2)內(nèi)部邏輯部分)內(nèi)部邏輯部分PAPC7 PC4PBPC3 PC0輸輸入入A組控制電路組控制電路控制寄存器控制控制寄存器控制8255A工作方式工作方式B組控制電路組控制電路(3)外設(shè)接口部分)外設(shè)接口部分可由編程決定三個端口的功能可由編程決定三個端口的功
7、能 輸出輸出 輸入輸入 其它其它A口口 8位鎖存位鎖存 / 緩沖緩沖 8位鎖存位鎖存/緩沖緩沖 雙向雙向B口口 8位鎖存位鎖存 / 緩沖緩沖 8位緩沖位緩沖C口口 8位鎖存位鎖存 / 緩沖緩沖 8位緩沖位緩沖 可分成兩組分別作可分成兩組分別作A 口、口、B口的控制口的控制/ /聯(lián)絡(luò)線聯(lián)絡(luò)線 2、8255A的端口操作的端口操作 A1 A0 選中選中0 0 PA口口0 1 PB口口1 0 PC口口1 1 控制控制 寄存寄存 器器 二、二、8255A的工作方式及方式選擇的工作方式及方式選擇1、8255A的工作方式的工作方式(1)方式)方式0 基本輸入基本輸入/輸出方式輸出方式 A口、口、B口、口、C
8、口均有此方式,無需選通,是單片機口均有此方式,無需選通,是單片機 與外部設(shè)備之間的直接數(shù)據(jù)通道,適用于無條件傳與外部設(shè)備之間的直接數(shù)據(jù)通道,適用于無條件傳 送送隨時準備好的外設(shè),如鍵盤、顯示器等。隨時準備好的外設(shè),如鍵盤、顯示器等。(2)方式)方式1 選通輸入選通輸入/輸出方式輸出方式 PA口、口、PB口作為數(shù)據(jù)輸入口作為數(shù)據(jù)輸入/輸出口,輸出口, PC口專為口專為PAPA口,口,PBPB口作選通聯(lián)絡(luò)信號線口作選通聯(lián)絡(luò)信號線, ,適用于查適用于查 詢或中斷方式的數(shù)據(jù)傳送。詢或中斷方式的數(shù)據(jù)傳送。 (3)方式)方式2 雙向數(shù)據(jù)輸入雙向數(shù)據(jù)輸入/輸出方式輸出方式 僅僅PA口有此方式??谟写朔绞健
9、C3 PC7此時作聯(lián)絡(luò)線此時作聯(lián)絡(luò)線, PB口可以是方式口可以是方式0;也可以是方式;也可以是方式1(PC0 PC1作聯(lián)絡(luò)線)。作聯(lián)絡(luò)線)。 2、8255A的方式控制字的方式控制字 用編程方法向用編程方法向8255A的控制口寫控制字,可決定它的工作的控制口寫控制字,可決定它的工作 方式。方式。(1 1)工作方式控制字)工作方式控制字 (2 2)PCPC口置位口置位/ /復(fù)位控制字復(fù)位控制字 0 D6 D5 D4 D3 D2 D1 D0“0” 標志位。標志位。D6、D5、D4 不使用位。不使用位。 D3、D2、D1 位選擇位,位選擇位,000 111 分別對應(yīng)分別對應(yīng)PC7 PC0。 D0 位狀
10、態(tài)位,位狀態(tài)位,1 置位,置位,0 復(fù)位。復(fù)位。 三、單片機和三、單片機和8255A的連接及應(yīng)用的連接及應(yīng)用 單片機單片機 8255A A0 A0 A1 A1 A15 A2中任一線中任一線 /CS P0 D7 D0 /RD /RD /WR /WR RST RESET 上圖中,地址線連接采用線選法。上圖中,地址線連接采用線選法。 8255A的地址分布:的地址分布: A15 A14 A13A8 A7A1 A0 0 0 0 0 0 0 0 0000HPA 0 1 0001HPB 1 0 0002HPC 1 1 0003H控制口控制口 或或 0 1 1 1 1 0 0 7FFCHPA 0 1 7FFD
11、HPB 1 0 7FFEHPC 1 1 7FFFH控制控制 口口未用地址線為未用地址線為0未用地址線為未用地址線為1 例、設(shè)單片機例、設(shè)單片機8031與微型打印機之間的數(shù)據(jù)傳送采用查詢方與微型打印機之間的數(shù)據(jù)傳送采用查詢方式。要求將存放在式。要求將存放在8031單片機內(nèi)單片機內(nèi)RAM中以中以30H為首地址的為首地址的64個連續(xù)單元中的內(nèi)容打印輸出,試編程。個連續(xù)單元中的內(nèi)容打印輸出,試編程。 P2.7 P0 ALE /RD /WR RST /EA1D 8D 2Q 1QG /OC/CS PA0PA7A1A0 PC0 PC7D0 D7/RD/WRRESETDB0DB7BUSY/STB8解解:因為:
12、因為PC0連接連接BUSY,所以,所以,PC3 PC0為輸入為輸入 又因又因PC7連接連接 /STB ,所以,所以PC7 PC4為輸出,為輸出, /STB = /DATA STROBE數(shù)據(jù)選通信號。數(shù)據(jù)選通信號。 作用是通知打印機,作用是通知打印機,8255A要給它傳數(shù)據(jù)。要給它傳數(shù)據(jù)。 PA口輸出,口輸出,PB口未用??谖从谩?故故 8255A的控制字可設(shè)為:的控制字可設(shè)為:1 0 0 0 0 0 0 1B = 81H 假設(shè)未用到地址線均為假設(shè)未用到地址線均為 1,則:,則: PA口地址:口地址:7FFCH PB口地址:口地址:7FFDH PC口地址:口地址:7FFEH 控制口:控制口: 7
13、FFFH 程序:程序: ORG 1000HORG 1000HPRINT:MOV DPTR,#7FFFH ;控制口地址;控制口地址 MOV A,#81H ;控制字;控制字 MOVX DPTR,A ;寫入控制字;寫入控制字 MOV R1,#30H ;數(shù)據(jù)指針;數(shù)據(jù)指針 MOV R2,#40H ;64個數(shù)個數(shù) NEXT: MOV DPTR,#7FFEH ;PC口地址口地址 MOV A, #80H ;使;使PC7為高電平為高電平 MOVX DPTR,A ;輸出;輸出/STB為高電平為高電平,不準備送數(shù),不準備送數(shù) WAIT: MOVX A,DPTR ;查詢打印機狀態(tài);查詢打印機狀態(tài) JB ACC.0,
14、 WAIT ;若;若PC0即即BUSY = 1忙,則等待忙,則等待 MOV DPTR , #7FFCH ;若;若BUSY = 0空閑,則指向空閑,則指向PA口口 MOV A , R1 MOVX DPTR , A ;輸出數(shù)據(jù);輸出數(shù)據(jù) MOV DPTR , #7FFEH ;指向;指向PC口口 MOV A , #00H MOVX DPTR , A ;/STB信號置低,通知打印機數(shù)據(jù)輸出。信號置低,通知打印機數(shù)據(jù)輸出。 ACALL PDELAY ;調(diào)延時子程序;調(diào)延時子程序 INC R1 DJNZ R2 , NEXT ;判斷打印輸出完成否?;判斷打印輸出完成否? SJMP $ PDELAY:(延時程
15、序略):(延時程序略) END 9.2 MCS-519.2 MCS-51單片機與鍵盤的接口技術(shù)單片機與鍵盤的接口技術(shù) 一、一、 概述概述鍵盤:鍵盤:單片機系統(tǒng)中完成控制參數(shù)輸入及修改的基本輸入設(shè)備,單片機系統(tǒng)中完成控制參數(shù)輸入及修改的基本輸入設(shè)備,是人工干預(yù)系統(tǒng)的重要手段。是人工干預(yù)系統(tǒng)的重要手段。各種按鍵或開關(guān)。各種按鍵或開關(guān)。鍵盤的分類:鍵盤的分類:按按編碼方式可分為編碼鍵盤與非編碼鍵盤。按鍵盤編碼方式可分為編碼鍵盤與非編碼鍵盤。按鍵盤連接方式可分為獨立連接式鍵盤與矩陣連接式鍵盤。連接方式可分為獨立連接式鍵盤與矩陣連接式鍵盤。 1 1獨立連接式鍵盤獨立連接式鍵盤 每鍵相互獨立,各自與一條每
16、鍵相互獨立,各自與一條I/O線相連,線相連,CPU可直接讀取可直接讀取該該I/O線的高線的高/低電平狀態(tài)。其優(yōu)點是硬件、軟件結(jié)構(gòu)簡單,判低電平狀態(tài)。其優(yōu)點是硬件、軟件結(jié)構(gòu)簡單,判鍵速度快,使用方便;缺點是占鍵速度快,使用方便;缺點是占I/O口線多??诰€多。適用場合:適用場合:多用于設(shè)置控制鍵、功能鍵。適用于鍵數(shù)較少的場合。多用于設(shè)置控制鍵、功能鍵。適用于鍵數(shù)較少的場合。2. 2. 矩陣連接式鍵盤矩陣連接式鍵盤 鍵按矩陣排列鍵按矩陣排列,各鍵處于矩陣行各鍵處于矩陣行/列的結(jié)點處列的結(jié)點處,CPU通過對通過對連在行連在行(列列)的的I/O線送已知電平的信號線送已知電平的信號,然后讀取列然后讀取列(
17、行行)線的狀線的狀態(tài)信息。逐線掃描態(tài)信息。逐線掃描,得出鍵碼。其特點是鍵多時占用得出鍵碼。其特點是鍵多時占用I/O口線口線少少,硬件資源利用合理,但判鍵速度慢。硬件資源利用合理,但判鍵速度慢。適用場合:適用場合:多用于設(shè)置數(shù)字鍵,適用于鍵數(shù)多的場合。多用于設(shè)置數(shù)字鍵,適用于鍵數(shù)多的場合。 二、使用鍵盤時必須解決的問題二、使用鍵盤時必須解決的問題 (1)開關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動??梢圆捎糜玻╅_關(guān)狀態(tài)的可靠輸入。必須消除鍵抖動??梢圆捎糜布蛙浖煞N方法,硬件方法就是在按鍵輸入通道上添加去件和軟件兩種方法,硬件方法就是在按鍵輸入通道上添加去抖動電路;軟件方法則采用延遲抖動電路;軟件方法則
18、采用延遲1020ms鍵盤的抖動時間一般為鍵盤的抖動時間一般為5 510ms10ms,抖動現(xiàn)象會引起,抖動現(xiàn)象會引起CPUCPU對一次對一次鍵操作進行多次處理,從而可能產(chǎn)生錯誤。鍵操作進行多次處理,從而可能產(chǎn)生錯誤。(2)鍵盤狀態(tài)的監(jiān)測方法)鍵盤狀態(tài)的監(jiān)測方法中斷方式還是查詢方式。中斷方式還是查詢方式。(3)鍵盤編碼方法。)鍵盤編碼方法。(4)鍵盤控制程序的編制。)鍵盤控制程序的編制。三、三、 鍵盤接口鍵盤接口 功能:功能:對鍵盤上所按下的鍵進行識別。對鍵盤上所按下的鍵進行識別。 分類:分類: (1)編碼鍵盤:)編碼鍵盤:采用專用的編碼采用專用的編碼/譯碼器件,被按下的鍵譯碼器件,被按下的鍵由該
19、器件譯碼輸出相應(yīng)的鍵碼由該器件譯碼輸出相應(yīng)的鍵碼/鍵值。其特點是增加了硬件開銷,鍵值。其特點是增加了硬件開銷,編碼固定,但編程簡單。適用于規(guī)模大的鍵盤。編碼固定,但編程簡單。適用于規(guī)模大的鍵盤。 (2)非編碼鍵盤:)非編碼鍵盤:采用軟件編采用軟件編/譯碼的方式,通過掃描,譯碼的方式,通過掃描,對每個被按下的鍵判別輸出相應(yīng)的鍵碼對每個被按下的鍵判別輸出相應(yīng)的鍵碼/鍵值。其特點是不增加鍵值。其特點是不增加硬件開銷,編碼靈活,但編程較復(fù)雜,占硬件開銷,編碼靈活,但編程較復(fù)雜,占CPU時間。適用于小時間。適用于小規(guī)模的鍵盤,特別是單片機系統(tǒng)鍵盤。規(guī)模的鍵盤,特別是單片機系統(tǒng)鍵盤。 1鍵盤接口的工作原理
20、鍵盤接口的工作原理 對于矩陣式鍵盤,如圖所示,鍵盤的行線對于矩陣式鍵盤,如圖所示,鍵盤的行線X0X3通過電阻接通過電阻接+5V,當,當鍵盤上沒有鍵閉合時,所有的掃描線和回送線都斷開,無論掃描線處于何鍵盤上沒有鍵閉合時,所有的掃描線和回送線都斷開,無論掃描線處于何種狀態(tài),回送線都呈高電平。當鍵盤上某一鍵閉合時,則該鍵所對應(yīng)的掃種狀態(tài),回送線都呈高電平。當鍵盤上某一鍵閉合時,則該鍵所對應(yīng)的掃描線和回送線被短路,可以確定,變?yōu)榈碗娖降幕厮途€與掃描線相交處的描線和回送線被短路,可以確定,變?yōu)榈碗娖降幕厮途€與掃描線相交處的鍵閉合。鍵閉合。 CPU對鍵盤掃描的方式:對鍵盤掃描的方式:程序控制的隨機方式(程
21、序控制的隨機方式( CPU空空閑時掃描鍵盤)、定時控制方式(定時掃描鍵盤)、中斷方閑時掃描鍵盤)、定時控制方式(定時掃描鍵盤)、中斷方式。式。 CPU對鍵盤上閉合鍵的鍵號確定方法:對鍵盤上閉合鍵的鍵號確定方法:根據(jù)掃描線和回根據(jù)掃描線和回送線的狀態(tài)計算求得,或根據(jù)行線和列線的狀態(tài)查表求得。送線的狀態(tài)計算求得,或根據(jù)行線和列線的狀態(tài)查表求得。 2鍵輸入程序的設(shè)計方法鍵輸入程序的設(shè)計方法 (1)判斷鍵盤上是否有鍵閉合;)判斷鍵盤上是否有鍵閉合; (2)消除鍵的機械抖動;)消除鍵的機械抖動; (3)確定閉合鍵的物理位置;)確定閉合鍵的物理位置; (4)得到閉合鍵的編號;)得到閉合鍵的編號; (5)確
22、保)確保CPU對鍵的一次閉合只做一次處理對鍵的一次閉合只做一次處理延時消抖延時消抖鍵掃描求鍵號鍵掃描求鍵號延時等待延時等待鍵譯碼求鍵值鍵譯碼求鍵值修改顯示緩沖區(qū)修改顯示緩沖區(qū)跳轉(zhuǎn)各功能程序跳轉(zhuǎn)各功能程序有按鍵輸入?有按鍵輸入?確有按鍵?確有按鍵?按鍵釋放?按鍵釋放?是數(shù)字鍵?是數(shù)字鍵?3鍵盤接口方式鍵盤接口方式(1)獨立式鍵盤接口(靜態(tài)方式)獨立式鍵盤接口(靜態(tài)方式)例題例題 在在MCS-51 單片機系統(tǒng)中,設(shè)計一個含單片機系統(tǒng)中,設(shè)計一個含8個按鍵的獨立式個按鍵的獨立式鍵盤。鍵盤。解:解:在在MCS-51中,中,含含8個按鍵的獨立式鍵個按鍵的獨立式鍵盤的線路連接如圖所盤的線路連接如圖所示,示
23、,8個按鍵經(jīng)上拉電個按鍵經(jīng)上拉電阻 拉 高 后 分 別 接 到阻 拉 高 后 分 別 接 到MCS-51單片機單片機P1口口的的 8 條條 I / O 線 上線 上(P1.0P1.7)。)。主程序如下:主程序如下:ORG 0000HLJMP MAINORG 0003H; 外部中斷外部中斷0中斷服務(wù)入口地址中斷服務(wù)入口地址LJMP INT; 轉(zhuǎn)中斷服務(wù)轉(zhuǎn)中斷服務(wù)ORG 0100H MAIN: SETB EA; 開總中斷允許開總中斷允許SETB EX0; 開開INT0中斷中斷SETB IT0; 下降沿有效下降沿有效中斷服務(wù)程序清單如下:中斷服務(wù)程序清單如下: INT: LCALL D20ms ;
24、延時去抖動延時去抖動MOV P1, #0FFH; P1口送全口送全1值值MOV A, P1; 讀讀P1口各引腳口各引腳 CJNE A, #0FFH,CLOSE; 驗證是否確實有鍵閉合驗證是否確實有鍵閉合 AJMP OUT; 無鍵按下無鍵按下 CLOSE: JNB ACC.7, KEY 7; 查詢查詢7號鍵號鍵 JNB ACC.6, KEY 6; 查詢查詢6號鍵號鍵 JNB ACC.5, KEY5; 查詢查詢5號鍵號鍵 JNB ACC.4, KEY4; 查詢查詢4號鍵號鍵 JNB ACC.3, KEY 3; 查詢查詢3號鍵號鍵 JNB ACC.2, KEY 2; 查詢查詢2號鍵號鍵 JNB AC
25、C.1, KEY 1; 查詢查詢1號鍵號鍵 JNB ACC.0,KEY 0 ; 查詢查詢0號鍵號鍵 OUT: RETI KEY 7:; 7號鍵處理程序號鍵處理程序 KEY 71:MOV A, P1; 再讀再讀P1口各引腳口各引腳 JNB ACC.7, FUNC71; 確認鍵是否釋放確認鍵是否釋放 RETI KEY 6:; 其他鍵處理程序其他鍵處理程序 D20ms: 略略; 20ms延時子程序延時子程序 END (2)矩陣式鍵盤接口)矩陣式鍵盤接口行反轉(zhuǎn)法行反轉(zhuǎn)法 矩陣式鍵盤按鍵識別方法有行反轉(zhuǎn)法和掃描法等。行反轉(zhuǎn)法需要兩個雙矩陣式鍵盤按鍵識別方法有行反轉(zhuǎn)法和掃描法等。行反轉(zhuǎn)法需要兩個雙向向I/
26、O口分別接行、列線。步驟如下:口分別接行、列線。步驟如下: (1)由行線輸出全)由行線輸出全“1”,讀入列線,判有無鍵按下。,讀入列線,判有無鍵按下。 (2)若有鍵按下)若有鍵按下,再將讀入的列線值輸出再將讀入的列線值輸出,讀入行線的值。讀入行線的值。 (3)第一步讀進的列線值與第二步讀進的行線值運算,從而得到代表此)第一步讀進的列線值與第二步讀進的行線值運算,從而得到代表此鍵的唯一的特征值。鍵的唯一的特征值。 行反轉(zhuǎn)法因輸入與輸出線反過來用而得名。優(yōu)點是判鍵速度快,兩次即行反轉(zhuǎn)法因輸入與輸出線反過來用而得名。優(yōu)點是判鍵速度快,兩次即可???。例題例題 請為請為8051微處理器設(shè)計一個由微處理器
27、設(shè)計一個由4行行4列鍵陣構(gòu)成的鍵盤。列鍵陣構(gòu)成的鍵盤。解:解:44矩陣鍵盤的線路連接如下頁圖所示。其中矩陣鍵盤的線路連接如下頁圖所示。其中P2口的低口的低4位作為輸出線。位作為輸出線。P1口的低口的低4位作為輸入線,輸入線通過位作為輸入線,輸入線通過74LS21進行邏輯相與后作為進行邏輯相與后作為8051的一的一個外部中斷源輸入。當有鍵按下時就將引起中斷。中斷服務(wù)程序要對所按的個外部中斷源輸入。當有鍵按下時就將引起中斷。中斷服務(wù)程序要對所按的鍵進行判別。鍵進行判別。 (1)查詢閉合鍵的位置子程序查詢閉合鍵的位置子程序KEYR KEYR子程序用以確定每組線中哪一位為子程序用以確定每組線中哪一位為
28、0,是否有多個,是否有多個0。在調(diào)用前,應(yīng)將讀某組線的數(shù)據(jù)存入累加器在調(diào)用前,應(yīng)將讀某組線的數(shù)據(jù)存入累加器A中。中。 KEYR子程子程序返回時,某組線中序返回時,某組線中0的位置(的位置(03)保存在)保存在R3中。按鍵閉合中。按鍵閉合引起中斷后,執(zhí)行中斷服務(wù)程序。引起中斷后,執(zhí)行中斷服務(wù)程序。KEYR子程序如下:子程序如下: KEYR: CJNE A, #0FEH, TESTP11; 測試測試P1.0MOV R3, #0 ; P1.0=0,說明被按鍵的輸入線為,說明被按鍵的輸入線為P1.0LJMP FINISH; 返回返回 TESTP11: CJNE A, #0FDH, TESTP12 ;
29、測試測試P1.1MOV R3, #1LJMP FINISH TESTP12: CJNE A, #0FBH, TESTP13 ; 測試測試P1.2MOV R3, #2LJMP FINISH TESTP13: CJNE A, #0F7H, FINISH; 測試測試P1.3MOV R3, #3 FINISH: RET(2)中斷服務(wù)程序 中斷服務(wù)程序開始部分應(yīng)利用軟件延時消除鍵抖動,然后再對所按的中斷服務(wù)程序開始部分應(yīng)利用軟件延時消除鍵抖動,然后再對所按的鍵做出處理。鍵做出處理。 中斷服務(wù)程序如下:中斷服務(wù)程序如下: ORG 1000H INT11: LCALL DELAY; 延時去抖動延時去抖動MO
30、V A, P1; 讀輸入線讀輸入線ANL A, #0FH; 判斷是否有鍵閉合判斷是否有鍵閉合CJNE A, #0FH, TEST; 有鍵閉合,轉(zhuǎn)判斷按鍵程序有鍵閉合,轉(zhuǎn)判斷按鍵程序RETI; 無鍵閉合,返回無鍵閉合,返回 TEST: MOV B, A; 暫存暫存LCALL KEYR; 調(diào)用讀取子程序調(diào)用讀取子程序MOV 40H, R3; 暫存在暫存在40H單元單元MOV P2, #0FFH; 輸出線寫輸出線寫1MOV P1, B; 輸入線寫入數(shù)據(jù)輸入線寫入數(shù)據(jù)MOV A, P2; 讀輸出線讀輸出線LCALL KEYR; 調(diào)用讀取子程序調(diào)用讀取子程序XCH A, R3SWAP AORL 40H,
31、 A; 得按鍵特征值得按鍵特征值RETI 中斷程序結(jié)束后,鍵的特征值存放在中斷程序結(jié)束后,鍵的特征值存放在40H單元中。此鍵的輸出線號位于單元中。此鍵的輸出線號位于40H單元的高單元的高4位,其輸入線號位于低位,其輸入線號位于低4位。此后,根據(jù)位。此后,根據(jù)40H單元的內(nèi)容去查單元的內(nèi)容去查表,得到相應(yīng)鍵的代碼,可進行顯示或其他處理。表,得到相應(yīng)鍵的代碼,可進行顯示或其他處理。(3)去抖動的延時子程序DELAY 利用利用CPU的空閑方式,通過定時器的空閑方式,通過定時器T1實現(xiàn)延時,實現(xiàn)延時, T1必須預(yù)先置初值,必須預(yù)先置初值,以得到需要的延遲時間。設(shè)晶振頻率為以得到需要的延遲時間。設(shè)晶振頻
32、率為6MHz,欲延時,欲延時20ms,定時時間為:,定時時間為: (216TC)6/12=20103s,初值:,初值:TC=25536=63C0H。程序如下:程序如下: DELAY:MOV TOMD, #11H; 方式方式1定時定時MOV TL1, #0C0H; 定時器定時器1定時初值定時初值MOV TH1, #63HSETB EA; 開中斷開中斷SETB ET1; 開定時器開定時器1中斷中斷SETB PT1; 定時器定時器1為高級中斷(因被鍵盤中斷調(diào)用)為高級中斷(因被鍵盤中斷調(diào)用)SETB TR1; 啟動定時器啟動定時器ORL PCON,#1; 啟動空閑方式,實際啟動空閑方式,實際CPU在
33、此處等待在此處等待CLR TR1 ; 以下四條指令只有在延時后,定時器被喚醒,才能執(zhí)行以下四條指令只有在延時后,定時器被喚醒,才能執(zhí)行CLR PT1CLR ET1RETEND(3)矩陣式鍵盤接口動態(tài)掃描法)矩陣式鍵盤接口動態(tài)掃描法動態(tài)掃動態(tài)掃描法原理:描法原理: 例題例題 用用8155實現(xiàn)實現(xiàn)4行行8列的列的32鍵鍵盤接口。鍵鍵盤接口。 解:解:電路如下頁圖所示,電路如下頁圖所示,8155的的PA設(shè)定為輸出口,稱其為掃設(shè)定為輸出口,稱其為掃描線。描線。PC3PC0設(shè)定為輸入口,稱其為回送線。設(shè)定為輸入口,稱其為回送線。8155與與MCS-51單片機的接口略,設(shè)單片機的接口略,設(shè)PA口的端口地址
34、為口的端口地址為7F01H,PC口的端口的端口地址為口地址為7F03H。 鍵值編碼形式:回送線鍵值編碼形式:回送線PC0, PC1, PC2, PC3上的鍵值(每條回送線上有上的鍵值(每條回送線上有8個個鍵,順序從左到右)分別為鍵,順序從左到右)分別為00H +(00H07H)、)、08H +(00H07H)、)、10H +(00H07H)、)、18H +(00H07H)。其中,()。其中,(00H07H)的具體)的具體內(nèi)容由掃描線決定,存放在內(nèi)容由掃描線決定,存放在R4中。中。P2.7P2.6/WR/RDALEP0/CEIO/M/WR/RDALED0-D78(1 1)掃描是否有鍵按下子程序)
35、掃描是否有鍵按下子程序KEY1KEY1,回掃線的值存放在,回掃線的值存放在A A中。中。 程序如下:程序如下: ORG 1000H KEY1:MOV DPTR, #7F01H ; 將將PA口地址送口地址送DPTR,PA口作為掃描線口作為掃描線 MOV A, #00H; 所有掃描線均為低電平所有掃描線均為低電平 MOVX DPTR, A; PA口向列線輸出口向列線輸出00H INC DPTR INC DPTR; 指向指向PC口口 MOVX A, DPTR ; 取回送線狀態(tài)取回送線狀態(tài) CPL A; 行線狀態(tài)取反行線狀態(tài)取反 ANL A, #0FH; 屏蔽屏蔽A的高半字節(jié)的高半字節(jié) RET; 返回
36、返回(2 2)判斷是否有鍵按下子程序)判斷是否有鍵按下子程序KEYKEY,如果有,識別按鍵的鍵碼。,如果有,識別按鍵的鍵碼。 其中其中DELAY1DELAY1是延時子程序。是延時子程序。 程序如下:程序如下:KEY: ACALL KEY1; 檢查有鍵閉合否檢查有鍵閉合否 JNZ LKEY1; A非非0說明有鍵按下說明有鍵按下 ACALL DELAY1; 執(zhí)行一次延時子程序(延時執(zhí)行一次延時子程序(延時6 ms) AJMP KEY LKEY1: ACALL DELAY1 ACALL DELAY1 ; 有鍵閉合延時有鍵閉合延時26ms=12ms以去抖動以去抖動 ACALL KEY1; 延時以后再檢
37、查是否有鍵閉合延時以后再檢查是否有鍵閉合JNZ LKEY2; 有鍵閉合,轉(zhuǎn)有鍵閉合,轉(zhuǎn)LKEY2 ACALL DELAY1 ; 無鍵閉合,說明是干擾信號,不作處理無鍵閉合,說明是干擾信號,不作處理 AJMP KEY; 延時延時6ms后轉(zhuǎn)后轉(zhuǎn)KEY繼續(xù)等待鍵入繼續(xù)等待鍵入 LKEY2: MOV R2, #0FEH; 掃描初值送掃描初值送R2,設(shè)定,設(shè)定PA0為當前掃描線為當前掃描線 MOV R4, #00H ; 回送初值送回送初值送R4LKEY4: MOV DPTR, #7F01H; 指向指向PA口口MOV A, R2 MOVX DPTR, A; 掃描初值送掃描初值送PA口口 INC DPTR
38、INC DPTR; 指向指向PC口口MOV A, DPTR; 取回送線狀態(tài)取回送線狀態(tài)JB ACC.0, LONE ; ACC.0=1,第,第0行無鍵閉合,轉(zhuǎn)行無鍵閉合,轉(zhuǎn)LONEMOV A, #00H; 裝第裝第0行行值行行值A(chǔ)JMP LKEYP; 轉(zhuǎn)計算鍵碼轉(zhuǎn)計算鍵碼 LONE: JB ACC.1, LTWO; ACC.1=1,第,第1行無鍵閉合,轉(zhuǎn)行無鍵閉合,轉(zhuǎn)LTWO MOV A, #08H; 裝第裝第1行行值行行值 AJMP LKEYP; 轉(zhuǎn)計算鍵碼轉(zhuǎn)計算鍵碼 LTWO: JB ACC.2, LTHR; ACC.2=1,第,第2行無鍵閉合,轉(zhuǎn)行無鍵閉合,轉(zhuǎn)LTHR MOV A, #1
39、0H; 裝第裝第2行行值行行值 AJMP LKEYP LTHR: JB ACC.3, NEXT; ACC.3=1,第,第3行無鍵閉合,轉(zhuǎn)行無鍵閉合,轉(zhuǎn)NEXT MOV A, #18H; 裝第裝第3行行值行行值 LKEYP: ADD A, R4 ; 計算鍵碼計算鍵碼 PUSH ACC ; 保存鍵碼保存鍵碼 LKEY3:ACALL DELAY1; 延時延時6ms ACALL KEY1; 判斷鍵是否繼續(xù)閉合,若閉合再延時判斷鍵是否繼續(xù)閉合,若閉合再延時 JNZ LKEY3 POP ACC; 若鍵釋放,則鍵碼送若鍵釋放,則鍵碼送A RET NEXT: INC R4; 列號加列號加1 MOV A, R2
40、 JNB ACC.7, KND; 第第7位為位為0,以掃描到最高列,轉(zhuǎn),以掃描到最高列,轉(zhuǎn)KND RL A; 循環(huán)右移一位循環(huán)右移一位 MOV R2, A AJMP LKEY4; 進行下一列掃描進行下一列掃描 KND: AJMP KEY; 掃描完畢,開始新的一輪掃描完畢,開始新的一輪 DELAY1: ; 延時子程序,略延時子程序,略 END9.3 MCS-51單片機與顯示器的接口技術(shù)單片機與顯示器的接口技術(shù) 一、一、 LED (Light Emitting Diode)顯示器結(jié)構(gòu)與原理)顯示器結(jié)構(gòu)與原理 LED顯示器的外形顯示器的外形七段七段LED字形碼如下表字形碼如下表 LED工作時需要一定
41、的工作電流,才能正常發(fā)光。單個工作時需要一定的工作電流,才能正常發(fā)光。單個LED實際上是一個壓降為實際上是一個壓降為1.82.2V的發(fā)光二極管。通常每個的發(fā)光二極管。通常每個段筆畫要串一個合適的電阻,使流過的電流為段筆畫要串一個合適的電阻,使流過的電流為1mA50mA。下圖為單個下圖為單個LED的驅(qū)動接口電路。的驅(qū)動接口電路。LED數(shù)碼管的顯示方式數(shù)碼管的顯示方式(1)靜態(tài)顯示方式)靜態(tài)顯示方式 (2)動態(tài)顯示方式)動態(tài)顯示方式.6 例題例題 設(shè)計設(shè)計6位共陰極顯示器與位共陰極顯示器與8155的接口電路,并寫出與之對應(yīng)的動態(tài)的接口電路,并寫出與之對應(yīng)的動態(tài)掃描顯示子程序。顯示數(shù)據(jù)緩存區(qū)在片內(nèi)掃
42、描顯示子程序。顯示數(shù)據(jù)緩存區(qū)在片內(nèi)RAM 79H7EH單元。單元。 .6二、二、 LED (Light Emitting Diode)顯示器接口舉例)顯示器接口舉例動態(tài)掃描子程序如下:動態(tài)掃描子程序如下: ORG 1000H DSP8155: MOV DPTR, #7F00H ;指向指向8155命令寄存器命令寄存器 MOV A, #00000011B; 設(shè)定設(shè)定PA口、口、PB口為基本輸出方式口為基本輸出方式 MOVX DPTR, A; 輸出命令字輸出命令字 DISP1:MOV R0, #7EH; 指向緩沖區(qū)末地址指向緩沖區(qū)末地址MOV A, #20H; 掃描字,掃描字,PA5為為1,從左至右
43、掃描,從左至右掃描 LOOP: MOV R2, A; 暫存掃描字暫存掃描字 MOV DPTR, #7F01H; 指向指向8155的的PA MOVX DPTR, A; 輸出位選碼輸出位選碼 MOV A, R0; 讀顯示緩沖區(qū)一字符讀顯示緩沖區(qū)一字符 MOV DPTR, #PTRN; 指向段數(shù)據(jù)表首地址指向段數(shù)據(jù)表首地址 MOVC A, A+DPTR; 查表,得段數(shù)據(jù)查表,得段數(shù)據(jù) MOV DPTR, #7F02H; 指向指向8155的的PB MOVX DPTR, A; 輸出段數(shù)據(jù)輸出段數(shù)據(jù) CALL D1MS; 延時延時1ms DEC R0; 調(diào)整指針調(diào)整指針 MOV A, R2; 讀回掃描讀回
44、掃描 CLR C ; 清進位標志清進位標志 RRC A ; 掃描字右移掃描字右移 JC PASS; 結(jié)束結(jié)束 AJMP LOOP ; 繼續(xù)顯示繼續(xù)顯示 PASS: RET ; 返回返回 D1MS: MOV R7, #02H; 延時延時1ms子程序子程序 DMS: MOV R6, #0FFH DJNZ R6, $ DJNZ R7, DMS RETPTRN: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H ; 段數(shù)據(jù)表段數(shù)據(jù)表 DB DB END9.4 MCS-51單片機鍵盤和顯示器接口設(shè)計實例單片機鍵盤和顯示器接口設(shè)計實例 一、一、 利用利用8155芯片實現(xiàn)鍵盤和顯示器接口芯片實現(xiàn)
45、鍵盤和顯示器接口1 1接口電路接口電路 下頁圖是一個典型實用的采用下頁圖是一個典型實用的采用8155并行擴展接口構(gòu)成的鍵并行擴展接口構(gòu)成的鍵盤顯示電路,圖中只設(shè)置了盤顯示電路,圖中只設(shè)置了32個鍵,如果增加個鍵,如果增加PC口線,可以口線,可以增加按鍵,最多可達增加按鍵,最多可達48個鍵。個鍵。LED顯示器采用共陰極,段選碼顯示器采用共陰極,段選碼由由8155 PB口提供,位選碼由口提供,位選碼由PA口提供。鍵盤的列輸入由口提供。鍵盤的列輸入由PA口口提供,行輸出由提供,行輸出由PC0PC3提供,提供,8155的的RAM地址為地址為7E00H7EFFH,I/O地址為地址為7F00H7F05H。
46、圖中的。圖中的8155也可以用也可以用8255A來替代。來替代。 2 2軟件設(shè)計軟件設(shè)計 由于鍵盤與顯示設(shè)計成一個接口電路,因此在軟件中合并由于鍵盤與顯示設(shè)計成一個接口電路,因此在軟件中合并考慮鍵盤查詢與動態(tài)顯示,鍵盤消抖的延時子程序用顯示程序考慮鍵盤查詢與動態(tài)顯示,鍵盤消抖的延時子程序用顯示程序替代。替代。8155動態(tài)顯示子程序動態(tài)顯示子程序DSP8155參照動態(tài)顯示的例題。參照動態(tài)顯示的例題。 程序如下:程序如下: ORG 1000HKD1:MOV A, #0000 0011B; 8155初始化,初始化,PA,PB基本輸出方式,基本輸出方式,PC輸入方式輸入方式MOV DPTR, #7F0
47、0HMOVX DPTR, AKEY1:ACALL KS1; 調(diào)用判斷是否有鍵閉合子程序調(diào)用判斷是否有鍵閉合子程序JNZ LK1; 有鍵閉合轉(zhuǎn)有鍵閉合轉(zhuǎn)LK1ACALL DSP8155; 調(diào)用調(diào)用8155動態(tài)顯示子程序,延時動態(tài)顯示子程序,延時6msAJMP KEY1LK1:ACALL DSP8155ACALL DSP8155; 調(diào)用兩次顯示,延時調(diào)用兩次顯示,延時12msACALL KS1JNZ LK2ACALL DSP8155; 調(diào)用調(diào)用8155動態(tài)顯示子程序,延時動態(tài)顯示子程序,延時6msAJMP KEY1LK2:MOV R2, #0FEHMOV R4, #00HLK3:MOV DPTR,
48、 #7F01HMOV A, R2MOVX DPTR, AINC DPTRINC DPTRMOVX A, DPTRJB ACC.0, LONEMOV A, #00HAJMP LKP LONE:JB ACC.1, LTWOMOV A, #08HAJMP LKPLTWO:JB ACC.2, LTHRMOV A, #10HAJMP LKPLTHR:JB ACC.3, NEXTMOV A, #18H LKP:ADD A, R4PUSH ACC LK4:ACALL DSP8155ACALL KS1JNZ LK4POP ACCNEXT:INC R4MOV A, R2JNB ACC.7, KNDRL AMOV
49、 R2, AAJMP LK3 KND:AJMP KEY1 KS1:MOV DPTR, #7F01HMOV A, #00HMOVX DPTR, AINC DPTRINC DPTR MOVX A, DPTRCPL AANL A, #0FHRETEND例題例題設(shè)計設(shè)計8051通過通過8255A芯片擴展芯片擴展3位七段共陽極位七段共陽極LED顯示器。顯示器。初始化及顯示程序如下:初始化及顯示程序如下: ORG 1000H DSP8255: MOV DPTR, #7FFFH MOV A, #80H; 8255A工作方式設(shè)置工作方式設(shè)置 MOVX DPTR, A; 工作方式字送工作方式字送8255A控制口
50、控制口 解:解:接口電路如下頁圖所示,接口電路如下頁圖所示,8255A與與8051的接口略。在程序的接口略。在程序中將相應(yīng)的字形碼寫入中將相應(yīng)的字形碼寫入8255A的的PA, PB, PC口,顯示器就可以顯口,顯示器就可以顯示出示出3位字符。位字符。 8255A的初始化設(shè)定為的初始化設(shè)定為PA, PB, PC為基本為基本I/O輸出方式,輸出方式,待顯示的數(shù)據(jù)存放在內(nèi)部待顯示的數(shù)據(jù)存放在內(nèi)部RAM 的的40H42H單元,數(shù)據(jù)格式為單元,數(shù)據(jù)格式為非壓縮非壓縮BCD碼。碼。 MOV R0, #40H ; 顯示數(shù)據(jù)起始地址顯示數(shù)據(jù)起始地址 MOV R3, #03H; 待顯示數(shù)據(jù)個數(shù)待顯示數(shù)據(jù)個數(shù) M
51、OV DPTR, #7FFCH ; 第一個數(shù)據(jù)在第一個數(shù)據(jù)在PA口顯示口顯示 LOOP : MOV A, R0; 取出第一個待顯示數(shù)據(jù)取出第一個待顯示數(shù)據(jù) ADD A, #06H ; 加上偏移量,查表指令到表加上偏移量,查表指令到表TAB 有有6個字節(jié)個字節(jié) MOVC A, A+PC; 查表取出字形碼查表取出字形碼 MOVX DPTR, A; 字形碼送字形碼送8255A端口顯示端口顯示 INC R0; 指向下一個數(shù)據(jù)存儲位置指向下一個數(shù)據(jù)存儲位置 INC DPTR; 指向下一個七段數(shù)碼顯示器指向下一個七段數(shù)碼顯示器 DJNZ R3, LOOP; 未顯示結(jié)束,返回繼續(xù)未顯示結(jié)束,返回繼續(xù) RET TAB: DB 0C0H, 0F9H, 0A4H, 0B0H; 0, 1, 2, 3 字形碼表字形碼表 DB 99H, 92H, 82H, 0F8H; 4, 5, 6, 7 DB 80H, 90H, 88H, 83H; 8, 9, A, b DB 0C6H, 0A1H, 86H, 8EH ; C, d, E, F END
- 溫馨提示:
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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習題含答案
- 2煤礦爆破工考試復(fù)習題含答案
- 1 各種煤礦安全考試試題含答案