版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
微型計(jì)算機(jī)原理及應(yīng)用2可編程并行接口8255A可編程計(jì)數(shù)器/定時(shí)器8253常用可編程接口芯片18255是為8080,8085和8088微型機(jī)系統(tǒng)設(shè)計(jì)的并行I/O接口芯片。8255的內(nèi)部組成如下圖所示1.18255的組成與接口信號(hào)
端口A(PortA)、端口B(PortB)和端口C(PortC)都是8位的端口,都可以選擇作為輸入或輸出??梢詫⒍丝贑的高4位和低4位分開(kāi)使用,分別作為輸入和輸出。端口A和端口B作為選通輸入或輸出的數(shù)據(jù)端口時(shí),端口C的指定位與端口A和端口B配合使用,用作控制信號(hào)或狀態(tài)信號(hào)。1.端口A、端口B和端口C1.18255的組成與接口信號(hào)根據(jù)CPU的方式命令字控制8255的工作方式。根據(jù)CPU的命令對(duì)端口C的每一位實(shí)現(xiàn)按位復(fù)位或置位。A組控制電路控制端口A和端口C的上半部(PC7~PC4)。B組控制電路控制端口B和端口C的下半部(PC3~PC0)。2.A組和B組控制電路1.18255的組成與接口信號(hào)
這是一個(gè)三態(tài)雙向的8位緩沖器,它是8255與系統(tǒng)數(shù)據(jù)總線的接口。輸入輸出的數(shù)據(jù)以及CPU發(fā)出的命令控制字和外設(shè)的狀態(tài)信息,都是通過(guò)這個(gè)緩沖器傳送的。3.數(shù)據(jù)總線緩沖器1.18255的組成與接口信號(hào)控制把CPU的控制命令或輸出數(shù)據(jù)送至相應(yīng)的端口,
控制把外設(shè)的狀態(tài)信息或輸入數(shù)據(jù)通過(guò)相應(yīng)的端口送至CPU。4.讀/寫控制邏輯1.18255的組成與接口信號(hào)(1)A1、A0端口選擇:用來(lái)選擇A、B、C3個(gè)端口和控制字寄存器。通常,它們與PC微機(jī)的地址線A1和A0相連。(2)CS選片信號(hào):低電平有效,由它啟動(dòng)CPU與8255之間的通信。通常,它與PC微機(jī)地址線的譯碼電路的輸出線相連,并由該譯碼電路的輸出線來(lái)確定8255的端口地址。4.讀/寫控制邏輯1.18255的組成與接口信號(hào)(3)RD讀信號(hào):低電平有效,它控制8255送出數(shù)據(jù)或狀態(tài)信息至系統(tǒng)數(shù)據(jù)總線。通常,它與PC微機(jī)的IOR相連。
(4)WR寫信號(hào):低電平有效,它控制把CPU輸出到系統(tǒng)數(shù)據(jù)總線上的數(shù)據(jù)或命令寫到8255。通常,它與PC微機(jī)的IOW相連。4.讀/寫控制邏輯1.18255的組成與接口信號(hào)(5)RESET復(fù)位信號(hào):高電平有效,它清除控制寄存器,并置A、B、C3個(gè)端口為輸入方式。
8255與CPU的連接及復(fù)位信號(hào)產(chǎn)生電路如下圖所示。4.讀/寫控制邏輯1.18255的組成與接口信號(hào)
A1,A0和CS,RD,WR及組合所實(shí)現(xiàn)的各種功能如下:1.18255的組成與接口信號(hào)A1A0操作01000寫端口A01001寫端口B01010寫端口C01011寫控制字寄存器00100讀端口A00101讀端口B00110讀端口C00111無(wú)操作
8255有3種工作方式,由方式選擇控制字來(lái)選用:
(1)方式0(Mode0)--基本輸入輸出。(2)方式1(Mode1)--選通輸入輸出。(3)方式2(Mode2)--雙向傳送。1.28255的工作方式與控制字1.方式選擇控制字1.28255的工作方式與控制字2.按位置位/復(fù)位控制字1.28255的工作方式與控制字
如:端口C的bit3(PC3)的置位控制字為00000111B(07H),復(fù)位控制字為00000110B(06H)。
注意:C端口的按位置位/復(fù)位控制字須跟在方式選擇控制字之后寫入控制字寄存器。即使僅使用該功能,也應(yīng)先選送一方式控制字。1.28255的工作方式與控制字
例1
將8255C端口的8根I/O線接8只發(fā)光二極管的正極(八個(gè)負(fù)極均接地),用按位置位/復(fù)位控制字編寫使這8只發(fā)光二極管依次亮、滅的程序。設(shè)8255的端口地址為380H~383H。本程序要使用8255的2個(gè)控制字--方式選擇字和按位置位/復(fù)位字。這2個(gè)控制字都寫入8255的控制字寄存器,由它們的D7位為1或0來(lái)區(qū)別寫入的字是方式選擇字還是置位/復(fù)位字。8255的控制字寄存器的端口地址為383H。方式選擇字只寫入一次,其后寫入的都是置位/復(fù)位字。1.28255的工作方式與控制字8255與PC微機(jī)的連接及8255C端口與8只發(fā)光二極管的連接如圖。1.28255的工作方式與控制字程序框圖1.28255的工作方式與控制字stack segmentstackstack
dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushax1.28255的工作方式與控制字
MOVDX,383H;383H為控制字寄存器的端口地址MOVAL,80H;方式選擇字OUTDX,ALMOVAL,1;PC0的置位控制字AGAIN:OUTDX,AL;點(diǎn)亮一只發(fā)光二極管
LOOP$;延時(shí)
LOOP$ANDAL,0FEH;置位字改為復(fù)位字
OUTDX,AL;熄滅點(diǎn)亮的發(fā)光二極管
ADDAL,3;PCi→PCi+1,復(fù)位字改為下一位的置位字
ANDAL,0FH
;保持D7為01.28255的工作方式與控制字
PUSHAXMOVAH,11;檢查鍵盤有無(wú)輸入
INT21H;無(wú)0送AL,有-1送ALINCALPOPAXJNZAGAINretbeginendpcode ends endbegin1.28255的工作方式與控制字這是一種基本的I/O方式。在這種工作方式下,3個(gè)端口都可由程序選定作輸入或輸出。它們的輸出是鎖存的,輸入是不鎖存的。在這種工作方式下,可以由CPU用簡(jiǎn)單的輸入或輸出指令來(lái)進(jìn)行讀或?qū)憽R蚨?dāng)方式0用于無(wú)條件傳送方式的接口電路時(shí)是十分簡(jiǎn)單的,這時(shí)不需要狀態(tài)端口,3個(gè)端口都可作為數(shù)據(jù)端口。1.3三種工作方式的功能1.方式0若將例1改為C端口方式0輸出,則控制程序?yàn)椋簊tack segmentstackstack
dw32dup(0)stack endscode segmentbegin procfar assumess:stack,cs:code pushds subax,ax pushaxMOVDX,383HMOVAL,80HOUTDX,AL1.3三種工作方式的功能MOVDX,382H;C端口的端口地址送DXMOVAL,1;C端口的輸出值A(chǔ)GAIN:OUTDX,ALLOOP$;延時(shí)
LOOP$PUSHAXMOVAH,11;11號(hào)功能調(diào)用:檢查鍵盤有無(wú)輸入
INT21H;無(wú)0送AL,有-1送ALINCAL;有鍵入,AL=-1,AL增1,AL=0POPAXJZBACKROLAL,1;改變C端口的輸出值JMPAGAINBACK:ret1.3三種工作方式的功能begin endpcode ends endbegin方式0也可作為查詢式輸入或輸出的接口電路,此時(shí)端口A和B分別可作為一個(gè)數(shù)據(jù)端口,而取端口C的某些位作為這兩個(gè)數(shù)據(jù)端口的控制和狀態(tài)信息。1.3三種工作方式的功能這是一種選通的I/O方式。它將3個(gè)端口分為A、B兩組,端口A和端口C中的PC3~PC5或PC3、PC6、PC73位為A組;端口B和端口C的PC2~PC03位為B組。端口C中余下的兩位,仍可作為輸入或輸出用,由方式控制字中的D3來(lái)設(shè)定。端口A和B都可以由程序設(shè)定為輸入或輸出。此時(shí)端口C的某些位為控制狀態(tài)信號(hào),用于聯(lián)絡(luò)和中斷,其各位的功能是固定的,不能用程序改變。2.方式11.3三種工作方式的功能方式1輸入的狀態(tài)控制信號(hào)及其時(shí)序關(guān)系如圖。1.3三種工作方式的功能
(1)STB(strobe)選通信號(hào),低電平有效。這是由外設(shè)發(fā)出的輸入信號(hào),信號(hào)的前沿(下降沿),把輸入裝置送來(lái)的數(shù)據(jù)送入輸入緩沖器;信號(hào)的后沿(上升沿)使INTR有效(置1)。
(2)IBF(inputbufferfull)輸入緩沖器滿信號(hào),高電平有效。這是8255輸出給外設(shè)的聯(lián)絡(luò)信號(hào)。外設(shè)將數(shù)據(jù)送至輸入緩沖器后,該信號(hào)有效;RD信號(hào)的上升沿將數(shù)據(jù)送至數(shù)據(jù)線后,該信號(hào)無(wú)效。1.3三種工作方式的功能
(3)INTR(interruptrequest)中斷請(qǐng)求信號(hào),高電平有效。這是8255的一個(gè)輸出信號(hào),可用作向CPU申請(qǐng)中斷的請(qǐng)求信號(hào),以要求CPU服務(wù)。當(dāng)IBF為高和INTE(中斷允許)為高時(shí),由STB的上升沿(后沿)使其置為高電平。由RD信號(hào)的下降沿(CPU讀取數(shù)據(jù)前)清除為低電平。
(4)INTE(interruptenable)中斷允許信號(hào),端口A中斷允許INTEA可由用戶通過(guò)對(duì)PC4的按位置位/復(fù)位來(lái)控制。而INTEB
由PC2
的置位/復(fù)位控制。INTE置位允許中斷。INTE復(fù)位禁止中斷。1.3三種工作方式的功能例2
用選通輸入方式從A端口輸入100個(gè)8位二進(jìn)制數(shù)。接口及其電路如下圖所示。1.3三種工作方式的功能stack segmentstackstack
dw32dup(0)stack endsdata segmentBUFDB100DUP(?)data endscode segmentbegin procfar assumess:stack,cs:code,ds:data pushds subax,ax pushax控制程序:1.3三種工作方式的功能MOVES,AXmovax,datamov
ds,axMOVDX,38FHMOVAL,0B0HOUTDX,ALMOVAL,9;PC4置1,允許A端口中斷OUTDX,ALMOVAX,SEGIS8255;中斷程序入口地址送中斷向量表MOVES:01C6H,AXMOVAX,OFFSETIS8255MOVES:01C4H,AXMOVCX,100MOVBX,0MOVDX,38CH1.3三種工作方式的功能
INAL,0A1H;讀屏蔽字ANDAL,0FDH;改變屏蔽字,允許IRQ9中斷OUT0A1H,ALROTT:JMP$LOOPROTTINAL,0A1H;恢復(fù)屏蔽字,禁止IRQ9中斷ORAL,2OUT0A1H,ALretIS8255:INAL,DXMOVBUF[BX],ALINCBXMOVAL,61H;指定中斷結(jié)束命令1.3三種工作方式的功能OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin1.3三種工作方式的功能方式1輸出的狀態(tài)控制信號(hào)及其時(shí)序關(guān)系如圖。1.3三種工作方式的功能
(1)OBF輸出緩沖器滿信號(hào),低電平有效。這是8255輸出給外設(shè)的一個(gè)聯(lián)絡(luò)信號(hào)。CPU把數(shù)據(jù)寫入指定端口的輸出鎖存器后,該信號(hào)有效,表示外設(shè)可以把數(shù)據(jù)取走。它由ACK的前沿(下降沿)即外設(shè)取走數(shù)據(jù)后,使其恢復(fù)為高。
(2)ACK(acknowledge)
低電平有效。這是外設(shè)發(fā)出的響應(yīng)信號(hào),該信號(hào)的前沿取走數(shù)據(jù)并使OBF無(wú)效后沿使INTR有效。1.3三種工作方式的功能(3)INTR中斷請(qǐng)求信號(hào),高電平有效。當(dāng)輸出裝置已經(jīng)接受了CPU輸出的數(shù)據(jù)后,它用來(lái)向CPU提出中斷請(qǐng)求,要求CPU繼續(xù)輸出數(shù)據(jù)。OBF為“1”(高電平)和INTE為“1”(高電平)時(shí),由ACK的后沿(上升沿),使其置位(高電平),WR信號(hào)的前沿(下降沿)使其復(fù)位(低電平)。(4)INTEA
由PC6的置位/復(fù)位控制。而INTEB由PC2置位/復(fù)位控制。INTE置位允許中斷。1.3三種工作方式的功能例3
用8只發(fā)光二極管及時(shí)反映8個(gè)監(jiān)控量的狀態(tài),設(shè)計(jì)接口電路和控制程序。用8個(gè)開(kāi)關(guān)模擬8個(gè)監(jiān)控量的狀態(tài)。A端口輸入8個(gè)監(jiān)控量的狀態(tài),B端口接8只發(fā)光二極管。A端口基本輸入,B端口選通輸出,用單穩(wěn)電路來(lái)產(chǎn)生選通信號(hào)ACK。當(dāng)需要了解8個(gè)監(jiān)控量的狀態(tài)時(shí)發(fā)來(lái)選通信號(hào)ACK,該信號(hào)使控制程序進(jìn)入中斷服務(wù)程序。在中斷服務(wù)程序中,從A端口輸入8個(gè)監(jiān)控量的狀態(tài)后立即從B端口輸出。1.3三種工作方式的功能接口電路1.3三種工作方式的功能stack segmentstackstack
dw32dup(0)stackendsdata segmentDA1 DBWAITINTERRUPT,0DH,0AH,$data endscode segmentbegin procfar assumess:stack,cs:code,ds:data pushds subax,ax pushax控制程序:1.3三種工作方式的功能MOVES,AXmovax,datamov
ds,axMOVDX,393HMOVAL,94HOUTDX,ALMOVAL,5;PC2置1,允許B端口中斷OUTDX,ALMOVAX,SEGIO8255;中斷程序入口地址送中斷向量表MOVES:01C6H,AXMOVAX,OFFSETIO8255MOVES:01C4H,AXINAL,0A1H;讀屏蔽字ANDAL,0FDH;改變屏蔽字,允許IRQ9中斷OUTDX,AL1.3三種工作方式的功能ROTT:MOCDX,OFFSETDA1MOVAH,9INT21HJMP$MOVAH,11INT21HCMPAL,0JEROTTINAL,0A1H;恢復(fù)屏蔽字,禁止IRQ9中斷ORAL,2OUT0A1H,ALret1.3三種工作方式的功能IO8255:MOVDX,390HINAL,DXINCDXOUTDX,ALMOVAL,61H;指定中斷結(jié)束命令OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin1.3三種工作方式的功能
這種工作方式,使外設(shè)可在單一的8位數(shù)據(jù)總線上,既能發(fā)送,又能接收數(shù)據(jù)(雙向總線I/O)。方式2只限于A組使用,它用雙向總線端口A和控制端口C中的5位進(jìn)行操作,此時(shí),端口B可用于方式0或方式1。端口C的其他3位作I/O用或作端口B控制狀態(tài)信號(hào)線用。3.方式21.3三種工作方式的功能方式2狀態(tài)控制信號(hào):1.3三種工作方式的功能INTE1是輸出的中斷允許信號(hào),由PC6的置位/復(fù)位控制INTE2是輸入的中斷允許信號(hào),由PC4的置位/復(fù)位控制其他信號(hào)的作用及意義與方式1相同。1.3三種工作方式的功能可編程并行接口8255A可編程計(jì)數(shù)器/定時(shí)器8253常用可編程接口芯片12可編程計(jì)數(shù)器/定時(shí)器8253
Intel系列的計(jì)數(shù)器/定時(shí)器電路為可編程序間隔定時(shí)器PIT(programmableintervaltimer),型號(hào)為8253,改進(jìn)型為8254。8253具有3個(gè)獨(dú)立的功能完全相同的16位計(jì)數(shù)器,每個(gè)計(jì)數(shù)器都有6種工作方式,這6種工作方式都可以由其控制字設(shè)定,因而能以6種不同的工作方式滿足不同的接口要求。CPU還可以隨時(shí)更改它們的方式和計(jì)數(shù)值,并讀取它們的計(jì)數(shù)狀態(tài)。8253的內(nèi)部結(jié)構(gòu):2.1
8253的組成與接口信號(hào)數(shù)據(jù)總線緩沖器是三態(tài)、雙向、8位的緩沖器,用作系統(tǒng)總線和8253的接口,根據(jù)CPU的輸入或輸出指令實(shí)現(xiàn)數(shù)據(jù)傳送。數(shù)據(jù)總線緩沖器具有下面3個(gè)基本功能。(1)CPU向8253所寫的控制字經(jīng)數(shù)據(jù)總線緩沖器和8253的內(nèi)部數(shù)據(jù)總線傳送給控制字寄存器寄存。(2)CPU向某計(jì)數(shù)器所寫的計(jì)數(shù)初值經(jīng)它和內(nèi)部總線送到指定的計(jì)數(shù)器。(3)CPU讀取某個(gè)計(jì)數(shù)器的現(xiàn)行值時(shí),該現(xiàn)行值經(jīng)內(nèi)部總線和緩沖器傳送到系統(tǒng)的數(shù)據(jù)總線上,被CPU讀入。1.數(shù)據(jù)總線緩沖器2.1
8253的組成與接口信號(hào)讀/寫邏輯接收系統(tǒng)總線的5個(gè)輸入信號(hào),根據(jù)這5個(gè)信號(hào)產(chǎn)生整個(gè)器件操作的控制信號(hào)。通過(guò)片選信號(hào)CS來(lái)控制讀/寫邏輯的工作,在沒(méi)有被系統(tǒng)邏輯選中時(shí),讀/寫邏輯操作功能不會(huì)發(fā)生變化。根據(jù)A1A0的輸入選擇3個(gè)計(jì)數(shù)器和控制字寄存器。通過(guò)RD或WR完成指定的讀或?qū)懖僮鳌?.讀/寫邏輯2.1
8253的組成與接口信號(hào)
CS、RD、WR、A1和A0組合起來(lái)所產(chǎn)生的選擇與操作功能:2.1
8253的組成與接口信號(hào)控制字寄存器寄存數(shù)據(jù)緩沖器傳送來(lái)的控制字??刂谱旨拇嫫饔?個(gè),都是8位的寄存器,分別對(duì)應(yīng)于3個(gè)計(jì)數(shù)器。寫入的控制字由該控制字的最高2位確定送入哪個(gè)計(jì)數(shù)器的控制字寄存器寄存。各自的控制字寄存器決定各自計(jì)數(shù)器的工作方式和所執(zhí)行的操作??刂谱旨拇嫫髦荒軐懭?,其值不能讀出。3.控制字寄存器2.1
8253的組成與接口信號(hào)計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2是3個(gè)獨(dú)立的計(jì)數(shù)器,它們的內(nèi)部結(jié)構(gòu)相同。4.計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器22.1
8253的組成與接口信號(hào)
寫入計(jì)數(shù)器的初始值保存在計(jì)數(shù)初值寄存器中,由CLK脈沖的一個(gè)上升沿和一個(gè)下降沿將其裝入減1計(jì)數(shù)器。減1計(jì)數(shù)器在CLK脈沖(GATE允許)作用下進(jìn)行遞減計(jì)數(shù),直至計(jì)數(shù)值為0,輸出OUT信號(hào)。輸出寄存器的值跟隨減1計(jì)數(shù)器變化,僅當(dāng)寫入鎖存控制字時(shí),它鎖存減1計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值(減1計(jì)數(shù)器可繼續(xù)計(jì)數(shù)),CPU讀取后,它自動(dòng)解除鎖存狀態(tài),又跟隨減1計(jì)數(shù)器變化。所以在計(jì)數(shù)過(guò)程中,CPU隨時(shí)可以用指令讀取任一計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值,這一操作對(duì)計(jì)數(shù)沒(méi)有影響。計(jì)數(shù)初值寄存器,減1計(jì)數(shù)器和輸出寄存器都可看作是8位的寄存器對(duì)。2.1
8253的組成與接口信號(hào)
每個(gè)計(jì)數(shù)器都是對(duì)輸入的CLK脈沖按二進(jìn)制或十進(jìn)制的預(yù)置值開(kāi)始遞減計(jì)數(shù)。若輸入的CLK是頻率精確的時(shí)鐘脈沖,則計(jì)數(shù)器可作為定時(shí)器。在計(jì)數(shù)過(guò)程中,計(jì)數(shù)器受門控信號(hào)GATE的控制。計(jì)數(shù)器的輸入CLK與輸出OUT以及門控信號(hào)GATE之間的關(guān)系,取決于計(jì)數(shù)器的工作方式。2.1
8253的組成與接口信號(hào)8253的計(jì)數(shù)器有6種工作方式:(1)方式0--計(jì)數(shù)結(jié)束中斷(2)方式1--硬件觸發(fā)單拍脈沖(3)方式2--頻率發(fā)生器(4)方式3--方波發(fā)生器(5)方式4--軟件觸發(fā)選通(6)方式5--硬件觸發(fā)選通2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系1.計(jì)數(shù)器的輸出 OUT6種工作方式的輸出信號(hào)如下圖所示。2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系
6種工作方式中,只有方式0在寫入控制字后輸出為低,其他5種方式,都是在寫入控制字后輸出為高。方式2、4、5的輸出波形是相同的,都是寬度為一個(gè)CLK周期的負(fù)脈沖。但方式2是連續(xù)工作,方式4由軟件(設(shè)置計(jì)數(shù)值)觸發(fā)啟動(dòng),而方式5由門控脈沖觸發(fā)啟動(dòng)。方式5與方式1的工作方式基本相同,但輸出波形不同,方式1的輸出為寬度是N個(gè)CLK脈沖的低電平脈沖(計(jì)數(shù)過(guò)程中輸出為低),而方式5的輸出為寬度是1個(gè)CLK脈沖的負(fù)脈沖(計(jì)數(shù)過(guò)程中輸出為高)。2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系
方式3和方式2的輸出都是周期性的,它們的主要區(qū)別是,方式2在計(jì)數(shù)過(guò)程中輸出始終為高,直至計(jì)數(shù)器減到1時(shí),輸出一個(gè)CLK負(fù)脈沖后又恢復(fù)為高;方式3在計(jì)數(shù)過(guò)程中輸出有一半時(shí)間為高,另一半時(shí)間為低。所以,若計(jì)數(shù)值為N,則方式3的輸出為周期是N個(gè)CLK脈沖的方波。如果計(jì)數(shù)值N是奇數(shù),則輸出(N+1)/2個(gè)CLK脈沖周期為高,(N-1)/2個(gè)脈沖周期為低,即OUT為高,將比其為低多一個(gè)CLK周期時(shí)間。2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系
方式0之所以稱之為計(jì)數(shù)結(jié)束中斷,是因?yàn)榉绞?是專為8253工作在中斷方式而設(shè)計(jì)的,它的輸出OUT一經(jīng)確定方式以后就馬上變低,直到計(jì)數(shù)到0才變高,而其他方式的輸出就不是這種情況。8253用于中斷方式并不僅限于方式0,其他方式也是可以用于中斷方式的。8253內(nèi)部沒(méi)有中斷控制電路,也沒(méi)有專用的中斷請(qǐng)求引線,所以若要用于中斷,則可用OUT信號(hào)作為外部中斷請(qǐng)求信號(hào)。2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系任一種方式,只有寫入計(jì)數(shù)值后才能開(kāi)始計(jì)數(shù),方式0、2、3和4都是在寫入計(jì)數(shù)值后,計(jì)數(shù)過(guò)程就開(kāi)始了,而方式1和5需要外部觸發(fā)啟動(dòng),才開(kāi)始計(jì)數(shù)。6種方式中,只有方式2和3是連續(xù)計(jì)數(shù),其他4種方式都是一次計(jì)數(shù),要繼續(xù)工作需要重新啟動(dòng),方式0、4由寫入計(jì)數(shù)值(軟件)啟動(dòng),方式1、5要由外部信號(hào)(硬件)啟動(dòng)。2.計(jì)數(shù)器的工作與啟動(dòng)2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系在方式0和方式4中,GATE是電平起作用。計(jì)數(shù)過(guò)程受GATE信號(hào)的控制,GATE為高電平計(jì)數(shù),低電平停止計(jì)數(shù)。在方式1和方式5中,GATE是上升沿起作用。在計(jì)數(shù)過(guò)程中,只要GATE出現(xiàn)由低到高的跳變,計(jì)數(shù)的初值就被裝入減1計(jì)數(shù)器,并從初值起繼續(xù)計(jì)數(shù)。
在方式2和方式3中,GATE信號(hào)的上升沿和電平均起作用。高電平計(jì)數(shù),低電平停止計(jì)數(shù)。上升沿則重新裝入計(jì)數(shù)初值,繼續(xù)計(jì)數(shù)。3.門控信號(hào)GATE的作用2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系8253可以在計(jì)數(shù)過(guò)程中寫入計(jì)數(shù)值,但它的作用在不同方式時(shí)有所不同。方式0和方式4是立即有效(即新的計(jì)數(shù)值寫入減1計(jì)數(shù)器),方式1和方式5是外部觸發(fā)后有效,方式2和方式3是本次計(jì)數(shù)結(jié)束后有效。4.在計(jì)數(shù)過(guò)程中改變計(jì)數(shù)值2.2
計(jì)數(shù)器的工作方式及其與輸入輸出的關(guān)系8253的控制字如下圖所示。2.3
8253的控制字和初始化編程
(1)計(jì)數(shù)器選擇(D7、D6)??刂谱值淖罡邇晌粵Q定這個(gè)控制字是哪一個(gè)計(jì)數(shù)器的控制字。由于三個(gè)計(jì)數(shù)器的工作是完全獨(dú)立的,所以每個(gè)計(jì)數(shù)器都有一個(gè)控制字。而三個(gè)控制字都由同一地址(控制字寄存器地址)寫入,因而由控制字的D7、D6兩位來(lái)指定該控制字是哪個(gè)計(jì)數(shù)器的控制字。在控制字中的計(jì)數(shù)器選擇與計(jì)數(shù)器的地址是兩回事,不能混淆。計(jì)數(shù)器的地址用作CPU向計(jì)數(shù)器寫初值,或從計(jì)數(shù)器讀取計(jì)數(shù)器的當(dāng)前值。2.3
8253的控制字和初始化編程
(2)數(shù)據(jù)讀/寫格式(D5、D4)。CPU向計(jì)數(shù)器寫入初值和讀取它們的當(dāng)前狀態(tài)時(shí),有幾種不同的格式。讀/寫數(shù)據(jù)時(shí),是讀/寫8位數(shù)據(jù)還是16位數(shù)據(jù);若是8位數(shù)據(jù),可以令D5D4=01,只讀/寫低8位,則高8位自動(dòng)置0;若是16位數(shù)據(jù),而低8位為0,則可令D5D4=10,只讀/寫高8位,低8位就自動(dòng)為0;若令D5D4=11時(shí),就先讀/寫低8位,后讀/寫高8位。在讀取16位計(jì)數(shù)值時(shí),可令D5D4=00,則把寫控制字時(shí)的計(jì)數(shù)值鎖存,以后再讀取。
2.3
8253的控制字和初始化編程
(3)工作方式(D3、D2、D1)。8253的每個(gè)計(jì)數(shù)器的6種不同的工作方式,由這3位決定。(4)數(shù)制選擇(D0)。8253的每個(gè)計(jì)數(shù)器有兩種計(jì)數(shù)制:二進(jìn)制和十進(jìn)制,由這位決定。在二進(jìn)制計(jì)數(shù)時(shí)(D0=0),寫入的初值的范圍為0000H~FFFFH,其中0000H是最大值,代表65536。在十進(jìn)制計(jì)數(shù)時(shí)(D0=1),寫入的初值的范圍為0000H~9999H,其中0000H是最大值,代表10000。2.3
8253的控制字和初始化編程
要使用8253必須首先進(jìn)行初始化編程,初始化編程的步驟為先寫入計(jì)數(shù)器的控制字,然后寫入計(jì)數(shù)器的計(jì)數(shù)初值。控制字和計(jì)數(shù)初值,是通過(guò)兩個(gè)不同的端口地址寫入的。任一計(jì)數(shù)器的控制字都是寫入控制字寄存器的端口地址,由控制字中的D7、D6來(lái)確定是哪一個(gè)計(jì)數(shù)器的控制字;而計(jì)數(shù)初值是由各個(gè)計(jì)數(shù)器的端口地址寫入的。一片8253具有4個(gè)端口地址,由8253的A1和A0兩根引線來(lái)區(qū)別:A1、A0為11是控制字寄存器的端口地址,00、01和10則分別是計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2的端口地址。2.3
8253的控制字和初始化編程
例如:用計(jì)數(shù)器0,工作在方式1,按十進(jìn)制計(jì)數(shù),計(jì)數(shù)值為5080H。設(shè)該片8253的端口地址為388H~38BH,寫出初始化程序段。MOVDX,38BHMOVAL,33H;00110010OUTDX,ALMOVDX,388HMOVAL,80HOUTDX,ALMOVAL,50HOUTDX,AL2.3
8253的控制字和初始化編程
8253任一計(jì)數(shù)器的計(jì)數(shù)值,CPU可用指令讀取。CPU讀到的是執(zhí)行讀取指令瞬間計(jì)數(shù)器的現(xiàn)行值。但8253的計(jì)數(shù)器是16位的,所以要分兩次讀至CPU,因此,若不設(shè)法鎖存的話,則在讀數(shù)過(guò)程中,計(jì)數(shù)值可能已變化了。要鎖存有兩種辦法:(1)利用GATE信號(hào)使計(jì)數(shù)過(guò)程暫停。(2)向8253輸送一個(gè)控制字,令8253的計(jì)數(shù)值在出寄存器鎖存。2.3
8253的控制字和初始化編程例如:讀取計(jì)數(shù)器1的16位計(jì)數(shù)值,存入CX中,其程序段為:
MOVDX,38BHMOVAL,40H;計(jì)數(shù)器1的鎖存命令
OUTDX,ALMOVDX,389HINAL,DXMOVCL,ALINAL,DXMOVCH,AL2.3
8253的控制字和初始化編程
例48253在IBMPCXT中的應(yīng)用。2.4
8253的應(yīng)用IBMPCXT微型計(jì)算機(jī)中8253的部分線路
由譯碼電路可知計(jì)數(shù)器和控制字寄存器的端口地址為40H~5FH,BIOS取為計(jì)數(shù)器0∶40H,計(jì)數(shù)器1∶41H,計(jì)數(shù)器2∶42H,控制字寄存器∶43H。3個(gè)計(jì)數(shù)器的輸入時(shí)鐘頻率均為1.19MHz。計(jì)數(shù)器0輸出作為18.2Hz方波發(fā)生器。用來(lái)輸出方波作為中斷控制器8259的第0號(hào)中斷信號(hào)線(IRQ0)的輸入。計(jì)數(shù)器0的計(jì)數(shù)值為:
1.19M/18.2=65384=216即送16位的0,故其控制字為36H。2.4
8253的應(yīng)用對(duì)計(jì)數(shù)器0初始化的程序段如下:MOVAL,36HOUT43H,ALMOVAL,0OUT40H,ALOUT40H,AL2.4
8253的應(yīng)用
計(jì)數(shù)器1輸出間隔為15μS的負(fù)脈沖。該脈沖的上升沿觸發(fā)D觸發(fā)器。使它對(duì)DMA控制器8237的第0號(hào)DMA請(qǐng)求信號(hào)線DRQ0發(fā)出DMA請(qǐng)求信號(hào),8237則依據(jù)這個(gè)請(qǐng)求信號(hào)對(duì)動(dòng)態(tài)RAM進(jìn)行刷新。計(jì)數(shù)器1的計(jì)數(shù)值為:1.19×106/(1/15)×10-6=18故其控制字為54H。對(duì)計(jì)數(shù)器1的初始化程序段如下:MOVAL,54HOUT43H,ALMOVAL,18OUT41H,AL2.4
8253的應(yīng)用
計(jì)數(shù)器2輸出不同頻率的方波,經(jīng)電流驅(qū)動(dòng)器75477放大,推動(dòng)揚(yáng)聲器發(fā)出不同頻率的聲響。計(jì)數(shù)器2的計(jì)數(shù)值為可變值。隨蜂鳴器聲響頻率的高低而變,程序設(shè)計(jì)中讓它的取值范圍由1到65535,即16位二進(jìn)制數(shù),故其控制字為B6H。
2.4
8253的應(yīng)用entryparameters:DH=NumberoflongtonestobeepDL=Numberofshorttonestobeeperr-beepprocPUSHF;保存所有的標(biāo)志位CLI;關(guān)中斷PUSHDSMOVAX,DATA;DS指向數(shù)據(jù)段MOVDS,AXORDH,DH;是否要鳴長(zhǎng)音JZG3
;不鳴長(zhǎng)音,去鳴短音下面是IBMPCXT機(jī)BIOS中的開(kāi)機(jī)診斷子程序。該子程序讓蜂鳴器鳴一聲長(zhǎng)音(3秒)和一聲短音(0.5秒),以指出系統(tǒng)板或RAM模塊或者CRT顯示器有錯(cuò)。2.4
8253的應(yīng)用G1:MOVBL,6;蜂鳴常數(shù),一次鳴響延續(xù)時(shí)0.5×BLCALLBEEP;調(diào)用鳴響子程序G2:LOOPG2;鳴響間隔,等待500mSDECDHJNZG1;長(zhǎng)音沒(méi)鳴響完,繼續(xù)CMPMFG-TST,1;為制造測(cè)試模式?JNZG3;為制造測(cè)試模式,繼續(xù)鳴響短音MOVAL,0DH;停止LED閃OUTPORT-B,AL;PORT-B=61H,即8255B端口JMPG12.4
8253的應(yīng)用G3:MOVBL,1;短音鳴響時(shí)間為0.5×1=0.5SCALLBEEPG4:LOOPG4DECDLJNZG3;短音沒(méi)鳴響完,繼續(xù)G5:LOOPG5;短音鳴響完,延遲1S返回G6:LOOPG6POPDSPOPFRETerr-beependp2.4
8253的應(yīng)用鳴響子程序:beepprocMOVAL,0B6H;計(jì)數(shù)器2的控制字OUT43H,ALMOVAX,533H;1000Hz分頻值,分高低字節(jié)兩次送入OUT42H,ALMOVAL,AHOUT42H,ALINAL,61H;讀取8255B端口的狀態(tài)MOVAH,ALORAL,32.4
8253的應(yīng)用
OUT61H,AL;打開(kāi)蜂鳴器SUBCX,CX;設(shè)置等待500ms的常數(shù)值G7:LOOPG7DECBL;等0.5s×BLJNZG7MOVAL,AH;恢復(fù)8255B端口的原來(lái)值,關(guān)蜂鳴器OUT61H,ALRETbeependp2.4
8253的應(yīng)用
例5
對(duì)外部事件計(jì)數(shù)10次。計(jì)數(shù)電路如下圖所示,由圖可知,使用的是計(jì)數(shù)器0。2.4
8253的應(yīng)用控制程序如下:stacksegmentstackstack
dw32dup(0)stackendsdatasegmentDA1DBWAITLOAD,0AH,0DH,$DA2DBPLEASEINPUT,0AH,0DH,$DA3DBPROGRAMTERMINATEDNORMALLY,0AH,0DH,$dataendscodesegmentbeginprocfarassumess:stack,cs:code,ds:datapushds2.4
8253的應(yīng)用subax,axpushax
movax,data
mov
ds,axMOVDX,383H;8253計(jì)數(shù)器的方式0,BCD計(jì)數(shù)MOVAL,11HOUTDX,ALMOVDX,380HMOVAL,10HOUTDX,ALMOVDX,OFFSETDA1MOVAH,9INT21HMOVDX,380H2.4
8253的應(yīng)用LOAD:INAL,DXCMPAL,10H;等待單穩(wěn)輸入脈沖,裝入計(jì)數(shù)初值JNELOADMOVDX,OFFSETDA2MOVAH,9
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年稅務(wù)師題庫(kù)附完整答案(網(wǎng)校專用)
- 《房地產(chǎn)全案營(yíng)銷》課件
- 《清華大學(xué)介紹》課件
- 生命的意義及人生哲學(xué)導(dǎo)讀
- 2025代理商供銷合同范文
- 2024年度天津市公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師題庫(kù)綜合試卷B卷附答案
- 2024年度四川省公共營(yíng)養(yǎng)師之四級(jí)營(yíng)養(yǎng)師自測(cè)模擬預(yù)測(cè)題庫(kù)
- 2024年度四川省公共營(yíng)養(yǎng)師之三級(jí)營(yíng)養(yǎng)師模擬試題(含答案)
- 2025關(guān)于借款合同的還款期限規(guī)定
- 2025關(guān)于房屋裝修合同
- 中國(guó)八大植被區(qū)域劃分
- 廠內(nèi)機(jī)動(dòng)叉車日常檢查記錄表
- 各類儀器儀表校驗(yàn)記錄表18篇
- 自動(dòng)生產(chǎn)排程 SMT 多線體 版
- 防造假管理程序文件
- 譯林版英語(yǔ)八年級(jí)上冊(cè)單詞表
- 中石油職稱英語(yǔ)
- 2023年副主任醫(yī)師(副高)-神經(jīng)內(nèi)科學(xué)(副高)考試歷年真題薈萃帶答案
- 國(guó)家義務(wù)教育質(zhì)量監(jiān)測(cè)科學(xué)四年級(jí)創(chuàng)新作業(yè)測(cè)試卷【附答案】
- 硫磺安全技術(shù)說(shuō)明書MSDS
- 工程施工現(xiàn)場(chǎng)存在的環(huán)保問(wèn)題及解決建議
評(píng)論
0/150
提交評(píng)論