第8章51單片機常用接口_第1頁
第8章51單片機常用接口_第2頁
第8章51單片機常用接口_第3頁
第8章51單片機常用接口_第4頁
第8章51單片機常用接口_第5頁
已閱讀5頁,還剩84頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第8章 51單片機常用接口第8章 51單片機常用接口主要內(nèi)容:本章介紹組成51單片機應(yīng)用系統(tǒng)的常見外部接口電路,主要包含存儲器擴展,I/O口擴展,數(shù)碼管接口和鍵盤接口。重點:數(shù)碼管、鍵盤和51單片機接口1第8章 51單片機常用接口2章 節(jié)8.1 51單片機的最小系統(tǒng)8.2 存儲器擴展8.3 輸入/輸出口擴展8.4 LED顯示器與51單片機接口8.5 鍵盤與51單片機的接口8.6 行程開關(guān)、晶閘管、繼電器與51單片機的接口第8章 51單片機常用接口8.1 MCS-51單片機的最小系統(tǒng)單片機的最小系統(tǒng) 所謂最小系統(tǒng),是指一個真正可用的單片機最小配置系統(tǒng)。對于單片機內(nèi)部資源已能滿足系統(tǒng)需要的,可直接

2、采用最小系統(tǒng)。MCS-51單片機根據(jù)片內(nèi)有無程序存儲器最小系統(tǒng)分兩種情況。 第8章 51單片機常用接口8.1.1 8051/8751的最小系統(tǒng)的最小系統(tǒng) X TA L 1 X TA L 2 8751 P 0 P 1 P 2 P 3 8051 R E S E T E A G N D +5V +5VV 8 8 8 8 第8章 51單片機常用接口5該最小系統(tǒng)的特點如下:(1)由于片外沒有擴展存儲器和外設(shè),P0、P1、P2、P3都可以作為用戶I/O接口使用。(2)片內(nèi)數(shù)據(jù)存儲器有128B,地址空間為00H7FH,沒有片外數(shù)據(jù)存儲器。(3)內(nèi)部有4KB的程序存儲器,地址空間為0000H0FFFH,沒有片

3、外程序存儲器, 應(yīng)接高電平。EA(4)可以使用兩個定時/計數(shù)器T0和T1,一個全雙工的串行通信接口,5個中斷源。第8章 51單片機常用接口8.1.2 8031的最小系的最小系統(tǒng)統(tǒng) ALE 8031 P0 EA PSEN G 74LS373 A0A7 D0D7 OE CE 高 8 位地址線 P2 A8A15 2764 第8章 51單片機常用接口7該最小系統(tǒng)的特點如下:(1)由于P0、P2在擴展程序存儲器時作為地址線和數(shù)據(jù)線,不能作為I/O線,因此,只有P1、P3作為用戶I/O接口使用。(2)片內(nèi)數(shù)據(jù)存儲器同樣有128B,地址空間為00H7FH,沒有片外數(shù)據(jù)存儲器。(3)內(nèi)部無程序存儲器,片外擴展

