版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第7章單片機(jī)系統(tǒng)擴(kuò)展與接口技術(shù)7.1外部總線的擴(kuò)展
7.2外部存儲(chǔ)器的擴(kuò)展7.3輸入/輸出接口的擴(kuò)展7.4管理功能部件的擴(kuò)展7.5A/D和D/A接口功能的擴(kuò)展系統(tǒng)擴(kuò)展的含義
單片機(jī)中雖然已經(jīng)集成了CPU、I/O口、定時(shí)器、中斷系統(tǒng)、存儲(chǔ)器等計(jì)算機(jī)的基本部件(即系統(tǒng)資源),但是對(duì)一些較復(fù)雜應(yīng)用系統(tǒng)來(lái)說(shuō),有時(shí)感到以上資源中的一種或幾種不夠用,這就需要在單片機(jī)芯片外加相應(yīng)的芯片、電路,使得有關(guān)功能得以擴(kuò)充,我們稱為系統(tǒng)擴(kuò)展(即系統(tǒng)資源的擴(kuò)充)。
接口的含義:
接口是連接單片機(jī)與外圍電路、芯片、設(shè)備(如I/O設(shè)備、A/D、D/A設(shè)備)的中間環(huán)節(jié)。接口牽涉到包括外圍電路、設(shè)備、芯片的結(jié)構(gòu)、使用方法、時(shí)序要求;單片機(jī)本身的硬件、軟件資源等很多問(wèn)題。接口技術(shù)要解決系統(tǒng)擴(kuò)展時(shí)單片機(jī)與相應(yīng)芯片的接口(如地址總線、數(shù)據(jù)總線、控制總線的連接)與編程問(wèn)題。系統(tǒng)擴(kuò)展和接口技術(shù)一般有以下幾方面內(nèi)容:1.外部總線的擴(kuò)展2.外部存儲(chǔ)器的擴(kuò)展3.輸入、輸出接口的擴(kuò)展4.管理功能部件(如定時(shí)/計(jì)數(shù)器、鍵盤/顯示器等)的擴(kuò)展5.A/D和D/A的接口技術(shù)7.1外部總線的擴(kuò)展一、外部總線的擴(kuò)展圖7.1MCS-51外部三總線示意圖圖7.2地址鎖存器的引腳和接口二、總線驅(qū)動(dòng)
在單片機(jī)應(yīng)用系統(tǒng)中,擴(kuò)展的三總線上掛接很多負(fù)載,如存儲(chǔ)器、并行接口、A/D接口、顯示接口等,但總線接口的負(fù)載能力有限,因此常常需要通過(guò)連接總線驅(qū)動(dòng)器進(jìn)行總線驅(qū)動(dòng)??偩€驅(qū)動(dòng)器對(duì)于單片機(jī)的I/O口只相當(dāng)于增加了一個(gè)TTL負(fù)載,因此驅(qū)動(dòng)器除了對(duì)后級(jí)電路驅(qū)動(dòng)外,還能對(duì)負(fù)載的波動(dòng)變化起隔離作用。
在對(duì)TTL負(fù)載驅(qū)動(dòng)時(shí),只需考慮驅(qū)動(dòng)電流的大小;在對(duì)MOS負(fù)載驅(qū)動(dòng)時(shí),MOS負(fù)載的輸入電流很小,更多地要考慮電平的兼容和分布電容的電流。一般TTL電平和CMOS電平是不兼容的,CMOS電路能驅(qū)動(dòng)TTL電路,而TTL電路一般不能驅(qū)動(dòng)CMOS電路,在TTL電路和CMOS電路混用的系統(tǒng)中,應(yīng)特別注意。1.常用的總線驅(qū)動(dòng)器
系統(tǒng)總線中地址總線和控制總線是單向的,因此驅(qū)動(dòng)器可以選用單向的,如74LS244。74LS244還帶有三態(tài)控制,能實(shí)現(xiàn)總線緩沖和隔離。系統(tǒng)中的數(shù)據(jù)總線是雙向的,其驅(qū)動(dòng)器也要選用雙向的,如74LS245。74LS245也是三態(tài)的,有一個(gè)方向控制端DIR,DIR=1時(shí)輸出(An→Bn),DIR=0時(shí)輸入(An←Bn)。圖7.3總線驅(qū)動(dòng)器芯片管腳(a)單向驅(qū)動(dòng)器;(b)雙向驅(qū)動(dòng)器1G,2G為H時(shí),Y為高阻;1G,2G為L(zhǎng)時(shí),Y=AG為H時(shí),Y為高阻;G=L,DIR=0;B→AG=L,DIR=1;A→B2.總線驅(qū)動(dòng)器的接口圖7.48051與總線驅(qū)動(dòng)器的接口
(a)
P2口的驅(qū)動(dòng);(b)P0口的驅(qū)動(dòng)
7.2外部存儲(chǔ)器的擴(kuò)展
MCS-51系列單片機(jī)數(shù)據(jù)存儲(chǔ)器和程序存儲(chǔ)器的地址空間是相互獨(dú)立的。
MCS-51系列單片機(jī)具有64K的程序存儲(chǔ)器尋址空間和64K的片外數(shù)據(jù)存儲(chǔ)器尋址空間。如果系統(tǒng)需要用到的存儲(chǔ)器超過(guò)了單片機(jī)本身具有的容量,就要進(jìn)行片外程序存儲(chǔ)器或者數(shù)據(jù)存儲(chǔ)器的擴(kuò)展。程序存儲(chǔ)器的擴(kuò)展要解決的幾個(gè)問(wèn)題:
.程序存儲(chǔ)器的作用——存放程序代碼或常數(shù)表格
.擴(kuò)展時(shí)所用芯片——一般用只讀型存儲(chǔ)器芯片(可以是
EPROM、E2PROM、FLASH芯片等)。
.擴(kuò)展電路連接
——用EPROM2716、2732等擴(kuò)展程序存儲(chǔ)器。
.存儲(chǔ)器地址分析——單片機(jī)輸出什么地址值時(shí),可以指向存儲(chǔ)器中的某一單元。7.2.1外部程序存儲(chǔ)器的擴(kuò)展圖7.5MCS-51單片機(jī)程序存儲(chǔ)器的擴(kuò)展原理1.外部程序存儲(chǔ)器的擴(kuò)展原理與時(shí)序分析圖2.8讀外部程序ROM時(shí)序2.EPROM擴(kuò)展芯片圖7.62716的引腳圖2716容量:2K*8位2716有五種工作方式,見(jiàn)表7.1。
表7.12716工作方式選擇圖7.72716與8031的連接圖
由圖7.7可確定2716芯片的地址范圍。方法是A10~A0從全0開(kāi)始,然后從最低位開(kāi)始依次加1,最后變?yōu)槿?,相當(dāng)于211=2048個(gè)單元地址依次選通,稱為字選。即3.E2PROM2864A的擴(kuò)展圖7.82864A管腳及原理框圖(a)管腳;(b)原理框圖表7.22864A工作方式圖7.92864A與8031的接口電路7.2.2外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展1.外部數(shù)據(jù)存儲(chǔ)器的擴(kuò)展方法及時(shí)序圖7.10MCS-51數(shù)據(jù)存儲(chǔ)器的擴(kuò)展示意圖
圖2-9讀外部數(shù)據(jù)RAM時(shí)序2.靜態(tài)RAM芯片圖7.116264管腳圖
I/O0~7:數(shù)據(jù)線A0~A12:地址線CE1、CE2:片選線OE:輸出使能WE:寫(xiě)入使能VCC、GND:電源NC:未使用表7.36264的工作方式圖7.12擴(kuò)展6264靜態(tài)RAM
6264的8KB地址范圍為6000H~7FFFH。當(dāng)向該片6000H單元寫(xiě)一個(gè)數(shù)據(jù)DATA時(shí),可用如下指令:
MOVA,#DATA
MOVDPTR,#6000H
MOVX@DPTR,A
從7FFFH單元讀一個(gè)數(shù)據(jù)時(shí),可用如下指令:
MOVDPTR,#7FFFH
MOVXA,@DPTR常用的地址譯碼器常用的地址譯碼器是:3-8線譯碼器74LS138雙2-4線譯碼器74LS13974LS13812345678910141615131211ABCG2AG2BG1GNDY7Y6Y4Y3Y2Y1Y0Y5VCC8個(gè)輸出端3個(gè)選擇輸入端3個(gè)允許輸入端Y0Y1Y2Y3Y4Y5Y7Y611111111111111111111111111111111011111111011111111011111111011111111011111111011
01
10
110
100100100100100100XX
000001011010X
010101CBAG2BG2AG1100110
11111101100111
11111110輸入輸出74LS138譯碼器真值表禁止允許74LS139123456789101416151312112個(gè)允許輸入端2個(gè)選擇輸入端4個(gè)輸出端1A1BGND1G1Y31Y21Y11Y02Y32Y22Y12Y0VCC2A2B2G輸出輸入GB
AY0Y1Y2Y31XX1111000011100110110101101001111074LS139譯碼器真值表4個(gè)輸出端7.2.3多片存儲(chǔ)器芯片的擴(kuò)展1.線選法尋址
線選法使用P2、P0口的低位地址線對(duì)每個(gè)芯片內(nèi)的統(tǒng)一存儲(chǔ)單元進(jìn)行尋址,稱為字選。所需地址線數(shù)由每片的存儲(chǔ)單元數(shù)決定,對(duì)于8K×8容量的芯片需要13根地址線A12~A0。然后將余下的高位地址線分別接到個(gè)存儲(chǔ)芯片的片選端CS,稱為線選。圖7.13用線選法實(shí)現(xiàn)片選
下圖是利用線選法,用3片2764A擴(kuò)展24K×8位EPROM的電路圖:各芯片的地址范圍如下:
2.譯碼法尋址
譯碼法尋址就是利用地址譯碼器對(duì)系統(tǒng)的片外高位地址進(jìn)行譯碼,以其譯碼輸出作為存儲(chǔ)器芯片的片選信號(hào)。譯碼法仍用低位地址線對(duì)每片內(nèi)的存儲(chǔ)單元進(jìn)行尋址,而高位地址線經(jīng)過(guò)譯碼器譯碼后輸出作為各芯片的片選信號(hào)。常用的地址譯碼器是3/8譯碼器74LS138。
譯碼法又分為完全譯碼和部分譯碼兩種。
完全譯碼:譯碼器使用全部地址線,地址與存儲(chǔ)單元一一對(duì)應(yīng);部份譯碼:譯碼器使用部份地址線,地址與存儲(chǔ)單元不是一一對(duì)應(yīng)。部份譯碼會(huì)大量浪費(fèi)尋址空間,對(duì)于要求存儲(chǔ)器空間大的微機(jī)系統(tǒng),一般不采用。但對(duì)于單片機(jī)系統(tǒng),由于實(shí)際需要的存儲(chǔ)容量不大,采用部份譯碼可簡(jiǎn)化譯碼電路。
例
要求用2764芯片擴(kuò)展8031的片外程序存儲(chǔ)器空間,分配的地址范圍為0000H~3FFFH。
本例采用完全譯碼方法。
(1)確定片數(shù)。因0000H~3FFFH的存儲(chǔ)空間為16KB,則所需芯片數(shù)=實(shí)際要求的存儲(chǔ)容量/單個(gè)芯片的存儲(chǔ)容量
=16KB/8KB
=2(片)(2)分配地址范圍。
(3)存儲(chǔ)器擴(kuò)展連接如圖7.14所示。
圖7.14采用地址譯碼器擴(kuò)展存儲(chǔ)器的連接圖
7.3輸入/輸出接口的擴(kuò)展7.3.18255A可編程并行I/O接口
8255A具有3個(gè)8位并行I/O口,稱為PA口、PB口和PC口。其中PC口又分為高4位和低4位,通過(guò)控制字設(shè)定可以選擇三種工作方式:①基本輸入/輸出;②選通輸入/輸出;③PA口為雙向總線。1.8255的內(nèi)部結(jié)構(gòu)和引腳(1)端口A、B、C(2)工作方式控制(3)總線數(shù)據(jù)緩沖器(4)讀寫(xiě)控制邏輯8255引腳功能:RESET:復(fù)位信號(hào)線。CS:片選信號(hào)線RD:讀信號(hào)線WR:寫(xiě)信號(hào)D0~D7:三態(tài)雙向數(shù)據(jù)總線PA0~PA7:端口A輸入輸出線PB0~PB7:端口B輸入輸出線PC0~PC7:端口C輸入輸出線,A1、A0:端口地址總線,8255中有端口A、B、C和一個(gè)內(nèi)部控制字寄存器,共4個(gè)端口,由A0、A1輸入地址信號(hào)來(lái)尋址。
A1A0=00A口
01
B口
10C口
11控制口。2、工作方式選擇(1)工作方式0:基本輸入輸出方式(2)工作方式1:選通輸入輸出方式(3)工作方式2:雙向傳輸方式,僅A口可以工作在方式2選通輸入、輸出方式下各聯(lián)絡(luò)信號(hào)的含義:STB:選通信號(hào)輸入端,由外設(shè)送往8255。IBF:輸入緩沖器滿信號(hào)。由8255送往CPU。INTR:中斷請(qǐng)求信號(hào),由8255送往CPU。OBF:輸出緩沖器滿信號(hào)。由8255送往外設(shè)。ACK:外設(shè)響應(yīng)輸入信號(hào)。由外設(shè)送往8255。INTR:中斷請(qǐng)求信號(hào),由8255送往CPU。8255的控制字:工作方式控制字D6D5:A組方式控制,00-方式0,01-方式1;10-方式2D4:A口輸入輸出選擇:1-輸入,0-輸出D3:PC7-PC4輸入輸出選擇:1-輸入,0-輸出D2:B組方式選擇,0-方式0,1-方式1D1:B口輸入輸出選擇:1-輸入,0-輸出D0:PC3-PC0輸入輸出選擇:1-輸入,0-輸出D1D2D3D4D5D6D01標(biāo)志位C口置0置1控制字:D3D2D1:000-111分別選擇PC0—PC7D0:所選位置0或置1選擇,0—置0,1-置1例1:要求A口工作在方式0輸入,B口工作在方式1輸出,C口高四位為輸入,C口低四位為輸出
MOVR1,#03H;8255控制端口
MOVA,#9CH;工作方式控制字
MOVX@R1,AD1D2D3D00標(biāo)志位例28255與8031的接口如圖,要求編程序段實(shí)現(xiàn)PC3置1,PC5置0。
MOVR0,#03H;8255控制端口
MOVA,#07HMOVX@R0,AMOVA,#0AHMOVX@R0,A例3、
MOVR0,#7FH;8255控制端口
MOVA,#8EH;A口輸出,C口高四位輸入,低四位輸出。
MOVX@R0,AMOVR1,#20H;數(shù)據(jù)區(qū)首址
MOVR2,#50H;數(shù)據(jù)塊長(zhǎng)度
LP:MOVR0,#7EH;C口LP1:MOVXA,@R0;PC7=?Busy?JBACC.7,LP1MOVR0,#7CH;A口
MOVA,@R1;從RAM取數(shù)據(jù)
MOVX@R0,AINCR1MOVR0,#7FH;控制端口
MOVA,#00H;PC0置0控制字
MOVX@R0,AMOVA,#01H;PC0置1控制字
MOVX@R0,ADJNZR2,LP7.3.28155可編程并行接口芯片1、8155的結(jié)構(gòu)及引腳8155的結(jié)構(gòu)8155256字節(jié)RAM三個(gè)可編程并行口PA口,8位PB口,8位PC口,6位14位二進(jìn)制減法計(jì)數(shù)器8155芯片的內(nèi)部結(jié)構(gòu)256B靜態(tài)RAM
A
定時(shí)器B
C
口APA0~PA7口BPB0~PB7PC0~PC5口CIO/MAD0~AD7CEALERDWRRESET定時(shí)器輸入定時(shí)器輸出接單片機(jī)接外設(shè)接外設(shè)接外設(shè)圖7.218155引腳功能PC3PC4
PC5
IO/MCERDWRALEAD0AD1AD2AD3AD4AD5AD6AD7VssVccPC2PC1PC0PB7PB6PB5PB4PB3PB2PB1PB0PA7PA6PA5PA4PA3PA2PA1PA08155TIMERINRESETTIMEROUTAD0-AD7三態(tài)地址/數(shù)據(jù)線IO/M端口/存儲(chǔ)器選擇RD讀ALE地址鎖存允許寫(xiě)WR片選CE定時(shí)器輸入TIMERIN定時(shí)器輸出TIMEROUTPA0-PA7A口端口線PB0-PB7B口端口線PC0-PC5C口端口線圖7.11aI/O口地址----當(dāng)IO/M加高電平時(shí)2.8155的RAM和I/O口地址RAM地址----當(dāng)IO/M加低電平時(shí)此時(shí)AD0-AD7上得到的地址值是指8155的某一RAM單元的地址,地址范圍是
00000000--11111111分別指向8155RAM的256個(gè)存儲(chǔ)單元。此時(shí)AD0-AD7(僅用到低三位AD2、AD1、AD0)上得到的地址值是指8155的某一I/O口的地址,具體端口地址分配是:AD7AD6AD5AD4AD3AD2AD1AD0I/O端口╳╳╳╳╳000命令/狀態(tài)口╳╳╳╳╳001A口╳╳╳╳╳010B口╳╳╳╳╳011C口╳╳╳╳╳100計(jì)數(shù)器低8位╳╳╳╳╳101計(jì)數(shù)器高6位8155的RAM和I/O口地址分配
3.8155I/O口的工作方式1)基本I/O兩種工作方式與8255類似。2)選通I/O4.8155的命令/狀態(tài)字8155命令字含義
PAPBPC1PC2IEAIEBTM1TM2PB、PA—A口、B口數(shù)據(jù)傳送方向0—輸入1—輸出00—C口輸入,A、B口基本I/O方式11—C口輸出,A、B口基本I/O方式01—PC3-PC5輸出,A口選通方式,B口基本I/O方式10—A、B口選通方式PC2、PC1—C口數(shù)據(jù)傳送方向及AB口工作方式IEA、IEB—A、B口中斷允許控制0—禁止1—允許TM1、TM2—定時(shí)器/計(jì)數(shù)器控制00空操作01停止定時(shí)器10記滿回零停止計(jì)數(shù)11啟動(dòng)D0(INTRA):A口是否有中斷請(qǐng)求D1(ABF):A口緩沖器滿/空D2(INTEA):A口中斷是否允許D3(INTRB):B口是否有中斷請(qǐng)求D4(BBF):B口緩沖器滿/空D5(INTEB):B口中斷是否允許D6(TIMER):定時(shí)器溢出中斷D1D2D3D4D5D6×D08155內(nèi)部有一個(gè)14位減法計(jì)數(shù)器使用定時(shí)器前要先裝入“時(shí)間常數(shù)”----14位二進(jìn)制數(shù)。其格式為:5.8155定時(shí)器/計(jì)數(shù)器高6位計(jì)數(shù)值低8位計(jì)數(shù)值定時(shí)器方式M2M100單方波01連續(xù)方波單脈沖連續(xù)脈沖8155定時(shí)器編程方式及相應(yīng)的輸出波形M2M1方式定時(shí)器輸出波形00110101單方波連續(xù)方波單脈沖連續(xù)脈沖三.8155的接口電路及應(yīng)用80318155RESETRDWRALEP2.1P2.2P0.0P0.1P0.2P.03P0.4P0.5P0.6P0.7RESETRDWRALEIO/MCEAD0AD1AD2AD3AD4AD5AD6AD7口APA0~PA7口BPB0~PB7PC0~PC5口C圖7-25例1設(shè)8155與單片機(jī)連接電路如圖7-25,現(xiàn)要求其A、C口為基本輸入方式,B口為基本輸出方式,定時(shí)器為連續(xù)方波發(fā)生器,對(duì)輸入脈沖進(jìn)行24分頻,編制初始化程序段。解:首先分析各端口地址命令狀態(tài)口地址為0200HA口地址為0201HB口地址為0202HC口地址為0203H
定時(shí)器低8位地址0204H
定時(shí)器高6位地址0205H8155的控制字為0C2H:PAPBPC1PC2IEAIEBTM1TM211000010MOVDPTR,#0204HMOVA,#18HMOVX@DPTR,AINCDPTR24分頻即計(jì)數(shù)初值為24(0000000011000B=18H)加上定時(shí)計(jì)數(shù)控制01(連續(xù)方波),則送往定時(shí)計(jì)數(shù)器的時(shí)間常數(shù)及定時(shí)控制字應(yīng)為
0100000000011000B=4018HMOVA,#40HMOVX@DPTR,AMOVDPTR,#0200HMOVA,#0C2HMOVX@DPTR,A例2采用圖7.25所示的電路,從8155的A中輸入數(shù)據(jù),并進(jìn)行判斷:若不為0,則將該數(shù)據(jù)存入8155的RAM中,同時(shí)從B口輸出,并將PC0置“1”;若為0,則停止輸入數(shù)據(jù),同時(shí)將PC0清“0”,試編寫(xiě)程序。MOVDPTR,#0200H;指向命令端口MOVA,,#0EH;A、B口為基本輸入輸出,C口輸出MOVX@DPTR,AMOVR0,#00HMOVR1,#00HLP1:MOVDPTR,#0201;A口MOVXA,@DPTRJZLP3MOVX@R0,A;存入RAM單元INCR0INCDPTR;指向B口MOVX@DPTR,AINCDPTR;指向C口MOVXA,@DPTR;??SETBACC.0MOVX@DPTR,ADJNZR1,LP1LP2:SJMP$LP3:MOVDPTR,#0203HMOVX@DPTR,ASJMPLP27.4管理功能部件的擴(kuò)展7.4.1鍵盤接口
鍵盤實(shí)際上是由排列成矩陣形式的一系列按鍵開(kāi)關(guān)組成,用戶通過(guò)鍵盤可以向CPU輸入數(shù)據(jù)、地址和命令。鍵盤按其結(jié)構(gòu)形式可分為:編碼式鍵盤和非編碼式鍵盤兩類。單片機(jī)系統(tǒng)中普遍使用非編碼式鍵盤,這類鍵盤主要解決以下幾個(gè)問(wèn)題:
①鍵的識(shí)別;
②如何消除鍵的抖動(dòng);
③鍵的保護(hù)。
1.非編碼式鍵盤工作原理
非編碼式鍵盤識(shí)別按鍵的方法有兩種:一是行掃描法,二是線反轉(zhuǎn)法。
1)行掃描法通過(guò)行線發(fā)出低電平信號(hào),如果該行線所連接的鍵沒(méi)有按下的話,則列線所接的端口得到的是全“1”信號(hào),如果有鍵按下的話,則得到非全“1”信號(hào)。為了防止雙鍵或多鍵同時(shí)按下,往往從第0行一直掃描到最后1行,若只發(fā)現(xiàn)1個(gè)閉合鍵,則為有效鍵,否則全部作廢。找到閉合鍵后,讀入相應(yīng)的鍵值,再轉(zhuǎn)至相應(yīng)的鍵處理程序。
2)線反轉(zhuǎn)法線反轉(zhuǎn)法也是識(shí)別閉合鍵的一種常用方法,該法比行掃描速度快,但在硬件上要求行線與列線外接上拉電阻。先將行線作為輸出線,列線作為輸入線,行線輸出全“0”信號(hào),讀入列線的值,然后將行線和列線的輸入輸出關(guān)系互換,并且將剛才讀到的列線值從列線所接的端口輸出,再讀取行線的輸入值。那么在閉合鍵所在的行線上值必為0。這樣,當(dāng)一個(gè)鍵被按下時(shí),必定可讀到一對(duì)唯一的行列值。
2.鍵盤接口電路圖7.26采用8155的鍵盤接口電路
下面的程序是用行掃描法進(jìn)行鍵掃描的程序,其中KS1為判鍵閉合的子程序。有鍵閉合時(shí)鍵值存入20H單元和A中。DIR為數(shù)碼顯示器掃描顯示子程序,執(zhí)行一遍的時(shí)間約6ms。程序執(zhí)行后,若鍵閉合,鍵值存入A中,鍵值的計(jì)算公式是:鍵值=行號(hào)×4+列號(hào);若無(wú)鍵閉合,則A中存入標(biāo)志FFH。KEY1:LCALLKS1;檢查有無(wú)閉合鍵?
JNZLK1;(A)=0,有鍵閉合則轉(zhuǎn)
LJMPLK8;無(wú)閉合鍵則返回LK1:LCALLDIR;延時(shí)12ms
LCALLDIR;清抖
LCALLKS1;再檢查有鍵閉合否?
JNZLK2;有鍵閉合則轉(zhuǎn)
LJMPLK8;無(wú)鍵閉合則返回LK2:MOVR3,#00H;行號(hào)初值送R3
MOVR2,#FEH;行掃描初值送R2
LK3:MOVDPTR,#0101H;指向8155口AMOVA,R2;行掃描值送A
MOVX@DPTR,A;掃描1行
INCDPTR
INCDPTR;指向8155口C
MOVXA,@DPTR;讀入列值
ANLA,#0FH;保留低4位
MOVR4,A;暫存列值
CJNZA,#0FH,LK4;列值非全“1”則轉(zhuǎn)
MOVA,R2;行掃描值送AJNBACC.7,LK8;掃至最后一行則轉(zhuǎn)RLA;未掃完,則移至下一行MOVR2,A;行值存入R2中INCR3;行號(hào)加1
SJMPLK3;轉(zhuǎn)至掃描下一行LK4:MOVA,R3;行號(hào)送入A
ADDA,R3;行號(hào)×2
MOVR5,A
ADDA,R5;行號(hào)×4
MOVR5,A;存入R5中
MOVA,R4;列值送A
LK5:RRCA;右移一位
JNCLK6;該位為0則轉(zhuǎn)
INCR5;列號(hào)加1
SJMPLK5;列號(hào)未判完則繼續(xù)LK6:MOV20H,R5;存鍵值LK7:LCALLDIR;掃描一遍顯示器
LCALLKS1;發(fā)掃描信號(hào)
JNZLK7;鍵未釋放等待
LCALLDIR;鍵已釋放
LCALLDIR;延時(shí)12ms,清抖
MOVA,20H;鍵值存入A中KND:RETLK8:MOVA,#FFH;無(wú)鍵標(biāo)志FFH存入A中
RET
KS1:MOVDPTR,#0101H;判鍵子程序
MOVA,#00H;全掃描信號(hào)
MOVX@DPTR,A;發(fā)全掃描信號(hào)
INCDPTR
INCDPTR;指向8155口C
MOVXA,@DPTR;讀入列值
ANLA,#0FH;保留低4位
ORLA,#F0H;高4位取“1”
CPLA ;取反,無(wú)鍵按下則全“0”
RET7.4.2LED顯示器接口1.LED顯示器結(jié)構(gòu)與原理圖7.277段LED數(shù)碼顯示器各段碼位的對(duì)應(yīng)關(guān)系如下:
共陰共陽(yáng)0:00111111B3FHC0H1:00000110B06HF9H……A:01110111B77H88H表7.8十六進(jìn)制數(shù)及空白與P的顯示段碼
用戶在使用時(shí),應(yīng)先將待顯示數(shù)據(jù)轉(zhuǎn)換成相應(yīng)段顯碼后再送顯示器,常通過(guò)查表的形式取得段顯碼。
靜態(tài)顯示:各顯示位同時(shí)選通,每一位顯示器都需要8位數(shù)據(jù)線提供相應(yīng)位的段顯碼,6位LED顯示器共需48根數(shù)據(jù)線。通過(guò)8255A連接的3位LED靜態(tài)顯示器
優(yōu)點(diǎn):顯示無(wú)閃爍,效果好,編程簡(jiǎn)單
缺點(diǎn):硬件開(kāi)銷大
動(dòng)態(tài)顯示:各位依次輪流選通(位掃描)
,每選通一位時(shí),送入該位的段顯碼,延時(shí)1-2ms,再選通下一位,送下一位的段顯碼,依此類推。利用眼睛的視覺(jué)暫留。動(dòng)態(tài)顯示有閃爍,成本低,常常采用動(dòng)態(tài)顯示。不管是靜態(tài)顯示還是動(dòng)態(tài)顯示,為了得到較好的顯示效果,一般要加驅(qū)動(dòng)電路.2.LED顯示器接口電路圖7.286位動(dòng)態(tài)顯示器接口
圖7.29顯示子程序流程圖8031RAM79H-7EH中存放的6位待顯示數(shù)據(jù)編程從顯示器上顯示出來(lái)。分析:顯示接口8155A口:輸出,依次送位選信號(hào)。B口:輸出,依次送出各位的段顯碼。顯示子程序清單如下:(設(shè)初始化程序已完成)
DIR:MOVR0,#79H;顯示緩沖區(qū)首址送R0
MOVR3,#01H;位掃描,使顯示器最左邊位亮
MOVA,R3
LD0:MOVDPTR,#0101H;掃描值送PA口
MOVX@DPTR,A
INCDPTR;指向PB口
MOVA,@R0;取顯示數(shù)據(jù)
ADDA,#12H;加上偏移量
MOVCA,@A+PC;取出段顯碼
MOVX@DPTR,A;送出顯示
ACALLDL1 ;延時(shí)2ms
INCR0 ;緩沖區(qū)地址加1
MOVA,R3;
JBACC.5,LD1 ;掃到第6個(gè)顯示位了嗎?
RLA ;沒(méi)有,R3左環(huán)移一位,掃描下一個(gè)顯示位
MOVR3,A
AJMPLD0
LD1:RET
DSEG:DB3FH,06H,5BH,4FH,66H,6DH;顯示段碼表DSEG1:DB7DH,07H,7FH,6FH,77H,7CHDSEG2:DB39H,5EH,79H,71H,73H,3EH
DSEG3:DB31H,61H,1CH,23H,40H,03H
DSEG4:DB18H,00H,00H,00H
DL1:MOVR7,#02H;延時(shí)子程序DL:MOVR6,#0FFH
DL6:DJNZR6,DL6
DJNZR7,DL
RET7.4.3鍵盤顯示器接口82798279是專用鍵盤/顯示器控制芯片,能對(duì)顯示器及鍵盤矩陣進(jìn)行自動(dòng)掃描,能識(shí)別鍵盤上按下鍵的鍵號(hào);可充分提高CPU的工作效率。8279與MCS-51接口方便,由它構(gòu)成的標(biāo)準(zhǔn)鍵盤/顯示器接口在微機(jī)應(yīng)用系統(tǒng)中使用越來(lái)越廣泛。前面的按鍵識(shí)別程序最大的缺點(diǎn):等待按鍵時(shí),CPU不能干其它工作,效率低。8279的按鍵處理可按中斷方式工作。
1.8279的組成及引腳8279芯片有40條引腳,由單一+5V電源供電。它主要由以下幾部分組成:(1)I/O控制線和數(shù)據(jù)緩沖器:RD,WR,CS,地址線A0,由片選線和地址線共同決定8279在系統(tǒng)中的地址,8279在系統(tǒng)中僅占用兩個(gè)端口地址。A0=0時(shí),選中8279的數(shù)據(jù)端口;A0=1時(shí),選中8279的命令/狀態(tài)端口。數(shù)據(jù)緩沖器:8279通過(guò)數(shù)據(jù)緩沖器與CPU交換數(shù)據(jù).(2)控制和定時(shí)寄存器及定時(shí)控制部分:控制寄存器:接收CPU送來(lái)的命令字,按照命令字中的要求,組成指定的工作方式,并控制系統(tǒng)按指定的方式工作。定時(shí)控制部分:由于8279內(nèi)部有很多時(shí)序電路,因此必須要提供相應(yīng)的時(shí)鐘,8279內(nèi)部時(shí)序電路所需時(shí)鐘頻率為100KHz,必須由外部(CLK引腳)接入,若接入信號(hào)頻率大于100KHz,則必需對(duì)其進(jìn)行分頻,定時(shí)控制部分提供分頻電路,按用戶設(shè)定的分頻值(2-31)對(duì)接入時(shí)鐘分頻。(3)掃描計(jì)數(shù)器:用來(lái)為顯示器和鍵盤提供掃描信號(hào),它有兩種工作方式:編碼方式:其輸出端SL3SL2SL1SL0按0000—1111的規(guī)律變化,必須經(jīng)過(guò)譯碼后方可提供給鍵盤或顯示器作掃描線。譯碼方式:其輸出端SL3SL2SL1SL0按1110-1101-1011-0111規(guī)律循環(huán)變化,可直接用作掃描信號(hào)。但只能提供四根掃描線。(4)回復(fù)緩沖器與鍵盤去抖動(dòng)控制電路:來(lái)自RL0—RL7的輸入信號(hào)(回復(fù)信號(hào))送入回復(fù)緩沖器,由回復(fù)緩沖器保存并鎖存。在鍵盤工作方式中,行掃描線由SL0—SL3提供,逐行掃描時(shí),列線的狀態(tài)將通過(guò)RL0—RL7送入回復(fù)緩沖器,當(dāng)某一鍵按下時(shí),回復(fù)緩沖器中必有一位為零,此時(shí)將自動(dòng)啟動(dòng)去抖電路,延時(shí)10ms,再檢查該鍵是否按下,若是,則將行線值、列線值加上移位、控制狀態(tài)一起形成8位數(shù)據(jù),送往8279內(nèi)部的先進(jìn)先出(FIFO)存儲(chǔ)器,其格式為:CTRLSHIFT行線值列線值例如:用戶系統(tǒng)中無(wú)CTRL和SHIFT鍵,按下第二行第三列的鍵,則系統(tǒng)存入FIFO中的數(shù)據(jù)為:00010011(5)FIFO(先進(jìn)先出)寄存器和狀態(tài)電路:FIFORAM是一個(gè)8*8位的RAM,可以存放8個(gè)鍵值,而其狀態(tài)寄存器用來(lái)存放FIFORAM當(dāng)前的狀態(tài),如是滿、空、有幾個(gè)數(shù)據(jù)等。(6)顯示RAM和顯示地址寄存器:顯示RAM用來(lái)存放待顯示數(shù)據(jù)的字符碼,最多可以存放16個(gè)數(shù)據(jù),在顯示掃描線的配合下,自動(dòng)輪流輸出待顯示數(shù)據(jù)到LED顯示器。顯示地址寄存器用來(lái)寄存由CPU進(jìn)行讀/寫(xiě)的顯示RAM地址,它可以由命令設(shè)定。圖7.308279的引腳圖8279的外特性:D0-D7:CLK:RESET:CS:A0:RD,WR,IRQSL0-SL3RL0-RL7SHIFT,CTRLOUTA0(a)-OUTA3OUTB0-OUTB3(h)BD8279的命令字和狀態(tài)字:8個(gè)命令字,1個(gè)狀態(tài)字。命令字的高三位為標(biāo)志位鍵盤及顯示方式命令字:設(shè)置鍵盤及顯示器的工作方式D4:=1,顯示按左進(jìn)方式;=0,顯示按右進(jìn)方式。D3:=0,顯示8個(gè)字符;=1,顯示16個(gè)字符。D2D1:=00,雙鍵鎖定掃描鍵盤。=01,N鍵輪回掃描鍵盤
=10,掃描傳感矩陣;=11,選通輸入方式。D0:=0:編碼掃描=1:譯碼掃描。
時(shí)鐘編程命令字:設(shè)定對(duì)CLK引腳的輸入脈沖的分頻值(2-31),0和1無(wú)意義。讀FIFORAM命令字:8279有一個(gè)數(shù)據(jù)口,當(dāng)CPU從8279端口讀取數(shù)據(jù)時(shí),數(shù)據(jù)來(lái)源有兩個(gè):一個(gè)是FIFORAM,另一個(gè)是顯示RAM,到底讀哪一個(gè)必須先發(fā)相應(yīng)的命令。D4:=1,讀出數(shù)據(jù)后,地址自動(dòng)加1=0,讀出數(shù)據(jù)后,地址不變。D2D1D0:僅用于傳感器方式。讀顯示RAM命令字:D4:=1,讀出數(shù)據(jù)后,地址自動(dòng)加1=0,讀出數(shù)據(jù)后,地址不變。D3D2D1D0:指定顯示RAM的地址。寫(xiě)顯示RAM命令字:雖然8279往數(shù)據(jù)端口寫(xiě)數(shù)據(jù)時(shí),目的地只有顯示RAM,但必須由該命令字指定顯示RAM的地址。D4:=1,讀出數(shù)據(jù)后,地址自動(dòng)加1=0,讀出數(shù)據(jù)后,地址不變。D3D2D1D0:指定顯示RAM的地址。顯示禁止寫(xiě)入/消隱命令字:用于OUTA0-OUTA3,OUTB0-OUTB3分別顯示及寫(xiě)入情況。D3:=1,禁止寫(xiě)入A=0,允許寫(xiě)入AD2:=1,禁止寫(xiě)入B=0,允許寫(xiě)入BD1:=1,消隱A,=0,不消隱AD0:=1,消隱B,=0,不消隱B。清除命令字:D4:=1,允許清除顯示RAM;=0,不允許清除D3D2:0×:顯示RAM全清010:顯示RAM全清成20H11:顯示RAM全置1D1:=1,清空FIFORAMD0:=1,清空FIFORAM,并清顯示RAM,按D3D2指出的格式清錯(cuò)誤方式置位命令字:當(dāng)8279被設(shè)置成N鍵輪回的工作方式時(shí),如置D4=1,則當(dāng)有多鍵同時(shí)按下時(shí),則將狀態(tài)字中的錯(cuò)誤特征位S/E=1,向CPU申請(qǐng)中斷,并禁止寫(xiě)入FIFORAM。8279的狀態(tài)字:當(dāng)從控制端口讀取數(shù)據(jù)時(shí),為狀態(tài)字DU:=1,顯示無(wú)效,顯示RAM不可用。S/E:特殊工作方式下,有多鍵同時(shí)按下時(shí),該位被置1O:=1,當(dāng)FIFO滿后,再往里面寫(xiě)入數(shù)據(jù),則置該位為1U=1,F(xiàn)IFO為空F=1,F(xiàn)IFO為滿NNN:FIFO中有幾個(gè)數(shù)據(jù)。2.8279的接口電路與應(yīng)用圖7.318031與8279接口連接框圖上述電路中,8279數(shù)據(jù)端口地址為:命令端口地址為:STRT1:MOVDPTR,#7FFFH;命令端口
MOVA,#0D1H;11010001,清顯示RAM和FIFO
MOVX@DPTR,A
WAITD:MOVXA,@DPTR;讀取狀態(tài)字
JBACC.7,WAITD;等待清除完
MOVA,#2AH;設(shè)置分頻數(shù)為10
MOVX@DPTR,A
MOVA,#08H;顯示器左入,編碼,雙鍵鎖定
MOVX@DPTR,AMOVR0,#30H;數(shù)據(jù)區(qū)初始化例:將內(nèi)部RAM30H開(kāi)始的16個(gè)數(shù)據(jù)送顯示器顯示,并讀取16個(gè)鍵值,送入緩沖器(查詢方式)。MOVR7,#10HMOVA,#90H;寫(xiě)顯示RAM命令字MOVX@DPTR,AMOVDPTR,#7EFFHLOOP1:MOVA,@R0MOVX@DPTR,A;數(shù)據(jù)送入顯示RAMINCR0DJNZR7,LOOP1MOVR0,#40HMOVR7,#10HLOOP2:MOVDPTR,#7FFFH;讀8279狀態(tài)LOOP3:MOVXA,@DPTRANLA,#0FHJZLOOP3MOVA,#40H;讀FIFORAM命令字MOVX@DPTR,AMOVDPTR,#7EFFH;數(shù)據(jù)端口
MOVXA,@DPTR;讀取鍵值
MOV@R0,AINCR0DJNZR7,LOOP1HERE:AJMPHERE7.5A/D和D/A接口功能的擴(kuò)展
由于計(jì)算機(jī)本身只能處理數(shù)字量(二進(jìn)制代碼)。而在計(jì)算機(jī)應(yīng)用領(lǐng)域中,特別是在實(shí)時(shí)控制系統(tǒng)中,常需要把外界連續(xù)變化的物理量(如溫度、壓力、流量、速度),變成數(shù)字量輸入計(jì)算機(jī)進(jìn)行加工、處理。反之,也需要把計(jì)算機(jī)計(jì)算結(jié)果的數(shù)字量轉(zhuǎn)換成連續(xù)變化的模擬量輸出,用以控制,調(diào)節(jié)某些執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)對(duì)被控對(duì)象的控制。這種把模擬量變成數(shù)字量和把數(shù)字量轉(zhuǎn)換成模擬量,就稱為模/數(shù)和數(shù)/模轉(zhuǎn)換。實(shí)現(xiàn)這類轉(zhuǎn)換的器件,就稱為模/數(shù)(A/D)和數(shù)/模(D/A)轉(zhuǎn)換器。7.5.1A/D轉(zhuǎn)換器接口
1.概述
A/D轉(zhuǎn)換器用以實(shí)現(xiàn)模擬量向數(shù)字量的轉(zhuǎn)換。按轉(zhuǎn)換原理可分為4種:雙積分式、計(jì)數(shù)式、逐次逼近式以及并行式A/D轉(zhuǎn)換器。逐次逼近式A/D轉(zhuǎn)換器是一種速度較快,精度較高的轉(zhuǎn)換器,其轉(zhuǎn)換時(shí)間大約在幾微秒到幾百微秒之間。常用的這種芯片有:(1)ADC0801~ADC0805型8位MOS型A/D轉(zhuǎn)換器;
(2)ADC0808/0809型8位MOS型A/D轉(zhuǎn)換器;
(3)ADC0816/0817型8位MOS型A/D轉(zhuǎn)換器;量化間隔和量化誤差是A/D轉(zhuǎn)換器的主要技術(shù)指標(biāo)之一。
量化間隔由下式計(jì)算:
其中n為A/D轉(zhuǎn)換器的位數(shù)。量化誤差有兩種表示方法:一種是絕對(duì)量化誤差;另一種是相對(duì)量化誤差。絕對(duì)量化誤差相對(duì)量化誤差2.典型A/D轉(zhuǎn)換器芯片ADC0809簡(jiǎn)介
ADC0809是采用CMOS工藝制造的雙列直插式單片8位A/D轉(zhuǎn)換器。分辨率8位,精度7位,帶8個(gè)模擬量輸入通道,有通道地址譯碼鎖存器,輸出帶三態(tài)數(shù)據(jù)鎖存器。啟動(dòng)信號(hào)為脈沖啟動(dòng)方式,最大可調(diào)節(jié)誤差為±1LSB,ADC0809內(nèi)部沒(méi)有時(shí)鐘電路,故CLK時(shí)鐘需由外部輸入,fclk
允許范圍為500kHz~1MHz,典型值為640kHz。每通道的轉(zhuǎn)換需66~73個(gè)時(shí)鐘脈沖,大約100~110μs。工作溫度范圍為-40℃~+85℃。功耗為15mW,輸入電壓范圍為0~5V,單一+5V電源供電。圖7.32ADC0809的內(nèi)部結(jié)構(gòu)圖7.33ADC0809引腳圖
IN0~I(xiàn)N7:8路模擬通道的輸入端。D0~D7:8位數(shù)字量輸出端。REF(+)、REF(-):正、負(fù)參考電壓輸入端。一般情況下REF(+)與VCC相連接,REF(-)與GND相連接CLK:時(shí)鐘輸入信號(hào)。START:轉(zhuǎn)換啟動(dòng)信號(hào),高電平有效。ADDA、ADDB、ADDC:模擬通道選擇輸入端。ALE:地址鎖存信號(hào)。EOC:A/D轉(zhuǎn)換結(jié)束信號(hào),此信號(hào)常被用來(lái)作為中斷請(qǐng)求信號(hào)。OE:允許輸出信號(hào)。表7.9地址碼與輸入通道的對(duì)應(yīng)關(guān)系
圖7.34ADC0809時(shí)序圖3、ADC0809與8031的接口電路A/D轉(zhuǎn)換器與單片機(jī)接口具有軟、硬件相依性。一般來(lái)說(shuō),A/D轉(zhuǎn)換器與單片機(jī)的接口主要考慮的是地址線的連接、數(shù)字量輸出線的連接、ADC啟動(dòng)方式、轉(zhuǎn)換結(jié)束信號(hào)處理方法以及時(shí)鐘的連接等。A/D轉(zhuǎn)換器數(shù)字量輸出線與單片機(jī)的連接方法與其內(nèi)部結(jié)構(gòu)有關(guān)。內(nèi)部帶有三態(tài)鎖存數(shù)據(jù)輸出緩沖器的ADC0809,可直接與單片機(jī)數(shù)據(jù)總線相連。還有,隨著位數(shù)的不同,ADC與單片機(jī)的連接方法也不同。對(duì)于8位ADC,其數(shù)字輸出線可與8位單片機(jī)數(shù)據(jù)線對(duì)應(yīng)相接。對(duì)于8位以上的ADC,與8位單片機(jī)相接就不那么簡(jiǎn)單了,此時(shí)必須增加讀取控制邏輯,把8位以上的數(shù)據(jù)分兩次或多次讀取。一個(gè)ADC開(kāi)始轉(zhuǎn)換時(shí),必須加一個(gè)啟動(dòng)轉(zhuǎn)換信號(hào),這一啟動(dòng)信號(hào)要由單片機(jī)提供。對(duì)于脈沖啟動(dòng)型ADC0809,只要給其啟動(dòng)控
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 廣東科貿(mào)職業(yè)學(xué)院《理論力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東江門中醫(yī)藥職業(yè)學(xué)院《生物工程專業(yè)實(shí)驗(yàn)(一)》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣東海洋大學(xué)《國(guó)際關(guān)系案例分析》2023-2024學(xué)年第一學(xué)期期末試卷
- 《我們生活需要誰(shuí)》課件
- 廣東碧桂園職業(yè)學(xué)院《計(jì)算機(jī)編程》2023-2024學(xué)年第一學(xué)期期末試卷
- 廣安職業(yè)技術(shù)學(xué)院《玩教具制作》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛州職業(yè)技術(shù)學(xué)院《玉雕銷售與市場(chǎng)調(diào)研》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南師范大學(xué)科技學(xué)院《高分子材料成型模具設(shè)計(jì)》2023-2024學(xué)年第一學(xué)期期末試卷
- 贛南科技學(xué)院《油氣地質(zhì)地球化學(xué)新進(jìn)展》2023-2024學(xué)年第一學(xué)期期末試卷
- 行政會(huì)計(jì)培訓(xùn)課件
- 球墨鑄鐵管行業(yè)分析及市場(chǎng)研究報(bào)告
- 建筑規(guī)劃設(shè)計(jì)方案評(píng)審
- 2024中國(guó)出口信用保險(xiǎn)公司江蘇分公司勞務(wù)派遣人員招聘筆試參考題庫(kù)附帶答案詳解
- 淘寶爆款打造方案
- 自然情懷-主題作文訓(xùn)練
- 阿爾茨海默病康復(fù)
- 鐵路貨運(yùn)員(中級(jí))資格認(rèn)定考試題庫(kù)(濃縮500題)
- iqc部門年終工作總結(jié)
- 2024年人工智能發(fā)展引領(lǐng)AI應(yīng)用創(chuàng)新
- 智能智能化智能眼鏡
- 四川省眉山市2023-2024學(xué)年高二上學(xué)期期末生物試題【含答案解析】
評(píng)論
0/150
提交評(píng)論