第4章IO及其應用舉例_第1頁
第4章IO及其應用舉例_第2頁
第4章IO及其應用舉例_第3頁
第4章IO及其應用舉例_第4頁
第4章IO及其應用舉例_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

“十二五”職業(yè)教育國家規(guī)劃教材單片機原理及接口技術(第2版)本章內(nèi)容SingleChipMicrocomputer4.1I/O口結構與負載能力4.1.1I/O口結構與工作原理4.1.2I/O口負載能力4.2實訓4:I/O的簡單應用4.2.1單片機控制數(shù)碼管靜態(tài)顯示4.2.2單片機用開關控制的LED顯示4.2.3單片機用開關控制數(shù)碼管靜態(tài)顯示4.3單片機與矩陣式鍵盤的接口技術4.3.1.基礎知識4.3.2接口電路設計4.3.3.接口程序設計與仿真4.3.4運行與思考4.4實訓5:I/O口應用4.4.1單片機與LED數(shù)碼管的動態(tài)顯示4.4.2單片機與LED數(shù)碼管的動態(tài)顯示PROTEUS仿真4.4.3編程器的使用4.4.4制作實訓及思考第

4章

I/O及其應用舉例

4.1I/O口結構與負載能力

AT89C51單片機有4個并行雙向8位輸入/輸出口,即I/O口P0~P3。每個口都有鎖存器、輸出驅動器和輸入緩沖器,但結構有差異,功能與用途各有異同。每個I/O口可以進行“字節(jié)”輸入/輸出,也可單獨進行“位”輸入/輸出。對各I/O進行讀、寫操作,即可實現(xiàn)輸入、輸出功能。每個I/O口8個位是相同的,所以每個I/O口的結構與工作原理均以位結構進行說明。每個口都有一定的負載能力,不能超過每個引腳的最大電流。4.1.1I/O口結構與工作原理1P0口邏輯結構

P0口地址為80H,位地址為80H-87H。 既可做一般I/O口,又可作地址/數(shù)據(jù)總線,某一位的內(nèi)部結構如下圖2P1口邏輯結構

P1口地址為90H,位地址為90H-97H。只能作為通用數(shù)據(jù)I/O口使用,電路邏輯如下圖:3P2口邏輯結構

P2口地址為A0H,位地址為A0H-A7H。 既可做通用I/O口,又可作系統(tǒng)高位地址線,某一位的內(nèi)部結構如下圖4P3口邏輯結構P3口地址為B0H,位地址為B0H-B7H。 雖然可做通用I/O口,但在實際應用中,它的第二功能信號更為重要,某一位的內(nèi)部結構如下圖4.1.2I/O口負載能力P0口的每一位以吸收電流方式可驅動8個LSTTL輸入(1個LSTTL輸入:高電平時為20uA,低電平時為0.36mA)。P1~P3口的每一位以吸收或提供電流方式驅動4個LSTTL輸入。在穩(wěn)定狀態(tài)的情況,IOL(引腳吸收電流)應嚴格限制如下。每個引腳上的最大電流IOL=10mA;P0端口8個引腳的最大電流∑IOL=26mA;P1、P2、P3端口8個引腳的最大電流∑IOL=15mA;所有輸出引腳上的IOL總和最大電流為∑IOL=71mA。4.2實訓4:I/O的簡單應用

4.2.1單片機控制數(shù)碼管靜態(tài)顯示數(shù)碼管的使用與發(fā)光二極管相同,根據(jù)其材料不同,正向壓降一般為1.5~2V,額定電流一般為10mA,最大電流一般為40mA。靜態(tài)顯示時取10mA為宜。動態(tài)掃描顯示時,可加大脈沖電流,但一般不要超過40mA。圖4-7數(shù)碼管的外形和引腳圖圖4-8共陰極、共陽極數(shù)碼管顯示字符共陽段碼共陰段碼顯示字符共陽段碼共陰段碼顯示字符共陽段碼共陰段碼0C03F5926DA88771F966827DB837C2A45B7F87CC6393B04F8807FDA15E499669906FE8679D7D6D5D4D3D2D1D0dpgfedcba七段數(shù)碼管靜態(tài)顯示

