微機原理課設(shè)模擬電風(fēng)扇工作_第1頁
微機原理課設(shè)模擬電風(fēng)扇工作_第2頁
微機原理課設(shè)模擬電風(fēng)扇工作_第3頁
微機原理課設(shè)模擬電風(fēng)扇工作_第4頁
微機原理課設(shè)模擬電風(fēng)扇工作_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 課 程 設(shè) 計 報 告課程設(shè)計名稱:微機系統(tǒng)綜合課程設(shè)計課程設(shè)計題目:模擬電風(fēng)扇工作院(系):計算機學(xué)院專 業(yè):計算機科學(xué)與技術(shù) 目 錄第1章 總體設(shè)計方案11.1 設(shè)計原理11.2 設(shè)計思路11.3 實驗環(huán)境2第2章 詳細設(shè)計方案32.1 硬件電路設(shè)計32.2主程序設(shè)計42.3 功能選擇模塊的設(shè)計與實現(xiàn)5計時模塊流程圖5顯示模塊流程圖6改變風(fēng)速模塊流程圖6第3章 結(jié)果測試及分析73.1 結(jié)果測試73.2結(jié)果分析7參考文獻8附 錄9第1章 總體設(shè)計方案1.1 設(shè)計原理利用芯片8259,8255,8253,8279,分別控制中斷,單色發(fā)光二極管,時鐘,和LED顯示。用受8253控制的8259給

2、8255和8279產(chǎn)生每秒鐘一次的中斷,控制單色發(fā)光二極管和LED的顯示。1.2 設(shè)計思路首先需要一個總開關(guān),用來控制電風(fēng)扇的開關(guān),可以用8255的輸入端A接收這一信號,信號為1時進入循環(huán),此時單色發(fā)光二極管不亮,當(dāng)不為1時執(zhí)行下一步。其次需要實現(xiàn)的功能是三級風(fēng)速的變換,可以設(shè)計三個變換延時的子程序,并根據(jù)鍵盤輸入的不同來分別調(diào)用這三個步驟。再次是要實現(xiàn)定時功能,用8253和8259實現(xiàn)這一功能并不困難,當(dāng)時間減為零時,向8255的AL中輸入OFFH,使單色發(fā)光二極管不顯示。還有就是單色發(fā)光二極管的顯示問題,只需將8255中控制單色發(fā)光二極管顯示的數(shù)據(jù)循環(huán)左移或右移即可。(1) 提出方案總開關(guān)

3、是用來控制風(fēng)扇的啟動停止的,所以只需有兩種狀態(tài),即開和關(guān),所以,選擇用實驗箱右下角的開關(guān)來實現(xiàn)這一功能。為了能顯示風(fēng)扇的轉(zhuǎn)動,選用8255和實驗箱上的8個單色發(fā)光二極管來顯示風(fēng)扇的轉(zhuǎn)動。為了實現(xiàn)定時功能,選用8253定時,8259產(chǎn)生中斷,用中斷程序來控制定時。由于定時時需要顯示倒計時,所以還需要8279鍵盤顯示接口芯片。(2) 方案論證1) 用8255和單色發(fā)光二極管模擬風(fēng)扇的轉(zhuǎn)動,所以,可以將8255的B口設(shè)為工作在方式0,輸出狀態(tài),然后通過輸出不同二進制數(shù)來控制單色發(fā)光二極管的顯示,通過循環(huán)右移使單色發(fā)光二極管循環(huán)顯示來實現(xiàn)風(fēng)扇轉(zhuǎn)動的模擬。2) 用右下角的開關(guān)控制風(fēng)扇的轉(zhuǎn)動與停止,所以,

4、可將8255A口設(shè)為方式0,輸入狀態(tài),來讀取開關(guān)的狀態(tài),然后在程序中判斷輸入的是1還是0,進而控制風(fēng)扇的轉(zhuǎn)動與停止。3) 為了實現(xiàn)定時的功能,可以用8253的分頻功能,將輸入的脈沖信號分頻,以輸出1HZ的脈沖信號,然后輸入到8259的INT0以產(chǎn)生周期為1s的中斷,即每秒鐘進一次中斷,在中斷服務(wù)程序中來實現(xiàn)時間的遞減,當(dāng)減到0時就將風(fēng)扇停止,這樣就實現(xiàn)了定時功能了。4) 為了實現(xiàn)三級風(fēng)速的選擇和定時功能、定時時間的變化顯示等功能,需要8279的鍵盤顯示功能,在鍵盤上設(shè)置A,B,C三個鍵分別控制三級風(fēng)速,再設(shè)置一個D按鍵來控制定時功能的選擇,當(dāng)按下定時功能鍵D后,還需要鍵盤的數(shù)字鍵來實現(xiàn)定時時間

