微機原理課設(shè)--電風扇.doc_第1頁
微機原理課設(shè)--電風扇.doc_第2頁
微機原理課設(shè)--電風扇.doc_第3頁
微機原理課設(shè)--電風扇.doc_第4頁
微機原理課設(shè)--電風扇.doc_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

沈陽航空航天大學 課課 程程 設(shè)設(shè) 計計 報報 告告 課程設(shè)計名稱 微機系統(tǒng)綜合課程設(shè)計微機系統(tǒng)綜合課程設(shè)計 課程設(shè)計題目 模擬電風扇工作模擬電風扇工作 院 系 計算機學院 專 業(yè) 計算機科學與技術(shù) 班 級 94010103 學 號 2009040101075 姓 名 李思寧 指導(dǎo)教師 王傳云 完成日期 2012年7月13日 沈陽航空航天大學課程設(shè)計報告 I 目目 錄錄 第第 1 章章 總體設(shè)計方案總體設(shè)計方案 1 1 1 設(shè)計原理 1 1 2 設(shè)計思路 1 1 3 實驗環(huán)境 2 第第 2 章章 詳細設(shè)計方案詳細設(shè)計方案 3 2 1 硬件電路設(shè)計 3 2 2 主程序設(shè)計 4 2 3 功能選擇模塊的設(shè)計與實現(xiàn) 5 2 3 1 計時模塊流程圖 5 2 3 2 顯示模塊流程圖 6 2 3 3 改變風速模塊流程圖 6 第第 3 章章 結(jié)果測試及分析結(jié)果測試及分析 7 3 1 結(jié)果測試 7 3 2 結(jié)果分析 7 參考文獻參考文獻 8 附附 錄錄 9 沈陽航空航天大學課程設(shè)計報告 第 1 章 總體設(shè)計方案 1 第 1 章 總體設(shè)計方案 1 1 設(shè)計原理設(shè)計原理 利用芯片 8259 8255 8253 8279 分別控制中斷 單色發(fā)光二極管 時鐘 和 LED 顯示 用受 8253 控制的 8259 給 8255 和 8279 產(chǎn)生每秒鐘一次的中斷 控 制單色發(fā)光二極管和 LED 的顯示 1 2 設(shè)計思路設(shè)計思路 首先需要一個總開關(guān) 用來控制電風扇的開關(guān) 可以用 8255 的輸入端 A 接 收這一信號 信號為 1 時進入循環(huán) 此時單色發(fā)光二極管不亮 當不為 1 時執(zhí)行 下一步 其次需要實現(xiàn)的功能是三級風速的變換 可以設(shè)計三個變換延時的子程序 并根據(jù)鍵盤輸入的不同來分別調(diào)用這三個步驟 再次是要實現(xiàn)定時功能 用 8253 和 8259 實現(xiàn)這一功能并不困難 當時間減 為零時 向 8255 的 AL 中輸入 OFFH 使單色發(fā)光二極管不顯示 還有就是單色發(fā)光二極管的顯示問題 只需將 8255 中控制單色發(fā)光二極管 顯示的數(shù)據(jù)循環(huán)左移或右移即可 1 提出方案提出方案 總開關(guān)是用來控制風扇的啟動停止的 所以只需有兩種狀態(tài) 即開和關(guān) 所 以 選擇用實驗箱右下角的開關(guān)來實現(xiàn)這一功能 為了能顯示風扇的轉(zhuǎn)動 選用 8255 和實驗箱上的 8 個單色發(fā)光二極管來顯示風扇的轉(zhuǎn)動 為了實現(xiàn)定時功能 選用 8253 定時 8259 產(chǎn)生中斷 用中斷程序來控制定時 由于定時時需要顯示 倒計時 所以還需要 8279 鍵盤顯示接口芯片 2 方案論證方案論證 1 用 8255 和單色發(fā)光二極管模擬風扇的轉(zhuǎn)動 所以 可以將 8255 的 B 口設(shè)為 工作在方式 0 輸出狀態(tài) 然后通過輸出不同二進制數(shù)來控制單色發(fā)光二極 沈陽航空航天大學課程設(shè)計報告 第 1 章 總體設(shè)計方案 2 管的顯示 通過循環(huán)右移使單色發(fā)光二極管循環(huán)顯示來實現(xiàn)風扇轉(zhuǎn)動的模擬 2 用右下角的開關(guān)控制風扇的轉(zhuǎn)動與停止 所以 可將 8255A 口設(shè)為方式 0 輸入狀態(tài) 來讀取開關(guān)的狀態(tài) 然后在程序中判斷輸入的是 1 還是 0 進而 控制風扇的轉(zhuǎn)動與停止 3 為了實現(xiàn)定時的功能 可以用 8253 的分頻功能 將輸入的脈沖信號分頻 以 輸出 1HZ 的脈沖信號 然后輸入到 8259 的 INT0 以產(chǎn)生周期為 1s 的中斷 即每秒鐘進一次中斷 在中斷服務(wù)程序中來實現(xiàn)時間的遞減 當減到 0 時就 將風扇停止 這樣就實現(xiàn)了定時功能了 4 為了實現(xiàn)三級風速的選擇和定時功能 定時時間的變化顯示等功能 需要 8279 的鍵盤顯示功能 在鍵盤上設(shè)置 A B C 三個鍵分別控制三級風速 再設(shè) 置一個 D 按鍵來控制定時功能的選擇 當按下定時功能鍵 D 后 還需要鍵盤 的數(shù)字鍵來實現(xiàn)定時時間的設(shè)定 設(shè)定完成后還需再次按下 D 鍵來確認 最 后就是用數(shù)碼管顯示時間的變化了 1 3 實驗環(huán)境實驗環(huán)境 硬件環(huán)境 AEDK 實驗箱 PC 機 軟件環(huán)境 LCA88ET 應(yīng)用軟件 沈陽航空航天大學課程設(shè)計報告 第 2 章 詳細設(shè)計方案 3 第 2 章 詳細設(shè)計方案 2 1 硬件電路設(shè)計硬件電路設(shè)計 硬件電路由鍵盤顯示接口芯片 8279 構(gòu)成 如圖 2 1 所示 Pa0 Pb0 Pb7 cs 8279 Clk1 out1 Gate1 8253 clk0 Out0 cs gate0 Int0 8259 cs 200 207 228 22f DL8 DL1 cs Pc0 Pc3 脈沖源 210 217 220 227 圖圖 2 1 硬件電路連線圖硬件電路連線圖 8279 是可編程設(shè)置型鍵盤 顯示芯片 其特點是 1 可同時進行鍵盤掃描及文字 顯示 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 K1 沈陽航空航天大學課程設(shè)計報告 第 2 章 詳細設(shè)計方案 4 2 2主程序設(shè)計主程序設(shè)計 下載到實驗箱之后 由主控開關(guān) K 控制程序運行 調(diào)節(jié)風速和設(shè)定定時由中 斷程序?qū)崿F(xiàn) 電風扇模擬轉(zhuǎn)動由 8 個單色燈實現(xiàn) 當開關(guān) K 斷開或者定時到達時 電風扇停轉(zhuǎn) 程序結(jié)束 開始 各芯片初始化 8255清零 開關(guān)為開 輸入為A 輸入為B 輸入為C 輸入為D 變風速為1 顯示 變風速為3 顯示 變風速為2 顯示 輸入時間 輸入為D 計時 時間為0 AL清零 結(jié)束 Y N N N N Y Y Y Y Y Y N N N 圖圖 2 2 主程序流程圖主程序流程圖 沈陽航空航天大學課程設(shè)計報告 第 2 章 詳細設(shè)計方案 5 2 3 功能選擇模塊的設(shè)計與實現(xiàn)功能選擇模塊的設(shè)計與實現(xiàn) 2 3 1 計時模塊流程圖計時模塊流程圖 計時器模塊 主要實現(xiàn)對電風扇的定時功能 并在定時期間支持改變風速的 功能 對設(shè)定的時間進行減一操作 當剩余時間為 0 時 則停止電風扇的工作 結(jié)束程序 N Y Y Y Y Y N N N N 保存寄存器 計時是否為 0 秒位是否為 0 分位是否為 0 10 秒位是否為 0 10 分位是否為 0 秒位變?yōu)?9 恢復(fù)寄存器 10 秒位減 1 10 分位減 1 分位減 1 秒位減 1 10 秒位變?yōu)?5 分位變?yōu)?9 10 分位變?yōu)?5 數(shù)碼管顯示 圖圖 2 3 1 功能選擇模塊流程圖功能選擇模塊流程圖 沈陽航空航天大學課程設(shè)計報告 第 2 章 詳細設(shè)計方案 6 2 3 2 顯示模塊流程圖顯示模塊流程圖 用于模擬電風扇的轉(zhuǎn)速和旋轉(zhuǎn)方向 由一個循環(huán)右移實現(xiàn) 使單色燈循環(huán)點 亮 開始 FLAG FLAG 1 AL 0FEH Y N AL 循環(huán)右移 1 結(jié)束 圖圖 2 3 2 顯示模塊流程圖顯示模塊流程圖 2 3 3 改變風速模塊流程圖改變風速模塊流程圖 通過鍵盤的輸入 8259 產(chǎn)生中斷 程序讀取輸入內(nèi)容 A B C 為改變風速 當讀取到相應(yīng)的內(nèi)容時 改變?yōu)橄鄳?yīng)的風速 開始 判斷輸入 改變 結(jié)束 圖圖 2 3 32 3 3 改變風速模塊流程圖改變風速模塊流程圖 沈陽航空航天大學課程設(shè)計報告 第 3 章 結(jié)果測試及分析 7 第 3 章 結(jié)果測試及分析 3 1 結(jié)果測試結(jié)果測試 編譯并連接程序 然后全速運行 在數(shù)碼管上就顯示計時器的時間 開始時 是全 0 此時單色發(fā)光二極管為全滅 將開關(guān) K1 向上扳去 此時 8255 的 PA0 口 輸入高電平 PB 口輸出使單色發(fā)光二極管循環(huán)亮燈 即以一定的速度循環(huán)點亮 八個燈 模擬出了電風扇的轉(zhuǎn)動 當需要改變風速時 只需按下鍵盤上的 A B C 鍵 便可切換風速 當需要設(shè)定運行時間時 只需要按下 D 鍵 則進 入定時狀態(tài) 接著只需按下鍵盤上的數(shù)字鍵 設(shè)定好定時的時間 然后再按下 D 鍵 風扇就將在設(shè)定的時間內(nèi)轉(zhuǎn)動 并且在數(shù)碼管上顯示時間的變化 以一秒為 單位逐漸減少 當減到 0 時 風扇就將停止轉(zhuǎn)動 單色燈全滅 如此便實現(xiàn)了定時 功能 如要讓單色燈再亮 則需將總開關(guān)關(guān)掉再打開 3 2結(jié)果分析結(jié)果分析 開始運行時 發(fā)現(xiàn)單色發(fā)光二極管并不是按理想順序逐漸點亮紅色 而是與 風扇轉(zhuǎn)動方向相反 檢查硬件連線卻并沒有發(fā)現(xiàn)錯誤 后來 檢查程序時發(fā)現(xiàn)將 循環(huán)右移的代碼寫錯了 從而導(dǎo)致了與旋轉(zhuǎn)方向相反的循環(huán)點亮順序 改正后完 美運行 風扇正常運行了 但是在定時時發(fā)現(xiàn)數(shù)碼管上的時間變化過于緩慢 于是檢 查 8253 芯片的初始化程序 發(fā)現(xiàn) CLK1 的輸入時倍數(shù)太大 于是將其數(shù)值調(diào)小 后運行 發(fā)現(xiàn)時間變化回歸正常 實驗結(jié)果總的來說基本實現(xiàn)了課設(shè)的要求 雖然有些小問題和還會有些不穩(wěn) 定 這些問題我會在以后的不斷學習中進行完善 沈陽航空航天大學課程設(shè)計報告 參考文獻 8 參考文獻 1 王愛英 計算機組成與設(shè)計 M 北京 教育出版社 2003 2 楊素行 微型計算機系統(tǒng)原理及應(yīng)用 M 北京 清華大學出版社 1996 3 張雪蘭 匯編語言程序設(shè)計 M 北京 清華大學出版社 2006 4 龔尚福 微機原理與接口技術(shù) M 西安 西安電子科技大學出版社 2003 5 王中民 微型計算機原理 M 西安 西安電子科技大學出版社 2003 6 沈美明 溫冬嬋 IBM PC 匯編語言程序設(shè)計 M 北京 清華大學出版社 2001 沈陽航空航天大學課程設(shè)計報告 附 錄 9 附 錄 程序清單 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 0 data ends code segment assume cs code ds data main 主程序 cli mov ax cs mov ds ax mov kind 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 沈陽航空航天大學課程設(shè)計報告 附 錄 10 out dx al call cleardevice call display mov al 0 mov dx 22ah out dx al mov al 30h out dx al mov al 7fh sti dowhat push ax dowait 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 aa a1 判斷風速改變 cmp keykind 0bh jnz a2 mov kind 1 call gotonext jmp aa a2 cmp keykind 0ch jnz a3 mov kind 0 call gotonext jmp aa a3 cmp keykind 0dh jnz a4 push ax 沈陽航空航天大學課程設(shè)計報告 附 錄 11 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 aa a4 cmp keykind 0eh jnz aa not flags push ax mov al oldkey mov keykind al pop ax aa jmp dowhat gotonext 單色燈循環(huán)亮滅 mov dx 211h out dx al cmp flags 0 jnz noror ror al 1 noror cmp al 0feh jnz continue jmp continue continue cmp kind 2 jnz mm1 call speed2 jmp mm3 mm1 改變風速 cmp kind 1 jnz mm2 沈陽航空航天大學課程設(shè)計報告 附 錄 12 call speed1 jmp mm3 mm2 cmp kind 0 jnz mm3 call speed0 mm3 push ax mm33 cmp isstop 0 jz mm4 mov dx 211h mov al 0ffh out dx al mov dx 210h in al dx test al 1 jnz mm33 mov isstop 0 cli mm4 pop ax ret readakey 讀取鍵盤輸入 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 al gotoexit pop ax ret speed1 速度設(shè)置 push cx 沈陽航空航天大學課程設(shè)計報告 附 錄 13 mov cx 18000 sp1 loop sp1 pop cx ret speed2 push cx mov cx 50000 sp2 loop sp2 pop cx ret speed0 push cx mov cx 8000 sp0 loop sp0 pop cx ret readisd 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 ret reading 輸入時間 push ax mov n0 0 mov n1 0 mov n2 0 call readanumber mov n0 al call display call readanumber cmp al 0dh 沈陽航空航天大學課程設(shè)計報告 附 錄 14 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 readisd readexit pop ax ret readanumber key2 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 ret initnumbers push bx mov bx offset numbers mov byte ptr bx 3fh mov byte ptr bx 1 6 mov byte ptr bx 2 5bh mov byte ptr bx 3 4fh mov byte ptr bx 4 66h mov byte ptr bx 5 6dh mov byte ptr bx 6 7dh mov byte ptr bx 7 7 mov byte ptr bx 8 7fh mov byte ptr bx 9 6fh 沈陽航空航天大學課程設(shè)計報告 附 錄 15 pop bx ret display 時間顯示 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 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 ret intcount push ax push bx push dx cmp n0 0 jz next1 dec n0 jmp next4 沈陽航空航天大學課程設(shè)計報告 附 錄 16 next1 mov n0 9 cmp n1 0 jz next2 dec n1 jmp next4 next2 mov n1 9 cmp n2 0 jz next3 dec n2 jmp next4 next3 mov n2 9 next4 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 al next5 call display pop dx pop bx pop ax iret init8255 mov al 90h mov dx 213h out dx al ret init8259 mov al 13h mov dx 220h out dx al mov dx 221h mov al 30h out dx al 沈陽航空航天大學課程設(shè)計報告 附 錄 17 mov al 3 out dx al mov al 0feh out dx al ret modifyint 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 ret init8253

溫馨提示

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

最新文檔

評論

0/150

提交評論