并行接口精品課件_第1頁
并行接口精品課件_第2頁
并行接口精品課件_第3頁
并行接口精品課件_第4頁
并行接口精品課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、并行接口第1頁,共51頁,2022年,5月20日,7點41分,星期三單片機的并行接口P0P3 POP3端口的功能和內(nèi)部結(jié)構(gòu) POP3端口的編程 用并行口設計LED數(shù)碼顯示和鍵盤電路 并行接口小結(jié)MCS-51單片機的中斷系統(tǒng) 中斷的基本概念 中斷的系統(tǒng)結(jié)構(gòu) 中斷的響應過程 中斷的的應用編程小結(jié)內(nèi)容提要第2頁,共51頁,2022年,5月20日,7點41分,星期三5.1單片機的并行接口接口P0P3 計算機對外設進行數(shù)據(jù)操作時,外設的數(shù)據(jù)是不能直接連到CPU的數(shù)據(jù)線上的,必須進過接口。這是由于CPU的數(shù)據(jù)線是外設或存儲器和CPU進行數(shù)據(jù)傳輸?shù)奈ㄒ还餐ǖ溃瑸榱耸箶?shù)據(jù)線的使用對象不產(chǎn)生使用總線的沖突,以

2、及協(xié)調(diào)傳輸速度,CPU和外設之間必須有接口電路,接口起著緩沖、鎖存數(shù)據(jù)、地址譯碼、信息格式轉(zhuǎn)換等功能第3頁,共51頁,2022年,5月20日,7點41分,星期三一、I/O端口的結(jié)構(gòu)共有4個8位雙向I/O口,共32口線。每位均有自己的鎖存器(SFR),輸出驅(qū)動器和輸入緩沖器。第4頁,共51頁,2022年,5月20日,7點41分,星期三多路開關(guān)功能:用于控制選通I/O方式還是地址/數(shù)據(jù)輸出方式方式控制:由內(nèi)部控制信號產(chǎn)生輸入鎖存器兩個輸入緩沖器(BUF1和BUF2)推拉式I/O驅(qū)動器1. P0口位圖內(nèi)部結(jié)構(gòu)BUF1BUF25、P0R2為讀引腳信號,執(zhí)行“MOV A,P0”時該信號有效6、讀引腳(端

3、口)時,輸出鎖存器應為“1”說明:1、當控制信號為0時,P0口做雙向I/O口,為漏極開路(三態(tài))2、控制信號為1時,P0口為地址/數(shù)據(jù)復用總線(用于口擴展)3、P0W為端口輸出寫信號,用于鎖存輸出狀態(tài)4、P0R1為讀鎖存器信號,執(zhí)行“ANL P0,#0FH”時該信號有效QQDCVcc控制AD0P0R1 P0R2D0P0W圖1、P0口內(nèi)部結(jié)構(gòu)讀鎖存器讀引腳鎖存器內(nèi)部總線寫鎖存器地址/數(shù)據(jù)P00多路開關(guān)10bacdT1T2ABC第5頁,共51頁,2022年,5月20日,7點41分,星期三2. P1口內(nèi)部結(jié)構(gòu)P1口內(nèi)部結(jié)構(gòu)如圖2所示輸出部分有內(nèi)部上拉電阻R*約為20K。其他部分與P0端口使用相類似(

4、讀引腳時先寫入1)。寫數(shù)據(jù)讀端口T1第6頁,共51頁,2022年,5月20日,7點41分,星期三 P1.0 T2引腳,定時/計數(shù)器2外部計數(shù)脈沖輸入 P1.1 T2EX引腳,定時/計數(shù)器2觸發(fā)和方向控制 P1.5 MOSI引腳,在系統(tǒng)編程數(shù)據(jù)輸入 P1.6 MISO引腳,在系統(tǒng)編程數(shù)據(jù)輸出 P1.7 SCK引腳,在系統(tǒng)編程時鐘輸入第7頁,共51頁,2022年,5月20日,7點41分,星期三3.P2口 內(nèi)部上拉電阻的8位準雙向并行I/O口,P2口的位結(jié)構(gòu)比P1多了一個轉(zhuǎn)換控制部分,當P2口作通用I/O口時,多路開關(guān)MUX倒向左;01ab第8頁,共51頁,2022年,5月20日,7點41分,星期三

