微機原理與接口技術(shù)__計本08408100207_劉霞_基于8255A的聲光報警設計_第1頁
微機原理與接口技術(shù)__計本08408100207_劉霞_基于8255A的聲光報警設計_第2頁
微機原理與接口技術(shù)__計本08408100207_劉霞_基于8255A的聲光報警設計_第3頁
微機原理與接口技術(shù)__計本08408100207_劉霞_基于8255A的聲光報警設計_第4頁
微機原理與接口技術(shù)__計本08408100207_劉霞_基于8255A的聲光報警設計_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、湖南工業(yè)大學本科課程設計(論文)湖南工業(yè)大學課 程 設 計資 料 袋 湖南工業(yè)大學 學院(系、部) 2010 2011 學年第 二 學期 課程名稱 微機原理與接口技術(shù) 指導教師 邱銀安 職稱 副教授 學生姓名 劉霞 專業(yè)班級 計本082 學號 08408100207 題 目 基于8255A的聲光報警器設計 成 績 起止日期 2011 年 05 月 23 日2011年05月 29 日目 錄 清 單序號材 料 名 稱資料數(shù)量備 注1課程設計任務書12課程設計說明書13課程設計圖紙張45616湖南工業(yè)大學課程設計任務書20102011學年第 二 學期 計算機與通信學院 學院(系、部) 計算機科學與技

2、術(shù) 專業(yè) 082 班級課程名稱: 微機原理與接口技術(shù) 設計題目: 基于8255A的聲光報警設計 完成期限:自 2011 年05月 23 日至 2011 年05月 29 日共 1 周課題名稱基于8255A的聲光報警設計人 數(shù)5組 長劉霞同組人員羅彪、趙雄杰、胡小輝、肖也內(nèi)容及任務要求:通過該設計,掌握串行通信的基本原理和應用,掌握8255并行接口和8253定時計數(shù)器的使用,并掌握相應的程序設計和電路設計的技能。是對并行通信接口芯片和定時計數(shù)芯片章節(jié)理論學習的總結(jié)和補充,為后續(xù)的硬件課程的學習打下基礎。主要任務:1) 完成相關(guān)的電路設計;2) 完成8255A的程序設計;3) 完成數(shù)據(jù)傳送程序設計;

3、完成程序調(diào)試;具體任務1)理解整個實驗課程設計思想;2)程序代碼設計;3)電路圖的設計;4)課程設計報告的撰寫;進度安排起止日期工作內(nèi)容2011.05.23選擇好題,組長布置各成員任務,明確實驗的要求和具體任務;2011.05.24-2011.05.25對實驗課題進行原理分析、電路圖設計以及程序設計;2011.05.26-2011.05.28程序設計并調(diào)試程序,提出疑問,找出實驗的不足之處;2011.05.29對實驗進行進一步的完善,實驗驗證,讓老師考核并完成課程設計報告。指導教師(簽字): 年 月 日系(教研室)主任(簽字): 年 月 日微機原理與接口技術(shù)課程設計說明書基于8255A的聲光報

4、警設計起止日期:2011年 5月23日 至 2011年 5月29日學生姓名劉霞班級計算機科學與技術(shù)學號08408100207成績指導教師(簽字)計算機與通信學院2011年 5 月 29 日目 錄一、設計目的1二、設計內(nèi)容1三、設計基本原理13.1 關(guān)鍵芯片8255A相關(guān)知識13.1.1 8255A的內(nèi)部結(jié)構(gòu)13.1.2 8255A的芯片引腳信號23.1.3 8255A的控制字33.1.3 8255A的工作方式43.2 8253功能原理63.2.1 8253的結(jié)構(gòu)和工作原理63.2.2 8253控制寄存器的格式73.2.3 8253的編程命令83.2.4 8253的工作模式83.3 設計思路10

