第5章MCS51單片微型計(jì)算機(jī)的輸入輸出和中斷系統(tǒng)_第1頁(yè)
第5章MCS51單片微型計(jì)算機(jī)的輸入輸出和中斷系統(tǒng)_第2頁(yè)
第5章MCS51單片微型計(jì)算機(jī)的輸入輸出和中斷系統(tǒng)_第3頁(yè)
第5章MCS51單片微型計(jì)算機(jī)的輸入輸出和中斷系統(tǒng)_第4頁(yè)
第5章MCS51單片微型計(jì)算機(jī)的輸入輸出和中斷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩50頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)基本輸入/輸出接口概述

計(jì)算機(jī)在實(shí)際應(yīng)用中,程序、數(shù)據(jù)或從現(xiàn)場(chǎng)采集到的各種信號(hào)要通過(guò)輸入設(shè)備送到計(jì)算機(jī)中去處理。計(jì)算機(jī)處理后的結(jié)果或各種控制信號(hào)要輸出到輸出裝置或執(zhí)行機(jī)構(gòu),以便顯示、打印或?qū)崿F(xiàn)各種控制動(dòng)作。常用的輸入裝置有鍵盤(pán)和各種現(xiàn)場(chǎng)采集裝置;輸出裝置有打印機(jī)、顯示器和現(xiàn)場(chǎng)執(zhí)行機(jī)構(gòu)。I/O設(shè)備種類(lèi):有電子式、機(jī)械式及其它各種形式。速度差異:有秒級(jí)、毫秒級(jí)、微秒級(jí)信號(hào)類(lèi)型:有數(shù)字量、模擬量、開(kāi)關(guān)量。數(shù)據(jù)的格式有串行、并行等。因此,外圍設(shè)備一般不能與計(jì)算機(jī)直接相連,必須通過(guò)專(zhuān)門(mén)的中介電路—接口,才能與CPU進(jìn)行信息交換。I/O接口:用于連接CPU與I/O設(shè)備的所有接口統(tǒng)稱(chēng)為I/O接口。

某些通用集成電路芯片可以用作I/O接口,如74LS373、74LS165等。更大量的I/O接口芯片是專(zhuān)門(mén)為計(jì)算機(jī)設(shè)計(jì)的,如ADC0809、MAX232、8279等。I/O接口電路應(yīng)有以下功能:1)數(shù)據(jù)緩沖:2)信號(hào)變換:3)電平轉(zhuǎn)換:4)傳送控制命令和狀態(tài)信息:計(jì)算機(jī)與外圍設(shè)備間傳送三種信息:數(shù)據(jù)信息、狀態(tài)信息和控制信息。如計(jì)算機(jī)與打印機(jī)接口時(shí),首先計(jì)算機(jī)將待打印的字符代碼(數(shù)據(jù)信息)送入電路鎖存,同時(shí)通過(guò)I/O電路送出控制信息啟動(dòng)打印機(jī)接收字符代碼并打印一行字符。打印完后,打印機(jī)要通過(guò)I/O電路向計(jì)算機(jī)發(fā)出打印機(jī)“空閑”的狀態(tài)信息,要求計(jì)算機(jī)再次輸出數(shù)據(jù)。

輸入/輸出的編址方式

1.I/O接口與存儲(chǔ)器統(tǒng)一編址2.I/O接口單獨(dú)編址

輸入/輸出的工作方式1、無(wú)條件傳送方式2、查詢(xún)傳送方式3.中斷傳送方式4.直接數(shù)據(jù)信道傳送(DMA)方式

圖5-3查詢(xún)方式輸入接口電路

P0.7

····

P0.0

8051

ALE地址鎖存器三態(tài)緩沖器數(shù)據(jù)鎖存器QRD

DC≥1A7≥1D0 輸入裝置8位數(shù)據(jù)VCC選通A3如何編程讀取輸入裝置數(shù)據(jù)

MOVR0,#0FEH ;指向狀態(tài)端口TEST:MOVXA,@R0 ;讀取狀態(tài)信息

JNB ACC.0,TEST ;輸入裝置準(zhǔn)備好嗎? ;D0=0繼續(xù)等待

