微機(jī)原理與接口技術(shù)課程設(shè)計(jì)硬件部分.ppt_第1頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)硬件部分.ppt_第2頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)硬件部分.ppt_第3頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)硬件部分.ppt_第4頁
微機(jī)原理與接口技術(shù)課程設(shè)計(jì)硬件部分.ppt_第5頁
已閱讀5頁,還剩122頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、首先回顧一下輸入輸出指令 IN AL/AX,端口地址 OUT 端口地址,AL/AX,輸入輸出指令完成外設(shè)與CPU之間的數(shù)據(jù)傳送。輸入指令I(lǐng)N用于從外設(shè)端口接收數(shù)據(jù),輸出指令OUT則向端口發(fā)送數(shù)據(jù)。但是該數(shù)據(jù)只能從外設(shè)送到CPU的AL/AX中(IN)或者從CPU的AL/AX送到外設(shè)(OUT)。也就是說,輸入輸出指令的一方是外設(shè),一方必須是AL/AX。 為了方便,我們給每個(gè)外設(shè)都設(shè)置了一個(gè)對(duì)應(yīng)的端口地址,比如我們?cè)O(shè)定鍵盤的端口地址為10H,當(dāng)指令表示從地址為10H的端口傳送某個(gè)數(shù)據(jù)內(nèi)容給AL/AX時(shí),指的就是從鍵盤IN一個(gè)數(shù)給AL/AX。,輸入輸出指令可進(jìn)行8位數(shù)據(jù)傳送,所傳送數(shù)據(jù)在AL中,也可進(jìn)

2、行16位數(shù)據(jù)傳送,所傳送數(shù)據(jù)在AX中,不能使用其他的寄存器。 輸入輸出指令對(duì)IO端口的尋址方式可以分為兩大類: 直接尋址 端口地址直接在指令中給出,可尋址256個(gè)端口(0255);當(dāng)端口地址255,如端口地址為256時(shí),先用DX暫時(shí)存放256這個(gè)端口地址 MOV DX,256 現(xiàn)在DX=端口地址 IN AL/AX,DX 從DX這個(gè)端口地址送一個(gè)數(shù)據(jù)給AL/AX,(1)輸入指令 指令格式: IN AL/AX,端口地址 功 能: ALAXPORT 操作說明: 從某個(gè)地址為PORT的端口將8位或16位的數(shù)據(jù)內(nèi)容送入AL或AX中。 E.g IN AL,100H 注意兩點(diǎn): 1、“,”右邊的100H不是

3、要傳送的數(shù)據(jù)內(nèi)容,而是一個(gè)端口地址 2、目前我們還不知道傳送的數(shù)據(jù)內(nèi)容是什么。 我們只知道這條指令的涵義是將一個(gè)8位的數(shù)從地址為100H的端口送到AL中。,端口的尋址可用直接尋址或DX間接尋址兩種方式。 【例2.13】IN AL,10H ;將10H代表的端口的內(nèi)容送AL,10H是8位端口的地址 IN AX,20H ;將20H端口的內(nèi)容送AX,20H是16位端口的地址 錯(cuò)誤舉例: IN AX,300H MOV DX,300H ;(如果要將300H端口的內(nèi)容送AX,則不能直接IN AX,300H,因?yàn)?00H255,所以先把該地址存在DX中) IN AX,DX ;以DX作為16位端口地址,端口內(nèi)容

4、送AX,(2)輸出指令 指令格式: OUT 端口地址,AL/AX 功 能: PORTALAX 操作說明: 將累加器AL(8位)或AX(16位)的內(nèi)容輸出到地址為PORT的I/O端口中,端口PORT的尋址可用上述的直接尋址或DX間接尋址兩種方式。 【例2.14】 OUT 40H,AL ;將AL內(nèi)容送到地址為40H的8位端口中 OUT 20H,AX ;將AX內(nèi)容送到地址為40H的16位端口中 OUT DX,AL ;將AL內(nèi)容送到地址由DX所指定的8位端口中 OUT DX,AX ;將AX內(nèi)容送到地址由DX所指定的16位端口中,第六章 并行接口,目 的 要 求 :掌握8255A可編程并行接口的工作原理

5、以及初始化編程和應(yīng)用。 重 點(diǎn): 8255A工作原理 難 點(diǎn) :初始化編程,6.1 并行接口概述 并行接口電路與外部設(shè)備之間各位數(shù)據(jù)都是同時(shí)并行傳送的,它通常是以字節(jié)(8位)或字(16位)為單位進(jìn)行數(shù)據(jù)傳輸。 并行接口有兩個(gè)特點(diǎn):一是接口是以并行方法傳輸數(shù)據(jù)的,數(shù)據(jù)通道或數(shù)據(jù)的寬度就是傳輸?shù)奈粩?shù);另一個(gè)是在計(jì)算機(jī)與外設(shè)之間設(shè)置協(xié)調(diào)傳遞數(shù)據(jù)位的有關(guān)聯(lián)系信號(hào),即查詢聯(lián)絡(luò)信號(hào)。傳輸距離較近時(shí),常采用并行接口。,并行接口中各位數(shù)據(jù)都是并行傳送的,它通常是以字節(jié)(8位)或(16位)為單位進(jìn)行數(shù)據(jù)傳輸。,下面將以一個(gè)簡單實(shí)例簡易8位LED數(shù)字顯示牌,來說明PC機(jī)標(biāo)準(zhǔn)并行接口(SPP)的基本工作原理和編程方

6、法。,實(shí)例現(xiàn)在電腦已經(jīng)是很普及的了,一些小型或個(gè)體商店也會(huì)用到電腦去處理進(jìn)銷存的賬目,在一些場合中往往要讓客人當(dāng)場直觀地知道要支付的金額或讓客人查詢商品的售價(jià),這時(shí)就需要超市POS系統(tǒng)中的LED報(bào)價(jià)牌,但它的整個(gè)價(jià)格很高,我們?cè)谶@里實(shí)驗(yàn)一個(gè)用電腦并行接口直接控制的簡易8位LED數(shù)字顯示牌,以此幫助大家更容易的理解電腦并行接口標(biāo)準(zhǔn)模式的基本工作原理。 先來看看要用到的元器件。圖中就是部分的元件,它要用的元件確實(shí)很少,甚至沒有用到一個(gè)電阻。,表一元件表,圖2:USB接線用于取電 為了簡化電路和充分利用電腦的接口,這里選用了USB取電,把USB連線的一頭剪下,可以看到有紅黑綠白,四根不同顏色的線,黑

7、色為地線,紅色為+5V,其余為信號(hào)線不選用(焊接操作時(shí)應(yīng)小心不要把它接反在電路上,避免損壞USB口和并口可以加整流二極管以防反接)。,圖3:共陽極雙七段LED的引腳定義和測量方法 回憶: 共陽極公共端接陽極,低電平有效(燈亮) 共陰極公共端接陰極,高電平有效(燈亮),共陽極雙七段LED的引腳定義請(qǐng)看圖三左半部,而右半部是測量其好壞的示意圖,數(shù)字萬用表打到測二極量檔,這時(shí)紅表筆有一個(gè)正電壓(普通萬用表則可以使用電阻檔,黑表筆有正電壓),用紅表得筆接觸LED陽極V(Vcc),黑表筆分別接觸各個(gè)筆劃,各筆劃亮?xí)r為好,否則為壞。制作中也可以使用共陰極的七段LED,只要在軟件發(fā)送數(shù)據(jù)時(shí)取反就行了。因用到