5、3.3.1 設計思想103.3.2 提出問題與解決問題103.3.3 硬件連線實現(xiàn)103.3.4 軟件實現(xiàn)123.4 設計體會與展望13參考文獻:13附錄源程序代碼13基于8255A的聲光報警設計一、設計目的微機原理與接口技術(shù)是計算機科學與技術(shù)專業(yè)的重要基礎課之一,課程緊密結(jié)合專業(yè)特點,圍繞微型計算機原理和應用主題,系統(tǒng)介紹微型計算機的基本知識,基本組成,體系結(jié)構(gòu)和工作模式。通過該設計,掌握串行通信的基本原理和應用,掌握8255并行接口和8253定時計數(shù)器的使用,并掌握相應的程序設計和電路設計的技能。是對并行通信接口芯片和定時計數(shù)芯片章節(jié)理論學習的總結(jié)和補充,為后續(xù)的硬件課程的學習打下基礎。二

6、、設計內(nèi)容利用8253的分頻功能實現(xiàn)報警聲,即頻率1高1低的警報聲,同事LED燈也配合一閃一閃。1、對8253進行初始化編程,對8255進行初始化編程;2、根據(jù)設計要求,連接相應的電路;3、編寫程序?qū)崿F(xiàn)聲光報警效果。三、設計基本原理3.1 關(guān)鍵芯片8255A相關(guān)知識3.1.1 8255A的內(nèi)部結(jié)構(gòu)一:數(shù)據(jù)端口A、B、C、8255A有三個8位數(shù)據(jù)端口,即端口A、端口B、端口C。設計人員可以用軟件使它們分別作為輸入端口或輸出端口。不過,這三個端口有著各自的特點。(一)端口A端口A對應1個8位數(shù)據(jù)輸入鎖存器和1個8位數(shù)據(jù)輸出鎖存器/緩沖器,所以,用端口A作為輸入或輸出時,數(shù)據(jù)均收到鎖存。(二)端口B

7、端口B對應1個8位數(shù)據(jù)輸入緩沖器和1個8位數(shù)據(jù)輸出鎖存器/緩沖器。(三)端口C端口C對應1個8位數(shù)據(jù)輸入緩沖器和1個8位數(shù)據(jù)輸出鎖存器/緩沖器。這樣,當端口C作為輸入端口時,對數(shù)據(jù)不作鎖存,而作為輸出端口時,對數(shù)據(jù)進行鎖存。在使用中,端口A和端口B常常作為獨立的輸入端口或者輸出端口,端口C則配合端口A和端口B的工作。具體地講,端口C常常通過控制命令被分成2個4位端口,每個4位端口包含1個4位的輸入緩沖器和1個4位的輸出鎖存器/緩沖器,它們分別用來位端口A和端口B提供控制信號和狀態(tài)信號。二:A組控制和B組控制這兩組控制電路一方面接收芯片內(nèi)部總線上的控制字,一方面接收來自讀寫控制邏輯電路的讀寫命令

8、,據(jù)此而決定兩組端口的工作方式和讀寫操作。A組控制電路控制端口A和端口C的高4位(PC7-PC4)的工作方式和讀寫操作。B組控制電路控制端口B和端口C的底4位(PC3-PC0)的工作方式和讀寫操作。三:讀寫控制邏輯電路讀寫控制邏輯電路負責管理8255A的數(shù)據(jù)傳輸過程。它接收CS及來系統(tǒng)地址總線的信號A1、A0(在8086系統(tǒng)中位A2、A1)和控制總線的信號RESET、WR、RD,將這些信號進行組合后,得到對A組控制部件和B組控制部件的控制命令,并將命令發(fā)給這兩個部件,以完成對數(shù)據(jù)、狀態(tài)信息和控制信息的傳輸。四:數(shù)據(jù)總線緩沖器這是一個雙向三態(tài)的8位數(shù)據(jù)緩沖器,8255A正是通過它與系統(tǒng)數(shù)據(jù)總線相