DEC R0 ;數(shù)據(jù)準(zhǔn)備好,指向數(shù)據(jù)端口

MOVXA,@R0 ;讀入數(shù)據(jù)MCS-51系列單片機(jī)輸入/輸出端口控制MCS-51系列單片機(jī)輸入/輸出概述MCS-51系列單片機(jī)有4個(gè)8位雙向并行輸入/輸出(I/O)端口:P0、P1、P2和P3,共32位,P0口為三態(tài)雙向口,可驅(qū)動(dòng)8個(gè)TTL電路,P1、P2、P3口為準(zhǔn)雙向口(作為輸入時(shí),口線被拉成高電平)。此四個(gè)端口都可以做為單獨(dú)的輸入或輸出使用,即每一支I/O腳位都可以做輸入用,也可以做為輸出使用。當(dāng)做為輸出時(shí),則每一只管腳可位編程輸出高電平“1”或低電平“0”驅(qū)動(dòng)外部電路。 實(shí)際應(yīng)用中,P0口用于輸出外部存儲(chǔ)器的低8位地址,并分時(shí)復(fù)用作為與外部存儲(chǔ)器連接的數(shù)據(jù)總線口;P2口用于輸出高8位地址;P3口常用于特殊功能寄存器。只有P1口是留給用戶(hù)使用的基本I/O口,供用戶(hù)使用。MCS-51單片機(jī)輸入輸出(I/O)端口編程

P1口既可以做輸入端口又可以做輸出端口。在我們所用的實(shí)驗(yàn)板中,P1口通過(guò)反向驅(qū)動(dòng)電路ULN2003控制數(shù)碼管工作。試根據(jù)實(shí)驗(yàn)板I/O控制端口原理圖,設(shè)計(jì)通過(guò)89S51單片機(jī)的P1口控制二極管發(fā)光(要求用軟件延時(shí)使其產(chǎn)生動(dòng)態(tài)效果)。根據(jù)硬件原理,通過(guò)P1口可控制發(fā)光二極管及蜂鳴器工作。I/O口控制原理圖如圖5-5所示。硬件電路分析:圖中反向驅(qū)動(dòng)放大器ULN2003接發(fā)光二極管陰極,發(fā)光二極管陽(yáng)極通過(guò)限流電阻接+5V電源(限流電阻的計(jì)算應(yīng)以發(fā)光二極管亮度滿(mǎn)足要求即可。電流小,亮度不夠;電流大,耗電、影響二極管壽命,一般二極管電流為15mA左右)。J2為3列8行排針,排針的1、4、7、10、13、16、19接ULN2003的輸入,3、6、9、12、15、18、21、24為排針的中間引腳,2、5、8、11、14、17、20、23接89S51的P1口。要由編程控制發(fā)光二極管發(fā)光,ULN2003必須輸出低電平,而ULN2003的輸入必須接89S51的P1口,才能通過(guò)軟件編程控制二極管發(fā)光,所以應(yīng)借助短路環(huán)將J2中的(1、2)、(4、5)、(7、8)、(10、11)、(19、20)短接。將J15中的(1、2)、(4、5)用短路環(huán)短接。硬件電路檢測(cè)。線路接好后,用萬(wàn)用表電阻檔檢測(cè)89S51的P10、P11、P12、P13、P14、P15、P16是否與ULN2003的輸入1、2、3、4、5、6、7接通。若接通,硬件電路連接正常,若不通,應(yīng)檢查線路硬件故障,直至接通為止(注意:不能測(cè)P10、P11、P12、P13與ULN2003的輸出端)軟件編程分析:1)通過(guò)置位指令或字節(jié)傳送指令使P10~P16輸出為“1”時(shí),通過(guò)ULN2003輸出為“0”,則LED亮、蜂鳴器叫;當(dāng)P1口輸出為“0”時(shí),LED熄滅、蜂鳴器停。2)要讓二極管發(fā)光,必使P1端口為高電平

SETBP1.0 SETB P1.1 SETB P1.2 SETB P1.3 SETB P1.4 SETB P1.5 SETB P1.6或MOVP1,#7FH軟件延時(shí)子程序:入口參數(shù)R7、R6,