8、二個(gè)IC和八個(gè)LED如用萬用板去制作連線很多,有條件可以自己制板,如你只要了解并口的原理也可以只接一個(gè)LED以簡化電路。筆者則是使用一塊從儀表拆下舊的8位數(shù)字LED印刷電路板,最終的實(shí)驗(yàn)成品和演示程序請(qǐng)看圖五圖六。,圖4:電路圖,控制七段LED的陽極電壓,控制七段LED的筆劃,這個(gè)電路的原理也是很簡單的。先來看看圖四的電路圖。IC1和IC2為74HC373三態(tài)八D鎖存器,電路中只用到輸出態(tài)和鎖存態(tài),而沒有使用到高阻態(tài)的控制,所以芯片上輸出控制端(1腳)只要接地就行了。IC1是用來控制七段LED的陽極電壓的,IC2是用來控制七段LED的筆劃的。具體的控制過程為:第一步:軟件置并口16腳為高電平,

9、17腳為低電平,這時(shí)IC1為輸出態(tài),IC2為鎖存態(tài),送選擇顯示位數(shù)據(jù)到LPT2-9腳,D0D7對(duì)應(yīng)8個(gè)LED,因這時(shí)IC1為輸出態(tài)故數(shù)據(jù)輸出到IC1的Q0Q7,IC2不受影響。第二步:置并口16腳為低電平,17腳為高電平,這時(shí)IC1的數(shù)據(jù)被鎖存,IC2為輸出態(tài),此時(shí)送筆劃數(shù)據(jù)到D0D7,重復(fù)第一步時(shí),IC2的數(shù)據(jù)被鎖存。如此時(shí)IC1的Q0為高電平,IC2的Q1、Q2為低電平,那么DS1號(hào)LED的b和c筆劃段被點(diǎn)亮,顯示1字符。若這時(shí)置IC1為輸出態(tài),輸入數(shù)據(jù)置IC1的Q1為高電平其它為低電平,1字符便會(huì)移到第2個(gè)LED上顯示,只要數(shù)據(jù)改變的快,人眼看起來就是二個(gè)1同時(shí)顯示的。這就是動(dòng)態(tài)顯示的基

10、本原理。,圖5:制作成功的樣品,接口工作原理先來看看圖七和圖八,它們是常用的并行接口形式。圖七是PC后后面板上的DB25孔式并行接口,現(xiàn)在它通常都會(huì)整合在主機(jī)板上,要應(yīng)用PC并口就是從這里取得,而在舊式的機(jī)器上則需外加打印卡或多功能卡取得,PC機(jī)要擴(kuò)展多一個(gè)這樣的接口也需要外加相應(yīng)的板卡。圖八是用于連接PC主機(jī)和打印機(jī)(或其它外設(shè))的連接線,由一個(gè)針式DB25接頭和一個(gè)Centronics公接頭組成。圖九是打印機(jī)(或其它外設(shè))的Centronics母接頭。Centronics是一種36腳彈簧式接口引腳定義看表二。,圖7:PC后面板上的DB25并行接口,圖8:打印機(jī)連接線,本文的實(shí)例制作里選用了

11、標(biāo)準(zhǔn)的并口模式SPP模式,它是最簡單的模式,它可以提供50K Bits/秒的典型傳輸速度,其最高的傳輸速度可達(dá)150K Bits/秒??蛇M(jìn)行9Bits的并行輸入和12Bits的并行輸出。通??蛇x擇Nibble(4bits)或Byte(8bits)的方式進(jìn)行輸入數(shù)據(jù),還有一種Bi-directional的雙向傳輸方式,這種方式需硬件支持(現(xiàn)在的板載LPT通常在SPP模式下也是可以進(jìn)行雙向傳輸?shù)?。SPP硬件是由8條數(shù)據(jù)線,4條控制線和5條狀態(tài)線所組成,它們分別對(duì)應(yīng)三個(gè)不同的寄存器來進(jìn)行數(shù)據(jù)的讀寫操作。表二是并行接口引腳定義表。,圖9:打印機(jī)上的Centronics并行接口,8255A芯片 825

12、5是指Intel 8086/8088 系列的可編程外設(shè)接口電路(Programmable Peripheral Interface)簡稱 PPI,型號(hào)為8255(改進(jìn)型為8255A及8255A-5),具有24條輸入/輸出引腳、可編程的通用并行輸入/輸出接口電路。它是一片使用單一+5V電源的40腳雙列直插式大規(guī)模集成電路。8255A的通用性強(qiáng),使用靈活,通過它CPU可直接與外設(shè)相連接。,鎖存器就是把當(dāng)前的狀態(tài)鎖存起來,使CPU送出的數(shù)據(jù)在接口電路的輸出端保持一段時(shí)間鎖存后狀態(tài)不再發(fā)生變化,直到解除鎖定。如下圖中通過把一個(gè)引腳 置高后,輸出就會(huì)保持現(xiàn)有的狀態(tài),直到把該引腳清0后才能繼續(xù)變化。也就是

13、需要輸入一個(gè)脈沖信號(hào)才能解鎖。,在數(shù)據(jù)傳輸中,用來彌補(bǔ)不同數(shù)據(jù)處理速率速度差距的存儲(chǔ)裝置叫做緩沖器。把數(shù)據(jù)存放到緩沖器中的技術(shù)叫做緩沖。 網(wǎng)上看電影時(shí),緩沖就是在你看電影時(shí)提前把一下時(shí)段內(nèi)容準(zhǔn)備好,目的是可以更流暢的觀看。主要取決于CPU和內(nèi)存大小,越大會(huì)反應(yīng)越快。緩沖的引入 中斷技術(shù)和通道技術(shù)的引入,提供了CPU,通道和I/O設(shè)備之間的并行操作的可能性,但由于計(jì)算機(jī)外設(shè)的發(fā)展會(huì)產(chǎn)生通道不足而產(chǎn)生的“瓶頸”現(xiàn)象,使并行程度受到限制,因此引入了緩沖技術(shù)。,緩沖寄存器又稱緩沖器,它分輸入緩沖器和輸出緩沖器兩種。前者的作用是將外設(shè)送來的數(shù)據(jù)暫時(shí)存放,以便處理器將它取走;后者的作用是用來暫時(shí)存放處理器

14、送往外設(shè)的數(shù)據(jù)。有了數(shù)控緩沖器,就可以使高速工作的CPU與慢速工作的外設(shè)起協(xié)調(diào)和緩沖作用,實(shí)現(xiàn)數(shù)據(jù)傳送的同步。數(shù)據(jù)總線上一般都連接有緩沖器,只要外設(shè)回答“準(zhǔn)備好了”或者“空閑了”,就可以立刻把數(shù)據(jù)輸入或輸出,尤其在遇到快速的外設(shè)時(shí),緩沖器就能很快被取走數(shù)據(jù),基本實(shí)現(xiàn)同步,而不像鎖存器必須等待解除鎖定。緩沖器的數(shù)據(jù)是不會(huì)長久保存的。,6.2.1 8255A的內(nèi)部結(jié)構(gòu)和外部引腳 1. 8255A的內(nèi)部結(jié)構(gòu) 8255A的內(nèi)部結(jié)構(gòu)如圖6.2所示,由圖可知,8255A由以下幾個(gè)部分組成: ()數(shù)據(jù)端口A、B、C 8288A有三個(gè)8位的數(shù)據(jù)端口:端口A、端口B、端口C??捎贸绦虬阉鼈?cè)O(shè)計(jì)成輸入端口或輸出端