9、連。輸入數(shù)據(jù)、輸出數(shù)據(jù)以及CPU發(fā)給8255A的控制字都是通過這個緩沖器傳遞的。3.1.2 8255A的芯片引腳信號具體的芯片引腳功能。1、和外設一邊相連的信號·PA7-PA0 A組數(shù)據(jù)信號;·PB7-PB0 B組數(shù)據(jù)信號;·PC7-PC0 C組數(shù)據(jù)信號。2、和CPU一邊相連的信號·RESET 復位信號,高電平有效。RESET信號來到時,所有內(nèi)部寄存器都被清除,同時,3個數(shù)據(jù)端口被自動設為輸入端口。· 它們是8255A的數(shù)據(jù)線,和系統(tǒng)數(shù)據(jù)總線相連。· 芯片選擇信號,低電平有效。在一個系統(tǒng)中,一般根據(jù)全部接口芯片來分配若干較低地位(比如

10、A5、A4、A3、)組成各種芯片選擇碼,當這幾位地址組成某一個代碼時,譯碼器便往8255A的CS端輸出一個低電平,于是,8255A被選中。只有當CS有效時,讀信號RD和信號WR才對8255A有效。· 芯片寫入信號,低電平有效。當WR有效時,CPU可以往8255A中寫入控制字或數(shù)據(jù)。·、 端口選擇信號。8255A內(nèi)部有3個數(shù)據(jù)端口和1個控制端口。規(guī)定當A1、A0位00時,選中A端口;為01時,選中B端口;為10時,選中C端口;為11時,選中控制口。在8086系統(tǒng)中,采用16為數(shù)據(jù)總線,進行數(shù)據(jù)傳輸時,CPU總是將低8位數(shù)據(jù)線上的數(shù)據(jù)送往偶地址端口,而將高8位數(shù)據(jù)線上的數(shù)據(jù)送往

11、奇地址端口;反過來,從偶地址端口取得的數(shù)據(jù)總是通過低8位數(shù)據(jù)線傳送到CPU,從奇地址端口取得的數(shù)據(jù)總是通過高8位數(shù)據(jù)線送到CPU。所以,當8255A的D7-D0接到系統(tǒng)總線的低8位時(為了硬件上連接的方便,實際系統(tǒng)中常常這樣連接),從CPU一邊看來,要求8255A的4個端口地址必須全為偶地址。為了既滿足這個要求,又滿足8255A本身規(guī)定4個端口地址為00、01、10、11的要求,所以,在8086系統(tǒng)中,將8255A的A1段和地址總線的A2相連,而將8255A的A0端和地址總線的A1相連,并且,CPU在對8255A的端口進行訪問時,將地址總線的A0位總是設置位0。3.1.3 8255A的控制字8

12、255A可以通過指令在控制端口中設置控制字來決定它的工作??刂谱址譃閮深?。一類是芯片各端口的方式選擇控制字,它可以使8255A的3個數(shù)據(jù)端口工作在不同的工作方式。方式選擇控制字總是將3個數(shù)據(jù)端口分為兩組來設定工作方式,即端口A和端口C的高4為作為一組,端口B和端口C的低4位作為一組。另一類是C端口按位置1/置0控制字,它可以使C端口中的任何一位進行置位或復位。方式選擇控制字的第7位總是1,而端口C置1/置0控制字的第7位總是0,8255A正是通過這一位來識別這兩個同樣寫入控制端口中的控制字到底是哪一類,所以,第7位稱為標識位。1稱為方式選擇控制字的標識位,0稱為C端口按位置1/置0控制字的標識

13、符。1、 方式選擇控制字對8255A的方式選擇控制字,我們作下面幾點說明: 8255A有三種基本工作方式:·方式0 基本的輸入輸出方式·方式1 選通的輸入輸出方式·方式2 雙向傳輸方式 端口A可以工作在三種工作方式中的任何一種,端口B只能工作在方式0或方式1,端口C則常常配合端口A和端口B工作,為這兩個端口的輸入輸出傳輸提供控制信號和狀態(tài)信號??梢姡挥卸丝贏能工作在方式2. 歸為同一組的兩個端口可以工作在輸入方式和輸出方式,并不要求同為輸入方式或同為輸出方式。而一個端口具體到底作為輸入端口還是輸出端口,這也由方式選擇控制字來決定。2、端口C置1/置0控制字端口C

