第9章 擴(kuò)展IO接口NEW_第1頁
第9章 擴(kuò)展IO接口NEW_第2頁
第9章 擴(kuò)展IO接口NEW_第3頁
第9章 擴(kuò)展IO接口NEW_第4頁
第9章 擴(kuò)展IO接口NEW_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第9章 AT89S51單片機(jī)的I/O擴(kuò)展29.3 擴(kuò)展I/O接口芯片81C55的設(shè)計可編程的接口芯片81C55的結(jié)構(gòu)和技術(shù)性能3圖 8155的引腳圖和結(jié)構(gòu)框圖CBAAD012PA021AD113PA122AD214PA223AD315PA324AD416PA425AD517PA526AD618PA627AD719PA728PB029CE8PB130RD9PB231WR10PB332IO/M7PB433ALE11PB534PB635PB736TIMEROUT6PC037PC138TIMERIN3PC239PC31PC42RESET4PC558155256字節(jié)靜態(tài)RAM14位定時計數(shù)器TIMER

2、 INTIMER OUTVCC(5 V)VSS(GND)PA0PA7IO/MCEALERDWRRESETAD0AD7PB0PB7PC0PC74圖 81C55和8051的接口電路80518155RSTRESETALEALERDRDWRWRP0AD0AD7CEIO/MP2.1P2.25 VPAPBPC8MOVX DPTR,A做片外RAM使用:CE=0,IO/M=0,片外RAMF900HF9FFH做擴(kuò)展I/O口使用:CE=0,IO/M=1, 命令/狀態(tài)寄存器:FD00H PA: FD01H PB:FD02H PC:FD03H5根據(jù)上述、的連接關(guān)系,可以確定地址如下: A15 A14 A13 A12

3、A11 A10 A9 A8 P2.7 P2.6 P2.5 P2.4 2.3 P2.2 P2.1 P2.0RAM: MIO/CE0 08155I/O口: 1 0F9FD6 此時,8155內(nèi)部RAM的地址范圍為:F900HF9FFH,8155各端口的地址(設(shè)無關(guān)位為1,這些地址都不是惟一的)為: 控制字/狀態(tài)字口 FD00H 控制字只能寫,狀態(tài)字只讀 A口 FD01H B口 FD02H C口 FD03H 計數(shù)器低字節(jié) FD04H 計數(shù)器高字節(jié) FD05H7 8155的控制字 TM1TM2IEBIEAPC2 PC1PAPAPBA口方式B口方式B口A口計數(shù)器方式00:空操作01:停止計數(shù)10:計滿后停

4、止11:開始計數(shù)0:輸入1:輸出0:禁止中斷1:允許中斷00110110方式1:A、B 口基本 I/O ; C口輸入方式2:A、B 口基本 I/O ; C口輸出方式3:A口選通 I/O , B口基本 I/O方式4:A , B口選通 I/O設(shè)置8155工作方式8在實(shí)訓(xùn)電路板中,擴(kuò)展了8155,用于連接8個LED顯示和鍵盤,A、B口為基本輸出方式,C口為基本輸入方式,因此編寫如下程序: MOV DPTR,#CWR;設(shè)CWR為命令寄存器的地址 MOV A,#03H ;A、B口為基本輸出方式,C口為基本輸入方式 MOVX DPTR,A設(shè)置設(shè)置8155工作方式示例:工作方式示例:9表表9-3 C9-3

5、C口在兩種口在兩種I/OI/O工作方式下各位定義工作方式下各位定義 10C口在AB口選通方式下的功能 在輸入操作時,STB是外設(shè)送來的選通信號,STB=0時,數(shù)據(jù)裝入8155,使得ABF=1(8155緩沖器已滿)。當(dāng)STB由0變1,向CPU請求中斷,CPU響應(yīng)中斷,開始讀取輸入數(shù)據(jù),(RD出現(xiàn)下降沿),AINTR恢復(fù)為0。RD=1,ABF恢復(fù)為0,結(jié)束一次數(shù)據(jù)輸入。 在輸出操作時,STB是外設(shè)送來的應(yīng)答信號,當(dāng)外設(shè)接收并處理完數(shù)據(jù)后,發(fā)STB負(fù)脈沖,STB后沿,使AINTR=1,向CPU申請中斷,CPU響應(yīng)中斷后,將數(shù)據(jù)送到8155,使ABF=1,通知外設(shè)接收數(shù)據(jù),外設(shè)接收了數(shù)據(jù)后再以STB信