15、口。這三個(gè)端口一方面與CPU連接,一方面直接與外部相連,以便使數(shù)據(jù)在CPU和外部之間傳輸。,端口:端口包含一個(gè)位的數(shù)據(jù)輸入鎖存器和一個(gè)位的數(shù)據(jù)輸出鎖存器/緩沖器。因此,不管用端口A作輸入口還是輸出口,數(shù)據(jù)均能受到鎖存。 端口B:端口B包含一個(gè)8位的數(shù)據(jù)輸入緩沖器和一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器。因此,端口B作輸入口時(shí),數(shù)據(jù)不能受到鎖存;端口B作輸出口時(shí),數(shù)據(jù)能受到鎖存。 端口C:端口C包含一個(gè)8位的數(shù)據(jù)輸入緩沖器和一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器。因此,端口C與端口B一樣,作輸入口時(shí)數(shù)據(jù)不受鎖存,作輸出口數(shù)據(jù)能受到鎖存。,(2)A組控制、B組控制 這兩組控制電路,用來接收來自CPU和讀/寫控

16、制邏輯電路發(fā)來的控制字和讀/寫信號(hào),實(shí)現(xiàn)對(duì)8255A的數(shù)據(jù)端口的讀/寫控制。其中,A組控制電路控制端口A和端口C的高四位的工作方式和讀/寫控制;B組控制電路控制端口B和端口C的低四位的工作方式和讀/寫控制。,8255的工作方式控制字和C口的按位置位/復(fù)位控制字,由CPU寫入。,(3)讀/寫控制邏輯 讀/寫控制邏輯控制8255A的數(shù)據(jù)傳輸。它接收來自系統(tǒng)地址總線的A1、A0、地址譯碼輸出的片選信號(hào) 和系統(tǒng)控制總線的信號(hào) 、 、RESET,將這些信號(hào)進(jìn)行組合后,得到A組控制和B組控制的控制命令,從而實(shí)現(xiàn)數(shù)據(jù)的傳輸。 A1、A0:端口地址選擇信號(hào)線。 當(dāng)A1A0=00時(shí),選中端口A; A1A0=01

17、時(shí),選中端口B; A1A0=10時(shí),選中端口C; A1A0=11時(shí),選中控制端口。,(4)數(shù)據(jù)總線緩沖器 這是一個(gè)雙向的8位數(shù)據(jù)緩沖器,可直接與系統(tǒng)的數(shù)據(jù)總線相連,來傳送輸入數(shù)據(jù)、輸出數(shù)據(jù)以及CPU發(fā)給8255的控制信息。通過它,CPU可向8255寫控制字和讀狀態(tài)信息。,2. 8255A的外部引腳 圖6.3是8255A的芯片引腳圖,引腳信號(hào)可以分為以下三組: (1)面向CPU一側(cè)的信號(hào)線 RESET:復(fù)位信號(hào),高電平有效。 D7 D0:8位雙向數(shù)據(jù)線,與系統(tǒng)的數(shù)據(jù)總線相連。,A1、A0:端口地址選擇信號(hào)線。 當(dāng)A1A0=00時(shí),選中端口A; A1A0=01時(shí),選中端口B; A1A0=10時(shí),選

18、中端口C; A1A0=11時(shí),選中控制端口。 :芯片選擇信號(hào),低電平有效,與地址譯碼器電路相連接,有效時(shí)表明選中該芯片。 :讀信號(hào),低電平有效。有效時(shí)CPU從8255A中讀取數(shù)據(jù)。 :寫信號(hào),低電平有效。有效時(shí),CPU向8255A寫入數(shù)據(jù)。,表6.1 8255A的數(shù)據(jù)信號(hào)和數(shù)據(jù)間傳輸關(guān)系表,(2)面向I/O設(shè)備一側(cè)的信號(hào)線 PA7PA0: 端口A的輸入/輸出數(shù)據(jù)信號(hào)線 PB7PB0: 端口B的輸入/輸出數(shù)據(jù)信號(hào)線 PC7PC0: 端口C的輸入/輸出數(shù)據(jù)信號(hào)線 (3)其他的信號(hào)線 VCC:電源信號(hào)線,接+V電源 GND:地線,6.2.28255A的控制字與初始化編程 8255A的控制字有兩類:方

19、式選擇控制字和端口C按位置位/復(fù)位控制字。 1.方式選擇控制字 工作方式選擇控制字格式如下:,從方式控制字的格式中,可以看出: (1)8255A有三種基本工作方式: 方式0:基本的輸入/輸出方式 方式1:選通的輸入/輸出方式 方式2:雙向傳輸方式 (2)端口A可以工作于三種工作方式中的任何一種; 端口B 只能工作于方式0或方式1這兩種工作方式; 端口C 常常配合端口A或端口B工作,為它們的數(shù)據(jù)輸入/輸出提供控制信號(hào)和狀態(tài)信號(hào)。,(3)同組的兩個(gè)端口可以分別作為輸入端口或者輸出端口。 如A組控制電路控制端口A和端口C的高四位的工作方式和讀/寫控制,于是可以用端口A的高四位輸入,端口C的高四位輸出

20、。也可以用端口A低四位輸出,端口C的高四位輸入,等等,【例6.1】某片8255A與CPU相連時(shí),其端口地址為60H,61H,62H,63H?,F(xiàn)要求端口A工作在方式1,輸入;端口B工作在方式0,輸出;端口C的高4位為輸出,低四位為輸入。 分析:已知端口地址為60H,61H,62H,63H,即01100000、01100001、01100010、01100011 端口地址是用CPU的地址線 A7 A6 A5 A4 A3 A2 A1 A0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 0 0 0 1 0 0 1 1 0 0 0 1 1,重點(diǎn)觀察A1A0,A1 A0是端口

21、地址選擇信號(hào)線,通過A1 A0=00時(shí)8255選中端口A,通過端口A傳輸數(shù)據(jù);A1 A0=01時(shí)選中端口B,通過端口B傳輸數(shù)據(jù);A1 A0=10時(shí)選中端口C,通過端口C傳輸數(shù)據(jù);A1 A0=11時(shí),選中控制端口,CPU通過控制端口傳輸控制字。 現(xiàn)在我們首先需要CPU通過控制端口傳輸方式控制字給8255,所以用到A1 A0=11,即地址63H 則初始化程序?yàn)椋?MOV AL, B1H ;方式控制字10110001送給AL OUT 63H, AL ;把AL通過控制端口63H送 到8255接口,2.端口C按位置1/復(fù)位控制字 端口C按位置1/復(fù)位控制字的具體格式如下:,其中: (1)D7=0,特征位

