常用可編程接口_第1頁
常用可編程接口_第2頁
常用可編程接口_第3頁
常用可編程接口_第4頁
常用可編程接口_第5頁
已閱讀5頁,還剩87頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

微型計算機原理及應用2可編程并行接口8255A可編程計數器/定時器8253常用可編程接口芯片18255是為8080,8085和8088微型機系統設計的并行I/O接口芯片。8255的內部組成如下圖所示1.18255的組成與接口信號

端口A(PortA)、端口B(PortB)和端口C(PortC)都是8位的端口,都可以選擇作為輸入或輸出。可以將端口C的高4位和低4位分開使用,分別作為輸入和輸出。端口A和端口B作為選通輸入或輸出的數據端口時,端口C的指定位與端口A和端口B配合使用,用作控制信號或狀態信號。1.端口A、端口B和端口C1.18255的組成與接口信號根據CPU的方式命令字控制8255的工作方式。根據CPU的命令對端口C的每一位實現按位復位或置位。A組控制電路控制端口A和端口C的上半部(PC7~PC4)。B組控制電路控制端口B和端口C的下半部(PC3~PC0)。2.A組和B組控制電路1.18255的組成與接口信號

這是一個三態雙向的8位緩沖器,它是8255與系統數據總線的接口。輸入輸出的數據以及CPU發出的命令控制字和外設的狀態信息,都是通過這個緩沖器傳送的。3.數據總線緩沖器1.18255的組成與接口信號控制把CPU的控制命令或輸出數據送至相應的端口,

控制把外設的狀態信息或輸入數據通過相應的端口送至CPU。4.讀/寫控制邏輯1.18255的組成與接口信號(1)A1、A0端口選擇:用來選擇A、B、C3個端口和控制字寄存器。通常,它們與PC微機的地址線A1和A0相連。(2)CS選片信號:低電平有效,由它啟動CPU與8255之間的通信。通常,它與PC微機地址線的譯碼電路的輸出線相連,并由該譯碼電路的輸出線來確定8255的端口地址。4.讀/寫控制邏輯1.18255的組成與接口信號(3)RD讀信號:低電平有效,它控制8255送出數據或狀態信息至系統數據總線。通常,它與PC微機的IOR相連。

(4)WR寫信號:低電平有效,它控制把CPU輸出到系統數據總線上的數據或命令寫到8255。通常,它與PC微機的IOW相連。4.讀/寫控制邏輯1.18255的組成與接口信號(5)RESET復位信號:高電平有效,它清除控制寄存器,并置A、B、C3個端口為輸入方式。

8255與CPU的連接及復位信號產生電路如下圖所示。4.讀/寫控制邏輯1.18255的組成與接口信號

A1,A0和CS,RD,WR及組合所實現的各種功能如下:1.18255的組成與接口信號A1A0操作01000寫端口A01001寫端口B01010寫端口C01011寫控制字寄存器00100讀端口A00101讀端口B00110讀端口C00111無操作

8255有3種工作方式,由方式選擇控制字來選用:

(1)方式0(Mode0)--基本輸入輸出。(2)方式1(Mode1)--選通輸入輸出。(3)方式2(Mode2)--雙向傳送。1.28255的工作方式與控制字1.方式選擇控制字1.28255的工作方式與控制字2.按位置位/復位控制字1.28255的工作方式與控制字

如:端口C的bit3(PC3)的置位控制字為00000111B(07H),復位控制字為00000110B(06H)。

注意:C端口的按位置位/復位控制字須跟在方式選擇控制字之后寫入控制字寄存器。即使僅使用該功能,也應先選送一方式控制字。1.28255的工作方式與控制字

例1

將8255C端口的8根I/O線接8只發光二極管的正極(八個負極均接地),用按位置位/復位控制字編寫使這8只發光二極管依次亮、滅的程序。設8255的端口地址為380H~383H。本程序要使用8255的2個控制字--方式選擇字和按位置位/復位字。這2個控制字都寫入8255的控制字寄存器,由它們的D7位為1或0來區別寫入的字是方式選擇字還是置位/復位字。8255的控制字寄存器的端口地址為383H。方式選擇字只寫入一次,其后寫入的都是置位/復位字。1.28255的工作方式與控制字8255與PC微機的連接及8255C端口與8只發光二極管的連接如圖。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;點亮一只發光二極管

LOOP$;延時

