課程設(shè)計實驗報告_第1頁
課程設(shè)計實驗報告_第2頁
課程設(shè)計實驗報告_第3頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計實驗報告 競賽搶答器計科 0201 班第五小組 張國成 7 號競賽搶答器一、需求分析本實驗要求大家了解微機化競賽搶答器的基本原理,進(jìn)一步學(xué) 習(xí)使用并行接口 8255芯片,以及8253定時計數(shù)器的六種工作方 式,中斷的基本概念,中斷服務(wù)子程序的編寫。二、功能描述基本功能:在主持人按下?lián)尨痖_關(guān)后,各位選手即可開始搶 答,并在數(shù)碼管上顯示最先搶答選手的號碼。擴展功能:在主持人按下?lián)尨痖_關(guān)后,計數(shù)器開始 9秒倒計 時,若倒計時結(jié)束后沒有人搶答,則本輪搶答無效,進(jìn)入下一輪。三、概要設(shè)計由于本次實驗要用到數(shù)碼顯示、中斷控制、倒計時等功能,故 初步分析需要8255、8259、8253等芯片。下圖為競

2、賽搶答器(模 擬)的原理圖,邏輯開關(guān) K0K7代表競賽搶答器按鈕07號,當(dāng)某 個邏輯電平開關(guān)置“ 1”時,相當(dāng)某組搶答按鈕按下,在七段數(shù)碼 管上將其組號(07)顯示出來。1A21S噩眾1 2 3 <- 1 2 3 4 TTTTITTT 11112222-G1-G21 141 1iI日缸0 <1審日 d h05 S J !5 e5 £右IM B255csF F E r F F F2 rr c ft n n n"|7n夕t1 c511 4II1b11卜 «2881T28J1I * * 電* ET KB K5 K4 E3 12 KI E019四、方案論證在計

3、數(shù)器每次計數(shù)結(jié)束后,對于全局變量 counter 的減一操作 有兩種方式,一個是通過不斷掃描計數(shù)器是否計數(shù)結(jié)束,另一種是 通過 8253 芯片計數(shù)結(jié)束產(chǎn)生中斷。方案一: 通過對 8253 計數(shù)器的控制端口寫控制字進(jìn)行鎖存,然后 用一個讀命令讀出計數(shù)器中的數(shù)放寄存器 ax 中,通過比 較 ax 中的數(shù)是否為零來判斷這次計數(shù)是否結(jié)束。若為 零,就使 counter 減一。方案二: 將 8253 的輸出接到 8259 的中斷輸入端,通過 8253 計數(shù) 結(jié)束產(chǎn)生中斷來控制,在中斷服務(wù)子程序中對 counter 減一操作。方案比較: 方案一采用掃描,沒有用到 8259,程序編制簡單,但是 cpu 耗費

4、了更多的時間在掃描,效率相對來說較低。方 案二采用中斷,程序結(jié)構(gòu)化更為清晰,且 cpu 少了循 環(huán)掃描的時間,效率較高。但是多用了一個 8259 中斷 控制芯片,程序編制上涉及到中斷服務(wù)子程序的編 寫,稍顯復(fù)雜。可見兩種方案各有優(yōu)劣。方案選擇: 經(jīng)過小組討論,先采用方案二,完成基本和擴展功能。 若有時間,再采用方案一完成實驗。五、模塊劃分 由于本次課程設(shè)計采用團隊合作的形式,故要將本次實驗進(jìn)行 模塊劃分,小組成員要了解全部程序流程,但是主要是完成自己負(fù) 責(zé)的功能模塊。組長負(fù)責(zé)協(xié)調(diào)監(jiān)督指導(dǎo)小組成員,并完成最后的程 序的連調(diào)工作。具體劃分如下:尚海濤、王祁遠(yuǎn):負(fù)責(zé) 8253 計數(shù)張國成、吳小龍:負(fù)

5、責(zé) 8259 中斷 楊德娜、唐益文:負(fù)責(zé) 8255 并行接口 每天的文檔工作由各自詳細(xì)記錄自己今天的工作進(jìn)度以及程序 調(diào)試的過程和心得體會,并附上自己開發(fā)模塊的文檔說明,最后交 由組長整合在一起,構(gòu)成當(dāng)天的開發(fā)文檔。六、詳細(xì)設(shè)計1) 8255 芯片簡介 8255,是一個典型的可編程并行接口芯片。 8255 具有三個相互應(yīng)獨立的 8 位并行輸入輸出端口,即端口 A ,端口 B 和端口 C, 其中端口 C 分為兩個 4 位來配合端口 A 和端口 B 工作,它為INTEL 系列 CPU 與外設(shè)之間提供 TTL 電平兼容的接口。8255A 可以工作在方式 0,方式 1,方式 2 三種方式,其中端 口