14、的數(shù)位常常作為控制位使用,所以,在設計8255A芯片時,使端口C中的各數(shù)位可以用置1/置0控制字單獨設置。當8255A接收到寫入控制口的控制字時,就會對最高即標識位進行測試。如為1,則將此字節(jié)作為方式選擇控制字寫入控制字寫入控制寄存器;如為0,則此字節(jié)就作為對端口C的置1/置0控制字來處理。端口C置1/置0控制字的具體格式。對C端口置1/置0控制字,我們作為如下幾點說明: C端口置1/置0控制字盡管是對端口C進行操作,但此控制字必須寫入控制口,而不是寫入C端口。 置1/置0控制字的D0位決定了是置1操作還是置0操作。如為1,則對端口C中某一位置1,如為0,則置0。 置1/置0控制字的D2、D1

15、 、D0位決定了對C端口中的哪一位進行操作。 置1/置0控制字的D6、D5 、D4位可為1,也可為0,它們不影響置1/置0操作。但D7位必須為0,它是對C端口置1/置0控制字的標識符。3.1.3 8255A的工作方式一方式0(1)方式0的工作特點方式0也叫基本輸入輸出方式。在這種方式下,端口A和端口B可以通過方式選擇安規(guī)定為輸入口或者輸出口,端口C分為兩個4位端口,高4位為一個端口,低4位為一個端口。這兩個4位端口也可由方式選擇字規(guī)定為輸入口和輸出口。概括地說,方式0的基本特點如下: 任何一個端口可作為輸入口,也可作為輸出口,各端口之間沒有規(guī)定必然的關(guān)系。 各個端口的輸入或輸出,可以有16種不

16、同的組合,所以可以選用于多種重用場合。(2)方式0的輸入輸出時序為了了解一個端口工作在方式0的含義,下面,我們來分析一下方式0的時序關(guān)系。在分析時序時,應該著重注意兩個方面:一是要弄清每個信號的發(fā)出者和承受者;二是要弄明白各個信號之間的先后因果關(guān)系。(3)方式0的使用場合方式0的使用場合有兩種,一種是同步傳送,另一種是查詢式傳送。在同步傳送時,發(fā)送方和接收方的動作由一個時序信號來管理,所以,雙方互相知道對方的動作,不需要應答信號,也就是說,CPU不需要查詢外設的狀態(tài)。這種情況下,對接口的要求很簡單,只要能傳送數(shù)據(jù)就行了。因此,在同步傳輸下使用8255A時,三個數(shù)據(jù)端口可以實現(xiàn)三路數(shù)據(jù)傳輸。 查

17、詢式傳輸時,需要有應答信號。信號,在方式0情況下,沒有規(guī)定固定的應答信號,所以,這時將端口A和端口B作為數(shù)據(jù)端口,把端口C的4個數(shù)位(高4位或者低4位均可)規(guī)定為輸出口,用來輸出一些輸出一些控制信號,而把端口C的另外4個數(shù)位規(guī)定為輸入口,用來讀入外設的狀態(tài)。這樣就利用端口C配合了端口A和端口B的輸入輸出操作。二方式1(1)方式1的工作特點方式1也叫選通的輸入輸出方式。和方式0相比,最重要的差別是A端口和B端口用方式1進行輸入輸出傳輸時,要利用端口C提供的選通信號應答信號,而這些信號與端口C的數(shù)位之間有著固定的對應關(guān)系,這種關(guān)系不是程序可以改變的,除非改變工作方式。(2)方式1輸入情況下有關(guān)信號

18、的規(guī)定和輸入時序當端口A工作在方式1并作為輸入端口時,端口C的數(shù)位PC4作為選通信號輸入端,PC5 作為輸入緩沖區(qū)滿信號輸出端IBFA,PC3則作為中斷請求信號輸出端INTRA。當端口B工作在方式1并作為輸入端口時,端口C的數(shù)位PC2作為選通信號輸入端,PC1作為輸入緩沖區(qū)滿信號輸出端IBFB,PC0則作為中斷請求信號輸出端INTRB。這些數(shù)位和信號之間的對應關(guān)系是在對端口設定工作方式時自動確定的,不需要程序員干預;而且,一旦確定了某個端口工作于方式1,程序員也就無法改變端口C的數(shù)位與信號之間的對應關(guān)系,除非重新設置方式選擇控制字。當8255A的端口A和端口B都工作在方式1的輸入情況時,端口C