出口:參數(shù)無(wú)DELAY: MOV R7,#0FH ;2usDELA0: MOV R6,#20H ;2usDELA1: NOP ;1us DJNZ R6,DELA1 ;2us

DJNZ R7,DELA0 ;2us RET ;2us軟件延時(shí)子程序的執(zhí)行時(shí)間計(jì)算:晶振選12MHZ2+[2+(1+2)*32+2]*15+2=1504us若需要其它的延時(shí)時(shí)間可在上述程序中再加循環(huán)層或減少循環(huán)層。實(shí)驗(yàn)二I/O端口實(shí)驗(yàn)計(jì)算機(jī)中的中斷請(qǐng)求與控制

1、CPU中斷請(qǐng)求與控制 當(dāng)CPU正在處理某件事情時(shí),發(fā)生了更緊急的事件請(qǐng)求CPU處理,此時(shí),CPU暫停當(dāng)前工作,轉(zhuǎn)去處理緊急事件即響應(yīng)中斷服務(wù)程序。中斷服務(wù)程序處理完后,CPU回到原工作地點(diǎn)繼續(xù)原來(lái)的工作,這一過(guò)程稱(chēng)為中斷。如圖5-4所示圖5-4中斷響應(yīng)過(guò)程2、中斷的優(yōu)點(diǎn)

1)計(jì)算機(jī)與其他設(shè)備多任務(wù)同時(shí)工作、分時(shí)操作,提高了計(jì)算機(jī)的利用率;2)實(shí)時(shí)處理控制系統(tǒng)中的各種信息,提高了計(jì)算機(jī)的靈活性;3)使計(jì)算機(jī)及時(shí)處理故障等突發(fā)事件,提高了可靠性。圖5-6中斷系統(tǒng)的結(jié)構(gòu)框圖中斷系統(tǒng)有五個(gè)中斷源外部中斷源1)INT0(入口地址0003H),外部中斷0。由P3.2端口線引入,低電平或下降沿引起。2)INT1(入口地址0013H),外部中斷1。由P3.3端口線引入,低電平或下降沿引起。內(nèi)部中斷源3)T0(入口地址000BH):定時(shí)/計(jì)數(shù)器0中斷,由T0回零溢出引起。4)T1(入口地址001BH)

:定時(shí)/計(jì)數(shù)器1中斷,由T1回零溢出引起。5)TI/RI(入口地址0023H):串行I/O中斷,完成一幀字符發(fā)送/接收引起。中斷控制所涉及的寄存器1、定時(shí)控制寄存器TCON每一種工作方式的啟動(dòng)、計(jì)數(shù)、停止及溢出標(biāo)志由TCON控制。定時(shí)器控制字TCON的格式如下:TF0TR0IE1IT1IE0IT0TR1TF1D5D4D3D2D1D0D6

D7外部中斷1的觸發(fā)工作方式外部中斷1的中斷請(qǐng)求標(biāo)志位定時(shí)器0、1的啟動(dòng)及定時(shí)時(shí)間到標(biāo)志位外部中斷0的中斷請(qǐng)求標(biāo)志位外部中斷0的觸發(fā)工作方式觸發(fā)方式:邊沿觸發(fā)、電平觸發(fā)IT0=1INT0為邊沿觸發(fā)IT0=0,INT0為電平觸發(fā)IT1=1INT1為邊沿觸發(fā)IT1=0,INT1為電平觸發(fā)IE0=0,INT0無(wú)中斷請(qǐng)求IE1=0,INT1無(wú)中斷請(qǐng)求IE0=1,INT0有中斷請(qǐng)求IE1=1,INT1有中斷請(qǐng)求根據(jù)硬件設(shè)計(jì)軟件設(shè)置(1)邊沿(跳變)觸發(fā)方式:

根據(jù)具體硬件電路設(shè)計(jì),在P3.2管腳有一由高到低電平變化,看邊沿觸發(fā)的電平變化。5V0V軟件置位IT0SETBIT0機(jī)器周期機(jī)器周期CPU響應(yīng)外部中斷的過(guò)程: CPU檢測(cè)到INT0電平由高到低變化時(shí),自動(dòng)置位IE0=1,并響應(yīng)外部中斷0的申請(qǐng),首先自動(dòng)清除IE0(即使IE0=0),并到外部中斷0的入口地址:0003H執(zhí)行中斷服務(wù)程序。(2)電平觸發(fā)方式:電平觸發(fā)方式,看圖硬件電路設(shè)計(jì),軟件CLRIT00VCPU響應(yīng)中斷為止2、中斷允許寄存器IE(A8H)

IE在特殊功能寄存器中,字節(jié)地址A8H,位地址分別是A8H~AFH。IE控制CPU對(duì)中斷源總的開(kāi)放或禁止以及每個(gè)中斷源是否允許中斷。其格式如圖所示。3、SCON串行口寄存器

SCON串行口寄存器的位狀態(tài)鎖存發(fā)送TI、接收RI中斷標(biāo)志TIRI用于串行通訊TI(SCON.1):串行口發(fā)送中斷標(biāo)志位。當(dāng)CPU將一個(gè)數(shù)據(jù)寫(xiě)入串行口發(fā)送緩沖區(qū)SBUF時(shí),就啟動(dòng)發(fā)送。每發(fā)送完一個(gè)串行幀,由硬件置位TI。此時(shí),若ES=1、EA=1(中斷允許),CPU響應(yīng)串口發(fā)送中斷服務(wù)。若EA、ES某一個(gè)不為1,則不允許中斷,此時(shí)只能通過(guò)查詢(xún)方式判斷發(fā)送結(jié)束。RI(SCON.0):串行口接收中斷標(biāo)志位。當(dāng)允許串行口接收數(shù)據(jù)時(shí),每接收完一個(gè)串行幀,由硬件置位,若EA=1、ES=1,CPU響應(yīng)串口接收中斷服務(wù)。若EA、ES某一個(gè)不為1,則不允許中斷,此時(shí)只能通過(guò)查詢(xún)方式判斷接收結(jié)束。4、中斷優(yōu)先寄存器IP(B8H)

IP在特殊功能寄存器中,字節(jié)地址為B8H,位地址分別是B8H~BFH,IP用來(lái)鎖存各中斷源優(yōu)先級(jí)的控制位,其格式如圖所示。中斷優(yōu)先級(jí)順序最高最低

INT0T0INT1T1串行口中斷優(yōu)先原則A)幾個(gè)中斷同時(shí)請(qǐng)求時(shí),響應(yīng)高優(yōu)先級(jí)。B)正在處理低級(jí)中斷時(shí),有高級(jí)請(qǐng)求即停止低級(jí)中斷,響應(yīng)高級(jí)中斷。C)正在進(jìn)行的中斷不響應(yīng)同級(jí)或低級(jí)中斷。中斷響應(yīng)過(guò)程單片機(jī)在每個(gè)機(jī)器周期的S5P2期間,順序采樣每個(gè)中斷源,CPU在下一個(gè)機(jī)器周期S6期間按優(yōu)先級(jí)順序查詢(xún)中斷標(biāo)志,如查詢(xún)到某個(gè)中斷標(biāo)志為1,將在再下一個(gè)機(jī)器周期S1期間按優(yōu)先級(jí)進(jìn)行中斷處理。中斷得到響應(yīng)后自動(dòng)清除中斷標(biāo)志,由硬件自動(dòng)生成一條長(zhǎng)調(diào)用指令LCALLaddr16將程序計(jì)數(shù)器PC內(nèi)容壓入堆棧保護(hù),然后將對(duì)應(yīng)的中斷入口地址裝入程序計(jì)數(shù)器PC,使程序轉(zhuǎn)向中斷矢量地址單元中去執(zhí)行相應(yīng)的中斷服務(wù)程序。P1P2S1機(jī)器周期機(jī)器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2響應(yīng)中斷請(qǐng)求的條件1)CPU開(kāi)中斷,即IE寄存器的中斷允許位EA=12)該中斷源發(fā)出中斷請(qǐng)求,即中斷源對(duì)應(yīng)的中斷請(qǐng)求標(biāo)志位為“1”3)該中斷的中斷允許位=1,即該中斷沒(méi)有被屏蔽4)無(wú)同級(jí)或更高級(jí)中斷正在服務(wù)下列任何一種情況存在中斷申請(qǐng)將被封鎖:(1)CPU正在執(zhí)行一個(gè)同級(jí)或高一級(jí)的中斷服務(wù)程序。(2)當(dāng)前正在執(zhí)行的那條指令還未執(zhí)行完。(3)當(dāng)前正在執(zhí)行的指令是RETI或?qū)E,IP寄存器進(jìn)行讀/寫(xiě)指令,執(zhí)行這些指令后至少再執(zhí)行一條指令才會(huì)響應(yīng)中斷。中斷請(qǐng)求撤除中斷返回之前必須撤除中斷請(qǐng)求,否則將會(huì)再次引起中斷。注:(1)對(duì)T0、T1、跳變觸發(fā)的外部INT0INT1,CPU響應(yīng)中斷后會(huì)自動(dòng)復(fù)位TF0、TF1、IE0、IE1,從而自動(dòng)撤除中斷請(qǐng)求。