6、A 可以工作在這 3 種不同的方式下,而端口 B 只能工作在方式 0 和方式1,端口 C配合A 口和B 口工作。8255A 沒有設(shè)置專門的聯(lián)絡(luò)信號線,但是可以使用端口中的某 些端口中的某些位來的擔(dān)任。端口 A 、B 和 C 可以配合使用,來構(gòu) 成所需的單線,雙線或三線聯(lián)絡(luò)信號的并行接口。8255 的內(nèi)部結(jié)構(gòu)與CPU接口部分8255與 CPU 的接口部分通過數(shù)據(jù)總線緩沖器和讀 /寫控制邏輯。 數(shù)據(jù)總線緩沖器;這是一個 8 位雙向三態(tài)緩沖器, 8255A 通過它與 CPU 的系統(tǒng)數(shù) 據(jù)總線連接。 CPU 所有的輸入 /輸出數(shù)據(jù), CPU 通過輸出指令發(fā)給 8255A 的控制字和用輸入指令讀入的外設(shè)

7、的當(dāng)前狀態(tài)信息,都是通 過這個數(shù)據(jù)緩沖器傳送的。 讀/寫控制邏輯電路讀 /寫控制邏輯電路通過 6 根控制線與 CPU 連接,它負(fù)責(zé)對 8255A 的數(shù)據(jù)傳送過程進(jìn)行控制。它接收到來自 CPU 控制總線的 RESET、WRA、RDA和來自地址總線的 Ai, A。后,將這些信號進(jìn) 行組合,得到對 A 組控制部件和 B 組控制部件的相應(yīng)控制命令, 再用這些控制命令去控制這兩個部件按初始化編程的要求,去完成 對數(shù)據(jù)的輸入 /輸出,對狀態(tài)信息的讀取和控制命令的傳送。、與外設(shè)接口部分8255A 與外設(shè)的接口是通過 3 個輸入/輸出數(shù)據(jù)端口來實現(xiàn)的。 每個端口都是8位的數(shù)據(jù)端口,即端口 A、端口 B和端口

8、C,它們 都可以用軟件編程來來設(shè)置成輸入口或輸出口,這 3 個端口在功能 上有各自的特點。 端口 A端口 A 有一個 8 位的數(shù)據(jù)輸入鎖存器和一個 8位的數(shù)據(jù)輸 入/輸出鎖存器 /緩沖器,因此,端口 A 在進(jìn)行輸入或輸出時,其數(shù) 據(jù)都受到鎖存。 端口 B端口 B 有一個 8 位的數(shù)據(jù)輸入緩沖器和 1 個 8位的數(shù)據(jù)輸 出鎖存器 /緩沖器。因此,端口 B 只有在進(jìn)行輸出時,才能對數(shù)據(jù) 進(jìn)行鎖存。 端口 C端口 C有一個8位數(shù)據(jù)輸入緩沖器和一個8位的數(shù)據(jù)輸出 鎖存器 / 緩沖器。端口 C 也只能在作輸出口時,才能對數(shù)據(jù)進(jìn)行鎖存。、內(nèi)部控制邏輯8255A 的內(nèi)部控制邏輯由 A 組控制電路和 B 組控

9、制電路組成。 這兩組控制電路根據(jù) CPU寫如的控制命令字和讀/寫命令分別去控 制兩組端口的工作方式和讀/寫操作。其中A組控制電路控制端口 A 和端口 C的高4位,B組控制電路控制端口 B和端口 C低4位。2)8253 芯片8253的工作方式: . 方式 0這種方式又稱計數(shù)結(jié)束中斷方式。當(dāng) CPU寫入控制字后,使其 OUT 端變低,在 GATE信號保持高電平時,則寫入計數(shù)初值后,下一個 CLK脈沖下降沿開始計數(shù)。在計數(shù)過程中OUT端一直保持低電平,直到計數(shù)值減到0時(即計數(shù)結(jié)束)OUT端輸出變?yōu)楦?,完成一?計數(shù)過程。 . 方式 1方式1又稱為可編程單脈沖形成器。當(dāng)寫入控制字以后,OUT輸出端將