19、的PC0-PC5共6個數(shù)位都被定義,只剩下PC6、PC7這位還未用。此時,方式選擇控制字的D3位用來定義PC6和PC7的數(shù)據(jù)傳輸方向。當D3為1時,PC6和PC7這2位作為輸入來用;當D3為0時,PC6和PC7作為輸出來用。8255A選通輸入操作(方式1)及內(nèi)部結(jié)構(gòu)。 方式1選通輸入信號定義。 各定義信號功能如下: -STB選通信號,外設通知端口接收并鎖定數(shù)據(jù); IBF輸入緩沖器滿, 通知外設已收到數(shù)據(jù),CPU取走數(shù)據(jù)后,變低,外設可再發(fā)數(shù)據(jù)。 INTR 中斷請求輸出 INTE 中斷允許PC4:A組/PC2:B組置1(允許)/0(禁止) PC7,PC6 端口C引腳7與6,可以作為通用的I/O引

20、腳 (3)方式1輸出情況下有關(guān)信號的規(guī)定和輸出時序當端口A工作在方式1并作為輸出端口時,端口C的數(shù)位PC7作為輸出緩沖器滿信號輸出端,PC6作為外設接收數(shù)據(jù)后的響應信號輸入端,PC3則作為中斷請求信號INTRA輸出端。當端口B工作在方式1并作為輸出端口時,端口C的數(shù)據(jù)PC1作為輸出緩沖器滿信號輸出端,PC2作為外設接收數(shù)據(jù)后的響應信號輸入端,PC0則作為中斷請求信號INTRB輸出端。方式1選通輸出。方式1選通輸出信號定義。-OBF輸出緩沖器滿,表示CPU將數(shù)據(jù)寫到相應的端口;當外設取走數(shù)據(jù)后變高,從而使INTR產(chǎn)生中斷信號。-ACK響應信號,外設收到OBF信號后,讀端口,并發(fā)該信號,使-OBF

21、引腳回到邏輯1INTR 中斷請求信號 INTE 中斷允許信號PC4:A組/PC2:B組置1(允許)/0(禁止) PC5、PC4 端口C位5與位4作為通用的I/O引腳 (4)方式1的使用場合在方式1下,規(guī)定一個端口作為輸入口或者輸出口的同時,自動規(guī)定了有關(guān)的控制信號和狀態(tài)信號,尤其是規(guī)定了相應的中斷請求信號。這樣,在許多采用中斷方式進行輸入輸出的場合,如果外部設備能為8255A提供選通信號或者數(shù)據(jù)接收應答信號,那么常常使8255A的端口工作于方式1。用方式1比用方式0更加方便有效。3.2 8253功能原理3.2.1 8253的結(jié)構(gòu)和工作原理(1)編程結(jié)構(gòu)8253內(nèi)部有三個計數(shù)器.分別稱為計數(shù)器0

22、、計數(shù)器1、計數(shù)器2。它們的結(jié)構(gòu)完全相同,每個計數(shù)器的輸入和輸出都決定于設置在控制寄存器中的控制字,互相工作完全獨立,每個計數(shù)器通過在三不念舊惡引腳和外部聯(lián)系.一個為時鐘輸入端CLK.,一個為門控信號輸入端GATE,另一個為輸出端的OUT。每個計數(shù)器內(nèi)部有一個8位的控制寄存器,還有一個子16位的計數(shù)初值寄存器CR、一個計數(shù)執(zhí)行部件CE和一個輸出的鎖相器OL。(2)8253的工作原理數(shù)據(jù)總線緩沖器。這是8253與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器。CPU向8253輸入指令和某通道的計數(shù)值,以及讀取8253計數(shù)器中的計數(shù)值,都是通過這8條總線傳送的。讀/寫邏輯。這是8253內(nèi)部操作的控制部分。