22、,用來區(qū)別方式選擇控制字。 D6、D5、D4不用,可設(shè)置為000 (2)D3、D2、D1的編碼是對(duì)端口C的位選擇。 即D3D2D1為000時(shí),選擇端口C的位,D3D2D1為001時(shí),選擇端口C的第位,依次類推,D3D2D1為111時(shí)選擇端口C的第7位。 (3)D0=1表明對(duì)所選擇的位置1;D0=0,為對(duì)所選擇的位復(fù)位清0。 注:對(duì)端口C進(jìn)行置1或復(fù)位控制字必須寫入控制端口,而不是寫入端口C,因?yàn)樗匀唤凶隹刂谱帧?【例6.2】設(shè)8255A的控制口的地址為63H,要求對(duì)C口的PC6置1,C口的PC4復(fù)位,則程序指令如下: MOV AL, 0DH OUT 63H, AL ;PC6置1 MOV AL

23、, 08H OUT 63H, AL ;PC4復(fù)位,6.2.3 8255A的工作方式 8255A的端口A可以工作在方式0、方式1、方式2三種工作方式,而端口B只能在方式0和方式1兩種方式下工作。下面就介紹這三種工作方式的具體含義。 1.方式0(基本輸入/輸出方式) (1) 方式0的工作特點(diǎn) 這種工作方式下進(jìn)行數(shù)據(jù)傳輸通常不用聯(lián)絡(luò)信號(hào),或不使用固定的聯(lián)絡(luò)信號(hào),可以采用無條件或查詢方式傳送,不能采用中斷方式傳送數(shù)據(jù)。,2.方式1(選通輸入/輸出方式) (1)方式1的工作特點(diǎn) 應(yīng)答方式。因此,需設(shè)置專用的聯(lián)絡(luò)信號(hào)或應(yīng)答信號(hào)。這種方式可采用查詢傳送或中斷傳送。輸入/輸出都有鎖存功能此方式是借用C口的6條

24、信號(hào)線作為A口和B口數(shù)據(jù)傳送的聯(lián)絡(luò)信號(hào)線;A口和B口,都可工作于該方式。端口工作在方式1時(shí),聯(lián)絡(luò)信號(hào)的對(duì)應(yīng)關(guān)系如表6.2所示。,(4)方式1的使用場合 在方式1下,在規(guī)定某個(gè)端口為輸入口或輸出口時(shí),自動(dòng)規(guī)定了相應(yīng)的聯(lián)絡(luò)信號(hào)。這樣,在需要采用中斷方式進(jìn)行輸入/輸出的場合,只要外設(shè)能向8255A提供選通信號(hào)或應(yīng)答信號(hào),常常使8255A的端口工作于方式1。,2.方式2(雙向輸入/輸出) (1) 方式2的工作特點(diǎn) 方式2是雙向傳輸方式。當(dāng)端口工作于方式2時(shí),即可以向CPU發(fā)送數(shù)據(jù),又能從CPU讀取數(shù)據(jù),但不能同時(shí)進(jìn)行。只有端口A能工作于方式2,B口則沒有方式2。當(dāng)端口A工作于方式2時(shí),需要借用端口C的

25、5條信號(hào)線作為聯(lián)絡(luò)信號(hào),而且,和方式1類似,自動(dòng)提供相應(yīng)的聯(lián)絡(luò)信號(hào),且不能更改。當(dāng)A口工作于方式2時(shí),B口可以工作在方式1,因?yàn)榇藭r(shí)C口還剩3條信號(hào)線正好用于B口聯(lián)絡(luò)信號(hào)。具體的對(duì)應(yīng)關(guān)系如圖6.8所示。,(3)方式2的使用場合 方式2是雙向傳輸方式,當(dāng)一個(gè)并行外設(shè)既作輸入設(shè)備又作輸出設(shè)備,并且輸入和輸出不是同時(shí)進(jìn)行時(shí),可以用8255A的端口A把該設(shè)備和處理器連接起來。 例如,磁盤就是這樣一種雙向設(shè)備。CPU既能對(duì)磁盤進(jìn)行讀操作,又能進(jìn)行寫操作,并且讀和寫是分別進(jìn)行的。因此,可以將磁盤驅(qū)動(dòng)器的數(shù)據(jù)線和8255A的端口A相連,再使PC7PC3與磁盤控制器的控制線和狀態(tài)線相連即可。,【例6.3】82

26、55A 作為連接打印機(jī)的接口,工作于方式0,查詢式傳輸,如圖6.9所示。,工作過程:當(dāng)處理器要往打印機(jī)輸出字符時(shí),先查詢打印機(jī)的狀態(tài),如果打印機(jī)正在打印字符,則忙信號(hào)BUSY為1,反之為0。因此,當(dāng)查詢到BUSY=0時(shí),則可通過8255A往打印機(jī)送一個(gè)字符。此時(shí)要將選通信號(hào)STB置成高電平,然后再使其為低電平,再變高電平這樣將此負(fù)脈沖作為選通信號(hào)將字符送到打印機(jī)的輸入緩沖器。 STB:輸出緩沖器滿信號(hào),是8255A送給外設(shè)的信號(hào)。有效時(shí),表示CPU已經(jīng)向鎖存器輸出了數(shù)據(jù),8255A通知外設(shè)從該鎖存器取走數(shù)據(jù)。 由補(bǔ)充的知識(shí)我們知道,要使得鎖存器解鎖,也就是把剛鎖進(jìn)去的數(shù)據(jù)輸出出來,需要一個(gè)脈沖

27、信號(hào),這就是STB的負(fù)脈沖。,現(xiàn)將端口A作為傳輸字符的通道,工作于方式0,端口C工作于方式0,PC7PC4一般是作為一組的,已知PC5作選通信號(hào)輸出,所以高四位都設(shè)為輸出方式,PC0作忙信號(hào)BUSY輸入,PC3PC0一般是作為一組的,故低四位均設(shè)為輸入方式。設(shè)8255A的端口地址為:60H63H。 由此可知,A口地址為60H,控制端口地址為63H。,具體的程序段如下: MOV AL, 81H ;寫方式控制字給控制端口,A、C口工作于方式0,A口為輸出,C口的低四位為輸入,高四位為輸出 OUT 63H, AL ;63H為控制端口的地址 MOV AL, 0BH ;PC5連接STB,要造出STB的負(fù)

28、脈沖,須先使其為1,再使其為0,再為1。 OUT 63H, AL ;用置位/復(fù)位控制字,使PC5為1,即STB=1,數(shù)據(jù)從CPU鎖入鎖存器中,等待打印機(jī)從A口把它取走,于是接著要查詢打印機(jī)是否“空閑”的狀態(tài),也就是判斷BUSY(=PC0)是否為0。,WAIT: IN AL, 62H ;讀端口C的值 TEST AL, 01H ; JNZ WAIT ;判斷PC0是否為0,不為0,打印機(jī)忙,繼續(xù)等待,否則,PC0=0,把在字符送打印機(jī)打印 MOV AL, CL ;CL為任意的一個(gè)要打印的字符 OUT 60H, AL ;打印機(jī)不忙,則把打印字符CL送給端口A MOV AL, 0AH OUT 63H,