10、保持高電平。在 CPU寫入計數(shù)初值后,計數(shù)器并不開始計數(shù), 只有在門控信號GATE由低變高的上升沿之后的一個 CLK脈沖的上 升沿才開始計數(shù),并且輸出端 OUT變低。在計數(shù)過程中OUT端一直 保持低電平,直到計數(shù)結(jié)束才變高,這樣,在 OUT輸出端得到一個 單脈沖,該脈沖信號的寬度為 OUT端的低電平。 . 方式 2這個方式又可稱為頻率發(fā)生器。當(dāng) CPU寫入控制字后,輸出端 OUT 將變高,在寫入計數(shù)初值以后的下一個 CLI 脈沖的下降沿開始計 數(shù)。計數(shù)過程中OUT端始終保持高電平,當(dāng)計數(shù)值減至 1時OUT端 變?yōu)榈碗娖?,而計?shù)值減至 0時OUT端又變?yōu)楦唠娖?,同時會自動 將計數(shù)值送到執(zhí)行部件繼

11、續(xù)進(jìn)行減法計數(shù),形成連續(xù)工作,重復(fù)計 數(shù),從而輸出固定頻率的脈沖。 . 方式 3方式 3 又稱為方波發(fā)生器,它的工作方式與方式 2 很相似,都是輸 出周期性的波形,門控信號的控制作用和自動重復(fù)計數(shù)的功能與方 式2 一樣,只是OUT端輸出的波形不同。這種方式中寫入控制字以后, OUT端將為高,寫完計數(shù)初值后便可 自動開始計數(shù)。在計數(shù)過程中不斷輸出一系列方波,其方波的占空 比隨計數(shù)初值的不同而不同,即占空比可以相等也可以不相等。 . 方式 4方式4又稱為軟件脈沖觸發(fā)。這種方式中, CPU寫入控制字和計數(shù) 值后,OUT端變?yōu)楦唠娖剑坏懭胗嫈?shù)值后,下一個 CLK脈沖的 下降沿立即開始計數(shù)(相當(dāng)于軟

12、件觸發(fā)),當(dāng)計數(shù)結(jié)束后 OUT端由 高變低,并維持一個 CLK的低電平后再變高,計數(shù)器停止計數(shù)后, 只有重新寫入新的計數(shù)值,才能重新進(jìn)行新的計數(shù)過程,因此這種 計數(shù)方式也是一次性的。寫入計數(shù)初值后,計數(shù)器不會開始計數(shù), 而是要等GATE端出現(xiàn)一個上升沿來觸發(fā)啟動,并在下一個時鐘沿 才開始減法計數(shù)。計數(shù)至 0時,OUT端會變低,并維持一個 CLK周 期的低電平后再變高。因此,在 N+ 1個CLK脈沖后,在OUT端輸 出一個CLK周期的負(fù)脈沖。 .方式5方式5又稱為硬件脈沖觸發(fā)。在這種方式中,CPU寫入控制字和計數(shù)值以后,OUT端變?yōu)楦唠娖健懭胗嫈?shù)初值后,計數(shù)器不會開始 計數(shù),而是要等 GATE

13、端出現(xiàn)一個上升沿來觸發(fā)啟動,并在下一個 時鐘沿才開始減法計數(shù)。計數(shù)至 0時,OUT端會變低,并維持一個 CLK周期的低電平后再變高。因此,在N+ 1個CLK脈沖后,在OUT端輸出一個CLK周期的負(fù)脈沖。3)8259芯片8259是一個可編程的中斷控制器。PC機中斷控制器8259的地址為 20H、21H,編程時要根據(jù)中斷類型號設(shè)置中斷矢量,8259中斷屏蔽寄存器IMR對應(yīng)位要清零(允許中斷),中斷服務(wù)結(jié)束返回前 要使用中斷結(jié)束命令:MOV AL, 20H OUT 20H, AL中斷結(jié)束返回DOS時應(yīng)將IMR對應(yīng)位置1,以關(guān)閉中斷。中斷服務(wù)子程序的設(shè)計:中斷服務(wù)程序的一般結(jié)構(gòu)如下圖所示:用戶在設(shè)計中

14、斷服務(wù)子程序時要預(yù)先確定一個中斷類型號,不論是 采用軟件中斷還是硬件中斷,都只能在系統(tǒng)預(yù)留給用戶的類型號中選擇。以下是 中斷向量表:DOS系統(tǒng)功能調(diào)用法將中斷服務(wù)程序入口地址置入功能號:(AH) = 25h入口參數(shù):(AL)=中斷類型號(DS)=中斷服務(wù)程序入口地址的段地址(DX)=中斷服務(wù)程序入口地址的偏移地址,輸入端4) 七段數(shù)碼管實驗臺上的七段數(shù)碼管為共陰型,段碼采用同相驅(qū)動加高電平,選中的數(shù)碼管亮,位碼加反相驅(qū)動器,位碼輸入端高顯示字形gfedcba段碼001111113fh1000011006h210110115bh310011114fh4110011066h511011016dh6