4、了程序存儲器,其地址空間隨芯片容量不同而不一樣。圖8.2中使用的是2764芯片,容量為8KB,地址空間為0000H1FFFH。由于片內(nèi)沒有程序存儲器,只能使用片外程序存儲器, 只能接低電平。(4)同樣可以使用兩個定時/計數(shù)器T0和T1,一個全雙工的串行通信接口,5個中斷源。EA第8章 51單片機常用接口8.2 存儲器擴展存儲器擴展8.2.1 半導(dǎo)體存儲器概述半導(dǎo)體存儲器概述1. 只讀存儲器(只讀存儲器(ROMRead Only Memory)第一類:第一類:MROM掩膜型掩膜型ROM 第二類:第二類:PROM可編程可編程ROM 第三類:第三類:EPROM可擦除的可擦除的PROM 第四類:第四類

5、:E2PROM電擦除的電擦除的PROM 第五類:第五類:Flash Memory快擦型存儲器快擦型存儲器 2. 隨機讀寫存儲器(隨機讀寫存儲器(RAMRandom Access Memory)第一類:靜態(tài)第一類:靜態(tài)RAMSRAM(Static RAM) 第二類:動態(tài)第二類:動態(tài)RAMDRAM(Dynamic RAM) 第三類:非易失性第三類:非易失性RAMNVRAM(Non Volative RAM) 第8章 51單片機常用接口3. 典型典型ROM芯片芯片2764第8章 51單片機常用接口10D7D0:8根數(shù)據(jù)線根數(shù)據(jù)線A12A0:13根地址線根地址線CE:片選信號片選信號OE:輸出允許信號

6、輸出允許信號PGM:編程控制信號編程控制信號Vpp:編程電壓編程電壓Vcc:工作電壓,接工作電壓,接+5V電源;電源;GND:地地引腳:引腳:第8章 51單片機常用接口4. 典型典型RAM芯片芯片6264第8章 51單片機常用接口12I/O0I/O7:8根根輸入輸出數(shù)據(jù)輸入輸出數(shù)據(jù)線線A12A0:13根地址線根地址線:片選信號片選信號OE:輸出允許信號,低電平有效。輸出允許信號,低電平有效。:寫允許信號,低電平有效。寫允許信號,低電平有效。CE2:片選信號:片選信號2Vcc:工作電壓,接工作電壓,接+5V電源;電源;GND:地地引腳:引腳:CE1WE第8章 51單片機常用接口8.2.2 存儲器

7、擴展的一般方法存儲器擴展的一般方法單片機三總線與存儲器芯片的三總線對應(yīng)連接單片機三總線與存儲器芯片的三總線對應(yīng)連接 1. 數(shù)據(jù)線的連接數(shù)據(jù)線的連接單片機的數(shù)據(jù)總線單片機的數(shù)據(jù)總線(P0.0P0.7)存儲器芯片的數(shù)據(jù)線存儲器芯片的數(shù)據(jù)線D0D7 2. 控制線的連接控制線的連接ROM: 輸出允許控制線輸出允許控制線 單片機單片機 PSENOE數(shù)據(jù)存儲器數(shù)據(jù)存儲器RAM: 單片機單片機 存儲器芯片存儲器芯片 RDWROEWE第8章 51單片機常用接口3. 地址線的連接地址線的連接存儲器芯片存儲器芯片單片機單片機地址總線地址總線(A0A13)地址地址 (A0A13)剩余地址總線譯碼剩余地址總線譯碼 片

8、選信號線片選信號線 CE譯碼有兩種方法:部分譯碼法和全譯碼法。譯碼有兩種方法:部分譯碼法和全譯碼法。 第8章 51單片機常用接口 A15 A14 0 A13 0 A12 1 A11 0 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 地址譯碼線 與存儲器芯片連接的地址線 則:A15=0時,該芯片的地址是00010000000000000001011111111111,即1000H17FFH。 A15=1時,該芯片的地址是10010000000000001001011111111111,即9000H97FFH。 第8章 51單片機常用接口164擴展存儲器所需芯片數(shù)目的確定擴展

9、存儲器所需芯片數(shù)目的確定若所選存儲器芯片的字長與單片機的字長一致,則只若所選存儲器芯片的字長與單片機的字長一致,則只需擴展容量。所需芯片數(shù)目按下式確定:需擴展容量。所需芯片數(shù)目按下式確定:系統(tǒng)擴展容量芯片數(shù)目=存儲器芯片容量若所選存儲器芯片字長與單片機字長不一致,則不僅若所選存儲器芯片字長與單片機字長不一致,則不僅需要擴展容量,還需要字擴展。所需芯片數(shù)目按下式確需要擴展容量,還需要字擴展。所需芯片數(shù)目按下式確定:定:系統(tǒng)擴展容量系統(tǒng)字長芯片數(shù)目=存儲器芯片容量存儲器芯片字長第8章 51單片機常用接口8.2.3 程序存儲器擴展程序存儲器擴展1. 單單片片程程序序存存儲儲器器的的擴擴展展 P2.6

10、 P2.4 P2.3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P2.7 P2.5 P0.0 ALE VCC 8031 PSEN EA VSS +5V A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D5 D4 D3 D2 D1 D0 OE D6 CE GND VFF +5V 8D 7D 6D 5D 4D 3D 2D 1D G OE 8Q 7Q 6Q 5Q 4Q 3Q 2Q 1Q VCC 74LS373 第8章 51單片機常用接口其8個重疊的地址范圍為:(1) 00000000000000000

11、001111111111111,即0000H1FFFH;(2) 00100000000000000011111111111111,即2000H3FFFH;(3) 01000000000000000101111111111111,即4000H5FFFH;(4) 01100000000000000111111111111111,即6000H7FFFH;(5) 10000000000000001001111111111111,即8000H9FFFH;(6) 10100000000000001011111111111111,即A000HBFFFH;(7) 11000000000000001101111

12、111111111,即C000HDFFFH;(8) 11100000000000001111111111111111,即E000HFFFFH。第8章 51單片機常用接口2. 多片程序存儲器的擴展多片程序存儲器的擴展 P2.6 P2.5 P2.4P2.0 ALE 8031 PSEN EA G P2.7 74LS373 OE A0A7 A8A12 CE D0D7 OE 2764(1) A0A7 A8A12 CE 2764(2) D0D7 OE P0 5 8 8 8 8 5 8 8 5 第8章 51單片機常用接口其兩片的地址空間分別為:第一片:0000000000000000000011111111

13、11111,即0000H1FFFH;001000000000000000011111111111111,即2000H3FFFH;010000000000000000101111111111111,即4000H5FFFH;011000000000000000111111111111111,即6000H7FFFH。第二片:100000000000000001001111111111111,即8000H9FFFH;101000000000000001011111111111111,即A000HBFFFH;110000000000000001101111111111111,即C000HDFFFH;11

14、1000000000000001111111111111111,即E000HFFFFH。第8章 51單片機常用接口 P2.6 P2.5 ALE 8031 PSEN EA P2.7 74LS373 OE A0A7 A8A12 CE D0D7 OE 2764(1) A0A7 A8A12 CE 2764(2) OE P0 5 8 8 8 8 5 8 8 5 D0D7 G 8 D0D7 OE 2764(3) A0A7 A8A12 CE 8 D0D7 OE CE A8A12 A0A7 2764(4) 8 5 8 5 VCC P2.4P2.0 74LS138 G C B A G1 G2G2Y3 Y2 Y1

15、 Y0 其地址空間分別是:000000000000000000001111111111111,即0000H1FFFH;001000000000000000011111111111111,即2000H3FFFH;010000000000000000101111111111111,即4000H5FFFH;011000000000000000111111111111111,即6000H7FFFH。第8章 51單片機常用接口8.2.4 數(shù)據(jù)存儲器擴展數(shù)據(jù)存儲器擴展 P2.6 P2.5 P2.4P2.0 ALE 8051 RD EA G P2.7 74LS373 OE A0A7 A8A12 CE1 D0

16、D7 OE 6264(1) A0A7 A8A12 CE1 6264(2) D0D7 OE P0 5 8 8 8 5 8 8 5 WR WE WE 8 8 CE2 CE2 VCC 若P2.7為低電平0,則兩片6264芯片的地址空間為:第一片:010000000000000000101111111111111,即4000H5FFFH;第二片:001000000000000000011111111111111,即2000H3FFFH。若P2.7為高電平1,則兩片6264芯片的地址空間為:第一片:110000000000000001101111111111111,即C000HDFFFH;第二片:101

17、000000000000001011111111111111,即A000HBFFFH。第8章 51單片機常用接口8.3 輸入輸入/輸出口擴展輸出口擴展8.3.1 簡單簡單I/O接口擴展接口擴展通常通過數(shù)據(jù)緩沖器、鎖存器來擴展簡單I/O接口。例如,74LS373、74LS244、74LS273、74LS245等芯片都可以作簡單I/O擴展。 74LS373引腳與內(nèi)部結(jié)構(gòu)圖 第8章 51單片機常用接口74LS244引腳與內(nèi)部結(jié)構(gòu)圖 第8章 51單片機常用接口用用74LS373和和74LS244擴展的并行擴展的并行I/O接口接口 D7D7D6D5D4D3D2D1D0D7D6D5D4D3D2D1D0D6

18、D5D4D3D2D1D0XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A122

19、5P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC11nFC21nFC31nFR1300OFFON123456789DSW1DIPSWC_81234567820191817161514139121011U3LED-BARGRAPH-REDD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373A02A14A26A38OE1Y018Y116Y214Y312U4:A74LS244A011A113A215A317OE19Y09Y17Y25Y33U4:B74LS244U5NORU6OR

20、第8章 51單片機常用接口如果要通過如果要通過L0L7發(fā)光二極管顯示發(fā)光二極管顯示K0K7開關(guān)的狀態(tài),開關(guān)的狀態(tài),則相應(yīng)的匯編程序為:則相應(yīng)的匯編程序為:匯編語言程序匯編語言程序ORG 0000HLJMP STARTORG 0030HSTART:MOV DPTR,#7FFFHMOVX A,DPTR ;讀讀74LS244擴展的輸入口擴展的輸入口MOVX DPTR,A ;輸出到輸出到74LS373擴展的輸出口擴展的輸出口SJMP STARTEND第8章 51單片機常用接口27C語言程序:語言程序:#include #include /定義絕對地址訪問定義絕對地址訪問#define uchar un

21、signed charvoid main(void)uchar i;while(1)i=XBYTE0 x7fff; /讀讀74LS244擴展的輸入口擴展的輸入口XBYTE0 x7fff=i;/輸出到輸出到74LS373擴展的輸出口擴展的輸出口 第8章 51單片機常用接口8.3.2 可編程可編程I/O接口擴展接口擴展(8255A)1. 8255A的結(jié)構(gòu)與功能的結(jié)構(gòu)與功能 數(shù)據(jù)總線 緩沖器 讀/寫控制 部件 RD WR A1 A0 RESECS B 組控 制部件 A 組控 制部件 A 組 端口 A A 組 端口 C B 組 端口 C B 組 端口 B A 組 B 組 PA7PA0 PC7PC4 P

22、C3PC0 PB7PB0 8 位內(nèi)部總線 雙向數(shù)據(jù)總線 第8章 51單片機常用接口3個可編程的并行I/O端口:PA口、PB口和PC口。 A口有3種工作方式:無條件I/O方式、選通I/O方式和 雙向選通I/O方式。B口有兩種工作方式:無條件I/O方式和選通I/O方式。 A1A0I/O操作00001讀A口寄存器內(nèi)容到數(shù)據(jù)總線00101讀B口寄存器內(nèi)容到數(shù)據(jù)總線01001讀C口寄存器內(nèi)容到數(shù)據(jù)總線00010數(shù)據(jù)總線上內(nèi)容寫到A口寄存器00110數(shù)據(jù)總線上內(nèi)容寫到B口寄存器01010數(shù)據(jù)總線上內(nèi)容寫到C口寄存器01110數(shù)據(jù)總線上內(nèi)容寫到控制口寄存器CSRDWR第8章 51單片機常用接口2. 8255

23、A的引腳信號的引腳信號 8255A 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 PA3 PA2 PA1 RD CS GND A1 A0 PC7 PC6 PC5 PC4 PC0 PC1 PC2 PC3 PB0 PB1 PB2 PA0 PA4 PA5 PA6 PA7 WR RESET D0 D1 D2 D3 D4 D5 D6 D7 VCC PB7 PB6 PB5 PB4 PB3 第8章 51單片機常用接口31引腳信號線。D

24、7D0:三態(tài)雙向數(shù)據(jù)線,與單片機的數(shù)據(jù)總線相連,用來傳送數(shù)據(jù)信息。 :片選信號線,低電平有效,用于選中8255A芯片。 :讀信號線,低電平有效,用于控制從8255A端口寄存器讀出信息。 :寫信號線,低電平有效,用于控制向8255A端口寄存器寫入信息。A1,A0:地址線,用來選擇8255A的內(nèi)部端口。PA7PA0:A口的8根I/O信號線,用于與外部設(shè)備連接。PB7PB0:B口的8根I/O信號線,用于與外部設(shè)備連接。PC7PC0:C口的8根I/O信號線,用于與外部設(shè)備連接。RESET:復(fù)位信號線。VCC:+5V電源線。GND:地信號線。CSRDWR第8章 51單片機常用接口3. 8255A的控制字

25、的控制字1)工作方式控制字工作方式控制字 端口 A 0:輸出 1:輸入 端口 C 高 4 位 0:輸出 1:輸入 端口 B 0:輸出 1:輸入 特征位 1 A 組工作方式位 00:方式 0 01:方式 1 1X:方式 2 B 組工作方式位 0:方式 0 1:方式 1 端口 C 低 4 位 0:輸出 1:輸入 D7 D6 D5 D4 D3 D2 D1 D0 第8章 51單片機常用接口2)C口按位置位口按位置位/復(fù)位控制字復(fù)位控制字 特征位 0 這 3 位不用 位選擇位 000:C 口 0 位 001:C 口 1 位 111:C 口 7 位 0:復(fù)位 1:置位 D7 D6 D5 D4 D3 D2

