微機(jī)課程設(shè)計(jì)zuixin教材_第1頁
微機(jī)課程設(shè)計(jì)zuixin教材_第2頁
微機(jī)課程設(shè)計(jì)zuixin教材_第3頁
微機(jī)課程設(shè)計(jì)zuixin教材_第4頁
微機(jī)課程設(shè)計(jì)zuixin教材_第5頁
已閱讀5頁,還剩20頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)課程名稱微機(jī)課程設(shè)計(jì)題目名稱計(jì) 時(shí) 器(計(jì)數(shù)3)學(xué)生學(xué)院自動(dòng)化學(xué)院專業(yè)班級(jí) 13 電氣( 2)班學(xué) 號(hào) 3113001318學(xué)生姓名彭浩指導(dǎo)老師廉迎戰(zhàn)2015 年 10 月 23 日一、概述1. 課程設(shè)計(jì)的目的1) 鞏固和掌握對(duì)“微機(jī)原理”課程內(nèi)容的認(rèn)識(shí)和理解,提高應(yīng)用水平。2) 掌握匯編語言程序的編制方法。 8253 編程。2. 課程設(shè)計(jì)的要求1) 系統(tǒng)硬件設(shè)計(jì)設(shè)計(jì) 8053 定時(shí)器計(jì)時(shí), 8253 地址為 40H41H42H43H ,控制電路如圖:2) 軟件編程內(nèi)容顯示器工作于查詢方式,鍵盤工作于中斷方式。16 個(gè)按鍵定義的鍵值為: 0 F,按任意鍵在顯示器上顯示對(duì)應(yīng)鍵值。設(shè)定 8

2、253 的通道 2 工作于方式 0,用于事件計(jì)數(shù),當(dāng)計(jì)數(shù)值為 8,按鍵 9 次后, 發(fā)出中 斷請(qǐng)求信號(hào)并顯示“ EEEEEE ”。顯示滿 30 秒時(shí)數(shù)字清除。8253只寫高 8位計(jì)數(shù)值時(shí), 8253的計(jì)數(shù)是 8 位計(jì)數(shù),還是 16位計(jì)數(shù)?A、軟件實(shí)現(xiàn):計(jì)數(shù)結(jié)束后,讀取計(jì)數(shù)值,看是0 還是 0FFH?B、軟件實(shí)現(xiàn):定時(shí)結(jié)束后,讀取定時(shí)數(shù)值,看是0 還是 0FFH?二、設(shè)計(jì)思路微型計(jì)算機(jī)由微處理器, 存儲(chǔ)器, 接口電路以及連接在這些部件上的總線組成。 微處理 器,存儲(chǔ)器和所有 IO 設(shè)備之間的信息交換都通過總線進(jìn)行。總線包括地址總線,數(shù)據(jù)總線 和控制總線,他們始于 CPU 或終于 CPU,現(xiàn)代微機(jī)

3、大部分都是這種以總線為中心的結(jié)構(gòu)。 8086CPU 的地址 數(shù)據(jù)總線 AD15-AD0 和地址 狀態(tài)總線 A16/S3-A19/S6 是復(fù)用的, 必須通過 地址鎖存器把地址總線和數(shù)據(jù)總線分離。 控制總線直接和 8086CPU 相連, 這樣 8086CPU 就 工作在最小工作方式。微型計(jì)算機(jī)及外圍設(shè)備組成微型計(jì)算機(jī)系統(tǒng)的硬件, 外圍設(shè)備必須通過接口電路才能與 系統(tǒng)總線相連,因此構(gòu)建一個(gè)基于 8086CPU 的簡單微型計(jì)算機(jī)系統(tǒng)就是工作于最小工作方 式的 8086CPU 系統(tǒng)總線上掛上一定規(guī)模的存儲(chǔ)器和接口電路,然后在把合適的外圍設(shè)備連 接到接口電路上。一個(gè)基于 8088CPU 的簡單微型計(jì)算機(jī)系

4、統(tǒng)框圖如圖所示。圖中鍵盤與顯 示器作為外圍設(shè)備通過接口芯片與系統(tǒng)總線相連。本次課程設(shè)計(jì)使用軟件是 wmd86 硬件是 TP-PITE 5.4 板,通過 8255 可編程并行 I/O 接口芯片可以對(duì) 4X4 鍵盤進(jìn)行掃描,從而可以確定哪一個(gè)鍵被按下,同時(shí)又可對(duì)七段數(shù)碼 管的輸出顯示進(jìn)行控制, 從而可以做到按下某個(gè)鍵后在數(shù)碼管上顯示出自己需要顯示的相應(yīng) 的字符。8254 可編程定時(shí)和計(jì)數(shù)芯片有三個(gè)計(jì)數(shù)器,利用其中任何一個(gè)計(jì)數(shù)器設(shè)置其工作方式 為 0,其中的 out 端口接到 8259A 中斷控制器芯片的中斷請(qǐng)求端口上, CLK 接到板子的 KK1+ 接口上,通過人工觸發(fā)的方式給計(jì)時(shí)器送計(jì)時(shí)脈沖,將