5、的設(shè)定,設(shè)定完成后還需再次按下D鍵來確認。最后就是用數(shù)碼管顯示時間的變化了。1.3 實驗環(huán)境·硬件環(huán)境:AEDK實驗箱,PC機。·軟件環(huán)境:LCA88ET應(yīng)用軟件。第2章 詳細設(shè)計方案2.1 硬件電路設(shè)計K1硬件電路由鍵盤顯示接口芯片8279構(gòu)成,如圖2.1所示。 Pa0 Pb0 Pb7 cs8279Clk1 out1Gate1 8253 clk0Out0 cs gate0 Int08259 cs20020722822fDL8 DL1csPc0Pc3脈沖源210217220227圖2.1 硬件電路連線圖8279是可編程設(shè)置型鍵盤/顯示芯片,其特點是:(1)可同時進行鍵盤掃描

6、及文字顯示;(2)鍵盤掃描模式;(3)傳感器掃描模式;(4)激發(fā)輸入模式;(5)8乘8鍵盤FIFO;(6)具有接點消除抖動,2鍵鎖定及N鍵依次讀出模式;(7)雙排8位數(shù)或雙排16位數(shù)顯示器;(8)右邊進入或左邊進入,16字符或8字符顯示。8255的A口工作在方式0,輸入;B口工作在方式0,輸出;C口工作在方式0,輸出;8253將脈沖源分頻,產(chǎn)生周期為1s的脈沖信號,驅(qū)動8259產(chǎn)生周期為1s的中斷。8255、8259、8253、8279的端口地址分別接210H-217H、220H-227H、200H-207H、228H-22FH。2.2 主程序設(shè)計下載到實驗箱之后,由主控開關(guān)K控制程序運行,調(diào)

7、節(jié)風(fēng)速和設(shè)定定時由中斷程序?qū)崿F(xiàn),電風(fēng)扇模擬轉(zhuǎn)動由8個單色燈實現(xiàn)。當(dāng)開關(guān)K斷開或者定時到達時,電風(fēng)扇停轉(zhuǎn),程序結(jié)束。圖2.2 主程序流程圖2.3 功能選擇模塊的設(shè)計與實現(xiàn)計時模塊流程圖計時器模塊,主要實現(xiàn)對電風(fēng)扇的定時功能,并在定時期間支持改變風(fēng)速的功能,對設(shè)定的時間進行減一操作,當(dāng)剩余時間為0時,則停止電風(fēng)扇的工作,結(jié)束程序。NYYYYYNNNN保存寄存器計時是否為0秒位是否為0分位是否為010秒位是否為010分位是否為0秒位變?yōu)?恢復(fù)寄存器10秒位減110分位減1分位減1秒位減110秒位變?yōu)?分位變?yōu)?10分位變?yōu)?數(shù)碼管顯示圖 功能選擇模塊流程圖2.3.2顯示模塊流程圖用于模擬電風(fēng)扇的轉(zhuǎn)速

8、和旋轉(zhuǎn)方向,由一個循環(huán)右移實現(xiàn),使單色燈循環(huán)點亮。開始FLAGFLAG1AL0FEHYNAL循環(huán)右移1結(jié)束圖 顯示模塊流程圖2.3.3改變風(fēng)速模塊流程圖通過鍵盤的輸入,8259產(chǎn)生中斷,程序讀取輸入內(nèi)容,A,B,C為改變風(fēng)速,當(dāng)讀取到相應(yīng)的內(nèi)容時,改變?yōu)橄鄳?yīng)的風(fēng)速。開始判斷輸入改變結(jié)束圖 改變風(fēng)速模塊流程圖第3章 結(jié)果測試及分析3.1 結(jié)果測試 編譯并連接程序,然后全速運行,在數(shù)碼管上就顯示計時器的時間,開始時是全0。此時單色發(fā)光二極管為全滅。將開關(guān)K1向上扳去,此時8255的PA0口輸入高電平,PB口輸出使單色發(fā)光二極管循環(huán)亮燈。即以一定的速度循環(huán)點亮八個燈,模擬出了電風(fēng)扇的轉(zhuǎn)動。當(dāng)需要改變