5、 4.P3口 P3口為準雙功能I/O口,內(nèi)部結(jié)構(gòu)中增加了第二輸入/輸出功能。abc第9頁,共51頁,2022年,5月20日,7點41分,星期三RD (外部數(shù)據(jù)存儲器讀選通信號輸入) P3.7 WR (外部數(shù)據(jù)存儲器寫選通信號輸入)P3.6 T1 (定時器1外部計數(shù)脈沖輸入)P3.5 T0 (定時器0外部計數(shù)脈沖輸入)P3.4 P3.3 P3.2 TXD (串行輸出線)P3.1 RXD (串行輸入線) P3.0 第 二 功 能 端口引腳 INT0(外部中斷0輸入線)INT1 (外部中斷1輸入線) 第10頁,共51頁,2022年,5月20日,7點41分,星期三歸納四個并行口使用的注意事項如下:1.

6、如果單片機內(nèi)部有程序存貯器,不需要擴展外部存貯器和I/O接口,單片機的四個口均可作I/O口使用。2.四個口在作輸入口使用時,均應先對其寫“1”,以避免誤讀。3.P0口作I/O口使用時應外接10K的上拉電阻,其它口則可不必。4.P2可某幾根線作地址使用時,剩下的線不能作I/O口線使用。5.P3口的某些口線作第二功能時,剩下的口線可以單獨作I/O口線使用。第11頁,共51頁,2022年,5月20日,7點41分,星期三負載能力P0口:每位輸出可驅(qū)動8個LS TTL電路;只在用作“地址/數(shù)據(jù)”總線是,才不需要外加上拉電阻,直接驅(qū)動MOS輸入。P1P3口:每位可驅(qū)動3個LS TTL電路,不需要外加提升電

7、阻,可驅(qū)動MOS輸入。第12頁,共51頁,2022年,5月20日,7點41分,星期三二、輸入/輸出指令1.input:MOVA,PxMOVRn,PxMOV Ri,PxMOVXA,RiMOVXA,DPTR產(chǎn)生RD信號第13頁,共51頁,2022年,5月20日,7點41分,星期三2.output:MOV Px, AMOV Px, RnMOV Px, RiMOV Px, #dataMOVX Ri, AMOVX DPTR, A3.接口到接口MOV P3,P1產(chǎn)生WR信號第14頁,共51頁,2022年,5月20日,7點41分,星期三4.讀修改寫指令對口鎖存器進行操作前3種指令是讀端口線指令,這里是讀鎖存

8、器內(nèi)容。ANLP1,ACPLP3.0ORLP2,AINCP2XRLP3,ADEC P1JBCP1.1,LOOPDJNZP3,LOOPMOVP1.1CCLRP1.1SETBP1.0第15頁,共51頁,2022年,5月20日,7點41分,星期三5.1.2 編程舉例 下面舉例說明端口的輸入、輸出功能,其他功能的應用實例在后面章節(jié)說明。例5-1.設計一電路,監(jiān)視某開關(guān)K,用發(fā)光二極管LED顯示開關(guān)狀態(tài),如果開關(guān)合上,LED 亮、 開關(guān)打開,LED熄滅。 分析:設計電路如圖5. 2如示。開關(guān)接在P1.1口線,LED接P1.0口線,當開關(guān)斷開時,P1.1為+5V,對應數(shù)字量為“1”,開 關(guān)合上時P1.1電

9、平為0V,對應數(shù)字量為“0”,這樣就可以用JB指令對開關(guān)狀態(tài)進行檢測 。第16頁,共51頁,2022年,5月20日,7點41分,星期三 LED正偏時才能發(fā)亮,按電路接法,當P1.0輸出“1”,LED正偏而發(fā)亮,當P1.0 輸出“0” ,LED 的兩端電壓為 0 而熄滅。 LED+5VVcc-EARST10uF 1KP1.089S51P1.11K30P30PXTAL1XTAL2GND89C51+5VVcc-EARST10uF 1KP1.089S51+5VP1.11K30P30PXTAL1XTAL2GND89C51K第17頁,共51頁,2022年,5月20日,7點41分,星期三編程如下: CLR

10、P1.0 ;使發(fā)光二極管滅AGA:SETB P1.1 ;先對P1口寫入“1” JB P1.1,LIG ;開關(guān)開,轉(zhuǎn)LIG SETB P1.0 ;開關(guān)合上,二極管亮 SJMP AGALIG: CLR P1.0 ;開關(guān)開,二極管滅 SJMP AGA第18頁,共51頁,2022年,5月20日,7點41分,星期三+5VP1.0LED 在上述電路圖中二極管亮度不夠,按下面兩種電路接法,增加了驅(qū)動能力,二極管更亮些。接成灌電流形式:P1.0+5VLED1加驅(qū)動電路:第19頁,共51頁,2022年,5月20日,7點41分,星期三例5-2.在下圖中P1.4P1.7接四個發(fā)光二極管LED,P1.0P1.3接四個