5、計(jì)數(shù)次數(shù) 8 送進(jìn)計(jì)數(shù)器,那么按鍵 KK1+ 九次后計(jì)數(shù)器計(jì)數(shù)終止計(jì)數(shù), 同時(shí) out 端口送出一個(gè)高電平, 這個(gè)就是中斷請(qǐng)求信號(hào), 由此進(jìn)入中斷,中斷服務(wù)程序里面利用 8255 芯片對(duì)七段數(shù)碼管進(jìn)行輸出顯示控制,讓數(shù)碼 管顯示“ EEEEEE”,最后再在顯示程序后設(shè)定一個(gè)30s 的延時(shí)子程序,由此實(shí)現(xiàn)了“設(shè)定8253 的通道 2工作于方式 0,用于事件計(jì)數(shù),當(dāng)計(jì)數(shù)值為 8,按鍵 9 次后,發(fā)出中斷請(qǐng)求信 號(hào)并顯示“ EEEEEE ”。顯示滿 30 秒時(shí)數(shù)字清除”。三、系統(tǒng)詳細(xì)原理1. 硬件電路系統(tǒng)設(shè)計(jì)1) 確定組成電路所用元器件本次課程設(shè)計(jì)使用實(shí)驗(yàn)室提供的元器件,分別為:8086 微處理器可

6、編程接口芯片 8255A可編程定時(shí)器 /計(jì)數(shù)器 8253可編程中斷控制器 8259A74LS07 芯片鍵盤及數(shù)碼管顯示單元2) 8086 CPU的引腳信號(hào)和功能a. 引言如下圖所示,是 8088/8086CPU 的外部結(jié)構(gòu),即引腳信號(hào)圖。圖 2-5 8086/8088CPU 引腳功能8088/8086CPU 芯片都是雙列直插式集成電路芯片,都有 40 個(gè)引腳,其中 32 個(gè)引腳在 兩種工作模式下的名稱和功能是相同的, 還有 8 個(gè)引腳在不同的工作模式下, 具有不同的名 稱和功能。下面,我們分別來介紹這些引腳的輸入/輸出信號(hào)及其功能。b. 兩種模式下,名稱和功能相同的 32 個(gè)引腳 VCC、GN

7、D:電源、接地引腳 (3),8088/8086CPU 采用單一的 +5V電源, 但有兩個(gè)接地引腳。 AD15AD0(Address Data Bus ): 地址/ 數(shù)據(jù)復(fù)用信號(hào)輸入 /輸出引腳 (16), 分時(shí)輸出低16 位地址信號(hào)及進(jìn)行數(shù)據(jù)信號(hào)的輸入 /輸出。 A19/s6A15/s3(Address Status Bus) :地址 /狀態(tài)復(fù)用信號(hào)輸出引腳 (4), 分時(shí)輸出地 址的高 4位及狀態(tài)信息,其中 s6 為 0用以指示 8086/8088CPU當(dāng)前與總線連通; s5 為 1 表 明 8086/8088CPU可以響應(yīng)可屏蔽中斷; s4、s3 共有四個(gè)組態(tài),用以指明當(dāng)前使用的段寄存 器

8、, 00ES,01 SS,10CS,11DS。 NMI(Non-Maskable Interrupt) 、 INTR( Interrupt Request ) : 中斷請(qǐng)求信號(hào)輸入引腳(2) ,引入中斷源向 CPU提出的中斷請(qǐng)求信號(hào),高電平有效,前者為非屏蔽中斷請(qǐng)求,后者 為可屏蔽中斷請(qǐng)求信號(hào)。 RD ( Read) :讀控制輸出信號(hào)引腳 (1) ,低電平有效,用以指明要執(zhí)行一個(gè)對(duì)內(nèi)存單 元或 I/O 端口的讀操作,具體是讀內(nèi)存單元,還是讀 I/O 端口,取決于 M /IO 控制信號(hào)。 CLK/(Clock ):時(shí)鐘信號(hào)輸入引腳 (1) ,時(shí)鐘信號(hào)的方波信號(hào),占空比約為33%,即1/3 周期為

9、高電平, 2/3 周期為底電平, 8088/8088 的時(shí)鐘頻率(又稱為主頻)為4.77MHz,即從該引腳輸入的時(shí)鐘信號(hào)的頻率為4.77MHz。 Reset(Reset): 復(fù)位信號(hào)輸入引腳 (1) ,高電平有效。 8088/8086CPU 要求復(fù)位信號(hào)至少 維持 4 個(gè)時(shí)鐘周期才能起到復(fù)位的效果,復(fù)位信號(hào)輸入之后,CPU結(jié)束當(dāng)前操作,并對(duì)處理 器的標(biāo)志寄存器、 IP 、DS、SS、ES 寄存器及指令隊(duì)列進(jìn)行清零操作, 而將 CS設(shè)置為 0FFFFH。 READ(Y Ready) : “準(zhǔn)備好”狀態(tài)信號(hào)輸入引腳 (1) ,高電平有效。 TEST (Test): 測(cè)試信號(hào)輸入引腳 (1) ,低電