LOOP$ANDAL,0FEH;置位字改為復位字

OUTDX,AL;熄滅點亮的發光二極管

ADDAL,3;PCi→PCi+1,復位字改為下一位的置位字

ANDAL,0FH

;保持D7為01.28255的工作方式與控制字

PUSHAXMOVAH,11;檢查鍵盤有無輸入

INT21H;無0送AL,有-1送ALINCALPOPAXJNZAGAINretbeginendpcode ends endbegin1.28255的工作方式與控制字這是一種基本的I/O方式。在這種工作方式下,3個端口都可由程序選定作輸入或輸出。它們的輸出是鎖存的,輸入是不鎖存的。在這種工作方式下,可以由CPU用簡單的輸入或輸出指令來進行讀或寫。因而當方式0用于無條件傳送方式的接口電路時是十分簡單的,這時不需要狀態端口,3個端口都可作為數據端口。1.3三種工作方式的功能1.方式0若將例1改為C端口方式0輸出,則控制程序為:stack 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端口的輸出值AGAIN:OUTDX,ALLOOP$;延時

LOOP$PUSHAXMOVAH,11;11號功能調用:檢查鍵盤有無輸入

INT21H;無0送AL,有-1送ALINCAL;有鍵入,AL=-1,AL增1,AL=0POPAXJZBACKROLAL,1;改變C端口的輸出值JMPAGAINBACK:ret1.3三種工作方式的功能begin endpcode ends endbegin方式0也可作為查詢式輸入或輸出的接口電路,此時端口A和B分別可作為一個數據端口,而取端口C的某些位作為這兩個數據端口的控制和狀態信息。1.3三種工作方式的功能這是一種選通的I/O方式。它將3個端口分為A、B兩組,端口A和端口C中的PC3~PC5或PC3、PC6、PC73位為A組;端口B和端口C的PC2~PC03位為B組。端口C中余下的兩位,仍可作為輸入或輸出用,由方式控制字中的D3來設定。端口A和B都可以由程序設定為輸入或輸出。此時端口C的某些位為控制狀態信號,用于聯絡和中斷,其各位的功能是固定的,不能用程序改變。2.方式11.3三種工作方式的功能方式1輸入的狀態控制信號及其時序關系如圖。1.3三種工作方式的功能

(1)STB(strobe)選通信號,低電平有效。這是由外設發出的輸入信號,信號的前沿(下降沿),把輸入裝置送來的數據送入輸入緩沖器;信號的后沿(上升沿)使INTR有效(置1)。

(2)IBF(inputbufferfull)輸入緩沖器滿信號,高電平有效。這是8255輸出給外設的聯絡信號。外設將數據送至輸入緩沖器后,該信號有效;RD信號的上升沿將數據送至數據線后,該信號無效。1.3三種工作方式的功能

(3)INTR(interruptrequest)中斷請求信號,高電平有效。這是8255的一個輸出信號,可用作向CPU申請中斷的請求信號,以要求CPU服務。當IBF為高和INTE(中斷允許)為高時,由STB的上升沿(后沿)使其置為高電平。由RD信號的下降沿(CPU讀取數據前)清除為低電平。

(4)INTE(interruptenable)中斷允許信號,端口A中斷允許INTEA可由用戶通過對PC4的按位置位/復位來控制。而INTEB

由PC2

的置位/復位控制。INTE置位允許中斷。INTE復位禁止中斷。1.3三種工作方式的功能例2

用選通輸入方式從A端口輸入100個8位二進制數。接口及其電路如下圖所示。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;恢復屏蔽字,禁止IRQ9中斷ORAL,2OUT0A1H,ALretIS8255:INAL,DXMOVBUF[BX],ALINCBXMOVAL,61H;指定中斷結束命令1.3三種工作方式的功能OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin1.3三種工作方式的功能方式1輸出的狀態控制信號及其時序關系如圖。1.3三種工作方式的功能

(1)OBF輸出緩沖器滿信號,低電平有效。這是8255輸出給外設的一個聯絡信號。CPU把數據寫入指定端口的輸出鎖存器后,該信號有效,表示外設可以把數據取走。它由ACK的前沿(下降沿)即外設取走數據后,使其恢復為高。

(2)ACK(acknowledge)