9、風(fēng)速時,只需按下鍵盤上的A、B、C鍵,便可切換風(fēng)速。當(dāng)需要設(shè)定運行時間時,只需要按下D鍵,則進入定時狀態(tài),接著只需按下鍵盤上的數(shù)字鍵,設(shè)定好定時的時間,然后再按下D鍵,風(fēng)扇就將在設(shè)定的時間內(nèi)轉(zhuǎn)動,并且在數(shù)碼管上顯示時間的變化,以一秒為單位逐漸減少,當(dāng)減到0時,風(fēng)扇就將停止轉(zhuǎn)動,單色燈全滅,如此便實現(xiàn)了定時功能。如要讓單色燈再亮,則需將總開關(guān)關(guān)掉再打開。3.2 結(jié)果分析開始運行時,發(fā)現(xiàn)單色發(fā)光二極管并不是按理想順序逐漸點亮紅色,而是與風(fēng)扇轉(zhuǎn)動方向相反,檢查硬件連線卻并沒有發(fā)現(xiàn)錯誤,后來,檢查程序時發(fā)現(xiàn)將循環(huán)右移的代碼寫錯了,從而導(dǎo)致了與旋轉(zhuǎn)方向相反的循環(huán)點亮順序,改正后完美運行。風(fēng)扇正常運行了,

10、但是在定時時發(fā)現(xiàn)數(shù)碼管上的時間變化過于緩慢,于是檢查8253芯片的初始化程序,發(fā)現(xiàn)CLK1的輸入時倍數(shù)太大,于是將其數(shù)值調(diào)小后運行,發(fā)現(xiàn)時間變化回歸正常。實驗結(jié)果總的來說基本實現(xiàn)了課設(shè)的要求,雖然有些小問題和還會有些不穩(wěn)定,這些問題我會在以后的不斷學(xué)習(xí)中進行完善 。參考文獻1王愛英.計算機組成與設(shè)計 M 北京:教育出版社, 20032楊素行.微型計算機系統(tǒng)原理及應(yīng)用 M 北京: 清華大學(xué)出版社, 19963張雪蘭.匯編語言程序設(shè)計 M 北京: 清華大學(xué)出版社, 20064龔尚福.微機原理與接口技術(shù) M 西安: 西安電子科技大學(xué)出版社, 20035王中民.微型計算機原理 M 西安: 西安電子科技

11、大學(xué)出版社, 20036沈美明,溫冬嬋.IBM-PC匯編語言程序設(shè)計M 北京: 清華大學(xué)出版社, 2001附 錄程序清單:data segment isend db 0 n0 db 0 n1 db 0 n2 db 0 isright db 1 keykind db 0 oldkey db 0 kind db 0 isstop db 0 flags db 0 numbers db 3fh,6,5bh,0,0,0,0,0,0,0data endscode segment assume cs:code,ds:datamain:;主程序 cli mov ax,cs mov ds,ax mov kind

12、,0 mov isright,1 mov keykind,0ah mov oldkey,0ah mov kind,0 mov isstop,0 mov flags,0 mov isend,0 mov n0,0 mov n1,0 mov n2,0 call initnumbers call init8255 call init8259 call init8253 call modifyint mov dx,212h mov al,0 out dx,al call cleardevice call display mov al,0 mov dx,22ah out dx,al mov al,30h

13、out dx,al mov al,7fh stidowhat: push axdowait: mov al,0ffh;單色燈清零 mov dx,211h out dx,al mov dx,210h in al,dx test al,1;判斷開關(guān) jz dowait pop ax call readakey cmp keykind,0ah jnz a1 mov kind,2 call gotonext jmp aaa1:;判斷風(fēng)速改變 cmp keykind,0bh jnz a2 mov kind,1 call gotonext jmp aaa2: cmp keykind,0ch jnz a3