23、8253內(nèi)部寄存器由A0、A1、RD、WR決定??刂谱旨拇嫫鳌T?253初始化編程時,由CPU寫入控制字以決定計數(shù)器的工作方式。此寄存器只能寫入而不能讀出。計數(shù)器#0、計數(shù)器#1、計數(shù)器#2。這是三個計數(shù)器/定時器,每一個都是由一個16位的可預置值的減法計數(shù)器構(gòu)成。這三個計數(shù)器的操作是完全獨立的。每個通道包含了1個16位計數(shù)寄存器CR、16位的減1計算單元CE、16位的計數(shù)輸出鎖存器OL。CPU寫入的計數(shù)值存放在CR中(初值),計數(shù)的情況反應在OL中,OL可以由CPU讀出。計數(shù)單元CE每收到一個 CLK時針脈沖,就自動減1,當然,減1操作還受到GATE信號的控制。在CE減1至0時,通過OUT輸

24、出一個電平或脈沖3.2.2 8253控制寄存器的格式8253控制寄存器的格式如下:BCD位用來設置計數(shù)值格式1:計數(shù)值為BCD碼格式2:計數(shù)值為二進制格式M0、M1、M2模式選擇。具體關(guān)系如下:M2 M1 M0 模式選擇0 0 0 模式00 0 1 模式1× 1 0 模式2× 1 1 模式31 0 0 模式41 0 1 模式5RW1和RW2是讀寫指示位,具體為:0 0 :對計數(shù)器進行鎖存操作,使當前計數(shù)值在輸出鎖存器中鎖定,以便讀出。0 1 :只讀寫低8位字節(jié)。1 0 :只讀寫高8位字節(jié)11 :先讀寫低8位字節(jié),再讀寫高8位字節(jié)。SC0和SC1用來選擇計數(shù)器,具體對應關(guān)系如

25、下:0 0 :計數(shù)器00 1 :計數(shù)器11 0 :計數(shù)器211 :無意義3.2.3 8253的編程命令規(guī)則如下:(1) 對計數(shù)器設置初始值前必須先定控制字。(2) 初始值設置時,要符合控制字中的格式規(guī)定,即只寫低位字節(jié)還是只寫高位字節(jié),者高低字節(jié)都寫,控制字中一旦規(guī)定,具體初始設定時就要一致。3.2.4 8253的工作模式模式0計完最后一個數(shù)時中斷在這種方式下,當控制字CW(Control Word)寫入控制字寄存器,則使OUT輸出端變低,此時計數(shù)器沒有賦予初值,也沒開始計數(shù)。要開始計數(shù),GATE信號必須為高電平,并在寫入計數(shù)初值LSB后,通道開始計數(shù),在計數(shù)過程中 OUT線一直維持為低,直到

26、計數(shù)到“0”時。OUT輸出變高。注意:(1)方式0 不能自動重復計數(shù),每次需寫入初值。(2)在計數(shù)期間,如果GATE變低,則停止計數(shù),直到GATE變高后,繼續(xù)計數(shù)(不是重新計數(shù))。(3)如果GATE一直為高電平,則,8253在寫入初值后開始計數(shù)。(4)在計數(shù)期間,如果CPU寫入新值,則8253按新值繼續(xù)計數(shù)。 模式1可編程序的單拍脈沖在這種方式下,當CPU寫控制字之后(的上升沿),OUT輸出將保持為高(若原為低,則由低變高)。當CPU寫完計數(shù)值后,計數(shù)器并不開始計數(shù),直到外部門控脈沖GATE啟動之后的下一個輸入CLK脈沖的下降沿開始計數(shù),輸出OUT變低。因整個計數(shù)過程中,OUT都維持為低,直到

27、計數(shù)到0,輸出變?yōu)楦?,因此,輸出為一個單拍負脈沖,脈沖寬度為 N 個T。若外部再次觸發(fā)啟動,則可以再產(chǎn)生一個單拍脈沖。注意:(1)每次GATE的一個啟動脈沖使CE重新計數(shù);且在CE計數(shù)期間,如果GATE產(chǎn)生一個啟動脈沖,也會使CE重新計數(shù)。(2)在CE計數(shù)期間,如果CPU向CR寫入新的初值,不會影響當前計數(shù),直到計數(shù)完成,或產(chǎn)生一個新的GATE脈沖,CE用新的值計數(shù)。模式2速率發(fā)生器在這種方式下,當CPU輸出控制字后,OUT輸出將為高。在寫入計數(shù)值后,計數(shù)器將立即自動對輸入時鐘CLK計數(shù)。在計數(shù)過程中輸出始終保持為高,直至計數(shù)器減到1時,輸出將變低,經(jīng)過一個CLK周期,輸出恢復為高,且計數(shù)器開