15、11111017dh7000011107h811111117fh911011116fh電平選中。.七段數(shù)碼管的字型代碼表如下表:af bgecd七、調(diào)試分析8255并行接口模塊:本模塊可以完成本課程設(shè)計的基本功能即 搶答功能.模塊編好后進(jìn)行運行,發(fā)現(xiàn)能搶答,發(fā)現(xiàn)數(shù)碼管上顯示的 是亂碼,經(jīng)過多方測試,問題沒有解決,沒有辦法,從程序頭開始,對 準(zhǔn)書上的例子,一句一句的檢查,結(jié)果發(fā)現(xiàn)沒有將數(shù)據(jù)段的段地址放 到DX寄存器中,改后,本模塊單獨調(diào)試完成.8253倒計時模塊:由于本模塊沒有涉及到 8259中斷控制器,所 以在計數(shù)結(jié)束后只能通過查詢,首先我們采用的方式是兩個計數(shù)器 都工作在方式0,后來發(fā)現(xiàn)就是

16、不計數(shù),后來發(fā)現(xiàn),方式0是計數(shù)結(jié)束 中斷,只計數(shù)一次,再改為方式3方波發(fā)生器方式,發(fā)現(xiàn)計數(shù)比預(yù)想 的要快的多,難道還是8253的工作方式設(shè)置的不對,看來還要仔細(xì) 閱讀一下,8253的六種工作方式,結(jié)果發(fā)現(xiàn)工作方式二頻率發(fā)生器適合本題的要求 , 改后發(fā)現(xiàn)問題真的解決了 .8255 中斷控制器模塊 : 由于上個學(xué)期做過中斷的實驗 ,所以本模 塊進(jìn)行的比較順利 .八、心得體會 在這一周的微機原理課程設(shè)計里,我們小組完成了搶答器控制 實驗。第一天小組集體討論方案的可行性問題,通過這次討論,增 加了大家的團隊合作意識和完成整個課程設(shè)計的信心,并把整個程 序的模塊劃分到每個小組成員。第二天小組成員完成各自

17、負(fù)責(zé)的模 塊設(shè)計,進(jìn)展比較順利。第三天主要完成整個程序的初步連調(diào)工作 并在下午向全體同學(xué)匯報了我們組的進(jìn)展情況,由于時間倉促,初 步連調(diào)工作出現(xiàn)的問題并沒有得到有效的解決。第四天,在整個小 組成員的共同努力下,整個程序連調(diào)過程中出現(xiàn)的問題一個個都得 到了解決,程序的所有功能按預(yù)期目標(biāo)得到實現(xiàn)。最后一天,各個 小組成員交付自己的開發(fā)文檔,并進(jìn)行總結(jié)、歸納成最終文檔報 告。通過這短短一周的實踐,我感覺到自己在課本上學(xué)到的理論知 識和實踐仍有一定的差距。有的知識,自己感覺已經(jīng)掌握得差不多 了,但是實際操作起來就有問題出現(xiàn)了。就拿 8253 定時計數(shù)器來 說吧,由于沒有弄明白其各個工作方式的具體工作情

18、況,在倒計時 時走了不少彎路。原以為自己的程序流程有問題,沒有想到是小小 的初始化出現(xiàn)了問題。類似這樣的問題,我們還遇到了不少,花費 了很多的時間。這讓我們重新反思我們的學(xué)習(xí),覺得這與自己當(dāng)時 不注意實驗課是分不開的。這次的課程設(shè)計,在劉軍老師的帶領(lǐng)下,讓我學(xué)到了很多書 本上學(xué)不到的東西,我們首次采用了團隊合作的方式,并且由我擔(dān) 任小組組長,所以這次我有過以前課程設(shè)計從未有過的壓力,因為 這不是個人,若我沒有做好,會影響整個團隊。這是絕對不容許 的。令人欣慰的是這次課程設(shè)計如期按質(zhì)按量完成了。經(jīng)管我們的 實驗很簡單,但是我們至少基本按照了目前社會企業(yè)中怎樣解決一 個大項目的基本流程走下來的。所以,我想,本次課程設(shè)計對我們 每個人都是影響很大的,尤其對我們這些即將走向工作崗位的同學(xué) 來說。最后,我要忠心的感謝劉老師給我這次鍛煉的機會,感謝我們 小組的每一位成員,因為成功是離不開他們的。5)了解了基本芯片后,經(jīng)過小組成員詳細(xì)討論,各個芯片的工作方 式設(shè)置如下:8255設(shè)置為C 口輸入

溫馨提示

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

評論

0/150

提交評論