29、AL ;用置位復(fù)位控制字使PC5為0 INC AL ;使AL變成0BH OUT 63H, AL ;再使PC5為1,PC5按照題目要求由高電平變成了低電平再變成了高電平,形成了負(fù)脈沖,驅(qū)動(dòng)打印機(jī)接收A口的數(shù)據(jù)CL。,查 詢 狀 態(tài),實(shí)驗(yàn)1:通過8255A控制8個(gè)指示燈輪流顯示,已知8255A的A,B,C,控制端口地址分別為: 8000H,80001H,8002,8003H,要求采用方式0,A口輸出,B口輸入,C口輸出,請(qǐng)編程實(shí)現(xiàn)指示燈輪流顯示的初始化程序及控制程序。,Start:mov al,082h;方式控制字=082H 方式0,PA,PC輸出,PB輸入 mov dx, 8003h;控制端口地

30、址 out dx, al ; 輸出方式控制字到控 制端口 mov al, 80H ;AL=10000000 mov cx, 08H ;8個(gè)燈,所以循環(huán)8次,OutA: mov dx, 8000H;A口地址8000H out dx, al ; 10000000從A口輸出 當(dāng)我們將A口的8位PA7PA0與8個(gè)燈連接,我們可以看到8個(gè)燈呈現(xiàn)10000000的狀態(tài),即PA7亮,其余滅。 shr al, 1; AL右移1位,變成0100000 loop OutA ;返回目標(biāo)標(biāo)號(hào)OUTA,從A口輸出01000000,使PA6亮。 循環(huán)8次,8個(gè)燈輪流亮。,實(shí)驗(yàn)2:用開關(guān)控制8個(gè)指示燈的顯示 分析:B口與開

31、關(guān)相連,A口與指示燈相連,B口輸入,A口輸出,C口仍然設(shè)為輸出。 方式控制字不變 Start:mov al,082h;方式控制字=082H mov dx, 8003h;控制端口地址 out dx, al ; 輸出方式控制字到控 制端口;,mov dx, 8001H; B口地址=8001H in al,dx; 將與B口連接的開關(guān)的數(shù)據(jù)讀入AL 如開關(guān)狀態(tài)為00000001,AL就=00000001 mov dx,8000H;A口地址=8000Hout dx,al ; 將AL的數(shù)據(jù)輸出到A口 A口與指示燈連接,接到00000001的數(shù)據(jù)后,最末一個(gè)燈亮,mode equ 082h ; 方式0,PA

32、,PC輸出,PB輸入PortA equ 8000h ; Port APortB equ 8001h ; Port BPortC equ 8002h ; Port CCAddr equ 8003h ; 控制字地址code segmentassume cs:codestart proc nearStart:mov al,mode mov dx, CAddrout dx, al ; 輸出控制字;實(shí)驗(yàn)1:PortA輸出,mov al, 80Hmov cx, 08HOutA:mov dx, PortAout dx, al ; 輸出PortAmov dx, PortCout dx, alshr al, 1

33、 ; 移位mov ah, 100call delay ; 調(diào)用延時(shí)子程序loop OutA,;實(shí)驗(yàn)2: PortB 輸入 PortA 輸出mov dx, PortBin al, dx ; 讀入PortBmov dx, PortCout dx, almov dx, PortAout dx, al ; 輸出到PortAmov ah, 200 call delayjmp Startendp,delay proc nearpush axmov al, 0push cxmov cx, axloop $pop cxpop axretdelay endpcode endsend start,第八章 定時(shí)/計(jì)

34、數(shù)器,在微型計(jì)算機(jī)系統(tǒng)中,尤其是實(shí)時(shí)計(jì)算機(jī)測控系統(tǒng)中,經(jīng)常需要為微處理器和I/O設(shè)備提供實(shí)時(shí)時(shí)鐘,以實(shí)現(xiàn)定時(shí)中斷、定時(shí)檢測、定時(shí)掃描、定時(shí)顯示等定時(shí)或延時(shí)控制,或者對(duì)外部事件進(jìn)行計(jì)數(shù),并將計(jì)數(shù)結(jié)果提供給微處理器以及提供由微處理編程控制的外部時(shí)序。這樣的器件叫做可編程定時(shí)器/計(jì)數(shù)器。,它的主要用途有: (1) 以均勻分布的時(shí)間間隔中斷分時(shí)操作系統(tǒng),以便對(duì)程序進(jìn)行切換,實(shí)現(xiàn)多任務(wù)功能; (2) 向I/O設(shè)備輸出周期可控的精確的定時(shí)信號(hào),例如:向采樣器輸出周期性采樣信號(hào); (3) 用作可編程波特率發(fā)生器,產(chǎn)生一串方波信號(hào)作為串行通信接口的發(fā)送時(shí)鐘和接收時(shí)鐘; (4) 檢測外部事件發(fā)生的頻率和周期;

35、(5) 統(tǒng)計(jì)外部某過程(如實(shí)驗(yàn)、生產(chǎn)、武器發(fā)射等過程)中某一事件發(fā)生的次數(shù),并將計(jì)數(shù)結(jié)果輸入計(jì)算機(jī); (6) 在定時(shí)或計(jì)數(shù)達(dá)到編程規(guī)定的值以后,向CPU申請(qǐng)中斷。,8253/8254是Intel公司生產(chǎn)的專用定時(shí)器/計(jì)數(shù)器芯片。8254是8253的改進(jìn)型,比8253具有更優(yōu)良的性能,但兩者的基本功能相同,硬件組成、外部引腳和編程特性完全兼容。 在這一章中,以8253A為例介紹它們的工作原理。 8.2.1 內(nèi)部結(jié)構(gòu) Intel 8253A可編程定時(shí)器/計(jì)數(shù)器的內(nèi)部結(jié)構(gòu)如圖8.1所示。它由數(shù)據(jù)總線緩沖器、讀/寫控制邏輯、控制寄存器和3個(gè)計(jì)數(shù)通道(計(jì)數(shù)器0、1、2)組成。,(1)數(shù)據(jù)總線緩沖器 該緩

36、沖器為8位雙向三態(tài)緩沖器,可直接掛在數(shù)據(jù)總線上。當(dāng)8253A被選中時(shí),CPU通過它,一方面可以向控制字寄存器寫入控制字,向計(jì)數(shù)通道寫入計(jì)數(shù)初值;另一方面也可以由CPU通過該緩沖器讀出計(jì)數(shù)器的當(dāng)前計(jì)數(shù)值。 寫控制字時(shí)尋址的是控制寄存器的端口地址 而向計(jì)數(shù)通道寫入計(jì)數(shù)初值和讀出計(jì)數(shù)值則是尋址計(jì)數(shù)器的端口地址。,(2)讀/寫控制邏輯 讀/寫邏輯的功能是接收來自CPU的控制信號(hào),包括讀信號(hào) 、寫信號(hào) 、片選信號(hào) 和芯片內(nèi)部寄存器尋址信號(hào)A0、A1,完成對(duì)8253控制字寄存器的寫操作以及對(duì)各計(jì)數(shù)器的讀/寫操作。片選信號(hào) 接I/O端口譯碼電路的輸出,A0、A1接CPU地址總線低2位進(jìn)行片內(nèi)三個(gè)計(jì)數(shù)通道和控