28、始重新計數(shù)。注意:(1)在計數(shù)期間,GATE需一直保持高電平,當GATE變低時,計數(shù)暫停,直到GATE變高,CE重新計數(shù);(2)CE計數(shù)結(jié)束后,重新裝入CR的初值,并自動計數(shù);(3)在CE計數(shù)期間,CPU寫入的初值對當前計數(shù)不產(chǎn)生影響,CE計數(shù)結(jié)束后,自動以新的初值計數(shù)。模式3方波速率發(fā)生器方式3和方式2的輸出都是周期性的,它們的主要區(qū)別是,方式3在計數(shù)過程中OUT輸出有一半時間為高,另一半時間為低。具體地說,當初值N為偶數(shù)時,OUT的高低輸出各一半,當N為奇數(shù)時,高電平為(N+1)/2,低電平為(N-1)/2。模式4軟件觸發(fā)選通在這種方式下,當寫入控制字后,輸出為高(原為高則保持為高,原為低

29、則變?yōu)楦撸?。當寫入計?shù)值后立即開始計數(shù)(相當于軟件啟動),當計數(shù)到0后,輸出變低,經(jīng)過一個輸入時鐘周期,輸出又變高,計數(shù)器停止計數(shù)。這種方式計數(shù)也是一次性的,只有在輸入新的計數(shù)值后,才能開始新的計數(shù)。 模式5硬件觸發(fā)選通在這種方式下,設置了控制字后,輸出為高。在設置了計數(shù)值后,計數(shù)器并不立即開始計數(shù),而是由門控脈沖的上升沿觸發(fā)啟動。當計數(shù)到0時,輸出變低,經(jīng)過一個CLK脈沖,輸出恢復為高,停止計數(shù)。要等到下次門控脈沖的觸發(fā)才能再計數(shù)。注意:(1)在CPU寫入初值后,CE不開始計數(shù),直到有一個GATE啟動脈沖;(2)在計數(shù)期間,CPU寫入新的初值,不影響當前計數(shù),直到有一個新的GATE脈沖;在計

30、數(shù)期間,新的GATE脈沖使CE重新計數(shù);(3)CE計數(shù)結(jié)束后,不會自動重新計數(shù),只有一個新的GATE脈沖時,才開始重新計數(shù);3.3 設計思路3.3.1 設計思想本小組的實驗主要通過可編程芯片8255A實現(xiàn)對代碼輸入器的設計。實驗電路圖見圖1-圖3,我們的實驗思想是:通過實驗MFID通用微機實驗平臺系統(tǒng)上的8255A和兩個數(shù)碼管,八個鍵控開關(guān)及若干導線來實現(xiàn)我們這個設計。實驗將8255A的端口A的PA0-PA7與分別與LED的L1-L8相連,端口C的PC6與鍵音調(diào)接口相連,端口C的PC2與按鍵SW3相連,起對發(fā)聲器的控制作用,將模塊電源中斷跳線2,跳線3分別設置跳線。當從鍵控輸入將輸?shù)拇a后按下

31、單脈沖按鈕,然后就在LED上顯示出燈光的閃動效果,并將該代碼存在首地址為0303H的地方8255A的初始化入口地址,并將0300H地址作為LED的全滅初始化字,向DX中設置0303H時候關(guān)閉SPK的作用,地址0302H3.3.2 提出問題與解決問題(1)當代碼設置好后,由手動按鈕觸發(fā)使8255A讀取這個代碼,如何通過8255A的端口實現(xiàn)?這是課程設計的一個重難點。具體的解決方案是:將8255A的PC1端口與觸發(fā)按鈕相連(如附錄圖1所示),這樣連接的思路是:當8255A工作在選通的輸入輸出方式,在這種工作方式下,PC1端口表示的是IBF(緩沖器滿信號,高電平有效)它是8255A輸出的狀態(tài)信號,當