低電平有效。這是外設發出的響應信號,該信號的前沿取走數據并使OBF無效后沿使INTR有效。1.3三種工作方式的功能(3)INTR中斷請求信號,高電平有效。當輸出裝置已經接受了CPU輸出的數據后,它用來向CPU提出中斷請求,要求CPU繼續輸出數據。OBF為“1”(高電平)和INTE為“1”(高電平)時,由ACK的后沿(上升沿),使其置位(高電平),WR信號的前沿(下降沿)使其復位(低電平)。(4)INTEA

由PC6的置位/復位控制。而INTEB由PC2置位/復位控制。INTE置位允許中斷。1.3三種工作方式的功能例3

用8只發光二極管及時反映8個監控量的狀態,設計接口電路和控制程序。用8個開關模擬8個監控量的狀態。A端口輸入8個監控量的狀態,B端口接8只發光二極管。A端口基本輸入,B端口選通輸出,用單穩電路來產生選通信號ACK。當需要了解8個監控量的狀態時發來選通信號ACK,該信號使控制程序進入中斷服務程序。在中斷服務程序中,從A端口輸入8個監控量的狀態后立即從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;恢復屏蔽字,禁止IRQ9中斷ORAL,2OUT0A1H,ALret1.3三種工作方式的功能IO8255:MOVDX,390HINAL,DXINCDXOUTDX,ALMOVAL,61H;指定中斷結束命令OUT0A0H,ALMOVAL,62HOUT20H,ALPOPAX;修改返址INCAXINCAXPUSHAXIRETbegin endpcode ends endbegin1.3三種工作方式的功能

這種工作方式,使外設可在單一的8位數據總線上,既能發送,又能接收數據(雙向總線I/O)。方式2只限于A組使用,它用雙向總線端口A和控制端口C中的5位進行操作,此時,端口B可用于方式0或方式1。端口C的其他3位作I/O用或作端口B控制狀態信號線用。3.方式21.3三種工作方式的功能方式2狀態控制信號:1.3三種工作方式的功能INTE1是輸出的中斷允許信號,由PC6的置位/復位控制INTE2是輸入的中斷允許信號,由PC4的置位/復位控制其他信號的作用及意義與方式1相同。1.3三種工作方式的功能可編程并行接口8255A可編程計數器/定時器8253常用可編程接口芯片12可編程計數器/定時器8253

Intel系列的計數器/定時器電路為可編程序間隔定時器PIT(programmableintervaltimer),型號為8253,改進型為8254。8253具有3個獨立的功能完全相同的16位計數器,每個計數器都有6種工作方式,這6種工作方式都可以由其控制字設定,因而能以6種不同的工作方式滿足不同的接口要求。CPU還可以隨時更改它們的方式和計數值,并讀取它們的計數狀態。8253的內部結構:2.1

8253的組成與接口信號數據總線緩沖器是三態、雙向、8位的緩沖器,用作系統總線和8253的接口,根據CPU的輸入或輸出指令實現數據傳送。數據總線緩沖器具有下面3個基本功能。(1)CPU向8253所寫的控制字經數據總線緩沖器和8253的內部數據總線傳送給控制字寄存器寄存。(2)CPU向某計數器所寫的計數初值經它和內部總線送到指定的計數器。(3)CPU讀取某個計數器的現行值時,該現行值經內部總線和緩沖器傳送到系統的數據總線上,被CPU讀入。1.數據總線緩沖器2.1

8253的組成與接口信號讀/寫邏輯接收系統總線的5個輸入信號,根據這5個信號產生整個器件操作的控制信號。通過片選信號CS來控制讀/寫邏輯的工作,在沒有被系統邏輯選中時,讀/寫邏輯操作功能不會發生變化。根據A1A0的輸入選擇3個計數器和控制字寄存器。通過RD或WR完成指定的讀或寫操作。2.讀/寫邏輯2.1

8253的組成與接口信號

CS、RD、WR、A1和A0組合起來所產生的選擇與操作功能:2.1

8253的組成與接口信號控制字寄存器寄存數據緩沖器傳送來的控制字。控制字寄存器有3個,都是8位的寄存器,分別對應于3個計數器。寫入的控制字由該控制字的最高2位確定送入哪個計數器的控制字寄存器寄存。各自的控制字寄存器決定各自計數器的工作方式和所執行的操作。控制字寄存器只能寫入,其值不能讀出。3.控制字寄存器2.1

8253的組成與接口信號計數器0、計數器1和計數器2是3個獨立的計數器,它們的內部結構相同。4.計數器0、計數器1和計數器22.1