14、mov kind,0 call gotonext jmp aaa3: cmp keykind,0dh jnz a4 push ax mov dx,212h mov al,0 out dx,al pop ax mov isstop,0 push ax mov al,oldkey mov keykind,al call reading mov dx,212h mov al,0ffh out dx,al pop ax sti jmp aaa4: cmp keykind,0eh jnz aa not flags push ax mov al,oldkey mov keykind,al pop axaa

15、: jmp dowhatgotonext:;單色燈循環(huán)亮滅 mov dx,211h out dx,al cmp flags,0 jnz noror ror al,1noror: cmp al,0feh jnz continue jmp continuecontinue: cmp kind,2 jnz mm1 call speed2 jmp mm3mm1:;改變風(fēng)速 cmp kind,1 jnz mm2 call speed1 jmp mm3mm2: cmp kind,0 jnz mm3 call speed0mm3: push axmm33: cmp isstop,0 jz mm4 mov d

16、x,211h mov al,0ffh out dx,al mov dx,210h in al,dx test al,1 jnz mm33 mov isstop,0 climm4: pop ax retreadakey:;讀取鍵盤輸入 push ax mov al,keykind mov oldkey,al mov dx,22ah in al,dx and al,0fh cmp al,0 jz gotoexit mov al,40h mov dx,22ah out dx,al mov dx,228h in al,dx mov keykind,algotoexit: pop ax retspeed

17、1:;速度設(shè)置 push cx mov cx,18000sp1: loop sp1 pop cx retspeed2: push cx mov cx,50000sp2: loop sp2 pop cx retspeed0: push cx mov cx,8000sp0: loop sp0 pop cx retreadisd:key: mov dx,22ah in al,dx and al,0fh cmp al,0 jz key mov al,40h out dx,al mov dx,228h in al,dx cmp al,0dh jnz key retreading:;輸入時間 push a

18、x mov n0,0 mov n1,0 mov n2,0 call readanumber mov n0,al call display call readanumber cmp al,0dh jz readexit mov ah,n0 mov n0,al mov n1,ah call display call readanumber cmp al,0dh jz readexit mov ah,n0 mov n0,al mov al,n1 mov n1,ah mov n2,al call display call readisdreadexit: pop ax retreadanumber:k

19、ey2: mov dx,22ah in al,dx and al,0fh cmp al,0 jz key2 mov al,40h out dx,al mov dx,228h in al,dx retinitnumbers: push bx mov bx,offset numbers mov byte ptrbx,3fh mov byte ptrbx+1,6 mov byte ptrbx+2,5bh mov byte ptrbx+3,4fh mov byte ptrbx+4,66h mov byte ptrbx+5,6dh mov byte ptrbx+6,7dh mov byte ptrbx+

20、7,7 mov byte ptrbx+8,7fh mov byte ptrbx+9,6fh pop bx retdisplay:;時間顯示 call cleardevice mov bx,offset numbers mov al,80h mov dx,22ah out dx,al mov al,n0 xor ah,ah add bx,ax mov al,bx mov dx,228h out dx,al mov bx,offset numbers mov al,81h mov dx,22ah out dx,al mov dx,228h mov al,n1 xor ah,ah add bx,ax

21、 mov al,bx out dx,al mov bx,offset numbers mov al,82h mov dx,22ah out dx,al mov dx,228h mov al,n2 xor ah,ah add bx,ax mov al,bx out dx,al retintcount: push ax push bx push dx cmp n0,0 jz next1 dec n0 jmp next4next1: mov n0,9 cmp n1,0 jz next2 dec n1 jmp next4next2: mov n1,9 cmp n2,0 jz next3 dec n2

22、jmp next4next3: mov n2,9next4: cmp n0,0 jnz next5 cmp n1,0 jnz next5 cmp n2,0 jnz next5 mov isstop,1 mov dx,212h mov al,0 out dx,alnext5: call display pop dx pop bx pop ax iretinit8255: mov al,90h mov dx,213h out dx,al retinit8259: mov al,13h mov dx,220h out dx,al mov dx,221h mov al,30h out dx,al mov al,3 out dx,al mov al,0feh out dx,al retmodifyint: push ds push bx push ax xor ax,ax mov ds,ax mov bx,30h*4 mov ax,offset intcount mov bx,ax mov ax,8100h mov bx+2,ax pop ax pop bx pop ds retinit8253: push ax mov al,35h mov dx,203h out dx,al mov ax,0ffffh mov

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論