10、平有效 ,TEST 信號(hào)與 WAIT 指令結(jié)合起來使 用,CPU執(zhí)行 WAIT指令后,處于等待狀態(tài), 當(dāng) TEST引腳輸入低電平時(shí), 系統(tǒng)脫離等待狀態(tài), 繼續(xù)執(zhí)行被暫停執(zhí)行的指令。 MN/MX( Minimum/Maximum Model Control )最小 / 最大模式設(shè)置信號(hào)輸入引腳 (1) ,該輸 入引腳電平的高、低決定了 CPU工作在最小模式還是最大模式,當(dāng)該引腳接+5V時(shí), CPU工作于最小模式下,當(dāng)該引腳接地時(shí), CPU工作于最大模式下。c. 最小模式下的 24-31 引腳當(dāng) 8088/8086CPU 的 MN /MX 引腳固定接 +5V 時(shí), CPU處于最小模式下,這時(shí)候剩余

11、的24 31共 8個(gè)引腳的名稱及功能如下: INTA ( Interrupt Acknowledge )中斷響應(yīng)信號(hào)輸出引腳低電平有效, 該引腳是 CPU響應(yīng)中斷請(qǐng)求后, 向中斷源發(fā)出的認(rèn)可信號(hào), 用以通知中斷 源,以便提供中斷類型碼,該信號(hào)為兩個(gè)連續(xù)的負(fù)脈沖。 ALE( Address Lock Enable ) : 地址鎖存允許輸出信號(hào)引腳高電平有效, CPU通過該引腳向地址鎖存器 8282/8283 發(fā)出地址鎖存允許信號(hào),把當(dāng)前 地址 /數(shù)據(jù)復(fù)用總線上輸出的是地址信息,鎖存到地址鎖存器8282/8283 中去。注意: ALE信號(hào)不能被浮空。 DEN (Data Enable ): 數(shù)據(jù)允

12、許輸出信號(hào)引腳低電平有效,為總線收發(fā)器 8286 提供一個(gè)控制信號(hào),表示 CPU當(dāng)前準(zhǔn)備發(fā)送或接收一 項(xiàng)數(shù)據(jù)。 DT / R (Data Transmit/Receive ): 數(shù)據(jù)收發(fā)控制信號(hào)輸出引腳CPU通過該引腳發(fā)出控制數(shù)據(jù)傳送方向的控制信號(hào),在使用8286/8287 作為數(shù)據(jù)總 線收發(fā)器時(shí), DT / R 信號(hào)用以控制數(shù)據(jù)傳送的方向,當(dāng)該信號(hào)為高電平時(shí),表示數(shù)據(jù)由CPU經(jīng)總線收發(fā)器 8286/8287 輸出,否則,數(shù)據(jù)傳送方向相反。 IO/ M ( Memory/Input &Output ) : 存儲(chǔ)器 /I/O 端口選擇信號(hào)輸出引腳這是 CPU區(qū)分進(jìn)行存儲(chǔ)器訪問還是 I/O 訪問的

13、輸出控制信號(hào)。當(dāng)該引腳輸出高電平時(shí), 表明 CPU要進(jìn)行 I/O 端口的讀寫操作, 低位地址總線上出現(xiàn)的是 I/O 端口的地址; 當(dāng)該引腳 輸出低電平時(shí), 表明 CPU要進(jìn)行存儲(chǔ)器的讀寫操作, 地址總線上出現(xiàn)的是訪問存儲(chǔ)器的地址。 WR(Write): 寫控制信號(hào)輸出引腳低電平有效,與 IO/M 配合實(shí)現(xiàn)對(duì)存儲(chǔ)單元、 I/O 端口所進(jìn)行的寫操作控制。 HOLD(Hold Request): 總線保持請(qǐng)求信號(hào)輸入引腳 高電平有效。這是系統(tǒng)中的其它總線部件向CPU發(fā)來的總線請(qǐng)求信號(hào)輸入引腳 。 HLDA(Hold Acknowledge ) : 總線保持響應(yīng)信號(hào)輸出引腳高電平有效,表示 CPU認(rèn)可

14、其他總線部件提出的總線占用請(qǐng)求,準(zhǔn)備讓出總線控制權(quán)。3) 8255A 芯片基本資料a. 8255A 內(nèi)部結(jié)構(gòu)如下圖所示 8255A 有 3 個(gè) 8 位數(shù)據(jù)接口,即接口 A、接口 B 和接口 C。使用者可以用軟件使它們分別作為輸入端口或輸出端口。1)端口 A:一個(gè) 8 位數(shù)據(jù)輸入鎖存器和一個(gè) 數(shù)據(jù)輸入均被鎖存。2)端口 B :一個(gè) 8 位數(shù)據(jù)輸入緩沖器和一個(gè) 數(shù)據(jù)輸入時(shí)不被鎖存,數(shù)據(jù)輸出時(shí)被鎖存。3)端口 C :一個(gè) 8 位數(shù)據(jù)輸入緩沖器和一個(gè)8 位數(shù)據(jù)輸出鎖存器 /緩沖器,用來傳送數(shù)據(jù)。8 位數(shù)據(jù)輸出鎖存器 /緩沖器, 用來傳送數(shù)據(jù)。8 位數(shù)據(jù)輸出鎖存器 /緩沖器,用作輸入端口時(shí),數(shù)據(jù)不被鎖存