37、制字寄存器的端口選擇,讀/寫( / )信號(hào)接CPU的( / )。,(3) 控制字寄存器 接收從CPU送來的控制字,并由控制字的最高2位D7、D6位編碼決定控制字寫入哪個(gè)計(jì)數(shù)通道的控制單元,決定哪個(gè)計(jì)數(shù)器的工作方式。 (4) 計(jì)數(shù)器 8253有三個(gè)計(jì)數(shù)通道:計(jì)數(shù)器0、計(jì)數(shù)器1、計(jì)數(shù)器2。每個(gè)計(jì)數(shù)器都有16位的計(jì)數(shù)初值寄存器CR、16位的計(jì)數(shù)執(zhí)行部件(減1計(jì)數(shù)器)CE和16位的輸出鎖存器OL以及控制單元CU。三個(gè)計(jì)數(shù)通道的內(nèi)部結(jié)構(gòu)完全相同。,每個(gè)計(jì)數(shù)器有三根信號(hào)線:其中兩根為輸入線:時(shí)鐘信號(hào)CLK和門控信號(hào)GATE;一根輸出線:OUT信號(hào)。數(shù)器計(jì)數(shù)或停止計(jì)數(shù)。 計(jì)數(shù)器單個(gè)計(jì)數(shù)通道內(nèi)部結(jié)構(gòu)如圖8.2

38、所示。,放大,8253A工作之前需要對(duì)初值寄存器設(shè)置初值,計(jì)數(shù)執(zhí)行部件從初值寄存器獲得初值后,便進(jìn)行減1計(jì)數(shù),此時(shí),輸出鎖存器跟隨計(jì)數(shù)執(zhí)行部件的內(nèi)容而變化,當(dāng)有一個(gè)鎖存命令來到時(shí),鎖存器便鎖定當(dāng)前計(jì)數(shù)值,使之不隨計(jì)數(shù)執(zhí)行單元CE的內(nèi)容變化而變化,從而使CE的內(nèi)容通過輸出鎖存器讀出一個(gè)穩(wěn)定的數(shù)值,直到被讀走后,又跟隨計(jì)數(shù)執(zhí)行部件動(dòng)作。,8.2.2 引腳功能 8253A是一個(gè)采用NMOS工藝制作,單一+5v供電,24個(gè)引腳的雙列直插封裝的接口芯片,其引腳排列如圖8.3所示。,8253A的引腳可以分為兩部分:與CPU的接口引腳和與外設(shè)的接口引腳。 (1) 與CPU的接口引腳 D0D7:三態(tài)雙向數(shù)據(jù)線

39、,和CPU數(shù)據(jù)總線相連,用于傳輸CPU與8253之間的數(shù)據(jù)信息、控制信息和狀態(tài)信息。 :片選信息,輸入、低電平有效。 A1、A0:用來對(duì)8253A片內(nèi)三個(gè)計(jì)數(shù)通道和控制字寄存器進(jìn)行尋址。 :讀信號(hào),由CPU讀出計(jì)數(shù)值,低電平有效。 :寫信號(hào),由CPU寫入計(jì)數(shù)器,低電平有效。 表8.1為8253A讀/寫操作邏輯,信號(hào)與功能的對(duì)應(yīng)關(guān)系。,在表8.1中A1A0=11時(shí),第一次寫入8253A的肯定是方式控制字,此后寫入該地址的則是命令字。 除了表中的7組信號(hào)組合外,出現(xiàn)其它信號(hào)組合時(shí),數(shù)據(jù)總線呈高阻狀態(tài),CPU對(duì)8253A不執(zhí)行任何操作。 (2) 與外設(shè)的接口引腳 CLK:時(shí)鐘輸入引腳,用于輸入定時(shí)脈

40、沖或計(jì)數(shù)脈沖信號(hào)。計(jì)數(shù)器對(duì)這個(gè)引腳輸入的脈沖進(jìn)行計(jì)數(shù)。 GATE:門控輸入端。用于外部控制計(jì)數(shù)器的啟動(dòng)計(jì)數(shù)和停止計(jì)數(shù)的操作。兩個(gè)或兩個(gè)以上計(jì)數(shù)器連用時(shí),可以用此信號(hào)來同步,也可用于與外部某信號(hào)的同步。,OUT:計(jì)數(shù)輸出端。不管8253以何種方式工作,當(dāng)計(jì)數(shù)器計(jì)數(shù)到0時(shí),在OUT引腳上必定有輸出。在不同模式下,可輸出不同形式的信號(hào)。 8.2.3 8253A的工作方式 8253A定時(shí)計(jì)數(shù)器的每一個(gè)計(jì)數(shù)通道都有6種可編程選擇的工作方式。每一種工作方式不僅與計(jì)數(shù)初值有關(guān),而且受時(shí)鐘輸入信號(hào)CLK和門控GATE信號(hào)的控制,CLK信號(hào)確定計(jì)數(shù)器減1計(jì)數(shù)的速率,GATE信號(hào)允許/禁止計(jì)數(shù)器工作或決定計(jì)數(shù)器的

41、啟動(dòng)。下面分別討論這些工作方式,并結(jié)合波形圖說明各種方式的操作過程,1. 方式0計(jì)數(shù)結(jié)束產(chǎn)生中斷方式,(3) 新的計(jì)數(shù)初值對(duì)計(jì)數(shù)過程的影響 方式0是寫一次計(jì)數(shù)值,計(jì)一遍數(shù),計(jì)數(shù)器不會(huì)自動(dòng)恢復(fù)初值重新開始計(jì)數(shù),而且在計(jì)數(shù)過程中改變計(jì)數(shù)值,則在輸入新值后的下一個(gè)時(shí)鐘下降沿按新的計(jì)數(shù)初值計(jì)數(shù)。,2. 方式1可重觸發(fā)的單穩(wěn)態(tài)觸發(fā)器,3. 方式2分頻器,4. 方式3方波發(fā)生器 方式3 被稱為方波發(fā)生器方式,其工作波形如圖8.7所示。,5. 方式4軟件觸發(fā)選通 方式4被稱為軟件觸發(fā)選通方式,其工作波形如圖8.8所示,6. 方式5硬件觸發(fā)選通 方式5又稱硬件觸發(fā)選通方式,其工作波形如圖8.9所示。,7. 8

42、253A六種工作方式的比較 由于8253A的工作方式較多,加上要考慮門控信號(hào)的作用和改變計(jì)數(shù)初值對(duì)計(jì)數(shù)過程的影響,使得情況比較復(fù)雜,初學(xué)者難于記憶。為此我們總結(jié)出六種工作方式的共同特點(diǎn),同時(shí)又從四個(gè)方面對(duì)這六種工作方式做一比較,以便讀者更好地掌握它們之間的聯(lián)系和區(qū)別(見表8.2表8.5),8253A每個(gè)計(jì)數(shù)器都有6種工作方式。這6種工作方式有以下共同特點(diǎn): (1) 控制字寫入計(jì)數(shù)器控制字寄存器時(shí),所有的控制邏輯電路均被復(fù)位,輸出端OUT進(jìn)入初始電平。該初值電平與工作方式有關(guān)。在方式0時(shí),OUT的初始電平為低電平;處于其他方式時(shí),OUT的初始電平為高電平。 (2) 計(jì)數(shù)初值被寫入8253A相應(yīng)計(jì)