26、D1 D0 第8章 51單片機常用接口4. 8255A的工作方式的工作方式1)方式方式0 (1)具有兩個具有兩個8位端口位端口(A、B)和兩個和兩個4位端口位端口(C口的口的高高4位和位和C口的低口的低4位位)。(2)任何一個端口都可以設(shè)定為輸入或者輸出。任何一個端口都可以設(shè)定為輸入或者輸出。(3)每一個端口輸出時鎖存,而輸入時不鎖存。每一個端口輸出時鎖存,而輸入時不鎖存。 特點特點: 方式方式0輸入輸入/輸出時沒有專門的應(yīng)答信號,通常用于無輸出時沒有專門的應(yīng)答信號,通常用于無條件傳送。條件傳送。 2)方式方式1A口和口和B口作為數(shù)據(jù)口作為數(shù)據(jù)I/O口,口,C口用作口用作I/O的應(yīng)答信號。的應(yīng)

27、答信號。 第8章 51單片機常用接口(1)方式方式1輸入。輸入。 INTE & PC4 PC5 PC3 PC6、PC7 PA0PA7 STBA IBFA I/O INTRA B 口輸入 INTE & A 口輸入 PC2 PC1 PC0 8 8 IBFB STBB PB0PB7 INTRB :外設(shè)送給8255A的“輸入選通”信號 IBF:8255A送給外設(shè)的“輸入緩沖器滿”信號 INTR:8255A發(fā)送給CPU的“中斷請求”信號 INTE:8255A內(nèi)部為控制中斷而設(shè)置的“中斷允許”信號 STB第8章 51單片機常用接口(2)方式方式1輸出。輸出。 INTE & PC7