8253的組成與接口信號

寫入計數器的初始值保存在計數初值寄存器中,由CLK脈沖的一個上升沿和一個下降沿將其裝入減1計數器。減1計數器在CLK脈沖(GATE允許)作用下進行遞減計數,直至計數值為0,輸出OUT信號。輸出寄存器的值跟隨減1計數器變化,僅當寫入鎖存控制字時,它鎖存減1計數器的當前計數值(減1計數器可繼續計數),CPU讀取后,它自動解除鎖存狀態,又跟隨減1計數器變化。所以在計數過程中,CPU隨時可以用指令讀取任一計數器的當前計數值,這一操作對計數沒有影響。計數初值寄存器,減1計數器和輸出寄存器都可看作是8位的寄存器對。2.1

8253的組成與接口信號

每個計數器都是對輸入的CLK脈沖按二進制或十進制的預置值開始遞減計數。若輸入的CLK是頻率精確的時鐘脈沖,則計數器可作為定時器。在計數過程中,計數器受門控信號GATE的控制。計數器的輸入CLK與輸出OUT以及門控信號GATE之間的關系,取決于計數器的工作方式。2.1

8253的組成與接口信號8253的計數器有6種工作方式:(1)方式0--計數結束中斷(2)方式1--硬件觸發單拍脈沖(3)方式2--頻率發生器(4)方式3--方波發生器(5)方式4--軟件觸發選通(6)方式5--硬件觸發選通2.2

計數器的工作方式及其與輸入輸出的關系1.計數器的輸出 OUT6種工作方式的輸出信號如下圖所示。2.2

計數器的工作方式及其與輸入輸出的關系

6種工作方式中,只有方式0在寫入控制字后輸出為低,其他5種方式,都是在寫入控制字后輸出為高。方式2、4、5的輸出波形是相同的,都是寬度為一個CLK周期的負脈沖。但方式2是連續工作,方式4由軟件(設置計數值)觸發啟動,而方式5由門控脈沖觸發啟動。方式5與方式1的工作方式基本相同,但輸出波形不同,方式1的輸出為寬度是N個CLK脈沖的低電平脈沖(計數過程中輸出為低),而方式5的輸出為寬度是1個CLK脈沖的負脈沖(計數過程中輸出為高)。2.2

計數器的工作方式及其與輸入輸出的關系

方式3和方式2的輸出都是周期性的,它們的主要區別是,方式2在計數過程中輸出始終為高,直至計數器減到1時,輸出一個CLK負脈沖后又恢復為高;方式3在計數過程中輸出有一半時間為高,另一半時間為低。所以,若計數值為N,則方式3的輸出為周期是N個CLK脈沖的方波。如果計數值N是奇數,則輸出(N+1)/2個CLK脈沖周期為高,(N-1)/2個脈沖周期為低,即OUT為高,將比其為低多一個CLK周期時間。2.2

計數器的工作方式及其與輸入輸出的關系

方式0之所以稱之為計數結束中斷,是因為方式0是專為8253工作在中斷方式而設計的,它的輸出OUT一經確定方式以后就馬上變低,直到計數到0才變高,而其他方式的輸出就不是這種情況。8253用于中斷方式并不僅限于方式0,其他方式也是可以用于中斷方式的。8253內部沒有中斷控制電路,也沒有專用的中斷請求引線,所以若要用于中斷,則可用OUT信號作為外部中斷請求信號。2.2

計數器的工作方式及其與輸入輸出的關系任一種方式,只有寫入計數值后才能開始計數,方式0、2、3和4都是在寫入計數值后,計數過程就開始了,而方式1和5需要外部觸發啟動,才開始計數。6種方式中,只有方式2和3是連續計數,其他4種方式都是一次計數,要繼續工作需要重新啟動,方式0、4由寫入計數值(軟件)啟動,方式1、5要由外部信號(硬件)啟動。2.計數器的工作與啟動2.2

計數器的工作方式及其與輸入輸出的關系在方式0和方式4中,GATE是電平起作用。計數過程受GATE信號的控制,GATE為高電平計數,低電平停止計數。在方式1和方式5中,GATE是上升沿起作用。在計數過程中,只要GATE出現由低到高的跳變,計數的初值就被裝入減1計數器,并從初值起繼續計數。