43、數(shù)器的初值寄存器CR以后,要用一個(gè)時(shí)鐘脈沖的上升沿和下降沿將初值送入計(jì)數(shù)執(zhí)行單元。計(jì)數(shù)執(zhí)行單元從下一個(gè)時(shí)鐘進(jìn)行計(jì)數(shù)。 (3) 門控信號(hào)GATE控制計(jì)數(shù)器的計(jì)數(shù)過程。 (4) 在時(shí)鐘脈沖下降沿計(jì)數(shù)器作減1計(jì)數(shù)。,10000H是計(jì)數(shù)器的最大計(jì)數(shù)初值。二進(jìn)制計(jì)數(shù)時(shí)該初值相當(dāng)于216,十進(jìn)制(BCD碼)計(jì)數(shù)時(shí)相當(dāng)于104。,8.2.4 8253A的控制字及編程命令 1. 8253A的控制字格式 為了讓8253A定時(shí)器/計(jì)數(shù)器能正確地工作,必須先對(duì)它設(shè)置控制字,以確定它工作于哪種工作方式,是二進(jìn)制計(jì)數(shù),還是十進(jìn)制計(jì)數(shù),寫入初值的格式以及該控制字寫入哪一個(gè)計(jì)數(shù)通道,控制字的具體格式如圖8.10所示。,(1

44、) 計(jì)數(shù)器選擇字段 前面已經(jīng)說明,3個(gè)計(jì)數(shù)器共用一個(gè)控制字寄存器,即A1A0=11時(shí)是訪問控制字寄存器,但沒有指明是哪一個(gè)計(jì)數(shù)器中的控制字。為了進(jìn)一步指明要寫入的控制字屬于哪個(gè)計(jì)數(shù)器,在控制字的最高兩位(D7D6)設(shè)置了SC1、SC0位。用這兩位的不同組合來指明該控制字要寫入哪個(gè)計(jì)數(shù)器中。具體說,就是: SC1、SC0=00,選擇計(jì)數(shù)器0; SC1、SC0=01,選擇計(jì)數(shù)器1; SC1、SC0=10,選擇計(jì)數(shù)器2。,(2) 讀/寫指示字段 RW1、RW0 (控制字的D5D4位)為讀/寫指示位。指明對(duì)計(jì)數(shù)初值寄存器CR寫和對(duì)輸出鎖存器OL讀的規(guī)則,也就是: RW1、RW0=00,表示該控制字節(jié)不

45、再是設(shè)置操作方式,而是使當(dāng)前計(jì)數(shù)器值在輸出鎖存器OL中鎖定,不隨計(jì)數(shù)器值的改變而改變,供CPU讀取;,RW1、RW0=01,表示只讀取輸出鎖存器OL的低位字節(jié)或只寫計(jì)數(shù)器初值寄存器CR的低位字節(jié)(CR的高位字節(jié)自動(dòng)清0)。 RW1、RW0=10,表示只讀取輸出鎖存器OL的高位字節(jié)或只寫計(jì)數(shù)初值寄存器CR的高位字節(jié)(CR的低位字節(jié)自動(dòng)清0)。 RW1、RW0=11,表示先讀取輸出鎖存器OL低字節(jié)或?qū)懭氤踔导拇嫫鰿R的低位字節(jié),后讀取輸出鎖存器OL高位字節(jié)或?qū)懭胗?jì)數(shù)初值寄存器CR的高位字節(jié)。 請(qǐng)注意,這兩位的設(shè)置一定要根據(jù)設(shè)置的初值或讀取的輸出鎖存器的內(nèi)容來確定。,(3)工作方式選擇字段 M2、M

46、1、M0(控制字的D3、D2、D1位)的取值組合用來確定8253A的六種工作方式,即方式0方式5。 M2、M1、M0的取值組合與8253A六種工作方式的對(duì)應(yīng)關(guān)系是: M 2M1M0=000, 方式0; M 2M1M0=001, 方式1; M2M1M0=10, 方式2; M2M1M0=11, 方式3; M2M1M0=100, 方式4; M2M1M0=101, 方式5;,(4) 計(jì)數(shù)值格式選擇字段 BCD位(控制字的最低位D0位)用來選擇計(jì)數(shù)值格式。當(dāng)BCD=1,計(jì)數(shù)值為十進(jìn)制(BCD碼)格式;當(dāng)BCD=0,計(jì)數(shù)值為二進(jìn)制格式。 2. 8253A的編程命令 8253A編程時(shí),必須嚴(yán)格遵守如下兩條原

47、則: (1)對(duì)計(jì)數(shù)器寫入初值之前,必須先將控制字寫入相應(yīng)計(jì)數(shù)器的控制字寄存器中; (2)設(shè)置計(jì)數(shù)初值時(shí),要符合控制字中RW1、RW0的格式規(guī)定,即只寫低字節(jié),還是只寫高字節(jié)或是先寫低字節(jié)再寫高字節(jié)。控制字中一旦作了規(guī)定,具體設(shè)置初值時(shí),就要與之一致。,(1)寫入命令 8253A有3個(gè)寫入命令:設(shè)置控制字命令、對(duì)輸出鎖存器鎖存的鎖存命令和設(shè)置計(jì)數(shù)初值命令。 設(shè)置控制字用來選擇計(jì)數(shù)通道,寫入計(jì)數(shù)初值的規(guī)則,設(shè)定工作方式和計(jì)數(shù)值格式。 設(shè)置計(jì)數(shù)初值命令用來將8位或16位計(jì)數(shù)初值寫入計(jì)數(shù)初值寄存器CR中,是8位還是16位計(jì)數(shù)初值,由具體的實(shí)際問題決定。如果計(jì)數(shù)初值為16位,則要用兩條輸出指令完成初值設(shè)

48、置,即先寫低字節(jié),再寫高字節(jié)。,鎖存器命令是與讀出命令一起使用的。在讀某計(jì)數(shù)通道的當(dāng)前計(jì)數(shù)值之前,必須先用鎖存命令將該計(jì)數(shù)通道的當(dāng)前計(jì)數(shù)值在輸出鎖存器中鎖定,以保證在讀出時(shí),輸出鎖存器中的計(jì)數(shù)值不隨計(jì)數(shù)單元的計(jì)數(shù)值變化。這樣就能讀到一個(gè)確定的穩(wěn)定的計(jì)數(shù)值。,(2) 讀出命令 8253A有兩種讀計(jì)數(shù)值的方法: 1) 讀之前先停止計(jì)數(shù) 這種方法在讀之前,先用GATE信號(hào)停止計(jì)數(shù)器工作,然后用IN指令讀取計(jì)數(shù)值。具體讀取格式取決于控制字的D5D4位。若D5D411,則同一端口地址要讀兩次,先讀出的是低字節(jié),后讀出的是高字節(jié);D5D4=10時(shí),則只讀一次。讀出的是高位字節(jié);D5D4=01,只讀一次,讀