圖4-9七段數(shù)碼管靜態(tài)顯示原理圖ORG 00HSJMPSTARORG 30HSTAR: MOVP1,#0FFH;數(shù)碼管的8段LED全暗ST1:MOV R0,#0;顯示初值ST2: MOVA,R0 ACALLSEG7;根據(jù)顯示數(shù)字查顯示碼

MOVP1,A ;顯示碼送P1口顯示

ACALLDELAY;延時500ms ACALL DELAY;延時500ms INCR0 ;顯示數(shù)字加1 CJNER0,#10H,ST2;16個數(shù)沒顯示完轉ST2 JMPST1 ;16個數(shù)顯示完轉ST1,循環(huán)顯示DELAY:MOVR7,#250D1: MOVR6,#250;延時子程序,500msD2: NOP NOP NOP NOP NOP NOP DJNZR6,D2 DJNZR7,D1 RETSEG7: INCA;數(shù)字轉換為顯示碼

MOVCA,@A+PC RET DB圖4-10數(shù)碼管靜態(tài)顯示流程圖結束NOSTAR:關顯示ST1:賦初值(R0)=0ST2:(R0)→(A)調顯示碼SEG7,段碼→P1顯示(R0)++=10H?調延時:DELAYYES開始0C0H,0F9H,0A4H,0B0H;0~3的共陽型顯示碼DB99H,92H,82H,0F8H;4~7的共陽型顯示碼DB80H,90H,88H,83H ;8~B的共陽型顯示碼DBC6H,0A1H,86H,8EH;C~F的共陽型顯示碼END4.2.2單片機用開關控制的LED顯示將接在P1口的撥動開關輸入狀態(tài)通過單片機輸出在P2口上,用LED發(fā)光管表示出來。P1.0~P1.7上的8個開關1~8輸入對應于輸出P2.0~P2.7。若開關1打開,LED0亮;開關2打開,LED1亮……開關8打開,LED7亮

圖4-12單片機用開關控制LED顯示的電路原理圖將接在P1口的撥動開關輸入狀態(tài)通過單片機輸出在P2口上,用LED發(fā)光管表示出來。P1.0~P1.7上的8個開關1~8輸入對應于輸出P2.0~P2.7。若開關1打開,LED0亮;開關2打開,LED1亮……開關8打開,LED7亮

ORG0000HSTAR:MOVP1,#0FFH;設置P1口為輸入MOVP2,#0FFH;P2口上的LED全暗ST1:MOVA,P1;從P1口讀入MOVP2,A ;送P2口顯示SJMPST1 ;返回ST1,循環(huán)END圖4-13開關控制LED顯示流程圖開始STAR:FFH→(P2),關LEDSt1:從P1讀入數(shù)據(jù):(P1)→(A)(A)送P2口輸出(A)→P2FFH→(P1),設置P1口為輸入4.2.3單片機用開關控制數(shù)碼管靜態(tài)顯示例如只撥開關1、2、4接地,則數(shù)碼管顯4。圖4-15開關控制數(shù)碼管顯示電路原理圖(1)程序設計ORG0000HSJMPSTARORG 30HSTAR:MOVP1,#0FFH;設置P1口為輸入MOV P2,#0FFH ;P2口上數(shù)碼管暗ST1: MOV A,P1 ;讀入P1口狀態(tài)ANL A,#0FH ;屏蔽P1口高四位ACALLSEG7 ;調數(shù)碼管顯示碼MOVP2,A ;顯示碼送P2口顯示SJMPST1 ;轉ST1循環(huán)SEG7:INC A;數(shù)字轉換為顯示碼MOVCA,@A+PCRETDB0C0H,0F9H,0A4H,0B0H;0~3的共陽型顯示碼DB99H,92H,82H,0F8H;4~7的共陽型顯示碼DB80H,90H,88H,83H ;8~B的共陽型顯示碼DB0C6H,0A1H,86H,8EH;C~F的共陽型顯示碼ENDSTAR:FFH→(P2),關顯示St1:從P1讀入數(shù)據(jù):(P1)→(A)(A)&0FHFFH→(P1),設置P1口為輸入調用顯示段碼開始段碼送P2口顯示(A)→(P2)圖4-16開關控制數(shù)碼管流程圖4.3單片機與矩陣式鍵盤的接口技術按鍵的特點及輸入原理獨立式按鍵矩陣式按鍵按鍵的特點及輸入原理按鍵的分類:觸點式:機械;無觸點式:電氣鍵輸入原理:

通過按鍵的接通與斷開,產(chǎn)生兩種相反的邏輯狀態(tài)低電平“0”與高電平“1”。鍵功能的實現(xiàn):對于一組鍵或一個鍵盤,需通過接口電路與單片機相連??刹捎貌樵兓蛑袛喾绞綔y試有無鍵按下,再確定是哪一個鍵按下,將該鍵號送入累加器ACC,然后判斷是數(shù)字鍵還是功能鍵,若是數(shù)字鍵,則將鍵號對應的數(shù)字送入相關輸入緩沖區(qū);若是功能鍵,則通過跳轉指令轉入執(zhí)行該鍵的功能程序,執(zhí)行完后再返回主程序。

鍵盤接口需要解決的問題是否有鍵按下按鍵識別:鍵抖動及消除:機械按鍵抖動時間在5ms~10ms之間硬件方案——雙穩(wěn)態(tài)去抖電路軟件方案——延時10ms~20ms后再次判斷消除方法:求鍵號獨立式按鍵接口電路:特點:一線一鍵,按鍵識別(編程)簡單;但占用較多口線,適合8鍵以下使用。例1:用P1口檢測三個按鍵的狀態(tài)并完成相應的功能解:資源分配:用P1口的低3位檢測3個按鍵的輸入,為1則表示按鍵沒有按下,為0則表示相應按鍵被按下。流程圖:ORG0000HKB:MOVP1,#0FFHMOVA,P1CPLAANLA,#0FHJZKBLCALLD10MSMOVA,P1CPLAANLA,#0FHJZKBCJNEA,#01H,KB01LCALLPGM1SJMPKBKB01:CJNEA,#02H,KB02LCALLPGM2SJMPKBKB02:CJNEA,#04H,KBLCALLPGM3SJMPKBEND編程:按三個按鍵中的任一鍵都對應一個特定功能。若判斷鍵釋放應如何修改?矩陣式按鍵關鍵:如何判斷鍵號?3210476511109815141312+5VP1.4P1.3P1.0MCS-51P1.7P1.6P1.5P1.2P1.1接口電路:特點:按鍵識別應采用掃描法或線路反轉法編程較為復雜,節(jié)省口資源,8鍵以上使用當點擊矩陣式鍵盤上某鍵時,數(shù)碼管將顯示該按鍵值,直到有新的不同的按鍵輸入才更新顯示。

圖4-20矩陣式鍵盤接口電路原理圖(1)反轉讀鍵法 采用反轉讀鍵盤法,行、列輪流作為輸入線。其電路原理如圖4-20中所示。第一步:先置行線p2.0~P2.3為輸入線,列線P2.4~P2.7為輸出線,且輸出為0。相應的I/O口的編程數(shù)據(jù)為0FH。若讀入低四位的數(shù)據(jù)不等于F,則表明有鍵按下,保存低四位數(shù)據(jù)。其中為電平“0”的位對應的是被按下鍵的行位置。第二步:設置輸入、輸出口對換,行線p2.0~P2.3為輸出線,且輸出為0,列線P2.4~P2.7為輸入線,I/O口編程數(shù)據(jù)為F0H。若讀入高四位數(shù)據(jù)不等于F,即可確認按下的鍵。讀入高四位數(shù)據(jù)中為0的位為列位置。保存高四位數(shù)據(jù)。將兩次讀數(shù)值組合,便得按鍵碼。(2)掃描讀鍵法1)先送1110到行線:P2.3~P2.0=1110B,再從列線P2.7~P2.4讀入數(shù)據(jù)。若有按鍵,則中必有一位=0,如按“3”鍵,則讀入P2.7~P2.4=0111B;同理按“1”鍵,讀入數(shù)據(jù)為1101B。2)第一行,接著送出P2.3~P2.0=1101B掃描第二行,以此類推。P2.3~P2.0變化為1110B→1101B→1011B→0111B→1110B循環(huán)進行。各按鍵的掃描碼列表如表4-4所示。3)由于掃描碼不易讓人聯(lián)想按鍵,因此須將掃描碼用程序轉換成按鍵碼。4)顯示按鍵情況。圖4-20中設計了數(shù)碼顯示管。使得按“0”顯示0,按“1”顯示1……。輸入輸出按鍵P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0011101110111011110210111110301111110411101101511011101610111101701111101811101011911011011A10111011B01111011C11100111D11010111E10110111F01110111按鍵識別——掃描法