11、開關(guān),編程將開關(guān)的狀態(tài)反映到發(fā)光二極管上。 111189C51P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7+5V+5V1K43304EA第20頁,共51頁,2022年,5月20日,7點41分,星期三 上述程序中每次讀開關(guān)之前,輸入位都先置“1”,保證了開關(guān)狀態(tài)的正確讀入。 編程如下: ORG 0000HABC: ORL P1, #0FH ;高四位滅,低四位送“1” MOV A, P1 ;讀P1口引腳開關(guān)狀態(tài)至A XRL P1,#0FH SWAP A ;低四位開關(guān)狀態(tài)轉(zhuǎn)換到高四位 MOV P1, A ;從P1口輸出 SJMP ABC ;循環(huán)第21頁,共51頁,2022年,5月

12、20日,7點41分,星期三例3.用P1.0輸出1KHz和500Hz的音頻信號驅(qū)動揚聲器,作報警信號,要求1KHz信號響100ms ,500Hz信號響200ms,交替進行,P1.7接一開關(guān)進行控制,當開關(guān)合上響報警信號,當開關(guān)斷開告警信號停止,編出程序。 分析:500Hz信號周期為2ms,信號電平為每1ms變反1次。1KHz的信號周期為1ms,信號電平 每500S變反1次,編一個延時500S子程序,延時1ms只需調(diào)用2次。用R2控制音響時間長短,A作音響頻率的交換控制的標志。A=FF時產(chǎn)生1KHz信號,A=0時產(chǎn)生500Hz信號。 第22頁,共51頁,2022年,5月20日,7點41分,星期三

13、P1.0 波 形 圖 1ms 1ms100個T (變反200次即200ms)。500S500S100個T (變反200次即100ms)。TT第23頁,共51頁,2022年,5月20日,7點41分,星期三Y第24頁,共51頁,2022年,5月20日,7點41分,星期三 ORG 0000H CLR A ;A作1KHz,500Hz 轉(zhuǎn)換控制BEG: JB P1.7, ;檢測P1.7的開關(guān)狀態(tài) MOV R2, #200 ;開關(guān)閉合報警,R2控制音響時間DV: CPL P1.0 CJNE A, #0FFH, N1 ;AFFH,延時500S ACALL D500 ;A=FFH ; 延時1ms P1.0變反

14、N1: ACALL D500 DJNZ R2,DV CPL A SJMP BEGD500: MOV R7, #250 ;延時500 S子程序 DJNZ R7, RET END第25頁,共51頁,2022年,5月20日,7點41分,星期三5.1.3 用并行口設計LED數(shù)碼顯示器和鍵盤電路 鍵盤和顯示器是單片機應用系統(tǒng)中常用的輸入輸出裝置。LED數(shù)碼顯示器是常用的顯示器之一,下面介紹用單片機并行口設計LED數(shù)碼顯示電路和鍵盤電路的方法。 第26頁,共51頁,2022年,5月20日,7點41分,星期三用并行口設計LED顯示電路1. LED顯示器及其原理 LED有著顯示亮度高,響應速度快的特點,最常用

15、的是七段式LED顯示器,又稱數(shù)碼管。 七段LED顯示器內(nèi)部由七個條形發(fā)光二極管和一個小圓點發(fā)光二極管組成,根據(jù)各管的亮暗組合成字符。常見LED的管腳排列見圖4(a)。其中COM為公共點,根據(jù)內(nèi)部發(fā)光二極管的接線 形式,可分成共陰極型圖4(b)和共陽極型圖4(c)。 第27頁,共51頁,2022年,5月20日,7點41分,星期三(a)(b)(c)圖4abcdefgdpcdedp12345678910abfgcomcomabcefabcdefgdpcomcomdg第28頁,共51頁,2022年,5月20日,7點41分,星期三 LED數(shù)碼管的ga七個發(fā)光二極管因加正電壓而發(fā)亮,因加零電壓而不能發(fā)亮,

16、不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,顯然共陽極和共陰極的字形碼是不同的 ,其字形碼見下表。LED數(shù)碼管每段需1020ma的驅(qū)動電流,可用TTL或CMOS器件驅(qū)動。 字形碼的控制輸出可采用硬件譯碼方式,如采用BCD 7段譯碼/驅(qū)動器74LS48、74LS49、CD4511(共陰極)或74LS46、74LS47、CD4513(其陽極)也可用軟件查表方式輸出。 第29頁,共51頁,2022年,5月20日,7點41分,星期三顯示字符段 符 號十六進制代碼dpgfedcba共陰共陽0123456789ABCDEFHP0000000000000000000011111011110111