6、號來應(yīng)答。11圖8.22 8155的狀態(tài)字A口中斷請求標(biāo)志: 0:無;1:有A口緩沖器: 0:空;1:滿A口中斷允許: 0:禁止;1:允許B口中斷請求標(biāo)志: 0:無;1:有B口緩沖器: 0:空;1:滿B口中斷允許: 0:禁止;1:允許定時器中斷標(biāo)志:1:有定時器溢出中斷0:讀狀態(tài)字后或硬件復(fù)位后INTEBTIMERBBFINTRBINTEAINTRAABF123. 3. 內(nèi)部定時器內(nèi)部定時器/ /計數(shù)器及使用計數(shù)器及使用 14 14位的減位的減1 1定時器定時器/ /計數(shù)器計數(shù)器,計數(shù)長度計數(shù)長度和和計數(shù)方式計數(shù)方式由寫入計數(shù)寄存器的控制字來確定。由寫入計數(shù)寄存器的控制字來確定。計數(shù)器的兩個寄

7、存器的格式如圖計數(shù)器的兩個寄存器的格式如圖9-169-16。13T13T13 T0:T0:計數(shù)器長度計數(shù)器長度M2M2、M1:M1:設(shè)置定時器的設(shè)置定時器的4 4種工作方式種工作方式4 4種工作方式及計數(shù)到相應(yīng)輸出波形種工作方式及計數(shù)到相應(yīng)輸出波形如圖如圖9-179-17。使用時,先把計數(shù)長度和輸出方式裝入定時計數(shù)器的2個字節(jié),計數(shù)長度23FFFH之間的任意值。然后通過命令寄存器的最高位(TM2、TM1)控制計數(shù)器的啟動和停止。以計數(shù)值8為例,所謂單次方波是從啟動計數(shù)開始,前4個計數(shù)輸入為1,后4個計數(shù)輸入為0,若計數(shù)值為奇數(shù),則1電平比0電平多一個。149.3.3 MCS-519.3.3 M

8、CS-51與與8155H8155H接口及軟件編程接口及軟件編程1.MCS-511.MCS-51與與8155H8155H的硬件接口電路的硬件接口電路152. 8155H2. 8155H的編程舉例的編程舉例8155H8155H( (1) 1) 初始化程序設(shè)計初始化程序設(shè)計例例9-39-3 若若A A口定義為基本輸入方式,口定義為基本輸入方式,B B口定義為基本輸出方口定義為基本輸出方 式,對輸入脈沖進(jìn)行式,對輸入脈沖進(jìn)行2424分頻,初始化程序如下:分頻,初始化程序如下:START:MOV DPTR, START:MOV DPTR, 7F04H 7F04H ;指針指向定時器低;指針指向定時器低8

9、8位位MOV A,MOV A,18H18H ;計數(shù)初值;計數(shù)初值2424送送A,A, MOVX DPTR,AMOVX DPTR,A ;計數(shù)初值低;計數(shù)初值低8 8位裝入定時器位裝入定時器INC DPTR INC DPTR ;指針指向定時器高;指針指向定時器高8 8位位MOV A,MOV A,40H 40H ;設(shè)定時器連續(xù)方波輸出;設(shè)定時器連續(xù)方波輸出MOVX DPTR,AMOVX DPTR,A ;計數(shù)初值高;計數(shù)初值高6 6位裝入定時器位裝入定時器MOV DPTR,MOV DPTR,7F00H 7F00H ;指向命令;指向命令/ /狀態(tài)口狀態(tài)口MOV A,#0C2HMOV A,#0C2H ;設(shè)