28、PC6 PC3 PC4、PC5 PA0PA7 ACKA OBFA I/O INTRA B 口輸出 INTE & A 口輸出 PC2 PC1 PC0 8 8 OBFB ACKB PB0PB7 INTRB 2 :8255A送給外設(shè)的“輸出緩沖器滿”信號 :外設(shè)送給8255A的“應(yīng)答”信號 INTR:8255A送給CPU的“中斷請求”信號 INTE:8255A內(nèi)部為控制中斷而設(shè)置的“中斷允許”信號 OBFACK第8章 51單片機常用接口3)方式方式2 & INTE1 INTE2 & 1 PC5 PC4 PC6 PC7 PC3 PA0PA7 ACKA OBFA INTRA ST

29、BA IBFA 第8章 51單片機常用接口5. 8255A與與MCS-51單片機的接口單片機的接口1)硬件接口硬件接口RSTD0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7RSTALEALEK0K1K2K3K4K5K6K0K7K1K2K3K4K5K6K7XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3

30、.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC11nFC21nFC31nFR1300OFFON123456789DSW1DIPSWC_81234567820191817161514139121011U3LED-BARGRAPH-REDD034D133D232D331D430D529D628D727RD5WR36A09A

31、18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710U28255AD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U474LS373第8章 51單片機常用接口8255A的的A口、口、B口、口、C口和控制口的地址分別是口和控制口的地址分別是7F00H、7F01H、7F02H和和7F03H (高(高8位地址線未用位地址線

32、未用的取的取1,低,低8位地址線未用的取位地址線未用的取0)。)。 2)軟件編程軟件編程A口接開關(guān)口接開關(guān)K0K7,B口接發(fā)光二極管口接發(fā)光二極管L0L7,要求,要求從從A口讀入開關(guān)狀態(tài)通過口讀入開關(guān)狀態(tài)通過B口顯示出來??陲@示出來。8255A的工作的工作方式控制字為方式控制字為1000 0010B(82H) 第8章 51單片機常用接口40匯編程序段:匯編程序段:ORG 0000HLJMP STARTORG 0030HSTART:MOV A,#82H;8255A初始化初始化,B口方式口方式0輸入,輸入,A口方式口方式0輸出輸出MOV DPTR,#7F03H;8255A控制口地址控制口地址MOV