17、111000111011111011111010001010111111111011011011011110001101111111110100001111100111100100011011011111101011113FH06H5BH4FH66H6DH7DH07H7FH6FH77H7CH39H5EH79H71H76HF3HC0F9A4B0999282F880908883C6A18684FFBF第30頁,共51頁,2022年,5月20日,7點41分,星期三2.LED數(shù)碼管的顯示 數(shù)碼管的顯示有靜態(tài)顯示和動態(tài)顯示。靜態(tài)顯示每一位都用各自的8位輸出口控制,在顯示某字段時,相應的斷恒定地發(fā)光或不發(fā)

18、光。特點:編程簡單,占用接口多,如果PO口和P2口要用作數(shù)據(jù)線和地址線,僅用單片機的并行口就只能接二個數(shù)碼管。改進方法:采用串入并出移位寄存器(如74LS164)擴展I/0口, 使之靜態(tài)顯示. 動態(tài)顯示采用各數(shù)碼管循環(huán)輪流顯示的方法,當循環(huán)顯示頻率較高時,利用人眼的暫留特性 ,看不出閃爍顯示現(xiàn)象,這種顯示需要一個接口完成字形碼的輸出(字形選擇),另一接口完 成各數(shù)碼管的輪流點亮(數(shù)位選擇)。第31頁,共51頁,2022年,5月20日,7點41分,星期三例4-2利用AT89S51單片機的P0端口的P0.0P0.7連接到一個共陰數(shù)碼管的ah的筆段上,數(shù)碼管的公共端接地。在數(shù)碼管上循環(huán)顯示09數(shù)字,

19、時間間隔0.2秒。 第32頁,共51頁,2022年,5月20日,7點41分,星期三硬件設計:P0.0/AD0與a相連,P0.1/AD1與b相連,P0.2/AD2與c相連,P0.7/AD7與h相連。 由于顯示的數(shù)字09的字形碼沒有規(guī)律可循,只能采用查表的方式來完成我們所需的要求了。這樣我們按著數(shù)字09的順序,把每個數(shù)字的筆段代碼按順序排好!建立的表格如下所示:TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH 第33頁,共51頁,2022年,5月20日,7點41分,星期三第34頁,共51頁,2022年,5月20日,7點41分,星期三匯編程序 ORG 0S

20、TART:MOV R1,#00HNEXT:MOV A,R1MOV DPTR,#TABLEMOVC A,A+DPTRMOV P0,ALCALL DELAYINC R1CJNE R1,#10,NEXTLJMP STARTDELAY:MOV R5,#20D2:MOV R6,#20D1:MOV R7,#248DJNZ R7,$DJNZ R6,D1DJNZ R5,D2RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND第35頁,共51頁,2022年,5月20日,7點41分,星期三C語言#include unsigned char code tabl

21、e=0 x3f,0 x06,0 x5b,0 x4f,0 x66, 0 x6d,0 x7d,0 x07,0 x7f,0 x6f;unsigned char dispcount;void delay02s(void) unsigned char i,j,k; for(i=20;i0;i-) for(j=20;j0;j-) for(k=248;k0;k-);void main(void) while(1) for(dispcount=0;dispcount10;dispcount+) P0=tabledispcount; delay02s(); 第36頁,共51頁,2022年,5月20日,7點41分

22、,星期三例4-3 圖5是接有五個共陰極數(shù)碼管的動態(tài)顯示接口電路,用74LS373接成直通的方式作驅(qū)動 電路,陰極用非門74LS04反相門驅(qū)動,字形選擇由P1口提供,位選擇由P3口控制。 當P3.0P3.4輪流輸出1時,五個數(shù)碼管輪流顯示。P1.7接開關(guān),當開關(guān)打向位置“1”時, 顯示“12345”字樣,當開關(guān)打向“2”時,顯示“HELLO”字樣,程序清單如下: 第37頁,共51頁,2022年,5月20日,7點41分,星期三12第38頁,共51頁,2022年,5月20日,7點41分,星期三(1)動態(tài)掃描的方法采用各數(shù)碼管循環(huán)輪流顯示的方法,當循環(huán)顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示