10、定命令控制字;設(shè)定命令控制字MOVX DPTR,AMOVX DPTR,A ;A A口輸入,口輸入,B B口輸出口輸出, ,開定時器開定時器169.4 9.4 用用74LSTTL74LSTTL電路擴(kuò)展并行電路擴(kuò)展并行I/OI/O口口 利用利用74LS27374LS273和和74LS24474LS244,將,將P0P0口擴(kuò)展成簡單的輸入、口擴(kuò)展成簡單的輸入、輸出口的電路輸出口的電路。 74LS273 74LS273輸出端接輸出端接8 8個個LEDLED發(fā)光二極管,以顯示發(fā)光二極管,以顯示8 8個按個按鈕開關(guān)狀態(tài),某位低電平時二極管發(fā)光。鈕開關(guān)狀態(tài),某位低電平時二極管發(fā)光。 74LS244 74LS

11、244是緩沖驅(qū)動器,擴(kuò)展輸入口,接是緩沖驅(qū)動器,擴(kuò)展輸入口,接8 8個按鈕開個按鈕開關(guān)。關(guān)。 74LS27374LS273和和74LS24474LS244的工作受的工作受80318031的的P2.0P2.0、RDRD* *、WRWR* *三條控制線控制。三條控制線控制。電路的工作原理如下電路的工作原理如下: : 當(dāng)當(dāng)P2.0=0,WRP2.0=0,WR* *=0(RD=0(RD* *= =) )選中寫選中寫74LS27374LS273, 80318031通過通過P0P0口輸出數(shù)據(jù)到口輸出數(shù)據(jù)到74LS27374LS273,;,; 當(dāng)當(dāng)P2.0=0,RDP2.0=0,RD* *=0(WR=0(W

12、R* *=1)=1)時選中讀時選中讀74LS244,74LS244, 某開某開關(guān)按下時則對應(yīng)位輸入為關(guān)按下時則對應(yīng)位輸入為“0”0”。1718例例9-69-6 編寫程序把按鈕開關(guān)狀態(tài)通過圖編寫程序把按鈕開關(guān)狀態(tài)通過圖9-209-20中的發(fā)中的發(fā)光二極管顯示出來。光二極管顯示出來。程序如下:程序如下:DDIS:DDIS: MOV DPTR,#0FEFFH MOV DPTR,#0FEFFH ;輸入口地址;輸入口地址DPTRDPTRLP:LP:MOVX A,DPTR MOVX A,DPTR ;按鈕開關(guān)狀態(tài)讀入;按鈕開關(guān)狀態(tài)讀入A A中中MOVX DPTR,AMOVX DPTR,A ;WR*為低,為低

13、,A中數(shù)據(jù)經(jīng)中數(shù)據(jù)經(jīng)74LS273口輸出口輸出SJMP LP SJMP LP ;反復(fù)連續(xù)執(zhí)行;反復(fù)連續(xù)執(zhí)行199.5 9.5 用用MCS-51MCS-51的串行口擴(kuò)展并行口的串行口擴(kuò)展并行口9.5.1 9.5.1 用用74LS16574LS165擴(kuò)展并行輸入口擴(kuò)展并行輸入口20例例9-7 9-7 從從1616位擴(kuò)展口讀入位擴(kuò)展口讀入5 5組組數(shù)據(jù)(每組二個字節(jié)),數(shù)據(jù)(每組二個字節(jié)),并把它們轉(zhuǎn)存到內(nèi)部并把它們轉(zhuǎn)存到內(nèi)部RAM 20HRAM 20H開始的單元中。開始的單元中。MOV R7,#05H MOV R7,#05H ;設(shè)置讀入組數(shù);設(shè)置讀入組數(shù)MOV R0,#20H MOV R0,#20

14、H ;設(shè)置內(nèi)部;設(shè)置內(nèi)部RAMRAM數(shù)據(jù)區(qū)首址數(shù)據(jù)區(qū)首址START: CLR P1.0START: CLR P1.0;并行置入數(shù)據(jù),;并行置入數(shù)據(jù),S/LS/L* *=0=0 SETB P1.0 SETB P1.0;允許串行移位,;允許串行移位,S/LS/L* *=1=1 MOV R1,#02H MOV R1,#02H;設(shè)置每組字節(jié)數(shù),即外擴(kuò);設(shè)置每組字節(jié)數(shù),即外擴(kuò) ;74LS16574LS165的個數(shù)的個數(shù)RXDAT: MOV SCON,#10H RXDAT: MOV SCON,#10H ;設(shè)串口方式;設(shè)串口方式0 0,允許接收,啟動,允許接收,啟動WAIT: JNB RI,WAIT WAI