32、它有效時,表示當前已有一個新的數(shù)據(jù)在緩沖器中,此信號一般供CPU查詢用。IBF信號是由STB信號使其置位的,而由讀信號RD的后沿即上升使其復位。當代碼設置好后,就按下下觸發(fā)按鈕,給PC1端口一個高電平,告訴8255A數(shù)據(jù)緩沖器滿,這時8255A就會從開關(guān)讀取其狀態(tài)。(2)如何將用戶輸入的代碼在兩位的數(shù)碼管上用十六進制顯示出來,八位二進制的代碼與十六進制的代碼的轉(zhuǎn)換也是這次課程設計的重難點。如下表所示就是我們實驗要用到的七段數(shù)碼管的字型代碼表,在程序中通過查這個字型代碼表就可以將八進制的代碼順利轉(zhuǎn)換成十六進制的代碼、并將代碼用十六進制在數(shù)碼管上顯示出來。3.3.3 硬件連線實現(xiàn)聲光報警器原理示意

33、圖如下:圖1 聲-光報警器模塊電路原理框圖硬件連線:跳線設置:單線將模塊電源L區(qū)JP7和JP8跳線;排線將模塊電源L區(qū)JP8跳線連接;單線連法如下圖2所示:圖2 單線連接圖排線連接法如下圖3所示:圖3 排線連接圖3.3.4 軟件實現(xiàn) 程序流程圖如下:8255初始化熄滅LED關(guān)閉SPKSW按下?LED發(fā)光Call LEDflashSPK發(fā)聲(高)Call outSPKLED全滅SPK發(fā)聲(低)Call outSPK熄滅LED任意鍵按下?關(guān)閉SPKYNYN開始結(jié)束圖4 8255A聲光報警總流程圖3.4 課程設計心得體會 從此次微機原理課程設計中我學到了不少,不僅鞏固了以前所學過的理論知識,更有很多

34、在書本上所不能學到的內(nèi)容,像如何和同學更好地交流和合作,怎樣在小組合作中最大限度的提高自己的水平,懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠的,只有把所學的理論知識與實踐相結(jié)合起來,從理論中得出結(jié)論,才能真正為社會服務,從而提高自己的實際動手能力和獨立思考的能力。最重要的是動手實踐能力在此過程中得到了一定程度的提升??偠灾?,通過整個小組成員的努力和積極討論,在愉快中我們很好的完成了自己的任務,成功地設計模擬出了我們的聲光報警器。當程序執(zhí)行時,看著實驗箱上那一閃一閃的彩色燈光,聽著那“滴滴滴.”的“報警聲”,心中不禁產(chǎn)生了那么一份小小的成就感!最后,在此,真心感謝同學們,尤其是同

35、組成員的相互幫助,感謝老師辛勤耐心的指導!參考文獻:1 戴梅萼. 微型計算機技術(shù)及應用,清華大學出版社, 2008年2 彭楚武. 微機原理與接口技術(shù), 湖南大學出版社, 2006年3 艾德才. 32位微機原理及接口技術(shù), 清華大學出版社, 2003年附錄源程序代碼;+ ; Aexp.asm(聲-光報警器接口實驗) + ; 聲-光控制程序source file +;+ stack1 segment dw 200 dup (?)stack1 endsdata segment para public 'data'message db 'press SW3 to start !

36、',0ah,0dh ;系統(tǒng)提示 db 'if you want to quit, please hit Any Key!',0ah,0dh,'$' t dw 0 ;初始化延時變量為0 num dw 0 ;初始化數(shù)字變量為0 data7 db 81h,42h,24h,18h,81h,42h,24h,18h data endscode segment para public 'code' assume ss:stack1,cs:code,ds:datasl proc farstart: mov ax,stack1 mov ss,ax mov ax,data mov ds,ax mov ah,09h ;顯示系統(tǒng)提示 mov dx,seg message mov ds,dx mov d

溫馨提示

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

評論

0/150

提交評論