15、;而作為輸出端口是,數(shù)據(jù)被鎖存。 A 組控制和 B 組控制這兩組控制電路一方面接收芯片內(nèi)部總線上的控制字,一方面接收來自讀 / 寫控制邏輯 電路的讀 /寫命令,從而解決端口的工作方式和讀 / 寫操作。其中, A 組控制電路控制端口 A 和端口 C高 4 位( PC7-PC4)的工作方式和讀 /寫操作:而 B組控制電路控制端口 B和端口 C 低 4 位( PC3-PC0)工作方式和讀寫操作。 讀/ 寫控制邏輯電路讀/ 寫控制邏輯電路負(fù)責(zé)管理 8255A 的數(shù)據(jù)傳輸過程。它接收來自系統(tǒng)總線的信號(hào)A1,A0和控制總線信號(hào) RESET、WR、RD,將這些信號(hào)組合后,得到 A 組控制部件和 B組控制部件

16、 的控制命令,并將命令發(fā)給這兩個(gè)部件,完成對(duì)數(shù)據(jù)、狀態(tài)信息的傳輸。 數(shù)據(jù)總線緩沖器這是個(gè)雙向三態(tài) 8 位數(shù)據(jù)緩沖器, 8255A 通過它與系統(tǒng)數(shù)據(jù)總線相連。輸入數(shù)據(jù)、輸 出數(shù)據(jù)、 CPU發(fā)給 8255A 的控制字都是通過這個(gè)緩沖器傳遞的。b. 8255 的引腳信號(hào) 與外部設(shè)備端相連的引腳PA7-PA0:A 端口的輸入 /輸出引腳。PB7-PB0 :B 端口的輸入 /輸出引腳。PC7-PC0:C 端口的輸入 /輸出引腳。 與 CPU相連的引腳RESET :復(fù)位信號(hào),低電平有效。當(dāng) RESET 信號(hào)來到時(shí),所 有內(nèi)部寄存器都被清 0,同時(shí) 3 個(gè)端口被自動(dòng)設(shè)為輸入端口。 D7-D0 : 8255A

17、 的數(shù)據(jù)線,和系統(tǒng)數(shù)據(jù)總線相連。 CS:芯片選擇信號(hào)。只有當(dāng) CS 有效時(shí),讀出信號(hào) RD 和寫入 信號(hào) WR 才對(duì) 8255A 有效。RD:讀出信號(hào)。 CPU 通過 IN 指令使 RD 有效, 將數(shù)據(jù)或狀態(tài) 信息從 8255A 中讀到 CPU 。WR :寫入信號(hào)。 CPU 通過 OUT 指令使 WR 有效,將數(shù)據(jù)或 狀態(tài)信息從 CPU 中寫道 8255A.A1 , A0 :端口選擇信號(hào)。 8255A 內(nèi)部有 3個(gè)數(shù)據(jù)端口和 1 個(gè) 控制端口, 共 4 個(gè)端口。 規(guī)定 A1 ,A0 為 00、01、10 和 11 時(shí), 分別選中端口 A、端口 B 、端口 C 和控制端口。c. 8255 的控制

18、字 方式選擇控制字(1)方式選擇控制字把 A、B、C三個(gè)端口分為 A、B 兩組來設(shè)定工作方式。 A 組包括端口 A 和端口 C 的上半部, B 組包括端口 B 和端口 C 的下半部。( 2)端口 A 可工作于 3 種方式中的任何一種;端口 B 只能工作于方式 0 和方式 1;而端口C 除用作輸入、輸出口(方式 0)外,通常用來配合端口 A 和端口 B 提供聯(lián)絡(luò)控制信號(hào)和 狀態(tài)信號(hào)。(3)歸在同一組的兩個(gè)端口可分別作為輸入端口或輸出端口,不要求同為輸入或輸出。 端口 C按位置位 / 復(fù)位控制字(1)端口 C 按位置位 /復(fù)位控制字盡管是對(duì)端口 C 進(jìn)行操作的,但此控制字必須寫入控制 口,而不寫入

19、端口 C 。(2)一個(gè)控制字只能完成端口 C 中某一位置的置 1 或置 0,要對(duì)多位置 1 或置 0,必須使 用多個(gè)控制字。d. 實(shí)驗(yàn)中 8253 對(duì)應(yīng)端口地址如下表所示:實(shí)驗(yàn)系統(tǒng)中 8255A 對(duì)應(yīng)的端口地址表信號(hào)線A口B口C口控制寄存器IOY00600H0602H0604H0606HIOY10640H0642H0644H0646HIOY20680H0682H0684H0686HIOY306C0H06C2H06C4H06C6H4) 8253 工作原理a. 8253 工作方式8253可編程計(jì)數(shù)器 /定時(shí)器的工作頻率為 02MHz ,它有 3 個(gè)獨(dú)立編程的計(jì)數(shù)器,每個(gè) 計(jì)數(shù)器有三個(gè)引腳,分別為時(shí)