15、T: JNB RI,WAIT ;未接收完一幀,循環(huán)等待;未接收完一幀,循環(huán)等待CLR RICLR RI ;清;清RIRI標(biāo)志,準(zhǔn)備下次接收標(biāo)志,準(zhǔn)備下次接收21MOV A,SBUFMOV A,SBUF;讀入數(shù)據(jù);讀入數(shù)據(jù)MOV R0,AMOV R0,A;送至;送至RAMRAM緩沖區(qū)緩沖區(qū)INC R0INC R0;指向下一個地址;指向下一個地址DJNZ R1,RXDATA DJNZ R1,RXDATA ;未讀完一組數(shù)據(jù),繼續(xù);未讀完一組數(shù)據(jù),繼續(xù)DJNZ R7,STARTDJNZ R7,START;5 5組數(shù)據(jù)未讀完重新并行置入組數(shù)據(jù)未讀完重新并行置入 ;對數(shù)據(jù)進(jìn)行處理;對數(shù)據(jù)進(jìn)行處理229.5

16、.2 9.5.2 用用74LS16474LS164擴(kuò)展并行輸出口擴(kuò)展并行輸出口. .74LS16474LS164:8 8位串入并出移位寄存器。位串入并出移位寄存器。 圖圖9-229-22是是利用利用74LS16474LS164擴(kuò)展二個擴(kuò)展二個8 8位并行輸出口位并行輸出口的接的接口電路??陔娐?。23例例9-8 9-8 編寫將內(nèi)部編寫將內(nèi)部RAMRAM單元單元30H30H、31H31H的內(nèi)容經(jīng)串行口的內(nèi)容經(jīng)串行口 由由74LS16474LS164并行輸出子程序。并行輸出子程序。START: MOV R7,#02HSTART: MOV R7,#02H;設(shè)置要發(fā)送的字節(jié)個數(shù);設(shè)置要發(fā)送的字節(jié)個數(shù) M

17、OV R0,#30HMOV R0,#30H;設(shè)置地址指針;設(shè)置地址指針 MOV SCON,#00H MOV SCON,#00H ;設(shè)置串行口為方式;設(shè)置串行口為方式0 0SEND:SEND: MOV A,R0 MOV A,R0 MOV SBUF,A MOV SBUF,A ;啟動串行口發(fā)送過程;啟動串行口發(fā)送過程WAIT:WAIT: JNB TI,WAIT JNB TI,WAIT ;1 1幀數(shù)據(jù)未發(fā)完,循環(huán)等待幀數(shù)據(jù)未發(fā)完,循環(huán)等待 CLR TICLR TI INC R0 INC R0 ;取下一個數(shù);取下一個數(shù) DJNZ R7,SENDDJNZ R7,SEND ;未完,發(fā)完從子程序返回;未完,發(fā)

18、完從子程序返回 RETRET249.6 用用I/O口控制的聲音報警接口口控制的聲音報警接口當(dāng)單片機(jī)測控系統(tǒng)發(fā)生故障或處于某種緊急狀態(tài)時,單片機(jī)系統(tǒng)應(yīng)能發(fā)發(fā)出提醒出提醒人們警覺的聲音報警聲音報警。用I/O口很容易實(shí)現(xiàn)該功能。9.6.1 蜂鳴音報警接口蜂鳴音報警接口購買市售的壓電式蜂鳴器,用一根I/O口線驅(qū)動蜂鳴器發(fā)聲。約需10mA的驅(qū)動電流,可用7406或7407低電平驅(qū)動,如圖圖9-23所示所示,也可以用一個晶體管驅(qū)動,如圖圖9-24所示所示。 圖圖9-23 通過74LS06 來驅(qū)動蜂鳴器的報警電路25 圖圖9-24 使用三極管驅(qū)動的蜂鳴器報警電路在在圖圖9-23中中,P1.7接驅(qū)動器的輸入端。當(dāng)輸出高電平時輸出高電平時,7406的輸出為低電平,使壓電蜂鳴器兩加上近5V的直流電壓,由壓電

溫馨提示

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

評論

0/150

提交評論