流程:

當?shù)?列處于低電平時,逐行查找是否有行線變低,若有,則第0列與該行的交叉點按鍵按下;若無,則表示第0列無鍵按下,再讓下一列處在低電平,依此循環(huán),這種方式稱為鍵盤掃描。

鍵號=行首鍵號(0、4、8、12)+列號(0、1、2、3)

原理:

在某一時刻只讓一條列線處于低電平,其余列線均處于高電平,則當這一列有鍵按下時,該鍵所在的行電平將會由高電平變?yōu)榈碗娖剑膳卸ㄔ摿邢鄳男杏墟I按下。例2:鍵盤掃描程序ORG 0SJMP STARORG 30HSTAR: ACALL DE100;調用延時KEY:MOVP2,#0FH;查鍵開始,行定義輸入,列定義輸出為0 MOV A,P2 ;讀入P2的值 CPL A ANL A,#0FH ;確保低四位 JZ KEY ;無鍵按下返回 MOV R5,A ;有鍵按下,暫存 MOV P2,#0F0H ;列定義輸入,行定義輸出為0

MOV A,P2 CPL A ANL A,#0F0H JZ KEY MOV R4,A ;暫存高四位輸入

LCALL DE10 ;消抖動

KEY1: MOV A,P2 ;等待鍵松開CPL A ANL A,#0F0H JNZ KEY1 ;按鍵沒松開,等待 LCALL DE10 MOV A,R4 ;取列值 ORL A,R5 ;與行值相或為組合鍵值 MOV B,A ;結果暫存于B中 MOV R1,#0 ;鍵值寄存器R3賦初值=0 MOV DPTR,#TAB ;取鍵碼表首址到DPTRVAL0: MOV A,R1 MOVC A,@A+DPTR ;查鍵碼表 CJNE A,B,VAL ;非當前按鍵碼,繼續(xù)查找 ACALL KEYV ;以按鍵碼查顯示碼 MOV P1,A ;查找到顯示碼送P1二極管顯示 SJMP KEY ;下一次按鍵輸入,循環(huán)VAL: INC R1 SJMP VAL0 TAB: DB 11H,21H,41H,81H ;組合鍵碼

DB 12H,22H,42H,82H DB 14H,24H,44H,84H DB 18H,28H,48H,88H KEYV:MOV A,R1 INC A MOVC A,@A+PC ;取顯示碼(即共陽段碼) RET DB0C0H,0F9H,0A4H,0B0H;共陽段碼0,1,2,3 DB99H,92H,82H,0F8H ;4,5,6,7 DB80H,90H,88H,83H ;8,9,A,B DB0C6H,0A1H,86H,8EH ;C,D,E,F(xiàn)DE100:MOV R6,#200 ;延時100msD1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RETDE10:MOV R6,#20;延時10msD2: MOV R7,#248 DJNZ R7,$ DJNZ R6,D2 RET END定時掃描方式定時掃描方式就是每隔一段時間對鍵盤掃描一次,它利用單片機內(nèi)部的定時器產(chǎn)生一定時間(例如10ms)的定時,當定時時間到就產(chǎn)生定時器溢出中斷。CPU響應中斷后對鍵盤進行掃描,并在有鍵按下時識別出該鍵,再執(zhí)行該鍵的功能程序。中斷掃描方式為提高CPU工作效率,可采用中斷掃描工作方式。其工作過程如下:當無鍵按下時,CPU處理自己的工作,當有鍵按下時,產(chǎn)生中斷請求,CPU轉去執(zhí)行鍵盤掃描子程序,并識別鍵號。4.4實訓5:I/O口應用

4.4.1單片機與LED數(shù)碼管的動態(tài)顯示圖4-22

數(shù)碼管動態(tài)顯示典型電路原理圖1.延時時間的估算延時可由人眼視覺暫留時間來估算。一般來

溫馨提示

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

評論

0/150

提交評論