33、X DPTR,A L1: MOV DPTR,#7F01H;8255A的的B口地址口地址MOVX A, DPTR;從從B口輸入口輸入MOV DPTR,#7F00H;8255A的的A口地址口地址MOVX DPTR,A;從從A口輸出口輸出SJMP L1END第8章 51單片機常用接口41C語言程序:語言程序:#include #include /定義絕對地址訪問定義絕對地址訪問#define uchar unsigned charvoid main(void) uchar i; XBYTE0 x7f03=0 x82; / 8255A初始化初始化,B口方式口方式0輸入,輸入,A口方式口方式0輸出輸出

34、while(1) i = XBYTE0 x7f01; /從從B口輸入口輸入XBYTE0 x7f00 = i; /從從A口輸出口輸出第8章 51單片機常用接口 a b c d e f g dp com a b c d e f g dp com a b c d e f g dp 1 0 9 8 7 6 1 2 3 4 5 g f com a b e d com c d p 外觀外觀共陰連接共陰連接共陽連接共陽連接顯示的基本原理:顯示的基本原理:1.公共端有效(選通公共端有效(選通LED顯示器)顯示器) 2.另一端送相應(yīng)的編碼(字段碼)另一端送相應(yīng)的編碼(字段碼)8.4 MCS-51單片機與單片機與

35、LED顯示器接口顯示器接口8.4.1 LED顯示器的基本結(jié)構(gòu)與原理顯示器的基本結(jié)構(gòu)與原理第8章 51單片機常用接口 dp g f e d c b a 8段發(fā)光管控制端與字節(jié)的關(guān)系。段發(fā)光管控制端與字節(jié)的關(guān)系。 0 0 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 1 0 1 1 0 1 1 3FH06H5BH第8章 51單片機常用接口顯示字符共陰極字段碼共陽極字段碼顯示字符共陰極字段碼共陽極字段碼03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99HP73H8CH56DH92HU3EHC1H67DH82HT3

36、1HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8FFH00HA77H88H“滅”00FFHB7CH83H第8章 51單片機常用接口8.4.2 LED數(shù)碼管顯示器使用的主要問題數(shù)碼管顯示器使用的主要問題1譯碼方式譯碼方式譯碼方式是指由顯示字符轉(zhuǎn)換得到對應(yīng)的字段碼的譯碼方式是指由顯示字符轉(zhuǎn)換得到對應(yīng)的字段碼的方式。對于方式。對于LED數(shù)碼管顯示器,通常的譯碼方式有數(shù)碼管顯示器,通常的譯碼方式有硬件譯碼方式和軟件譯碼方式兩種。硬件譯碼方式和軟件譯碼方式兩種。第8章 51單片機常用接口 4 鎖 存 器 地址 譯碼 和字 段碼 ROM 陣列 A B C D LE 5 6