20、鐘 CLK 、門控 GATE、計(jì)數(shù)器和計(jì)時(shí)結(jié)束輸出 OUT ,每個(gè)計(jì) 數(shù)器分別有 6 種工作方式。下面僅對(duì)方式 1 和方式 2 的工作原理進(jìn)行簡述。 方式 1 :可編程單穩(wěn), 即由外部硬件產(chǎn)生的門控信號(hào) GATE 觸發(fā) 8253 而輸出單穩(wěn)脈沖。 計(jì)數(shù)器裝入計(jì)數(shù)初值后,在門控信號(hào) GATE 由低電平變高電平并保持時(shí),計(jì)數(shù)器開始計(jì)數(shù), 此時(shí)輸出端變成低電平并開始單穩(wěn)過程。當(dāng)計(jì)數(shù)結(jié)束時(shí),輸出端 OUT 轉(zhuǎn)變成高電平,單穩(wěn) 過程結(jié)束,在 OUT 端輸出一個(gè)單穩(wěn)脈沖。硬件再次觸發(fā)。 OUT 端可再次輸出一個(gè)同樣的單 穩(wěn)脈沖。 單穩(wěn)脈沖的寬度由裝入計(jì)數(shù)器的計(jì)數(shù)初值決定。 在 WR 信號(hào)的上升沿 (CPU

21、 寫控制 字之后 ),輸出端 OUT 保持高電平 (若 OUT 原為低電平則變?yōu)楦唠娖?)。CPU 寫入計(jì)數(shù)值后, 計(jì)數(shù)器并不馬上開始計(jì)數(shù),而要等到門控信號(hào) GATE 啟動(dòng)之后的下一個(gè) CLK 的下降沿才開 始。在整個(gè)計(jì)數(shù)過程中,輸出端 OUT 保持低電平直至計(jì)數(shù)值至 0,OUT 變?yōu)楦唠娖綖橹埂?方式 2 :速率發(fā)生器,其功能如同一個(gè) N 分頻計(jì)數(shù)器。其輸出是將輸入時(shí)鐘按照 N 計(jì) 數(shù)值分頻后得到的一個(gè)連續(xù)脈沖。在該方式下,當(dāng)計(jì)數(shù)器裝入初始值開始工作后,輸出端 OUT 將不斷地輸出負(fù)脈沖,其寬度為一個(gè)時(shí)鐘周期的時(shí)間,而兩個(gè)負(fù)脈沖間的時(shí)間脈沖個(gè) 數(shù)等于計(jì)數(shù)器裝入的計(jì)數(shù)初值。 若計(jì)數(shù)初值為 N,

22、則每 N 個(gè)輸入脈沖輸出一個(gè)脈沖。 當(dāng) CPU 寫完控制字后,輸出端 OUT 轉(zhuǎn)變成高電平,計(jì)數(shù)器將立即自動(dòng)開始對(duì)輸入 CLK 時(shí)鐘計(jì)數(shù)。 在計(jì)數(shù)過程中, OUT 端始終保持高電平,直至計(jì)數(shù)器的計(jì)數(shù)值減到1 時(shí), OUT 端才變?yōu)榈碗娖?,其保持的寬度為一個(gè)輸入 CLK 時(shí)鐘周期的時(shí)間,然后輸出端 OUT 恢復(fù)高電平,計(jì) 數(shù)器重新開始計(jì)數(shù)。b. 8253 控制字格式SC1 SC0為計(jì)數(shù)器選擇位, RL1 RL0 為計(jì)數(shù)器讀寫操作選擇位, 以確定計(jì)數(shù)器進(jìn)行裝入 或讀出是單字節(jié)還是雙字節(jié), M2 、M1 、 M0 為計(jì)數(shù)器工作方式選擇位, BCD 表示計(jì)數(shù)器計(jì) 數(shù)方式選擇位。c. 8253 的內(nèi)部結(jié)

23、構(gòu)框及引腳如下圖所示:8253 引腳圖8253 內(nèi)部結(jié)構(gòu)框圖 數(shù)據(jù)總線緩沖器及數(shù)據(jù)總線 D0D7這是 8253與 CPU數(shù)據(jù)總線連接的 8位雙向三態(tài)緩沖器, 是 8253內(nèi)部總線與 CPU系統(tǒng) 的 8 位數(shù)據(jù)總線之間的接口。 CPU 通過它寫方式控制字到控制字寄存器,寫計(jì)數(shù)初值到計(jì)通過編程向 8253數(shù)通道, 讀取計(jì)數(shù)通道的當(dāng)前計(jì)數(shù)值。 即數(shù)據(jù)總線緩沖器有三個(gè)基本功能: 寫入確定 8253 工作方式的命令;向計(jì)數(shù)寄存器裝入計(jì)數(shù)初值;讀出當(dāng)前計(jì)數(shù)值。 內(nèi)數(shù)只高控能器部制阻的狀字有寫讀這寄入態(tài)讀是/3寫。寫不存?zhèn)€控8當(dāng)器能,2獨(dú)制5以讀片僅3立邏選出及能內(nèi)的輯。進(jìn)對(duì)信部計(jì)及行控號(hào)操數(shù)控制寫有作通制

24、操寄效的道引時(shí)作存控和腳(。器制低的部1電寫分各個(gè)平入,個(gè)控)。端制當(dāng),按口字片照的寄選讀C存信PC器號(hào)UP/寫U共發(fā)操來可作4的以的個(gè)讀對(duì)選端寫擇為8口信2見高,5號(hào)3下電由及表某平地。時(shí)端A址1口,信和數(shù)進(jìn)號(hào)注據(jù)行A來意 控制字寄存器 計(jì)數(shù)通道d. 實(shí)驗(yàn)中 8253 對(duì)應(yīng)端口地址如下表所示:實(shí)驗(yàn)系統(tǒng) 8253 對(duì)應(yīng)的端口地址表信號(hào)線計(jì)數(shù)器 0計(jì)數(shù)器 1計(jì)數(shù)器 2控制寄存器IOY00600H0602H0604H0606HIOY10640H0642H0644H0646HIOY20680H0682H0684H0686HIOY306C0H06C2H06C4H06C6H5) 8259A 中斷控制器a

