




下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、湖南工業(yè)大學(xué)本科課程設(shè)計(jì)(論文)湖南工業(yè)大學(xué)課 程 設(shè) 計(jì)資 料 袋 湖南工業(yè)大學(xué) 學(xué)院(系、部) 2010 2011 學(xué)年第 二 學(xué)期 課程名稱 微機(jī)原理與接口技術(shù) 指導(dǎo)教師 邱銀安 職稱 副教授 學(xué)生姓名 劉霞 專業(yè)班級(jí) 計(jì)本082 學(xué)號(hào) 08408100207 題 目 基于8255A的聲光報(bào)警器設(shè)計(jì) 成 績(jī) 起止日期 2011 年 05 月 23 日2011年05月 29 日目 錄 清 單序號(hào)材 料 名 稱資料數(shù)量備 注1課程設(shè)計(jì)任務(wù)書12課程設(shè)計(jì)說(shuō)明書13課程設(shè)計(jì)圖紙張45616湖南工業(yè)大學(xué)課程設(shè)計(jì)任務(wù)書20102011學(xué)年第 二 學(xué)期 計(jì)算機(jī)與通信學(xué)院 學(xué)院(系、部) 計(jì)算機(jī)科學(xué)與技
2、術(shù) 專業(yè) 082 班級(jí)課程名稱: 微機(jī)原理與接口技術(shù) 設(shè)計(jì)題目: 基于8255A的聲光報(bào)警設(shè)計(jì) 完成期限:自 2011 年05月 23 日至 2011 年05月 29 日共 1 周課題名稱基于8255A的聲光報(bào)警設(shè)計(jì)人 數(shù)5組 長(zhǎng)劉霞同組人員羅彪、趙雄杰、胡小輝、肖也內(nèi)容及任務(wù)要求:通過(guò)該設(shè)計(jì),掌握串行通信的基本原理和應(yīng)用,掌握8255并行接口和8253定時(shí)計(jì)數(shù)器的使用,并掌握相應(yīng)的程序設(shè)計(jì)和電路設(shè)計(jì)的技能。是對(duì)并行通信接口芯片和定時(shí)計(jì)數(shù)芯片章節(jié)理論學(xué)習(xí)的總結(jié)和補(bǔ)充,為后續(xù)的硬件課程的學(xué)習(xí)打下基礎(chǔ)。主要任務(wù):1) 完成相關(guān)的電路設(shè)計(jì);2) 完成8255A的程序設(shè)計(jì);3) 完成數(shù)據(jù)傳送程序設(shè)計(jì);
3、完成程序調(diào)試;具體任務(wù)1)理解整個(gè)實(shí)驗(yàn)課程設(shè)計(jì)思想;2)程序代碼設(shè)計(jì);3)電路圖的設(shè)計(jì);4)課程設(shè)計(jì)報(bào)告的撰寫;進(jìn)度安排起止日期工作內(nèi)容2011.05.23選擇好題,組長(zhǎng)布置各成員任務(wù),明確實(shí)驗(yàn)的要求和具體任務(wù);2011.05.24-2011.05.25對(duì)實(shí)驗(yàn)課題進(jìn)行原理分析、電路圖設(shè)計(jì)以及程序設(shè)計(jì);2011.05.26-2011.05.28程序設(shè)計(jì)并調(diào)試程序,提出疑問(wèn),找出實(shí)驗(yàn)的不足之處;2011.05.29對(duì)實(shí)驗(yàn)進(jìn)行進(jìn)一步的完善,實(shí)驗(yàn)驗(yàn)證,讓老師考核并完成課程設(shè)計(jì)報(bào)告。指導(dǎo)教師(簽字): 年 月 日系(教研室)主任(簽字): 年 月 日微機(jī)原理與接口技術(shù)課程設(shè)計(jì)說(shuō)明書基于8255A的聲光報(bào)
4、警設(shè)計(jì)起止日期:2011年 5月23日 至 2011年 5月29日學(xué)生姓名劉霞班級(jí)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)號(hào)08408100207成績(jī)指導(dǎo)教師(簽字)計(jì)算機(jī)與通信學(xué)院2011年 5 月 29 日目 錄一、設(shè)計(jì)目的1二、設(shè)計(jì)內(nèi)容1三、設(shè)計(jì)基本原理13.1 關(guān)鍵芯片8255A相關(guān)知識(shí)13.1.1 8255A的內(nèi)部結(jié)構(gòu)13.1.2 8255A的芯片引腳信號(hào)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 設(shè)計(jì)思路10
5、3.3.1 設(shè)計(jì)思想103.3.2 提出問(wèn)題與解決問(wèn)題103.3.3 硬件連線實(shí)現(xiàn)103.3.4 軟件實(shí)現(xiàn)123.4 設(shè)計(jì)體會(huì)與展望13參考文獻(xiàn):13附錄源程序代碼13基于8255A的聲光報(bào)警設(shè)計(jì)一、設(shè)計(jì)目的微機(jī)原理與接口技術(shù)是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的重要基礎(chǔ)課之一,課程緊密結(jié)合專業(yè)特點(diǎn),圍繞微型計(jì)算機(jī)原理和應(yīng)用主題,系統(tǒng)介紹微型計(jì)算機(jī)的基本知識(shí),基本組成,體系結(jié)構(gòu)和工作模式。通過(guò)該設(shè)計(jì),掌握串行通信的基本原理和應(yīng)用,掌握8255并行接口和8253定時(shí)計(jì)數(shù)器的使用,并掌握相應(yīng)的程序設(shè)計(jì)和電路設(shè)計(jì)的技能。是對(duì)并行通信接口芯片和定時(shí)計(jì)數(shù)芯片章節(jié)理論學(xué)習(xí)的總結(jié)和補(bǔ)充,為后續(xù)的硬件課程的學(xué)習(xí)打下基礎(chǔ)。二
6、、設(shè)計(jì)內(nèi)容利用8253的分頻功能實(shí)現(xiàn)報(bào)警聲,即頻率1高1低的警報(bào)聲,同事LED燈也配合一閃一閃。1、對(duì)8253進(jìn)行初始化編程,對(duì)8255進(jìn)行初始化編程;2、根據(jù)設(shè)計(jì)要求,連接相應(yīng)的電路;3、編寫程序?qū)崿F(xiàn)聲光報(bào)警效果。三、設(shè)計(jì)基本原理3.1 關(guān)鍵芯片8255A相關(guān)知識(shí)3.1.1 8255A的內(nèi)部結(jié)構(gòu)一:數(shù)據(jù)端口A、B、C、8255A有三個(gè)8位數(shù)據(jù)端口,即端口A、端口B、端口C。設(shè)計(jì)人員可以用軟件使它們分別作為輸入端口或輸出端口。不過(guò),這三個(gè)端口有著各自的特點(diǎn)。(一)端口A端口A對(duì)應(yīng)1個(gè)8位數(shù)據(jù)輸入鎖存器和1個(gè)8位數(shù)據(jù)輸出鎖存器/緩沖器,所以,用端口A作為輸入或輸出時(shí),數(shù)據(jù)均收到鎖存。(二)端口B
7、端口B對(duì)應(yīng)1個(gè)8位數(shù)據(jù)輸入緩沖器和1個(gè)8位數(shù)據(jù)輸出鎖存器/緩沖器。(三)端口C端口C對(duì)應(yīng)1個(gè)8位數(shù)據(jù)輸入緩沖器和1個(gè)8位數(shù)據(jù)輸出鎖存器/緩沖器。這樣,當(dāng)端口C作為輸入端口時(shí),對(duì)數(shù)據(jù)不作鎖存,而作為輸出端口時(shí),對(duì)數(shù)據(jù)進(jìn)行鎖存。在使用中,端口A和端口B常常作為獨(dú)立的輸入端口或者輸出端口,端口C則配合端口A和端口B的工作。具體地講,端口C常常通過(guò)控制命令被分成2個(gè)4位端口,每個(gè)4位端口包含1個(gè)4位的輸入緩沖器和1個(gè)4位的輸出鎖存器/緩沖器,它們分別用來(lái)位端口A和端口B提供控制信號(hào)和狀態(tài)信號(hào)。二:A組控制和B組控制這兩組控制電路一方面接收芯片內(nèi)部總線上的控制字,一方面接收來(lái)自讀寫控制邏輯電路的讀寫命令
8、,據(jù)此而決定兩組端口的工作方式和讀寫操作。A組控制電路控制端口A和端口C的高4位(PC7-PC4)的工作方式和讀寫操作。B組控制電路控制端口B和端口C的底4位(PC3-PC0)的工作方式和讀寫操作。三:讀寫控制邏輯電路讀寫控制邏輯電路負(fù)責(zé)管理8255A的數(shù)據(jù)傳輸過(guò)程。它接收CS及來(lái)系統(tǒng)地址總線的信號(hào)A1、A0(在8086系統(tǒng)中位A2、A1)和控制總線的信號(hào)RESET、WR、RD,將這些信號(hào)進(jìn)行組合后,得到對(duì)A組控制部件和B組控制部件的控制命令,并將命令發(fā)給這兩個(gè)部件,以完成對(duì)數(shù)據(jù)、狀態(tài)信息和控制信息的傳輸。四:數(shù)據(jù)總線緩沖器這是一個(gè)雙向三態(tài)的8位數(shù)據(jù)緩沖器,8255A正是通過(guò)它與系統(tǒng)數(shù)據(jù)總線相
9、連。輸入數(shù)據(jù)、輸出數(shù)據(jù)以及CPU發(fā)給8255A的控制字都是通過(guò)這個(gè)緩沖器傳遞的。3.1.2 8255A的芯片引腳信號(hào)具體的芯片引腳功能。1、和外設(shè)一邊相連的信號(hào)·PA7-PA0 A組數(shù)據(jù)信號(hào);·PB7-PB0 B組數(shù)據(jù)信號(hào);·PC7-PC0 C組數(shù)據(jù)信號(hào)。2、和CPU一邊相連的信號(hào)·RESET 復(fù)位信號(hào),高電平有效。RESET信號(hào)來(lái)到時(shí),所有內(nèi)部寄存器都被清除,同時(shí),3個(gè)數(shù)據(jù)端口被自動(dòng)設(shè)為輸入端口。· 它們是8255A的數(shù)據(jù)線,和系統(tǒng)數(shù)據(jù)總線相連。· 芯片選擇信號(hào),低電平有效。在一個(gè)系統(tǒng)中,一般根據(jù)全部接口芯片來(lái)分配若干較低地位(比如
10、A5、A4、A3、)組成各種芯片選擇碼,當(dāng)這幾位地址組成某一個(gè)代碼時(shí),譯碼器便往8255A的CS端輸出一個(gè)低電平,于是,8255A被選中。只有當(dāng)CS有效時(shí),讀信號(hào)RD和信號(hào)WR才對(duì)8255A有效。· 芯片寫入信號(hào),低電平有效。當(dāng)WR有效時(shí),CPU可以往8255A中寫入控制字或數(shù)據(jù)。·、 端口選擇信號(hào)。8255A內(nèi)部有3個(gè)數(shù)據(jù)端口和1個(gè)控制端口。規(guī)定當(dāng)A1、A0位00時(shí),選中A端口;為01時(shí),選中B端口;為10時(shí),選中C端口;為11時(shí),選中控制口。在8086系統(tǒng)中,采用16為數(shù)據(jù)總線,進(jìn)行數(shù)據(jù)傳輸時(shí),CPU總是將低8位數(shù)據(jù)線上的數(shù)據(jù)送往偶地址端口,而將高8位數(shù)據(jù)線上的數(shù)據(jù)送往
11、奇地址端口;反過(guò)來(lái),從偶地址端口取得的數(shù)據(jù)總是通過(guò)低8位數(shù)據(jù)線傳送到CPU,從奇地址端口取得的數(shù)據(jù)總是通過(guò)高8位數(shù)據(jù)線送到CPU。所以,當(dāng)8255A的D7-D0接到系統(tǒng)總線的低8位時(shí)(為了硬件上連接的方便,實(shí)際系統(tǒng)中常常這樣連接),從CPU一邊看來(lái),要求8255A的4個(gè)端口地址必須全為偶地址。為了既滿足這個(gè)要求,又滿足8255A本身規(guī)定4個(gè)端口地址為00、01、10、11的要求,所以,在8086系統(tǒng)中,將8255A的A1段和地址總線的A2相連,而將8255A的A0端和地址總線的A1相連,并且,CPU在對(duì)8255A的端口進(jìn)行訪問(wèn)時(shí),將地址總線的A0位總是設(shè)置位0。3.1.3 8255A的控制字8
12、255A可以通過(guò)指令在控制端口中設(shè)置控制字來(lái)決定它的工作。控制字分為兩類。一類是芯片各端口的方式選擇控制字,它可以使8255A的3個(gè)數(shù)據(jù)端口工作在不同的工作方式。方式選擇控制字總是將3個(gè)數(shù)據(jù)端口分為兩組來(lái)設(shè)定工作方式,即端口A和端口C的高4為作為一組,端口B和端口C的低4位作為一組。另一類是C端口按位置1/置0控制字,它可以使C端口中的任何一位進(jìn)行置位或復(fù)位。方式選擇控制字的第7位總是1,而端口C置1/置0控制字的第7位總是0,8255A正是通過(guò)這一位來(lái)識(shí)別這兩個(gè)同樣寫入控制端口中的控制字到底是哪一類,所以,第7位稱為標(biāo)識(shí)位。1稱為方式選擇控制字的標(biāo)識(shí)位,0稱為C端口按位置1/置0控制字的標(biāo)識(shí)
13、符。1、 方式選擇控制字對(duì)8255A的方式選擇控制字,我們作下面幾點(diǎn)說(shuō)明: 8255A有三種基本工作方式:·方式0 基本的輸入輸出方式·方式1 選通的輸入輸出方式·方式2 雙向傳輸方式 端口A可以工作在三種工作方式中的任何一種,端口B只能工作在方式0或方式1,端口C則常常配合端口A和端口B工作,為這兩個(gè)端口的輸入輸出傳輸提供控制信號(hào)和狀態(tài)信號(hào)??梢?,只有端口A能工作在方式2. 歸為同一組的兩個(gè)端口可以工作在輸入方式和輸出方式,并不要求同為輸入方式或同為輸出方式。而一個(gè)端口具體到底作為輸入端口還是輸出端口,這也由方式選擇控制字來(lái)決定。2、端口C置1/置0控制字端口C
14、的數(shù)位常常作為控制位使用,所以,在設(shè)計(jì)8255A芯片時(shí),使端口C中的各數(shù)位可以用置1/置0控制字單獨(dú)設(shè)置。當(dāng)8255A接收到寫入控制口的控制字時(shí),就會(huì)對(duì)最高即標(biāo)識(shí)位進(jìn)行測(cè)試。如為1,則將此字節(jié)作為方式選擇控制字寫入控制字寫入控制寄存器;如為0,則此字節(jié)就作為對(duì)端口C的置1/置0控制字來(lái)處理。端口C置1/置0控制字的具體格式。對(duì)C端口置1/置0控制字,我們作為如下幾點(diǎn)說(shuō)明: C端口置1/置0控制字盡管是對(duì)端口C進(jìn)行操作,但此控制字必須寫入控制口,而不是寫入C端口。 置1/置0控制字的D0位決定了是置1操作還是置0操作。如為1,則對(duì)端口C中某一位置1,如為0,則置0。 置1/置0控制字的D2、D1
15、 、D0位決定了對(duì)C端口中的哪一位進(jìn)行操作。 置1/置0控制字的D6、D5 、D4位可為1,也可為0,它們不影響置1/置0操作。但D7位必須為0,它是對(duì)C端口置1/置0控制字的標(biāo)識(shí)符。3.1.3 8255A的工作方式一方式0(1)方式0的工作特點(diǎn)方式0也叫基本輸入輸出方式。在這種方式下,端口A和端口B可以通過(guò)方式選擇安規(guī)定為輸入口或者輸出口,端口C分為兩個(gè)4位端口,高4位為一個(gè)端口,低4位為一個(gè)端口。這兩個(gè)4位端口也可由方式選擇字規(guī)定為輸入口和輸出口。概括地說(shuō),方式0的基本特點(diǎn)如下: 任何一個(gè)端口可作為輸入口,也可作為輸出口,各端口之間沒(méi)有規(guī)定必然的關(guān)系。 各個(gè)端口的輸入或輸出,可以有16種不
16、同的組合,所以可以選用于多種重用場(chǎng)合。(2)方式0的輸入輸出時(shí)序?yàn)榱肆私庖粋€(gè)端口工作在方式0的含義,下面,我們來(lái)分析一下方式0的時(shí)序關(guān)系。在分析時(shí)序時(shí),應(yīng)該著重注意兩個(gè)方面:一是要弄清每個(gè)信號(hào)的發(fā)出者和承受者;二是要弄明白各個(gè)信號(hào)之間的先后因果關(guān)系。(3)方式0的使用場(chǎng)合方式0的使用場(chǎng)合有兩種,一種是同步傳送,另一種是查詢式傳送。在同步傳送時(shí),發(fā)送方和接收方的動(dòng)作由一個(gè)時(shí)序信號(hào)來(lái)管理,所以,雙方互相知道對(duì)方的動(dòng)作,不需要應(yīng)答信號(hào),也就是說(shuō),CPU不需要查詢外設(shè)的狀態(tài)。這種情況下,對(duì)接口的要求很簡(jiǎn)單,只要能傳送數(shù)據(jù)就行了。因此,在同步傳輸下使用8255A時(shí),三個(gè)數(shù)據(jù)端口可以實(shí)現(xiàn)三路數(shù)據(jù)傳輸。 查
17、詢式傳輸時(shí),需要有應(yīng)答信號(hào)。信號(hào),在方式0情況下,沒(méi)有規(guī)定固定的應(yīng)答信號(hào),所以,這時(shí)將端口A和端口B作為數(shù)據(jù)端口,把端口C的4個(gè)數(shù)位(高4位或者低4位均可)規(guī)定為輸出口,用來(lái)輸出一些輸出一些控制信號(hào),而把端口C的另外4個(gè)數(shù)位規(guī)定為輸入口,用來(lái)讀入外設(shè)的狀態(tài)。這樣就利用端口C配合了端口A和端口B的輸入輸出操作。二方式1(1)方式1的工作特點(diǎn)方式1也叫選通的輸入輸出方式。和方式0相比,最重要的差別是A端口和B端口用方式1進(jìn)行輸入輸出傳輸時(shí),要利用端口C提供的選通信號(hào)應(yīng)答信號(hào),而這些信號(hào)與端口C的數(shù)位之間有著固定的對(duì)應(yīng)關(guān)系,這種關(guān)系不是程序可以改變的,除非改變工作方式。(2)方式1輸入情況下有關(guān)信號(hào)
18、的規(guī)定和輸入時(shí)序當(dāng)端口A工作在方式1并作為輸入端口時(shí),端口C的數(shù)位PC4作為選通信號(hào)輸入端,PC5 作為輸入緩沖區(qū)滿信號(hào)輸出端IBFA,PC3則作為中斷請(qǐng)求信號(hào)輸出端INTRA。當(dāng)端口B工作在方式1并作為輸入端口時(shí),端口C的數(shù)位PC2作為選通信號(hào)輸入端,PC1作為輸入緩沖區(qū)滿信號(hào)輸出端IBFB,PC0則作為中斷請(qǐng)求信號(hào)輸出端INTRB。這些數(shù)位和信號(hào)之間的對(duì)應(yīng)關(guān)系是在對(duì)端口設(shè)定工作方式時(shí)自動(dòng)確定的,不需要程序員干預(yù);而且,一旦確定了某個(gè)端口工作于方式1,程序員也就無(wú)法改變端口C的數(shù)位與信號(hào)之間的對(duì)應(yīng)關(guān)系,除非重新設(shè)置方式選擇控制字。當(dāng)8255A的端口A和端口B都工作在方式1的輸入情況時(shí),端口C
19、的PC0-PC5共6個(gè)數(shù)位都被定義,只剩下PC6、PC7這位還未用。此時(shí),方式選擇控制字的D3位用來(lái)定義PC6和PC7的數(shù)據(jù)傳輸方向。當(dāng)D3為1時(shí),PC6和PC7這2位作為輸入來(lái)用;當(dāng)D3為0時(shí),PC6和PC7作為輸出來(lái)用。8255A選通輸入操作(方式1)及內(nèi)部結(jié)構(gòu)。 方式1選通輸入信號(hào)定義。 各定義信號(hào)功能如下: -STB選通信號(hào),外設(shè)通知端口接收并鎖定數(shù)據(jù); IBF輸入緩沖器滿, 通知外設(shè)已收到數(shù)據(jù),CPU取走數(shù)據(jù)后,變低,外設(shè)可再發(fā)數(shù)據(jù)。 INTR 中斷請(qǐng)求輸出 INTE 中斷允許PC4:A組/PC2:B組置1(允許)/0(禁止) PC7,PC6 端口C引腳7與6,可以作為通用的I/O引
20、腳 (3)方式1輸出情況下有關(guān)信號(hào)的規(guī)定和輸出時(shí)序當(dāng)端口A工作在方式1并作為輸出端口時(shí),端口C的數(shù)位PC7作為輸出緩沖器滿信號(hào)輸出端,PC6作為外設(shè)接收數(shù)據(jù)后的響應(yīng)信號(hào)輸入端,PC3則作為中斷請(qǐng)求信號(hào)INTRA輸出端。當(dāng)端口B工作在方式1并作為輸出端口時(shí),端口C的數(shù)據(jù)PC1作為輸出緩沖器滿信號(hào)輸出端,PC2作為外設(shè)接收數(shù)據(jù)后的響應(yīng)信號(hào)輸入端,PC0則作為中斷請(qǐng)求信號(hào)INTRB輸出端。方式1選通輸出。方式1選通輸出信號(hào)定義。-OBF輸出緩沖器滿,表示CPU將數(shù)據(jù)寫到相應(yīng)的端口;當(dāng)外設(shè)取走數(shù)據(jù)后變高,從而使INTR產(chǎn)生中斷信號(hào)。-ACK響應(yīng)信號(hào),外設(shè)收到OBF信號(hào)后,讀端口,并發(fā)該信號(hào),使-OBF
21、引腳回到邏輯1INTR 中斷請(qǐng)求信號(hào) INTE 中斷允許信號(hào)PC4:A組/PC2:B組置1(允許)/0(禁止) PC5、PC4 端口C位5與位4作為通用的I/O引腳 (4)方式1的使用場(chǎng)合在方式1下,規(guī)定一個(gè)端口作為輸入口或者輸出口的同時(shí),自動(dòng)規(guī)定了有關(guān)的控制信號(hào)和狀態(tài)信號(hào),尤其是規(guī)定了相應(yīng)的中斷請(qǐng)求信號(hào)。這樣,在許多采用中斷方式進(jìn)行輸入輸出的場(chǎng)合,如果外部設(shè)備能為8255A提供選通信號(hào)或者數(shù)據(jù)接收應(yīng)答信號(hào),那么常常使8255A的端口工作于方式1。用方式1比用方式0更加方便有效。3.2 8253功能原理3.2.1 8253的結(jié)構(gòu)和工作原理(1)編程結(jié)構(gòu)8253內(nèi)部有三個(gè)計(jì)數(shù)器.分別稱為計(jì)數(shù)器0
22、、計(jì)數(shù)器1、計(jì)數(shù)器2。它們的結(jié)構(gòu)完全相同,每個(gè)計(jì)數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制字,互相工作完全獨(dú)立,每個(gè)計(jì)數(shù)器通過(guò)在三不念舊惡引腳和外部聯(lián)系.一個(gè)為時(shí)鐘輸入端CLK.,一個(gè)為門控信號(hào)輸入端GATE,另一個(gè)為輸出端的OUT。每個(gè)計(jì)數(shù)器內(nèi)部有一個(gè)8位的控制寄存器,還有一個(gè)子16位的計(jì)數(shù)初值寄存器CR、一個(gè)計(jì)數(shù)執(zhí)行部件CE和一個(gè)輸出的鎖相器OL。(2)8253的工作原理數(shù)據(jù)總線緩沖器。這是8253與CPU數(shù)據(jù)總線連接的8位雙向三態(tài)緩沖器。CPU向8253輸入指令和某通道的計(jì)數(shù)值,以及讀取8253計(jì)數(shù)器中的計(jì)數(shù)值,都是通過(guò)這8條總線傳送的。讀/寫邏輯。這是8253內(nèi)部操作的控制部分。
23、8253內(nèi)部寄存器由A0、A1、RD、WR決定??刂谱旨拇嫫?。在8253初始化編程時(shí),由CPU寫入控制字以決定計(jì)數(shù)器的工作方式。此寄存器只能寫入而不能讀出。計(jì)數(shù)器#0、計(jì)數(shù)器#1、計(jì)數(shù)器#2。這是三個(gè)計(jì)數(shù)器/定時(shí)器,每一個(gè)都是由一個(gè)16位的可預(yù)置值的減法計(jì)數(shù)器構(gòu)成。這三個(gè)計(jì)數(shù)器的操作是完全獨(dú)立的。每個(gè)通道包含了1個(gè)16位計(jì)數(shù)寄存器CR、16位的減1計(jì)算單元CE、16位的計(jì)數(shù)輸出鎖存器OL。CPU寫入的計(jì)數(shù)值存放在CR中(初值),計(jì)數(shù)的情況反應(yīng)在OL中,OL可以由CPU讀出。計(jì)數(shù)單元CE每收到一個(gè) CLK時(shí)針脈沖,就自動(dòng)減1,當(dāng)然,減1操作還受到GATE信號(hào)的控制。在CE減1至0時(shí),通過(guò)OUT輸
24、出一個(gè)電平或脈沖3.2.2 8253控制寄存器的格式8253控制寄存器的格式如下:BCD位用來(lái)設(shè)置計(jì)數(shù)值格式1:計(jì)數(shù)值為BCD碼格式2:計(jì)數(shù)值為二進(jìn)制格式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 :對(duì)計(jì)數(shù)器進(jìn)行鎖存操作,使當(dāng)前計(jì)數(shù)值在輸出鎖存器中鎖定,以便讀出。0 1 :只讀寫低8位字節(jié)。1 0 :只讀寫高8位字節(jié)11 :先讀寫低8位字節(jié),再讀寫高8位字節(jié)。SC0和SC1用來(lái)選擇計(jì)數(shù)器,具體對(duì)應(yīng)關(guān)系如
25、下:0 0 :計(jì)數(shù)器00 1 :計(jì)數(shù)器11 0 :計(jì)數(shù)器211 :無(wú)意義3.2.3 8253的編程命令規(guī)則如下:(1) 對(duì)計(jì)數(shù)器設(shè)置初始值前必須先定控制字。(2) 初始值設(shè)置時(shí),要符合控制字中的格式規(guī)定,即只寫低位字節(jié)還是只寫高位字節(jié),者高低字節(jié)都寫,控制字中一旦規(guī)定,具體初始設(shè)定時(shí)就要一致。3.2.4 8253的工作模式模式0計(jì)完最后一個(gè)數(shù)時(shí)中斷在這種方式下,當(dāng)控制字CW(Control Word)寫入控制字寄存器,則使OUT輸出端變低,此時(shí)計(jì)數(shù)器沒(méi)有賦予初值,也沒(méi)開始計(jì)數(shù)。要開始計(jì)數(shù),GATE信號(hào)必須為高電平,并在寫入計(jì)數(shù)初值LSB后,通道開始計(jì)數(shù),在計(jì)數(shù)過(guò)程中 OUT線一直維持為低,直到
26、計(jì)數(shù)到“0”時(shí)。OUT輸出變高。注意:(1)方式0 不能自動(dòng)重復(fù)計(jì)數(shù),每次需寫入初值。(2)在計(jì)數(shù)期間,如果GATE變低,則停止計(jì)數(shù),直到GATE變高后,繼續(xù)計(jì)數(shù)(不是重新計(jì)數(shù))。(3)如果GATE一直為高電平,則,8253在寫入初值后開始計(jì)數(shù)。(4)在計(jì)數(shù)期間,如果CPU寫入新值,則8253按新值繼續(xù)計(jì)數(shù)。 模式1可編程序的單拍脈沖在這種方式下,當(dāng)CPU寫控制字之后(的上升沿),OUT輸出將保持為高(若原為低,則由低變高)。當(dāng)CPU寫完計(jì)數(shù)值后,計(jì)數(shù)器并不開始計(jì)數(shù),直到外部門控脈沖GATE啟動(dòng)之后的下一個(gè)輸入CLK脈沖的下降沿開始計(jì)數(shù),輸出OUT變低。因整個(gè)計(jì)數(shù)過(guò)程中,OUT都維持為低,直到
27、計(jì)數(shù)到0,輸出變?yōu)楦?,因此,輸出為一個(gè)單拍負(fù)脈沖,脈沖寬度為 N 個(gè)T。若外部再次觸發(fā)啟動(dòng),則可以再產(chǎn)生一個(gè)單拍脈沖。注意:(1)每次GATE的一個(gè)啟動(dòng)脈沖使CE重新計(jì)數(shù);且在CE計(jì)數(shù)期間,如果GATE產(chǎn)生一個(gè)啟動(dòng)脈沖,也會(huì)使CE重新計(jì)數(shù)。(2)在CE計(jì)數(shù)期間,如果CPU向CR寫入新的初值,不會(huì)影響當(dāng)前計(jì)數(shù),直到計(jì)數(shù)完成,或產(chǎn)生一個(gè)新的GATE脈沖,CE用新的值計(jì)數(shù)。模式2速率發(fā)生器在這種方式下,當(dāng)CPU輸出控制字后,OUT輸出將為高。在寫入計(jì)數(shù)值后,計(jì)數(shù)器將立即自動(dòng)對(duì)輸入時(shí)鐘CLK計(jì)數(shù)。在計(jì)數(shù)過(guò)程中輸出始終保持為高,直至計(jì)數(shù)器減到1時(shí),輸出將變低,經(jīng)過(guò)一個(gè)CLK周期,輸出恢復(fù)為高,且計(jì)數(shù)器開
28、始重新計(jì)數(shù)。注意:(1)在計(jì)數(shù)期間,GATE需一直保持高電平,當(dāng)GATE變低時(shí),計(jì)數(shù)暫停,直到GATE變高,CE重新計(jì)數(shù);(2)CE計(jì)數(shù)結(jié)束后,重新裝入CR的初值,并自動(dòng)計(jì)數(shù);(3)在CE計(jì)數(shù)期間,CPU寫入的初值對(duì)當(dāng)前計(jì)數(shù)不產(chǎn)生影響,CE計(jì)數(shù)結(jié)束后,自動(dòng)以新的初值計(jì)數(shù)。模式3方波速率發(fā)生器方式3和方式2的輸出都是周期性的,它們的主要區(qū)別是,方式3在計(jì)數(shù)過(guò)程中OUT輸出有一半時(shí)間為高,另一半時(shí)間為低。具體地說(shuō),當(dāng)初值N為偶數(shù)時(shí),OUT的高低輸出各一半,當(dāng)N為奇數(shù)時(shí),高電平為(N+1)/2,低電平為(N-1)/2。模式4軟件觸發(fā)選通在這種方式下,當(dāng)寫入控制字后,輸出為高(原為高則保持為高,原為低
29、則變?yōu)楦撸?。?dāng)寫入計(jì)數(shù)值后立即開始計(jì)數(shù)(相當(dāng)于軟件啟動(dòng)),當(dāng)計(jì)數(shù)到0后,輸出變低,經(jīng)過(guò)一個(gè)輸入時(shí)鐘周期,輸出又變高,計(jì)數(shù)器停止計(jì)數(shù)。這種方式計(jì)數(shù)也是一次性的,只有在輸入新的計(jì)數(shù)值后,才能開始新的計(jì)數(shù)。 模式5硬件觸發(fā)選通在這種方式下,設(shè)置了控制字后,輸出為高。在設(shè)置了計(jì)數(shù)值后,計(jì)數(shù)器并不立即開始計(jì)數(shù),而是由門控脈沖的上升沿觸發(fā)啟動(dòng)。當(dāng)計(jì)數(shù)到0時(shí),輸出變低,經(jīng)過(guò)一個(gè)CLK脈沖,輸出恢復(fù)為高,停止計(jì)數(shù)。要等到下次門控脈沖的觸發(fā)才能再計(jì)數(shù)。注意:(1)在CPU寫入初值后,CE不開始計(jì)數(shù),直到有一個(gè)GATE啟動(dòng)脈沖;(2)在計(jì)數(shù)期間,CPU寫入新的初值,不影響當(dāng)前計(jì)數(shù),直到有一個(gè)新的GATE脈沖;在計(jì)
30、數(shù)期間,新的GATE脈沖使CE重新計(jì)數(shù);(3)CE計(jì)數(shù)結(jié)束后,不會(huì)自動(dòng)重新計(jì)數(shù),只有一個(gè)新的GATE脈沖時(shí),才開始重新計(jì)數(shù);3.3 設(shè)計(jì)思路3.3.1 設(shè)計(jì)思想本小組的實(shí)驗(yàn)主要通過(guò)可編程芯片8255A實(shí)現(xiàn)對(duì)代碼輸入器的設(shè)計(jì)。實(shí)驗(yàn)電路圖見圖1-圖3,我們的實(shí)驗(yàn)思想是:通過(guò)實(shí)驗(yàn)MFID通用微機(jī)實(shí)驗(yàn)平臺(tái)系統(tǒng)上的8255A和兩個(gè)數(shù)碼管,八個(gè)鍵控開關(guān)及若干導(dǎo)線來(lái)實(shí)現(xiàn)我們這個(gè)設(shè)計(jì)。實(shí)驗(yàn)將8255A的端口A的PA0-PA7與分別與LED的L1-L8相連,端口C的PC6與鍵音調(diào)接口相連,端口C的PC2與按鍵SW3相連,起對(duì)發(fā)聲器的控制作用,將模塊電源中斷跳線2,跳線3分別設(shè)置跳線。當(dāng)從鍵控輸入將輸?shù)拇a后按下
31、單脈沖按鈕,然后就在LED上顯示出燈光的閃動(dòng)效果,并將該代碼存在首地址為0303H的地方8255A的初始化入口地址,并將0300H地址作為L(zhǎng)ED的全滅初始化字,向DX中設(shè)置0303H時(shí)候關(guān)閉SPK的作用,地址0302H3.3.2 提出問(wèn)題與解決問(wèn)題(1)當(dāng)代碼設(shè)置好后,由手動(dòng)按鈕觸發(fā)使8255A讀取這個(gè)代碼,如何通過(guò)8255A的端口實(shí)現(xiàn)?這是課程設(shè)計(jì)的一個(gè)重難點(diǎn)。具體的解決方案是:將8255A的PC1端口與觸發(fā)按鈕相連(如附錄圖1所示),這樣連接的思路是:當(dāng)8255A工作在選通的輸入輸出方式,在這種工作方式下,PC1端口表示的是IBF(緩沖器滿信號(hào),高電平有效)它是8255A輸出的狀態(tài)信號(hào),當(dāng)
32、它有效時(shí),表示當(dāng)前已有一個(gè)新的數(shù)據(jù)在緩沖器中,此信號(hào)一般供CPU查詢用。IBF信號(hào)是由STB信號(hào)使其置位的,而由讀信號(hào)RD的后沿即上升使其復(fù)位。當(dāng)代碼設(shè)置好后,就按下下觸發(fā)按鈕,給PC1端口一個(gè)高電平,告訴8255A數(shù)據(jù)緩沖器滿,這時(shí)8255A就會(huì)從開關(guān)讀取其狀態(tài)。(2)如何將用戶輸入的代碼在兩位的數(shù)碼管上用十六進(jìn)制顯示出來(lái),八位二進(jìn)制的代碼與十六進(jìn)制的代碼的轉(zhuǎn)換也是這次課程設(shè)計(jì)的重難點(diǎn)。如下表所示就是我們實(shí)驗(yàn)要用到的七段數(shù)碼管的字型代碼表,在程序中通過(guò)查這個(gè)字型代碼表就可以將八進(jìn)制的代碼順利轉(zhuǎn)換成十六進(jìn)制的代碼、并將代碼用十六進(jìn)制在數(shù)碼管上顯示出來(lái)。3.3.3 硬件連線實(shí)現(xiàn)聲光報(bào)警器原理示意
33、圖如下:圖1 聲-光報(bào)警器模塊電路原理框圖硬件連線:跳線設(shè)置:單線將模塊電源L區(qū)JP7和JP8跳線;排線將模塊電源L區(qū)JP8跳線連接;單線連法如下圖2所示:圖2 單線連接圖排線連接法如下圖3所示:圖3 排線連接圖3.3.4 軟件實(shí)現(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聲光報(bào)警總流程圖3.4 課程設(shè)計(jì)心得體會(huì) 從此次微機(jī)原理課程設(shè)計(jì)中我學(xué)到了不少,不僅鞏固了以前所學(xué)過(guò)的理論知識(shí),更有很多
34、在書本上所不能學(xué)到的內(nèi)容,像如何和同學(xué)更好地交流和合作,怎樣在小組合作中最大限度的提高自己的水平,懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正為社會(huì)服務(wù),從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。最重要的是動(dòng)手實(shí)踐能力在此過(guò)程中得到了一定程度的提升。總而言之,通過(guò)整個(gè)小組成員的努力和積極討論,在愉快中我們很好的完成了自己的任務(wù),成功地設(shè)計(jì)模擬出了我們的聲光報(bào)警器。當(dāng)程序執(zhí)行時(shí),看著實(shí)驗(yàn)箱上那一閃一閃的彩色燈光,聽著那“滴滴滴.”的“報(bào)警聲”,心中不禁產(chǎn)生了那么一份小小的成就感!最后,在此,真心感謝同學(xué)們,尤其是同
35、組成員的相互幫助,感謝老師辛勤耐心的指導(dǎo)!參考文獻(xiàn):1 戴梅萼. 微型計(jì)算機(jī)技術(shù)及應(yīng)用,清華大學(xué)出版社, 2008年2 彭楚武. 微機(jī)原理與接口技術(shù), 湖南大學(xué)出版社, 2006年3 艾德才. 32位微機(jī)原理及接口技術(shù), 清華大學(xué)出版社, 2003年附錄源程序代碼;+ ; Aexp.asm(聲-光報(bào)警器接口實(shí)驗(yàn)) + ; 聲-光控制程序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 ;初始化延時(shí)變量為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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中國(guó)疏水橡膠地墊市場(chǎng)現(xiàn)狀分析及前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)電熱式揭蓋洗碗碟機(jī)市場(chǎng)現(xiàn)狀分析及前景預(yù)測(cè)報(bào)告
- 2025年中國(guó)電動(dòng)給水電氣熱水瓶項(xiàng)目投資可行性研究報(bào)告
- 2025年中國(guó)豬光革項(xiàng)目投資可行性研究報(bào)告
- 2025年中國(guó)焊接硬密封蝶閥數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 每日公務(wù)員面試題及答案
- 夾具鉗工考試試題及答案
- 韓語(yǔ)寫作考試試題及答案
- 社工考試試題及答案
- 股份合作協(xié)議書
- 贈(zèng)與合同協(xié)議書模板
- 焊工電工考試試題及答案
- 新印花稅法試題及答案
- 【MOOC期末】《大學(xué)生計(jì)算與信息化素養(yǎng)》(北京林業(yè)大學(xué))期末中國(guó)大學(xué)慕課MOOC答案
- (高清版)JTGT 3365-02-2020 公路涵洞設(shè)計(jì)規(guī)范
- 政務(wù)服務(wù)中心物業(yè)服務(wù)投標(biāo)方案
- 法律職業(yè)倫理(第二版)完整版教學(xué)課件全書電子講義(最新)
- 水利水電工程畢業(yè)設(shè)計(jì)---水閘設(shè)計(jì)
- 醫(yī)用耗材分類目錄 (低值 ╱ 高值)
- 小學(xué)數(shù)學(xué)總復(fù)習(xí)-數(shù)的認(rèn)識(shí)講義
- 2020山西中考模擬百校聯(lián)考試卷(一)道德與法治答題卡
聯(lián)系客服
本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。人人文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知人人文庫(kù)網(wǎng),我們立即給予刪除!
- 川公網(wǎng)安備: 51019002004831號(hào) | 備案號(hào):蜀ICP備2022000484號(hào)-2 | 經(jīng)營(yíng)許可證: 川B2-20220663
-
Copyright ? 2020-2025 renrendoc.com 人人文庫(kù)版權(quán)所有 違法與不良信息舉報(bào)電話:400-852-1180
評(píng)論
0/150
提交評(píng)論