37、 9 10 7 VSS VDD 8 16 a b c d e f g h+i VCR 11 12 13 14 15 1 2 3 4 共陰極一位十六進制數(shù)共陰極一位十六進制數(shù)7字段碼轉(zhuǎn)換芯片字段碼轉(zhuǎn)換芯片 MC14495 1)硬件譯碼方式)硬件譯碼方式第8章 51單片機常用接口472)軟件譯碼方式)軟件譯碼方式用MOVC A,A+DPTR構(gòu)造的查表程序:ORG 0200HCONVERT:MOV DPTR,#TAB ;DPTR指向表首地址MOV A,R2 ;轉(zhuǎn)換的數(shù)放于MOVC A, A+DPTR ;查表指令轉(zhuǎn)換MOV R2,ARETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7

38、DH,07HDB 7FH,67H,77H,7CH,39H,5EH,79H,71H ;顯示碼表軟件譯碼方式就是編寫軟件譯碼程序,通過譯碼程序來得到要顯示的字符的字段碼。譯碼程序通常為查表程序,軟件開銷較大,但硬件線路簡單。第8章 51單片機常用接口2LED數(shù)碼管的顯示方式數(shù)碼管的顯示方式-靜態(tài)顯示靜態(tài)顯示和和動態(tài)顯示動態(tài)顯示1)靜態(tài)顯示方式)靜態(tài)顯示方式 a b c d e f g dp I/O(1) a b c d e f g dp I/O(2) u公共端直接接地公共端直接接地(共陰極共陰極)或接電源或接電源(共陽極共陽極) u每個數(shù)碼管的每個數(shù)碼管的段選線與一組段選線與一組I/O接口線相連。

39、接口線相連。 特點:特點: u每個數(shù)碼管一每個數(shù)碼管一直顯示。直顯示。第8章 51單片機常用接口2)動態(tài)顯示方式)動態(tài)顯示方式 D 3 D2 D 1 D0 I/O (1) I/O(2) u每個數(shù)碼管的公共端由一根每個數(shù)碼管的公共端由一根I/O線控制。線控制。u所有數(shù)碼管的段選線與一組所有數(shù)碼管的段選線與一組I/O接口線并連在一起。接口線并連在一起。 特點:特點: u顯示為逐個顯示。顯示為逐個顯示。 段碼線段碼線位碼線位碼線第8章 51單片機常用接口8.4.3 LED顯示器與單片機的接口顯示器與單片機的接口1硬硬件譯件譯碼靜碼靜態(tài)顯態(tài)顯示示相應(yīng)的匯編指令如下:MOV P1,#0010 0001B

40、 ;在第一個數(shù)碼管顯示“1”MOV P1,#0001 0010B ;在第二個數(shù)碼管顯示“2”第8章 51單片機常用接口2軟軟件件譯譯碼碼動動態(tài)態(tài)顯顯示示D0D1D2D3D4D5D6D7D7D5D3D1D0D6D4D2ABCDEFGH12345678ABCDEFGH12345678ALEALEXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.

41、67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C52D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373D034D133D232D331D430D529D628D727RD5WR36A09A18RESET35CS6P

42、A04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710U38255AA口、B口、C口和控制口的地址分別為7F00H、7F01H、7F02H和7F03H(高8位地址線未用的取1,低8位地址線未用的取0) 第8章 51單片機常用接口圖8.27軟件譯碼動態(tài)顯示電路的程序如下(設(shè)8個數(shù)碼管的從左到右顯示緩沖區(qū)為片內(nèi)RAM的50H57H單元)。匯編語言程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV A

43、,#0;顯示緩沖區(qū)50H57H單元初始化為07MOV R2,#8MOV R0,#50H LOOP: MOV R0,A INC R0INC ADJNZ R2,LOOPLOOP1:LCALL DISPLAY;調(diào)用顯示子程序SJMP LOOP1SJMP $第8章 51單片機常用接口;顯示子程序DISPLAY:MOV A,#10000000B;8255初始化MOV DPTR,#7F03H;使DPTR指向8255控制寄存器端口MOVX DPTR,AMOV R0,#57H;動態(tài)顯示初始化,使R0指向緩沖區(qū)首地址MOV R3,#7FH ;首位位選字送R3MOV A,R3LD0: MOV DPTR,#7F01

44、H;使DPTR指向PB口MOVX DPTR,A;從PB口送出位選字MOV DPTR,#7F00H ;使DPTR指向PA口MOV A,R0 ;讀要顯示數(shù)ADD A,#0DH ;調(diào)整距離段選碼表首的偏移量MOVC A,A+PC ;查表取得段選碼MOVX DPTR,A ;段選碼從PA口輸出ACALL DL1 ;調(diào)用1ms延時子程序DEC R0 ;指向緩沖區(qū)下一單元MOV A,R3 ;位選碼送累加器AJNB ACC.0,LD1 ;判斷8位是否顯示完畢,顯示完返回RR A ;未顯示完,把位選字變?yōu)橄乱晃贿x字MOV R3,A ;修改后的位選字送R3AJMP LD0 ;循環(huán)實現(xiàn)按位序依次顯示LD1: RET

