版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 目錄</b></p><p> 一、設(shè)計(jì)目的………………………………………………………………………2</p><p> 二、設(shè)計(jì)內(nèi)容與要求………………………………………………………………2</p><p> 三、設(shè)計(jì)原理與硬件電路…………………………………………………………2</p><p
2、> 四、接線電路圖與實(shí)物電路圖……………………………………………………3</p><p> 五、程序流程圖……………………………………………………………………4</p><p> 六、程序代碼………………………………………………………………………5</p><p> 七、程序及硬件系統(tǒng)調(diào)試情況……………………………………………………9</p>
3、;<p> 八、設(shè)計(jì)總結(jié)與體會(huì)………………………………………………………………9</p><p> 九、參考文獻(xiàn)………………………………………………………………………10</p><p><b> 一、設(shè)計(jì)目的</b></p><p> 課程設(shè)計(jì)是培養(yǎng)和鍛煉學(xué)生在學(xué)習(xí)完本門(mén)課后綜合應(yīng)用所學(xué)理論知識(shí),解決實(shí)際工程設(shè)計(jì)和應(yīng)用問(wèn)
4、題的能力的重要環(huán)節(jié)。通過(guò)課程設(shè)計(jì),熟悉和掌握微機(jī)系統(tǒng)的硬件設(shè)計(jì)的方法、原理、設(shè)計(jì)步驟。熟練掌握微機(jī)系統(tǒng)與接口擴(kuò)展電路的設(shè)計(jì)方法,熟練應(yīng)用8086匯編語(yǔ)言編寫(xiě)應(yīng)用程序和實(shí)際設(shè)計(jì)中的硬軟件調(diào)試方法和步驟。不僅要培養(yǎng)學(xué)生事實(shí)求是和嚴(yán)肅認(rèn)真的工作態(tài)度,培養(yǎng)學(xué)生的實(shí)際動(dòng)手能力,檢驗(yàn)學(xué)生對(duì)本門(mén)課學(xué)習(xí)的情況,更要培養(yǎng)學(xué)生在實(shí)際的工程設(shè)計(jì)中查閱資料,撰寫(xiě)設(shè)計(jì)報(bào)告表達(dá)設(shè)計(jì)思想和結(jié)果的能力。</p><p><b> 二
5、、設(shè)計(jì)內(nèi)容與要求</b></p><p> 硬件設(shè)計(jì)題十一 閃爍燈</p><p> 利用8253實(shí)現(xiàn)閃爍燈效果,并最終通過(guò)鍵盤(pán)輸入指定時(shí)間實(shí)現(xiàn)定時(shí)閃爍,同時(shí)利用七段數(shù)碼管倒計(jì)時(shí)輔助顯示閃爍時(shí)間,實(shí)現(xiàn)定時(shí)設(shè)定功能。比如:按下鍵盤(pán)9號(hào)鍵,則LED燈開(kāi)始每秒閃爍一下,9秒后停止閃爍,實(shí)現(xiàn)定時(shí)閃爍;同時(shí)數(shù)碼管從9開(kāi)始倒計(jì)時(shí)顯示輔助顯示閃爍時(shí)間。</p><p
6、> 三、設(shè)計(jì)原理與硬件電路</p><p> 啟動(dòng)后,通過(guò)8255的C口開(kāi)始掃描鍵盤(pán)。當(dāng)有鍵按下時(shí),排除抖動(dòng)的可能并且判斷釋放該鍵后,得到鍵碼。然后通過(guò)8255的A口送出倒計(jì)時(shí)的碼值,通過(guò)8255的PB0啟動(dòng)8253的分頻電路,得1s方波,驅(qū)動(dòng)LED閃爍。</p><p> 鍵盤(pán)上按鍵的位置采用掃描法得到。行線接+5V,作為8255的C口低四位輸入,列線由8255高四位輸出,逐
7、列輸出0。檢測(cè)C口高四位是否有0,若有則該列所在行的鍵即為按下的鍵。當(dāng)然逐列掃描前要先判斷是否有鍵按下,并延時(shí)后,再次判斷有無(wú)鍵按下,以排除鍵盤(pán)抖動(dòng)的可能性。</p><p> 鍵盤(pán)按鍵的鍵碼的確定。當(dāng)然我們可以對(duì)每一種情況進(jìn)行賦值,但考慮到只用到1~9鍵,為了精簡(jiǎn)程序,采用以下特殊方法確定鍵碼。由下圖可以發(fā)現(xiàn),1~9鍵中,下一列都比前一列同一行的值多1。抓住這一特點(diǎn),將每列的初值Y0~Y2依次設(shè)為0、1、2,
8、則X2行的該列的鍵碼就是在該列初值的基礎(chǔ)上加1合成;同理X1行加4與列初值合成,X0行加7與列的初值合成。在確定了鍵碼后,要等鍵釋放后才能執(zhí)行相應(yīng)的操作。</p><p> 8253實(shí)現(xiàn)將1MHz的信號(hào)分頻成1Hz的方波的功能,然后用于驅(qū)動(dòng)LED。分頻須使用</p><p> 兩個(gè)通道級(jí)聯(lián)實(shí)現(xiàn),而8253的啟動(dòng)右8255的PB0來(lái)控制。</p><p> 四、
9、接線電路圖與實(shí)物電路圖</p><p><b> 五、程序流程圖</b></p><p><b> 六、程序代碼</b></p><p> code segment </p><p> assume cs:code,ds:code <
10、/p><p> start: mov ax , cs </p><p> mov ds , ax</p><p> lea di , ledtab</p><p> mov al , 35h ; 通道0初始化 ,00110101b,16位,方式2,BCD</p&g
11、t;<p> mov dx , 20bh </p><p> out dx , al</p><p> mov al , 00h ; 寫(xiě)初值1000BCD</p><p> mov dx , 208h</p><p> out dx , al</p><p>
12、; mov al , 10h</p><p> out dx , al</p><p> mov al , 77h ; 通道1初始化 ,01110111b,16位,方式3,BCD</p><p> mov dx , 20bh </p><p> out dx , al</p>&l
13、t;p> mov al , 00h ; 寫(xiě)初值1000BCD</p><p> mov dx , 209h</p><p> out dx , al</p><p> mov al , 10h</p><p> out dx , al </p><p> mov
14、 al , 81h ; 8255初始化 ,10000001b,c口低四位輸入 ,</p><p><b> 其余均為輸出</b></p><p> mov dx , 203h</p><p> out dx , al</p><p> wait2:mov dx , 201h
15、 ; B口清零,PB0=0,無(wú)方波,LED暗 </p><p> mov al , 00h</p><p> out dx , al </p><p> mov dx , 200h ; A口清零,數(shù)碼管暗</p>&
16、lt;p> mov al , 00h </p><p> out dx , al </p><p> ks1 : call ks ; 讀取按鍵</p><p> cmp al , 0fh ; 判斷有無(wú)鍵閉合(行有無(wú)低電平)&l
17、t;/p><p> jz ks1 ; 無(wú)鍵閉合</p><p> mov cx , 0f0h ; 延時(shí),去抖</p><p> loop1: loop loop1</p><p><b> call ks</b></p><p&
18、gt; cmp al , 0fh ; 再次判斷有無(wú)鍵閉合</p><p><b> jz ks1</b></p><p> mov bh , 0efh ; 初始化列碼,11101111b,準(zhǔn)備檢測(cè)第一列</p><p> mov bl , 00h
19、 ; 初始化列值</p><p><b> jz k1</b></p><p> cmp al , 0bh ; 第三行(4)?</p><p><b> jz k4</b></p><p> cmp al , 07h
20、 ; 第四行(7)?</p><p><b> jz k7</b></p><p> next : rol bh , 1 ; 列碼左移一位</p><p> inc bl ; 列值加一</p><p>
21、 cmp bh , 0feh ; 判斷該鍵掃描是否結(jié)束</p><p> jnz again </p><p> jmp ks1 </p><p> k0 : add bl , 0 ; 與列值合成鍵碼</p><p> jmp wait1&
22、lt;/p><p> k1 : add bl , 1</p><p> jmp wait1</p><p> k4 : add bl , 4</p><p> jmp wait1</p><p> k7 : add bl , 7</p><p> wait1:
23、 call ks</p><p> cmp al , 0fh ; 判斷鍵是否釋放</p><p> jnz wait1 ; 鍵未釋放,等待!</p><p> jmp flash ; 進(jìn)行閃爍和顯示 </p><p> fl
24、ash: mov bh , 00h</p><p> add di , bx</p><p> count: mov al , [di] ; 數(shù)碼管倒計(jì)時(shí)顯示</p><p> mov dx , 200h</p><p> out dx , al</p><p>
25、;<b> dec di</b></p><p> mov dx , 201h ; 用的b0控制的Gate1,使8253產(chǎn)生1S方波</p><p> mov al , 01h</p><p> out dx , al</p><p> call delay</p>
26、<p><b> dec bl </b></p><p> jnz count ;用bl(鍵盤(pán)值)控制循環(huán)次數(shù)</p><p> jmp wait2 </p><p> ks proc near ;讀取按鍵</p>&l
27、t;p> mov dx , 202h</p><p> mov al , 0fh</p><p> out dx , al ;使所有列線為低電平</p><p> in al , dx ;讀取行值</p><p> and al , 0
28、fh ;屏蔽高4位</p><p><b> ret</b></p><p><b> ks endp</b></p><p> delay proc near ;循環(huán)4*65536次,延遲0.02ms </p>
29、<p> push ax </p><p><b> push cx</b></p><p><b> push bx</b></p><p> mov bx , 4 </p><p> delay2:loop delay2</p>&l
30、t;p><b> dec bx</b></p><p> jnz delay1</p><p><b> pop bx</b></p><p><b> pop cx</b></p><p><b> pop ax</b></p&
31、gt;<p><b> ret</b></p><p> delay endp</p><p> ledtab db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh </p><p> code ends</p><p><b>
32、 end start</b></p><p> 七、程序及硬件系統(tǒng)調(diào)試情況</p><p> 按上面電路圖連線,8253接地址208h~20bh,8255接地址200h~203h。全速運(yùn)行后,燈滅,數(shù)碼管暗。此時(shí)按下鍵盤(pán)上的任意一個(gè)數(shù)字鍵,等鍵釋放后,燈開(kāi)始每秒閃爍一次,數(shù)碼管顯示倒計(jì)時(shí),當(dāng)數(shù)碼管顯示到0時(shí),燈停止閃爍,實(shí)現(xiàn)定時(shí)閃爍功能及數(shù)碼管輔助顯示。</p>
33、<p> 調(diào)試過(guò)程中遇到的主要問(wèn)題和解決辦法:</p><p> 發(fā)現(xiàn)數(shù)碼管顯示錯(cuò)誤,其他均正確。分別檢測(cè)數(shù)碼管和送碼值的8255的A口,發(fā)現(xiàn)都是好的,確定是自己程序的問(wèn)題。多次檢測(cè)后發(fā)現(xiàn)自己犯了一個(gè)低級(jí)錯(cuò)誤:設(shè)置了數(shù)據(jù)段。在利用實(shí)驗(yàn)儀提供的實(shí)驗(yàn)環(huán)境調(diào)試程序時(shí),不使用數(shù)據(jù)段,偽指令放在代碼段中。</p><p><b> 八、設(shè)計(jì)總結(jié)與體會(huì)</b>
34、</p><p> 微機(jī)原理課程設(shè)計(jì)已經(jīng)接近尾聲,雖然這次課程設(shè)計(jì)只有短短的4個(gè)半天,但是對(duì)于我們鞏固期末復(fù)習(xí)的成果,通過(guò)實(shí)踐進(jìn)一步加深理論知識(shí)的理解是意義重大的。</p><p> 這次我做的是閃爍燈,課題中用到了鍵盤(pán)、數(shù)碼管、8255、8253等。通過(guò)這次課程設(shè)計(jì),我能夠熟練的編寫(xiě)匯編程序來(lái)使用這些硬件來(lái)實(shí)現(xiàn)特定的功能。盡管我只做了一個(gè)題目,但在做完之后,也思考了其他部分題目,我認(rèn)
35、為這些硬件題目都大同小異,只要有設(shè)計(jì)思路,就一定能編寫(xiě)出程序。</p><p> 這次另一個(gè)重要的收獲就是下載到調(diào)試程序,軟件調(diào)試只能解決語(yǔ)法上的錯(cuò)誤,而對(duì)于程序思路算法上的錯(cuò)誤不能檢測(cè)。這就需要我們下載到實(shí)驗(yàn)箱上,硬件調(diào)試。當(dāng)發(fā)現(xiàn)不能達(dá)到預(yù)期的效果時(shí),根據(jù)“缺失的或錯(cuò)誤的”效果,定位程序中錯(cuò)誤的地方,加以改正!</p><p> 而在定位程序錯(cuò)誤時(shí),必須先排除硬件本身的實(shí)效!這也是我
36、們應(yīng)該學(xué)會(huì)的“技術(shù)”,這個(gè)其實(shí)對(duì)我們的要求也很高,這必須建立在對(duì)程序和硬件等很熟悉的基礎(chǔ)上。在排除硬件故障時(shí),常用的有兩種方法:一是編寫(xiě)一個(gè)小程序來(lái)檢查芯片的好壞;還有一種是在源程序調(diào)試中,檢測(cè)各處是否出現(xiàn)相應(yīng)的高低電平(接燈,亮為低電平,不亮為高電平)。</p><p> 總之,這次課程設(shè)計(jì)很成功,提高了動(dòng)手實(shí)踐能力,同時(shí)又加深了理論知識(shí)的理解,現(xiàn)在能夠熟練應(yīng)用8086匯編語(yǔ)言編寫(xiě)應(yīng)用程序,并學(xué)會(huì)了實(shí)際設(shè)計(jì)中
37、的硬件調(diào)試方法和步驟,熟悉微機(jī)系統(tǒng)的硬軟件開(kāi)發(fā)工具的使用方法。</p><p> 最后再次感謝這次課程設(shè)計(jì)中的所有指導(dǎo)老師,有了你們,我們才能這么快速的進(jìn)步!</p><p><b> 九、參考文獻(xiàn)</b></p><p> 徐晨,陳繼紅,王春明,徐慧.微機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2004,334-337</p>
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計(jì)--霓虹燈閃爍控制設(shè)計(jì)
- 課程設(shè)計(jì)--廣告牌燈自動(dòng)閃爍plc控制程序設(shè)計(jì)
- 課程設(shè)計(jì)-led燈
- led燈課程設(shè)計(jì)
- 日光燈、調(diào)光燈課程設(shè)計(jì)
- 交通燈課程設(shè)計(jì)
- 聲控?zé)粽n程設(shè)計(jì)論文
- 課程設(shè)計(jì)交通燈
- 課程設(shè)計(jì)—交通燈
- 交通燈課程設(shè)計(jì)
- 聲控?zé)粽n程設(shè)計(jì)論文
- 交通控制燈課程設(shè)計(jì)
- 交通燈課程設(shè)計(jì)
- 交通燈課程設(shè)計(jì)
- 樓道聲控?zé)粽n程設(shè)計(jì)
- 霹靂燈課程設(shè)計(jì)報(bào)告
- 交通燈課程設(shè)計(jì)
- 微機(jī)原理課程設(shè)計(jì)--8個(gè)開(kāi)關(guān)控制霓虹燈閃爍,有數(shù)碼管顯示
- 單片機(jī)課程設(shè)計(jì)-led燈點(diǎn)陣課程設(shè)計(jì)
- 交通燈課程設(shè)計(jì) (2)
評(píng)論
0/150
提交評(píng)論