25、. 引言b. 工作原理c. 實(shí)驗(yàn)中 8259A 對(duì)應(yīng)端口地址 6) 存儲(chǔ)器芯片,接口芯片與系統(tǒng)總線的連接 存儲(chǔ)器芯片,接口芯片與系統(tǒng)總線的連接就是如何把存儲(chǔ)器芯片和接口芯片掛到系 統(tǒng)的三類總線上。存儲(chǔ)器芯片和接口芯片與數(shù)據(jù)總線的連接比較簡單,因?yàn)槭呛唵蜗到y(tǒng),對(duì)數(shù)據(jù)總線 的負(fù)載能力沒有特別的要求,所以只要把存儲(chǔ)器芯片和接口芯片的數(shù)據(jù)引腳與數(shù)據(jù)總線 相應(yīng)各位作并聯(lián)就可以。連接到芯片上的控制總線不多,常用的有IO/M ,RD ,WR,RESET 等信號(hào),這些信號(hào)線也都是與各芯片的有關(guān)引腳做并聯(lián)連接。存儲(chǔ)器芯片, 接口芯片與地址總線的連接原則上是一樣的, 低地址線與存儲(chǔ)器芯片或接 口芯片的地址引腳直接

26、并聯(lián)連接, 用來作為芯片內(nèi)部單元的選擇, 高位地址線經(jīng)譯碼器譯碼 后一般連接到芯片的片選端作為芯片的選擇。 一般高位地址線的低位部分作為譯碼器的譯碼輸入,高位部分則作為譯碼器譯碼的許可條件。 由于 80886CPU 的端口地址采用獨(dú)立編址方 式,為了區(qū)分是存儲(chǔ)器芯片地址還是接口芯片地址,一定要把 IO/M 信號(hào)參與到芯片的片選 端控制。本次設(shè)計(jì)的連接圖如下所示:7) 接口芯片與外圍設(shè)備的連接采用 8255A 接口芯片作為 4*4 鍵盤與 6 位七段數(shù)碼管顯示器的接口。 如下圖所示:a. 8255A 接口芯片與 4*4 鍵盤的連接圖中有 4 行 4 列,4 根行線通過 74LS07 芯片與 PA

27、3PA0 相連,4 根列線與 PC7PC4 相連。按鍵設(shè)置在行、列交點(diǎn)處 ,行、列線分別連接到按鍵開關(guān)的兩端。當(dāng)列線通過上拉電 阻接 +5V 時(shí),就被鉗位在高電平狀態(tài)。鍵盤中有無按鍵按下是由行線送入全掃描字、列線讀 入行線狀態(tài)來判斷的。這就是:給行線所有 I/O 線均置成低電平,然后讀入列線電平狀態(tài)。 如果有按鍵按下,總會(huì)有一根列線電平被拉置底電平,從而使列線輸入不全為1。鍵盤中哪一個(gè)鍵按下是由行線逐行置低電平后, 檢查列線輸入狀態(tài)予以確定的。 其方法 是:依次給行線送低電平,然后查所有列線狀態(tài),如果全為l ,則所按下之鍵不在此行。如果不全為 1,則所按下之鍵必在此行。而且是在與0 電平行線相

28、交的交點(diǎn)上的那個(gè)鍵。鍵盤的工作方式采用編程掃描工作方式,即通過調(diào)用鍵盤子程序來響應(yīng)鍵輸入的要求, 在鍵盤掃描子程序中完成下述功能:1)判斷鍵盤上有無鍵按下。 其方法是先使 PA3PA0=O,然后讀 PC7PC4 的狀態(tài),若為全 1,則鍵盤中無鍵按下;若不全為 1,則說明鍵盤中有鍵按下。2)去除按鍵的機(jī)械抖動(dòng)影響。 對(duì)于由機(jī)械觸點(diǎn)構(gòu)成的按鍵, 由于機(jī)械觸點(diǎn)的彈性作用, 觸 點(diǎn)在閉合及斷開瞬間有一個(gè)抖動(dòng)過程,一般為 510ms 時(shí)間。為了消除抖動(dòng)影響可作這樣處 理,當(dāng)判斷有鍵按下后, 軟件延時(shí)一段時(shí)間再判斷鍵盤狀態(tài), 如果仍為有鍵按下狀態(tài), 則認(rèn) 為有一個(gè)確定的鍵按下,否則按鍵抖動(dòng)處理。3)求按下