49、出的是低位字節(jié)。,2) 讀之前先送計(jì)數(shù)鎖存命令 這種方法是在計(jì)數(shù)過程中讀,也稱“飛讀”,讀操作并不影響當(dāng)時(shí)正在進(jìn)行的計(jì)數(shù)。具體分兩部分進(jìn)行:首先,用OUT指令寫入鎖存命令字到控制端口,即令控制字的D5D4=00,其他位按要求設(shè)定。這樣就將計(jì)數(shù)器當(dāng)前計(jì)數(shù)值鎖存到某計(jì)數(shù)通道的輸出鎖存器中。然后用IN指令讀取被鎖存的值,讀取格式取決于控制字的D5D4位的設(shè)置,具體情況同上。 因此3個(gè)計(jì)數(shù)器的鎖存命令如下: 計(jì)數(shù)器0:00000000B,00H 計(jì)數(shù)器1:01000000B,40H 計(jì)數(shù)器2:10000000B,80H,設(shè)計(jì)數(shù)器0、1、2和控制口的端口地址分別為EOH、E1H、E2H和E3H,并假定現(xiàn)

50、在要讀取計(jì)數(shù)器2的計(jì)數(shù)值,則要執(zhí)行如下程序段: MOV AL,80H ;計(jì)數(shù)器2鎖存命令 OUT 0E3H,AL ;寫入通道0控制寄存器 IN AL,0E2H ;讀低字節(jié) MOV BL,AL ;低字節(jié)送BL IN AL,OE2H ;讀高字節(jié) MOV BH,AL ;高字節(jié)送BH,8.2.5 8253A的初始化編程 下列情況需要對(duì)8253A編程: (1)工作之前寫入控制字,以確定待使用的計(jì)數(shù)器通道的工作方式,讀/寫格式和計(jì)數(shù)值格式。 (2)工作之前寫入待使用的計(jì)數(shù)器通道的計(jì)數(shù)初值; (3)工作過程中改變某計(jì)數(shù)通道的計(jì)數(shù)初值; (4)工作過程中寫入鎖存命令字,以便以輸入指令讀出某一時(shí)刻某一通道的當(dāng)前

51、計(jì)數(shù)值。,前兩項(xiàng)叫初始化編程,后兩項(xiàng)為工作編程。本節(jié)著重介紹初始化編程。 初始化編程的順序是:對(duì)某一指定計(jì)數(shù)器通道。先寫入控制字,再寫入計(jì)數(shù)初值。寫計(jì)數(shù)初值時(shí),必須按控制字的讀/寫格式指示位RW1、RW0規(guī)定的格式進(jìn)行。 要注意的是:無論哪個(gè)計(jì)數(shù)通道的控制字都必須寫入同一個(gè)端口(A1A0=11對(duì)應(yīng)的端口),即控制端口,而計(jì)數(shù)初值則要寫入指定計(jì)數(shù)通道對(duì)應(yīng)的端口(A1A0=00、01或10對(duì)應(yīng)的端口)。,下面舉例說明怎樣對(duì)8253A進(jìn)行初始化編程。 首先設(shè)在8086系統(tǒng)中,8253A的控制口地址為36H,三個(gè)計(jì)數(shù)通道的端口地址為30H、32H和34H。 【例8.1】假定8253A的計(jì)數(shù)器2工作在方

52、式0,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為4,它的初始化程序段如下: MOV AL,90H ;設(shè)置控制字 OUT 36H,AL ;寫入計(jì)數(shù)器2的控制單元CU MOV AL,4 ;設(shè)置計(jì)數(shù)初值 OUT 34H,AL ;初值寫入計(jì)數(shù)器2的CR,【例8.2】設(shè)定計(jì)數(shù)器2工作于方式1,計(jì)數(shù)初值為3,按二進(jìn)制計(jì)數(shù),則初始化程序段為: MOV AL,92H ;設(shè)置計(jì)數(shù)器2的控制字 OUT 36H,AL MOV AL,3 ;設(shè)置計(jì)數(shù)初值 OUT 34H,AL 【例8.3】設(shè)定計(jì)數(shù)器1工作在方式2,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為4,它的初始化程序段如下: MOV AL,54H ;設(shè)置計(jì)數(shù)器1的控制字 OUT 36H,AL MO

53、V AL,4 ;設(shè)置計(jì)數(shù)初值 OUT 32H,AL 執(zhí)行該程序段和計(jì)數(shù)過程時(shí),8253A的計(jì)數(shù)器1各引腳的波形如圖8.6所示。,【例8.4】假設(shè)8253A計(jì)數(shù)器0工作在方式3,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為4,它的初始化程序段如下: MOV AL,16H ;設(shè)置計(jì)數(shù)器0的控制字 OUT 36H,AL MOV AL,4 ;設(shè)置計(jì)數(shù)初值 OUT 30H,AL 執(zhí)行該程序段和計(jì)數(shù)過程時(shí),8253A計(jì)數(shù)器0各引腳的波形如圖8.7所示。 【例8.5】假設(shè)8253A的計(jì)數(shù)器2工作于方式4,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為4。它的初始化程序段如下: MOV AL,98H ;設(shè)置計(jì)數(shù)器2的控制字 OUT 36H,AL MO

54、V AL,4 ;設(shè)置計(jì)數(shù)初值 OUT 34H,AL 執(zhí)行該程序段和計(jì)數(shù)過程時(shí),8253A計(jì)數(shù)器2各引腳的波形如圖8.8所示。,【例8.6】假設(shè)8253A的計(jì)數(shù)器1工作在方式5,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為4。它的初始化程序如下: MOV AL,5AH ;設(shè)置計(jì)數(shù)器1控制字 OUT 36H,AL MOV AL,4 ;設(shè)置計(jì)數(shù)初值 OUT 32H,AL 執(zhí)行該程序段和計(jì)數(shù)過程時(shí),8253A計(jì)數(shù)器各引腳的波形如圖8.9所示。,【例8.7】假設(shè)8253A的計(jì)數(shù)器1工作在方式3,按二進(jìn)制計(jì)數(shù),計(jì)數(shù)初值為7265H,它的初始化程序段如下: MOV AL,76H ;設(shè)置控制字 OUT 36H,AL ;控制字寫入

55、計(jì)數(shù)器1的控制單元 MOV AL,65H ;設(shè)置計(jì)數(shù)器低字節(jié) OUT 32H,AL ;低字節(jié)寫入計(jì)數(shù)器1的CR MOV AL,72H ;設(shè)置計(jì)數(shù)器高字節(jié) OUT 32H,AL ;高字節(jié)寫入計(jì)數(shù)器1的CR,【例8.8】假設(shè)8253A的計(jì)數(shù)器2工作在方式2,按BCD碼計(jì)數(shù),計(jì)數(shù)初值為2000,它的初始化程序如下: MOV AL,0A5H ;設(shè)置控制字 OUT 36H,AL MOV AL,20H ;設(shè)置計(jì)數(shù)初值2000 OUT 34H,AL 該例中,計(jì)數(shù)初值是2000,而程序中對(duì)初值只寫一次,并且初值為20H。是何緣故?留給讀者自己分析。,【例8.9】IBM/PC微機(jī)的某擴(kuò)展板上使用一片8253,其端口地址為400H403H,要求從定時(shí)器0的輸出端OUT0得到250HZ的方波信號(hào),從定時(shí)器1的輸出端OUT1得到10HZ的連續(xù)單拍負(fù)脈沖信號(hào)。已知系統(tǒng)提供的計(jì)數(shù)脈沖頻率為125KHZ,硬件連接如圖8.11所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論