23、現(xiàn)象,這種顯示需要一個接口完成字型碼的輸出,另一接口完成各數(shù)碼管輪流點亮(數(shù)位選擇)。(2)對于顯示的字型碼數(shù)據(jù),我們采用查表方法來完成。第39頁,共51頁,2022年,5月20日,7點41分,星期三開始K1按鍵識別成功否?置顯示“12345”字形碼首地址置顯示“HELLO”字形碼首地址置字形碼偏移量和位選代碼查表并送出顯示延時2ms,并指向下一個偏移量5個數(shù)碼管顯示完否?YN第40頁,共51頁,2022年,5月20日,7點41分,星期三 用匯編語言編程 ORG 0000H MOV P3,#0 ;清顯示TEST:SETB P1.7 JB P1.7,DIR1 ;檢測開關(guān) MOV DPTR,#TA

24、B 1 ; 開關(guān)置于1,12345字形表頭地址 SJMP DIRDIR1: MOV DPTR,#TAB2 ; 開關(guān)置于2,“HELLO”字形表頭DIR: MOV R0,#0 ;R0存字形表偏移量 MOV R1,#01 ;R1置數(shù)碼表位選代碼NEXT:MOV A,R0 MOVC A,A+DPTR ; 查字形碼表1 MOV P1,A ;送P1口輸出 第41頁,共51頁,2022年,5月20日,7點41分,星期三 MOV A,R1 MOV P3,A ;輸出位選碼 ACALL DAY ;延時 INC R0 ;指向下一位字形 RL A ;指向下一位 MOV R1,A CJNE R1,#20H,NEXT

25、;五個 數(shù)碼管顯示完? SJMP TESTDAY:MOV R6,#20 ; 延時20ms子程序DL2: MOV R7,#7DHDL1: NOP NOP DJNZ R7,DL1 DJNZ R6,DL2 RETTAB1:db 06H,5BH,4FH,66H,6DH ; “15”的字形碼TAB2:db 78H,79H,38H,38H,3FH ; “HELLO”的字形碼 END第42頁,共51頁,2022年,5月20日,7點41分,星期三 用C語言編程 #include #include unsigned char code table1=0 x06,0 x5b,0 x4f,0 x66,0 x6d;u

26、nsigned char code table2=0 x78,0 x79,0 x38,0 x38,0 x3f;unsigned char i;unsigned char a,b;unsigned char temp;void main(void) while(1) temp=0 x01; for(i=0;i5;i+) if(P1_7=1) P0=table1i; else P0=table2i; P3=temp;temp=temp0;a-) for(b=0 x7d;b0;b-) NOP; NOP; 第43頁,共51頁,2022年,5月20日,7點41分,星期三12第44頁,共51頁,2022年

27、,5月20日,7點41分,星期三(3)按鍵識別其實,作為一個按鍵從沒有按下到按下以及釋放是一個完整的過程,也就是說,當我們按下一個按鍵時,總希望某個命令只執(zhí)行一次,而在按鍵按下的過程中,不要有干擾進來,因為,在按下的過程中,一旦有干擾過來,可能造成誤觸發(fā)過程,這并不是我們所想要的。因此在按鍵按下的時候,要把我們手上的干擾信號以及按鍵的機械接觸等干擾信號給濾除掉,一般情況下,我們可以采用電容來濾除掉這些干擾信號,但實際上,會增加硬件成本及硬件電路的體積,這是我們不希望,總得有個辦法解決這個問題,因此我們可以采用軟件濾波的方法去除這些干擾信號,一般情況下,一個按鍵按下的時候,總是在按下的時刻存在著

28、一定的干擾信號,按下之后就基本上進入了穩(wěn)定的狀態(tài)。具體的一個按鍵從按下到釋放的全過程的信號圖如上圖所示第45頁,共51頁,2022年,5月20日,7點41分,星期三從圖中可以看出,我們在程序設計時,從按鍵被識別按下之后,延時5ms以上,從而避開了干擾信號區(qū)域,我們再來檢測一次,看按鍵是否真得已經(jīng)按下,若真得已經(jīng)按下,這時肯定輸出為低電平,若這時檢測到的是高電平,證明剛才是由于干擾信號引起的誤觸發(fā),CPU就認為是誤觸發(fā)信號而舍棄這次的按鍵識別過程。從而提高了系統(tǒng)的可靠性。第46頁,共51頁,2022年,5月20日,7點41分,星期三第47頁,共51頁,2022年,5月20日,7點41分,星期三例4-4 數(shù)碼管靜態(tài)顯示,利用74LS164驅(qū)動電路顯示099的數(shù)。第48頁,共51頁,2022年,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論