29、鍵的鍵值及鍵號(hào)。 鍵盤上的縛個(gè)鍵都對(duì)應(yīng)一個(gè)鍵值。 鍵值的組成, 低 8 位為掃描 該鍵時(shí)的行線輸出值( PA3PA0),高 8 位為該鍵按下時(shí)的列線輸入值( PC7PC4 為有效 位其余位令其為 1)。4)為保證鍵閉合一次 CPU 僅進(jìn)行一次鍵功能操作。程序中需要等待鍵釋放以后再將鍵號(hào) 送累加器 AH 。 鍵盤的工作方式還有定時(shí)掃描及中斷工作方式, 前者是一種定時(shí)中斷, CPU 響應(yīng)中斷后對(duì)鍵盤進(jìn)行掃描, 并在有鍵按下時(shí)轉(zhuǎn)入鍵功能處理程序。 中斷工作方式只有在鍵 盤按下時(shí),才執(zhí)行鍵盤掃描,并執(zhí)行該鍵的功能程序。b. 顯示電路的連接在程序內(nèi)設(shè)置 8255的控制字 D2-D1 位分別為 00,使B

30、 端口工作在方式 0作為輸出端, PB0-PB7 分別對(duì)應(yīng)連接數(shù)碼管的 A-DP 。七段發(fā)光二極管為陽極 LED 器件。要讓 A 段點(diǎn)亮,要求 PB0 輸出高電平“ 1”,要使 B 段熄滅,要求從 PB1 輸出低電平“ 0”。其余各段以此類推。要使 LED 上顯示 0-F 十六個(gè) 數(shù)字,需要按照如下段碼表來驅(qū)動(dòng)數(shù)碼管的七段 LED 。顯示字符01234567七段代碼3FH06H5BH4FH66H6DH7DH07H顯示字符89AbCdEF七段代碼7FH6EH77H7CH39H5EH79H71H8) LED 顯示器的工作方式LED 數(shù)碼管是目前最常用的數(shù)字顯示器,圖A 、B 為共陰管和共陽管的電路