(2)對(duì)串行、T2中斷,內(nèi)部無(wú)自動(dòng)復(fù)位,要由軟件清除RI、TI、TF2

如:CLRRI(TI、TF2)中斷服務(wù)程序的編寫(xiě):A)在中斷服務(wù)程序入口地址單元應(yīng)放一條長(zhǎng)轉(zhuǎn)移指令,以使中斷服務(wù)程序靈活的安排在64K程序存儲(chǔ)器的任何地方。B)硬件提供的LCALL指令只是將PC的斷點(diǎn)壓入堆棧,而對(duì)其他寄存器(PSW、A)內(nèi)容未作保護(hù),所以在中斷服務(wù)程序中首先應(yīng)用軟件保護(hù)現(xiàn)場(chǎng),在中斷服務(wù)之后、中斷返回前恢復(fù)現(xiàn)場(chǎng),以免丟失相關(guān)內(nèi)容。C)中斷服務(wù)程序的最后一條指令必須是RETI中斷服務(wù)程序設(shè)計(jì)采用中斷時(shí),程序設(shè)計(jì)采用主程序和中斷服務(wù)程序兩部分主程序:(1)設(shè)置中斷允許控制寄存器IE,允許相應(yīng)的中斷請(qǐng)求源中斷(2)設(shè)置中斷優(yōu)先級(jí)寄存器IP,確定并分配所使用的中斷源的優(yōu)先級(jí)(3)對(duì)外部中斷,要設(shè)置中斷請(qǐng)求觸發(fā)方式IT1或IT0中斷服務(wù)程序:處理中斷請(qǐng)求,中斷返回。ORG 0000HLJMP MAINORG 中斷入口地址1LJMP 中斷服務(wù)程序名1ORG 中斷入口地址2LJMP 中斷服務(wù)程序名3MAIN: 主程序中斷服務(wù)程序名1:中斷服務(wù)程序

RETI中斷服務(wù)程序名2:中斷服務(wù)程序

RETI中斷服務(wù)程序流程MCS-51響應(yīng)中斷后,即轉(zhuǎn)入中斷服務(wù)程序,中斷服務(wù)執(zhí)行時(shí),應(yīng)注意如下問(wèn)題(1)現(xiàn)場(chǎng)保護(hù)與恢復(fù)防止進(jìn)入中斷服務(wù)中時(shí)主程序的有關(guān)信息被破壞。(2)關(guān)中斷與開(kāi)中斷防止在執(zhí)行中斷時(shí),高一級(jí)中斷進(jìn)入應(yīng)關(guān)中斷,執(zhí)行完本中斷后,在開(kāi)中斷。(3)中斷處理

完成相應(yīng)的中斷任務(wù)。(4)中斷返回中斷返回RETI,RETI不同于RET,RETI是中斷服務(wù)程序結(jié)束的標(biāo)志,CPU執(zhí)行RETI指令時(shí),首先應(yīng)將中斷優(yōu)先級(jí)觸發(fā)器清零,然后將保護(hù)的PC指針重新送入PC,使主程序能夠得以在原來(lái)中斷處繼續(xù)執(zhí)行程序。注意:RETI

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論