45、第8章 51單片機常用接口TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;字段碼表DB 7FH,6FH,77H,7CH,39H,5EH,79H,71HDL1:MOV R7,#02H ;延時子程序DL:MOV R6,#0FFHDL0:DJNZ R6,DL0DJNZ R7,DLRETEND第8章 51單片機常用接口軟件譯碼動態(tài)顯示C語言程序如下:#include #include /定義絕對地址訪問#define uchar unsigned char#define uint unsigned intvoid delay(uint); /聲明延時函數(shù)void dis

46、play(void); /聲明顯示函數(shù)uchar disbuffer8=0,1,2,3,4,5,6,7;/定義顯示緩沖區(qū)void main(void)XBYTE0 x7f03=0 x80; /8255A初始化while(1)display(); /設(shè)顯示函數(shù)第8章 51單片機常用接口/*顯示函數(shù)*void display(void) /定義顯示函數(shù)uchar codevalue16=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71;/0F的字段碼表uch

47、ar chocode8=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f; /位選碼表uchar i,p,temp;for (i=0;i8;i+)temp=chocodei; /取當(dāng)前的位選碼XBYTE0 x7f01=temp; /送出位選碼p=disbufferi; /取當(dāng)前顯示的字符temp=codevaluep; /查得顯示字符的字段碼XBYTE0 x7f00=temp; /送出字段碼delay(20); /延時1ms第8章 51單片機常用接口/*延時函數(shù)*void delay(uint i) /延時函數(shù)uint j;for (j=0;ji;

48、j+)第8章 51單片機常用接口8.5 MCS-51單片機與鍵盤的接口單片機與鍵盤的接口 8.5.1 鍵盤概述鍵盤概述1. 鍵盤的基本原理2抖動的消除抖動的消除硬件消抖軟件消抖 第8章 51單片機常用接口59硬件消硬件消抖抖 軟件消抖軟件消抖利用延時程序消除抖動。利用延時程序消除抖動。第8章 51單片機常用接口3鍵盤的分類鍵盤的分類分兩類:獨立式鍵盤和行列鍵盤。 u處理簡單,直接判并處理簡單,直接判并口線。口線。u每個鍵占用一根并口線,每個鍵占用一根并口線,鍵位多時占用并口線多。鍵位多時占用并口線多。u用于鍵位較少的情況。用于鍵位較少的情況。特點:特點: 獨立式鍵盤獨立式鍵盤第8章 51單片機

49、常用接口行列鍵盤行列鍵盤矩陣鍵盤。矩陣鍵盤。 矩陣鍵盤的結(jié)構(gòu)圖矩陣鍵盤的結(jié)構(gòu)圖 u鍵位分布在行列交鍵位分布在行列交叉點上。叉點上。u占用并口線少,鍵位占用并口線少,鍵位越多越明顯。越多越明顯。特點:特點: P1.3 P1.2 P1.1 P1.0 P2.3 P2.2 P2.1 P2.0 第8章 51單片機常用接口1)鍵位的編碼)鍵位的編碼矩陣鍵盤的處理:鍵位的編碼和鍵位的識別。矩陣鍵盤的處理:鍵位的編碼和鍵位的識別。 (a)二進制組合編碼 (b)順序排列編碼編碼=行首碼+列號。 行線編碼和列線編碼組合 第8章 51單片機常用接口2)鍵位的識別)鍵位的識別兩步:第一步是首先檢測鍵盤上是否有鍵按下;

50、第兩步:第一步是首先檢測鍵盤上是否有鍵按下;第二步是識別哪一個鍵按下。二步是識別哪一個鍵按下。 (1)檢測鍵盤上是否有鍵按下的處理方法檢測鍵盤上是否有鍵按下的處理方法 (2)識別鍵盤中哪一個鍵按下的處理方法識別鍵盤中哪一個鍵按下的處理方法 逐列掃描逐列掃描 全掃描全掃描 第8章 51單片機常用接口8.4.2 獨立式鍵盤與單片機的接口獨立式鍵盤與單片機的接口XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.

51、12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC11nFC21nFC31nFR11kD1D2D3R2300R3300R4300D4R5300K0K1K2K3第8章 51單片機常用接口65匯編語言程序:ORG0000HLJMPKEYOR

52、G0100HKEY: MOVP1,#0FFHKEY0: JB P1.0,KEY1;如果K0沒有按下檢測K1LCALL DEL10MS;延時消抖JBP1.0,KEY1 ;再檢測,判斷是否為干擾CLRP2.0;K0按下,實現(xiàn)K0的相應(yīng)程序KEY1: JB P1.1,KEY2;如果K1沒有按下檢測K2LCALL DEL10MS;延時消抖JBP1.1,KEY2 ;再檢測,判斷是否為干擾CLRP2.1;K1按下,實現(xiàn)K1的相應(yīng)程序KEY2: JB P1.2,KEY3;如果K2沒有按下檢測K3LCALL DEL10MS;延時消抖JBP1.2,KEY3 ;再檢測,判斷是否為干擾CLRP2.2;K2按下,實現(xiàn)

53、K2的相應(yīng)程序第8章 51單片機常用接口66KEY3: JB P1.3,KEYEND ;如果K3沒有按下結(jié)束,返回主程序LCALL DEL10MS;延時消抖JBP1.3,KEYEND ;再檢測,判斷是否為干擾CLRP2.3;K3按下,實現(xiàn)K3的相應(yīng)程序KEYEND:LJMP KEYDEL10MS:MOVR7,#20;延時10ms程序DEL500U:MOV R6,#250DJNZR6,$DJNZR7,DEL500URETEND第8章 51單片機常用接口67C語言程序:#include #define uchar unsigned charsbit K0=P10; /定義位變量sbit K1=P1

54、1;sbit K2=P12;sbit K3=P13;sbit D0=P20;sbit D1=P21;sbit D2=P22;sbit D3=P23;第8章 51單片機常用接口68void delay(uchar k) /定義延時函數(shù)uchar i,j;for (i=0;ik;i+)for(j=0;j250;j+);void main(void)if (K0=0) delay(10); if (K0=0) D0=0; /K0按下,進行的相應(yīng)處理if (K1=0) delay(10); if (K1=0) D1=0; /K1按下,進行的相應(yīng)處理if (K2=0) delay(10); if (K2

55、=0) D2=0; /K2按下,進行的相應(yīng)處理if (K3=0) delay(10); if (K3=0) D3=0; /K3按下,進行的相應(yīng)處理 第8章 51單片機常用接口8.4.3 矩陣式鍵盤與單片機的接口圖8.34是PROTEUS中通過8255A芯片擴展并行口連接28的矩陣式鍵盤的電路圖。8255A 的PA口接8根列線,PC口低2位接行線,PA口為輸出,PC口低2位為輸入。D0D1D2D3D4D5D6D7D7D5D3D1D0D0D6D4D2ABCDEFGH12345678ABCDEFGH12345678ALEALEABCDEFGHPC0PC1PC0PC1XTAL218XTAL119ALE

56、30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427

57、U1AT89C52D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1LE11U274LS373D034D133D232D331D430D529D628D727RD5WR36A09A18RESET35CS6PA04PA13PA22PA31PA440PA539PA638PA737PB018PB119PB220PB321PB422PB523PB624PB725PC014PC115PC216PC317PC413PC512PC611PC710U38255A第8章 51單片機常用接口70處理過程如下:首先,通8255A的PA口送全掃描字0

58、0H,使所有的列為低電平,讀入PC口低2位,判斷是否有鍵按下。其次,如果有鍵按下,再通過PA口依次送列掃描字,將列線逐列置成低電平,讀入PC口行線狀態(tài),判斷按下的鍵是在哪一列的哪一行上面,然后通過行首碼加列號得到前按鍵的編碼。該矩陣式鍵盤的掃描子程序流程圖如右圖。 第8章 51單片機常用接口該矩陣式鍵盤的掃描子程序流程圖 為了便于測試鍵盤是否正確,還添加了8個LED數(shù)碼管,通過數(shù)碼管顯示按下的鍵,按下的鍵在8個數(shù)碼管的最右邊顯示,而原來的內(nèi)容依次左移。 8255A的A口、B口、C口和控制口的地址可分別取為7F00H、7F01H、7F02H和7F03H(高8位地址線未用的取1,低8位地址線未用的

59、取0)。8255A在主程序中初始化。設(shè)定為A口方式0輸出,B口方式0輸出,C口的低4位方式0輸入。 第8章 51單片機常用接口72匯編語言程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV A,#0;顯示緩沖區(qū)57H50H單元初始化為70MOV R2,#8MOV R0,#50HLOOP:MOV R0,A INC R0INC ADJNZ R2,LOOPMOV A,#10000001B ;8255初始化,A口方式0輸出,B口方式0輸出,C口低4位輸入MOV DPTR,#7F03H;使DPTR指向8255控制寄存器端口MOVX DPTR,ALOOP1:ACALL KEYSU

60、B;調(diào)用鍵盤子程序CJNE R2,#0FFH,NEXTSJMPNEXT1第8章 51單片機常用接口73NEXT:MOV 50H,51H;顯示緩沖區(qū)左移MOV 51H,52HMOV 52H,53HMOV 53H,54HMOV 54H,55HMOV 55H,56HMOV 56H,57HMOV 57H,R2NEXT1:ACALL DISPLAY;調(diào)用顯示子程序SJMP LOOP1SJMP $第8章 51單片機常用接口74;無鍵按下,R2返回FFH,有鍵按下,R2返回鍵碼KEYSUB: ACALL KS1 ;調(diào)用判斷有無鍵按下子程序JNZ LK1 ;有鍵按下時,(A)0轉(zhuǎn)消抖延時AJMP NOKEY ;無鍵按下返回LK1:ACALL TM6;調(diào)

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論