在方式2和方式3中,GATE信號的上升沿和電平均起作用。高電平計數,低電平停止計數。上升沿則重新裝入計數初值,繼續計數。3.門控信號GATE的作用2.2

計數器的工作方式及其與輸入輸出的關系8253可以在計數過程中寫入計數值,但它的作用在不同方式時有所不同。方式0和方式4是立即有效(即新的計數值寫入減1計數器),方式1和方式5是外部觸發后有效,方式2和方式3是本次計數結束后有效。4.在計數過程中改變計數值2.2

計數器的工作方式及其與輸入輸出的關系8253的控制字如下圖所示。2.3

8253的控制字和初始化編程

(1)計數器選擇(D7、D6)。控制字的最高兩位決定這個控制字是哪一個計數器的控制字。由于三個計數器的工作是完全獨立的,所以每個計數器都有一個控制字。而三個控制字都由同一地址(控制字寄存器地址)寫入,因而由控制字的D7、D6兩位來指定該控制字是哪個計數器的控制字。在控制字中的計數器選擇與計數器的地址是兩回事,不能混淆。計數器的地址用作CPU向計數器寫初值,或從計數器讀取計數器的當前值。2.3

8253的控制字和初始化編程

(2)數據讀/寫格式(D5、D4)。CPU向計數器寫入初值和讀取它們的當前狀態時,有幾種不同的格式。讀/寫數據時,是讀/寫8位數據還是16位數據;若是8位數據,可以令D5D4=01,只讀/寫低8位,則高8位自動置0;若是16位數據,而低8位為0,則可令D5D4=10,只讀/寫高8位,低8位就自動為0;若令D5D4=11時,就先讀/寫低8位,后讀/寫高8位。在讀取16位計數值時,可令D5D4=00,則把寫控制字時的計數值鎖存,以后再讀取。

2.3

8253的控制字和初始化編程

(3)工作方式(D3、D2、D1)。8253的每個計數器的6種不同的工作方式,由這3位決定。(4)數制選擇(D0)。8253的每個計數器有兩種計數制:二進制和十進制,由這位決定。在二進制計數時(D0=0),寫入的初值的范圍為0000H~FFFFH,其中0000H是最大值,代表65536。在十進制計數時(D0=1),寫入的初值的范圍為0000H~9999H,其中0000H是最大值,代表10000。2.3

8253的控制字和初始化編程

要使用8253必須首先進行初始化編程,初始化編程的步驟為先寫入計數器的控制字,然后寫入計數器的計數初值。控制字和計數初值,是通過兩個不同的端口地址寫入的。任一計數器的控制字都是寫入控制字寄存器的端口地址,由控制字中的D7、D6來確定是哪一個計數器的控制字;而計數初值是由各個計數器的端口地址寫入的。一片8253具有4個端口地址,由8253的A1和A0兩根引線來區別:A1、A0為11是控制字寄存器的端口地址,00、01和10則分別是計數器0、計數器1和計數器2的端口地址。2.3

8253的控制字和初始化編程

例如:用計數器0,工作在方式1,按十進制計數,計數值為5080H。設該片8253的端口地址為388H~38BH,寫出初始化程序段。MOVDX,38BHMOVAL,33H;00110010OUTDX,ALMOVDX,388HMOVAL,80HOUTDX,ALMOVAL,50HOUTDX,AL2.3

8253的控制字和初始化編程

8253任一計數器的計數值,CPU可用指令讀取。CPU讀到的是執行讀取指令瞬間計數器的現行值。但8253的計數器是16位的,所以要分兩次讀至CPU,因此,若不設法鎖存的話,則在讀數過程中,計數值可能已變化了。要鎖存有兩種辦法:(1)利用GATE信號使計數過程暫停。(2)向8253輸送一個控制字,令8253的計數值在出寄存器鎖存。2.3

8253的控制字和初始化編程例如:讀取計數器1的16位計數值,存入CX中,其程序段為:

MOVDX,38BHMOVAL,40H;計數器1的鎖存命令

OUTDX,ALMOVDX,389HINAL,DXMOVCL,ALINAL,DXMOVCH,AL2.3

8253的控制字和初始化編程

例48253在IBMPCXT中的應用。2.4

8253的應用IBMPCXT微型計算機中8253的部分線路