31、,圖 C 為兩種不同出線形式的引出腳功能圖。一個(gè) LED 數(shù)碼管可用來顯示一位 09 十進(jìn)制數(shù)和一個(gè)小數(shù)點(diǎn)。小型數(shù)碼管( 0.5 寸和 0.36 寸)每段發(fā)光二極管的正向壓降,隨顯示光的顏色不同略有差別,通常約為 22.5V , 每個(gè)發(fā)光二極管的點(diǎn)亮電流在 510mA 。LED 數(shù)碼管要顯示 BCD 碼所表示的十進(jìn)制數(shù)字就 需要有一個(gè)專門的譯碼器,該譯碼器不但要完成譯碼功能,還要有相當(dāng)?shù)尿?qū)動(dòng)能力。圖A 共陰連接(“ 1”電平驅(qū)動(dòng))0”電平驅(qū)動(dòng))圖B 共陽連接(LED 數(shù)碼管符號(hào)及引腳功能圖LED 顯示器有靜態(tài)和動(dòng)態(tài)兩種工作方式。LED 顯示器工作在靜態(tài)顯示方式下, 共陰極或共陽極連接在一起,

32、然后接地或 +5V ,每 位的段選線( A、B.G、H)與一個(gè) 8 位并行口相連。這樣,只要在每一位的段選線上保持 段選碼電平,該位就能保持相應(yīng)的顯示字符。在多位 LED 顯示時(shí),為了簡化電路,降低成本,將所有位的段選線并聯(lián)在一起,由一 個(gè) 8 位的 I/O 口控制, 即控制段選碼而共陰極點(diǎn)或共陽極點(diǎn)分別由相應(yīng)的 I/O 線控制即控制 位選碼,這就是動(dòng)態(tài)顯示。4 位 LED 動(dòng)態(tài)顯示電路只需一個(gè) 8 位 I/O 口及一個(gè) 4 位 I/O 口,其中 8 個(gè) I/O 控制段選 碼,4 位 I/O 控制位選。進(jìn)行 4位字符顯示時(shí),采用掃描顯示方式,即在每一瞬間只使某一 位顯示相應(yīng)字符,在此瞬間,段選

33、控制 I/O 口輸出相應(yīng)字符段選碼,位選控制 I/O 口在該顯 示位送入選通電平(共陰極送低電平,共陽極送高電平),以保證該位顯示相應(yīng)字符。如此 輪流, 使每位顯示該位應(yīng)顯示字符, 并保持延遲一段時(shí)間 (15ms),以造成視覺暫留效果。 不斷循環(huán)送出相應(yīng)的段選碼、位選碼,就可以獲得視覺穩(wěn)定的顯示狀態(tài)。2. 軟件系統(tǒng)設(shè)計(jì)框圖a. 按鍵定義:運(yùn)行程序, 8255A 進(jìn)行初始化。 程序運(yùn)行時(shí)首先會(huì)判斷是否有壓鍵操作, 如果沒有壓鍵 操作, 則重復(fù)顯示掃描和判斷操作。 若有壓鍵操作, 則程序會(huì)逐線逐列置低電平同時(shí)逐行檢 查行線輸入狀態(tài), 當(dāng)判斷到存在列線和行線同時(shí)為 0,則在數(shù)碼管上顯示對(duì)應(yīng)的鍵值。

34、隨后, 會(huì)執(zhí)行詢問是否放鍵的操作, 放鍵則繼續(xù)執(zhí)行有無壓鍵判斷; 如果不放鍵, 則跳轉(zhuǎn)至顯示掃 描操作。b. 設(shè)計(jì)要求 3:運(yùn)行程序, 8255,8259,8253 先后進(jìn)行初始化。程序運(yùn)行時(shí)會(huì)判斷是否按鍵 9 次,當(dāng)按鍵 達(dá) 9 次之后,會(huì)在數(shù)碼管上顯示“ EEEEEE ”。隨后進(jìn)入延時(shí) 30 秒,計(jì)時(shí) 30 秒后,數(shù)碼管 被清 0,程序結(jié)束。四、源程序STACK SEGMENT STACKDW 64 DUP(?)STACK ENDSDATA SEGMENTVA1 DB 0F7H,0BH,0FDH,0FEHVA2 DB 00HTABLE DB3FH,06H,5BH,4FH,66H,6DH,7

35、DH,07HDB7FH,6FH,77H,7CH,39H,5EH,79H,71H;初始化 8255;初始化 82590 方式 0DATA ENDSCODE SEGMENTASSUME CS: CODE, DS: DATA START: MOV AX,DATAMOV DS,AXMOV DX,0606HMOV AL,88HOUT DX,ALMOV BX,0000HPUSH DSMOV AX,0000HMOV DS,AXMOV AX,OFFSET IRQ7MOV SI,003CHMOV SI,AXMOV AX,CSMOV SI,003EHMOV SI,AXPOP DSMOV AL,11HOUT 20H

36、,ALMOV AL,08HOUT 21H,ALMOV AL,04HOUT 21H,ALMOV AL,01HOUT 21H,ALMOV AL,7FHOUT 21H,ALSTI ;初始化 8253MOV DX,0686HMOV AL,10H;設(shè)置計(jì)數(shù)器OUT DX,ALMOV DX,0680HMOV AL,08H ;設(shè)置計(jì)數(shù)值為OUT DX,ALLEA SI,TABLESTT: MOV AL,00HMOV DX,0600HOUT DX,ALMOV DX,0604HIN AL,DXAND AL,0F0HCMP AL,0F0HJNZ KEYABCCALL DISPJMP STTKEYABC:CALL

37、TIMEMOV DX,0604HIN AL,DXAND AL,0F0HCMP AL,0F0HJNZ KEYJMP STTKEY: MOV SI, OFFSET TABLEMOV DX,0600HMOV AL,0FEHOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,10HJNZ KEY_7CALL KEY3JMP STTKKEY_7: TEST AL,20HJNZ KEY_8CALL KEY7JMP STTKKEY_8: TEST AL,40HJNZ KEY_FCALL KEY8JMP STTKKEY_F: TEST AL,80HJNZ KEY_2CALL KEYFJM

38、P STTKKEY_2: MOV DX,0600HMOV AL,0FDHOUT DX,ALMOV DX,0604HIN AL,DXTEST AL,10HJNZ KEY_6CALL KEY2JMP STTKKEY_6: TEST AL,20HJNZ KEY_9CALL KEY6JMP STTKKEY_9: TEST AL,40H JNZ KEY_E CALL KEY9 JMP STTKKEY_E: TEST AL,80H JNZ KEY_1 CALL KEYE JMP STTKKEY_1: MOV DX,0600H MOV AL,0FBH OUT DX,AL MOV DX,0604H IN AL

39、,DX TEST AL,10H JNZ KEY_5 CALL KEY1 JMP STTKKEY_5: TEST AL,20H JNZ KEY_A CALL KEY5 JMP STTKKEY_A: TEST AL,40H JNZ KEY_D CALL KEYA JMP STTKKEY_D: TEST AL,80H JNZ KEY_0 CALL KEYD JMP STTKKEY_0: MOV DX,0600H MOV AL,0F7H OUT DX,AL MOV DX,0604H IN AL,DX TEST AL,10H JNZ KEY_4 CALL KEY0 JMP STTKKEY_4: TEST

40、 AL,20H JNZ KEY_B CALL KEY4 JMP STTKKEY_B: TEST AL,40HJNZ KEY_CCALL KEYBJMP STTK KEY_C: TEST AL,80HJNZ KEY_C1CALL KEYCJMP STTKKEY_C1:JMP STTKKEY0: MOV AL,SI+0MOV VA2,ALCALL DISPRETKEY1: MOV AL,SI+1MOV VA2,ALCALL DISPRETKEY2: MOV AL,SI+2MOV VA2,ALCALL DISPRETKEY3: MOV AL,SI+3MOV VA2,ALCALL DISPRET KE

41、Y4: MOV AL,SI+4MOV VA2,ALCALL DISPRETKEY5: MOV AL,SI+5MOV VA2,ALCALL DISPRETKEY6: MOV AL,SI+6MOV VA2,ALCALL DISPRETKEY7: MOV AL,SI+7MOV VA2,ALCALL DISPRETKEY8: MOV AL,SI+8MOV VA2,ALCALL DISPRETKEY9: MOV AL,SI+9 MOV VA2,AL CALL DISP RETKEYA: MOV AL,SI+10 MOV VA2,AL CALL DISP RETKEYB: MOV AL,SI+11 MOV VA2,AL CALL DISP RETKEYC: MOV AL,SI+12 MOV VA2,AL CALL DISP RETKEYD: MOV AL,SI+13 MOV VA2,AL

溫馨提示

  • 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)論