由譯碼電路可知計數器和控制字寄存器的端口地址為40H~5FH,BIOS取為計數器0∶40H,計數器1∶41H,計數器2∶42H,控制字寄存器∶43H。3個計數器的輸入時鐘頻率均為1.19MHz。計數器0輸出作為18.2Hz方波發生器。用來輸出方波作為中斷控制器8259的第0號中斷信號線(IRQ0)的輸入。計數器0的計數值為:

1.19M/18.2=65384=216即送16位的0,故其控制字為36H。2.4

8253的應用對計數器0初始化的程序段如下:MOVAL,36HOUT43H,ALMOVAL,0OUT40H,ALOUT40H,AL2.4

8253的應用

計數器1輸出間隔為15μS的負脈沖。該脈沖的上升沿觸發D觸發器。使它對DMA控制器8237的第0號DMA請求信號線DRQ0發出DMA請求信號,8237則依據這個請求信號對動態RAM進行刷新。計數器1的計數值為:1.19×106/(1/15)×10-6=18故其控制字為54H。對計數器1的初始化程序段如下:MOVAL,54HOUT43H,ALMOVAL,18OUT41H,AL2.4

8253的應用

計數器2輸出不同頻率的方波,經電流驅動器75477放大,推動揚聲器發出不同頻率的聲響。計數器2的計數值為可變值。隨蜂鳴器聲響頻率的高低而變,程序設計中讓它的取值范圍由1到65535,即16位二進制數,故其控制字為B6H。

2.4

8253的應用entryparameters:DH=NumberoflongtonestobeepDL=Numberofshorttonestobeeperr-beepprocPUSHF;保存所有的標志位CLI;關中斷PUSHDSMOVAX,DATA;DS指向數據段MOVDS,AXORDH,DH;是否要鳴長音JZG3

;不鳴長音,去鳴短音下面是IBMPCXT機BIOS中的開機診斷子程序。該子程序讓蜂鳴器鳴一聲長音(3秒)和一聲短音(0.5秒),以指出系統板或RAM模塊或者CRT顯示器有錯。2.4

8253的應用G1:MOVBL,6;蜂鳴常數,一次鳴響延續時0.5×BLCALLBEEP;調用鳴響子程序G2:LOOPG2;鳴響間隔,等待500mSDECDHJNZG1;長音沒鳴響完,繼續CMPMFG-TST,1;為制造測試模式?JNZG3;為制造測試模式,繼續鳴響短音MOVAL,0DH;停止LED閃OUTPORT-B,AL;PORT-B=61H,即8255B端口JMPG12.4

8253的應用G3:MOVBL,1;短音鳴響時間為0.5×1=0.5SCALLBEEPG4:LOOPG4DECDLJNZG3;短音沒鳴響完,繼續G5:LOOPG5;短音鳴響完,延遲1S返回G6:LOOPG6POPDSPOPFRETerr-beependp2.4

8253的應用鳴響子程序:beepprocMOVAL,0B6H;計數器2的控制字OUT43H,ALMOVAX,533H;1000Hz分頻值,分高低字節兩次送入OUT42H,ALMOVAL,AHOUT42H,ALINAL,61H;讀取8255B端口的狀態MOVAH,ALORAL,32.4

8253的應用

OUT61H,AL;打開蜂鳴器SUBCX,CX;設置等待500ms的常數值G7:LOOPG7DECBL;等0.5s×BLJNZG7MOVAL,AH;恢復8255B端口的原來值,關蜂鳴器OUT61H,ALRETbeependp2.4

8253的應用

例5

對外部事件計數10次。計數電路如下圖所示,由圖可知,使用的是計數器0。2.4

8253的應用控制程序如下:stacksegmentstackstack

dw32dup(0)stackendsdatasegmentDA1DBWAITLOAD,0AH,0DH,$DA2DBPLEASEINPUT,0AH,0DH,$DA3DBPROGRAMTERMINATEDNORMALLY,0AH,0DH,$dataendscodesegmentbeginprocfarassumess:stack,cs:code,ds:datapushds2.4

8253的應用subax,axpushax

movax,data

mov

ds,axMOVDX,383H;8253計數器的方式0,BCD計數MOVAL,11HOUTDX,ALMOVDX,380HMOVAL,10HOUTDX,ALMOVDX,OFFSETDA1MOVAH,9INT21HMOVDX,380H2.4

8253的應用LOAD:INAL,DXCMPAL,10H;等待單穩輸入脈沖,裝入計數初值JNELOADMOVDX,OFFSETDA2MOVAH,9

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論