單片機(jī)電風(fēng)扇匯編_第1頁
單片機(jī)電風(fēng)扇匯編_第2頁
單片機(jī)電風(fēng)扇匯編_第3頁
單片機(jī)電風(fēng)扇匯編_第4頁
單片機(jī)電風(fēng)扇匯編_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)電風(fēng)扇匯編 東南大學(xué)自動(dòng)化學(xué)院 實(shí)驗(yàn)報(bào)告 課程名稱:MCU (微控制器)綜合課程設(shè)計(jì) 實(shí)驗(yàn)名稱: 綜合課程設(shè)計(jì) 院 (系): 自動(dòng)化學(xué)院 專業(yè): 自動(dòng)化專業(yè) 姓 名: 學(xué)號: 實(shí) 驗(yàn)室: 測控技術(shù)實(shí)驗(yàn)室 實(shí)驗(yàn)組別: 同組人員: 實(shí)驗(yàn)時(shí)間: 2011 年 6 月 10 日 評定成績: 審閱教師: 實(shí)驗(yàn)?zāi)康暮鸵?二實(shí)驗(yàn)原理 三實(shí)驗(yàn)方案與實(shí)驗(yàn)步驟 四實(shí)驗(yàn)設(shè)備與器材配置 五實(shí)驗(yàn)記錄 六實(shí)驗(yàn)總結(jié) 七思考題 八匯編語言源代碼 12 / 11 課程設(shè)計(jì)目的和要求 1、課程設(shè)計(jì)題目: 家用電器模擬:電風(fēng)扇 2、模擬設(shè)計(jì)要求: ( 1)初始加電程序運(yùn)行, 電風(fēng)扇無速度, 只有按下風(fēng)速選擇的任一按鍵,電風(fēng)

2、扇開始工 作。此時(shí),只要進(jìn)行新的速度選擇也不按下停止鍵,電風(fēng)扇就將按設(shè)計(jì)的風(fēng)速持續(xù)運(yùn)行。 (2)開啟搖頭開關(guān)后,模擬風(fēng)扇搖頭,并且在搖頭狀態(tài)中也可進(jìn)行風(fēng)扇的調(diào)速。 ( 3)利用 LED 流水燈的間隔時(shí)間模擬風(fēng)速,程序運(yùn)行后呈現(xiàn)較長的間隔時(shí)間以模擬風(fēng) 扇上電但未運(yùn)行。 按鍵盤上的鍵選擇速度, 并用數(shù)碼管顯示速度選擇的數(shù)字。 撥碼開關(guān)為搖 頭開關(guān),開關(guān)打開后,流水燈反向表示搖頭。 實(shí)驗(yàn)原理 1、:使用硬件設(shè)備 數(shù)碼管、發(fā)光二極管、鍵盤、撥碼開關(guān)。 實(shí)驗(yàn)不需要接線。 2、設(shè)計(jì)思想 (1)整體設(shè)計(jì)的主要程序使用定時(shí)器定時(shí)中斷實(shí)現(xiàn)。 (2)實(shí)驗(yàn)要求二極管的流水燈按照按鍵的不同以不同的間隔時(shí)間依次點(diǎn)亮,則

3、將按鍵 的鍵碼作為流水燈的間隔時(shí)間,設(shè)置一定的中斷時(shí)間,中斷每運(yùn)行一次則INC R1,再將R1 與A作比較(再次之前已經(jīng)經(jīng)過鍵盤掃描,將鍵盤的鍵碼賦值給了A),若一致則運(yùn)行流水 燈,若不一致則再次運(yùn)行中斷,由此,按不同的鍵有不同的鍵碼,則中斷運(yùn)行次數(shù)不同,流 水的時(shí)間間隔自然不同。 (3)為保證在按鍵后能夠及時(shí)的改變風(fēng)速,則每次中斷時(shí)掃描一次鍵盤,并計(jì)算鍵碼 顯示在數(shù)碼管上。 (4)每次中斷掃描撥碼開關(guān)狀態(tài),以便能夠及時(shí)的判斷是否要處于搖頭狀態(tài)。 ( 5)數(shù)碼管顯示風(fēng)速選擇的數(shù)字,并實(shí)時(shí)刷新。 實(shí)驗(yàn)步驟與實(shí)驗(yàn)方案 1、程序流程圖 (1) 主程序 (2)中斷服務(wù)程序: 2、實(shí)驗(yàn)步驟: (1) (

4、2) (3) (4) (5) 在Medwin中完成項(xiàng)目的創(chuàng)建; 添加自己編寫的.asm源文件并編譯/匯編; 生成代碼并下載到仿真器上; 程序運(yùn)行。返回監(jiān)控后可查看寄存器和存儲器的值。 按鍵盤選擇風(fēng)速,波動(dòng)撥碼開關(guān)選擇搖頭。 四.實(shí)驗(yàn)設(shè)備與器材配置 PC機(jī); EEEC-030型單片機(jī)/ISP綜合設(shè)計(jì)實(shí)驗(yàn)裝置 五 實(shí)驗(yàn)分析與總結(jié) 1、 此次實(shí)驗(yàn)中加深了對中斷程序的理解。 最開始的程序流水燈的部分用的是軟件延時(shí)來實(shí)現(xiàn), 但是在調(diào)試過程中發(fā)現(xiàn), 利用延時(shí) 會讓程序一直處于第一個(gè)延時(shí)的循環(huán)中, 在這種情況下無法進(jìn)行按鍵的二次選擇, 撥碼開關(guān) 也只能夠選擇一次, 除了關(guān)閉程序以外也沒有按預(yù)想的實(shí)現(xiàn)風(fēng)扇的停

5、止?fàn)顟B(tài)。 在這種情況下, 我開始在程序里加入中斷,以實(shí)現(xiàn)能夠每次都進(jìn)行鍵盤的掃描。 INC R1 ;時(shí)間加 1 MOV A,R5 XRL A,R1 ;最大等待時(shí)間到? JNZ EE1 ;沒到,轉(zhuǎn)到 EE1 R5 為儲存的輸入鍵碼,以不同的 加入中斷的開始階段, 風(fēng)速仍然是使用軟件延時(shí)的流水燈在中斷外部以調(diào)用子程序的方 式來實(shí)現(xiàn)的,但是調(diào)試過程中發(fā)現(xiàn), 中斷的調(diào)用不理想, 延時(shí)不能按預(yù)想的所實(shí)現(xiàn),常常會 出現(xiàn)所有的發(fā)光二極管一起亮起的狀態(tài), 出現(xiàn)問題之后請教了同學(xué)使用了現(xiàn)在以中斷的最大 等待時(shí)間作為流水燈間隔時(shí)間的方式。 R5 實(shí)現(xiàn)延時(shí),從而模擬不同的風(fēng)速變化。 在之后的調(diào)節(jié)中還出現(xiàn)過雖然按了鍵

6、碼但是流水燈速度不變的情況, 經(jīng)過查看寄存器發(fā) 現(xiàn)是 R1 在流水燈運(yùn)行、按鍵重新選擇時(shí)沒有進(jìn)行清零,從而時(shí)的 R1 的數(shù)值一直處于同一 個(gè)狀態(tài)。 2、在調(diào)試中由于中斷程序無法進(jìn)行單步調(diào)試,全速運(yùn)行時(shí)無法觀察寄存器的變化,則 設(shè)置斷點(diǎn),全速運(yùn)行程序停止,在斷點(diǎn)處單步運(yùn)行觀察寄存器。 而在軟件中還有“執(zhí)行到”的選擇,只要選擇認(rèn)為需要調(diào)試的程序部分的地址或者標(biāo) 號,就可以執(zhí)行到此處,然后就可以單步跟蹤程序的運(yùn)行了。 3、由于自己的能力有限,所以此次設(shè)計(jì)只是進(jìn)行了簡單的模擬,實(shí)現(xiàn)了相對簡單的功 能。作為程序的改進(jìn),還可以加上時(shí)間的設(shè)置,可在初始化寄存器事設(shè)定一定的初值,當(dāng)在 一定風(fēng)速時(shí),不同的撥碼開

7、關(guān)波動(dòng)后, R1 與此初值比較,當(dāng) R1 與設(shè)置的初值相等,風(fēng)扇 回復(fù)按鍵“ 0”狀態(tài),以實(shí)現(xiàn)電風(fēng)扇的定時(shí)。 六 附上源代碼 ORG LJMP 0000H MAIN ORG 000BH AJMP IINT0 MAIN: NOP NOP ACALL LED1 MOV R1,#00H MOV R6,#00H MOV R3,#00H MOV R5,#00H HERE: IINT0: LK1: DO: YURE: MOV IE, #00H ;關(guān)中斷 MOV TMOD, #01H ;設(shè)置定時(shí)器定時(shí)方式 MOV TH0, #0E0H MOV TL0, #0E0H ;初值 SETB TR0 SETB EA

8、SETB ET0 ;開中斷,啟動(dòng)定時(shí) ACALL SHOW1 ;數(shù)碼管刷新,等待中斷 JMP HERE rh出 U RQ 夂壬 口 1J J J J J J J J J J J J J J ; 中斷服務(wù)程序 ; J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J ACALL KS ;鍵盤全局檢測 JNZ LK1 ;有鍵閉合,轉(zhuǎn)移 AJMP DO ACALL CHECK MOV DPTR, #0F500H MOVX A, DPTR CJN

9、E A, #00H,YURE ;判斷開關(guān)是否正確撥動(dòng) INC R1 ;時(shí)間加 1 MOV A,R5 XRL A,R1 ;最大等待時(shí)間到? JNZ EE1 ;沒到,轉(zhuǎn)到 EE1 MOV A,R7 RR A MOV R7,A MOV DPTR, #0F600H MOVX DPTR, A MOV R1,#00H AJMP EE1 INC R1 ;時(shí)間加 1 MOV A,R5 XRL A,R1 ;最大等待時(shí)間到? JNZ EE1 ;沒到,轉(zhuǎn)到 EE1 MOV A,R7 RL A MOV R7,A MOV DPTR, #0F600H MOVX DPTR, A EE1: MOV R1,#00H MOV T

10、H0, #0E0H MOV TL0, #0E0H SETB TR0 RETI ;重設(shè)初值,啟動(dòng)中斷 ;LED; LED1: ANL MOV CJNE MOV AJMP A , #07H R0,A R0,#00H,L1 A,#80H LL L1: CJNE R0,#01H,L2 MOV A,#01H AJMP LL L2: CJNE R0,#02H,L3 MOV A,#02H AJMP LL L3: CJNE R0,#03H,L4 MOV A,#04H AJMP LL L4: CJNE R0,#04H,L5 MOV A,#08H AJMP LL L5: CJNE R0,#05H,L6 MOV A

11、,#10H AJMP LL L6: CJNE R0,#06H,L7 MOV A,#20H AJMP LL L7: MOV A,#40H LL: CPL A MOV R7,A MOV DPTR, #0F600H MOVX DPTR, A RET ;模 8 ;取反輸出 ;R7 存 LED 的值 鍵盤掃描 ; CHECK: MOV MOV R2, #0FEH R4, #00H ;低 4 位為要選通的行線值 ;行號 CHECK1: MOV A, R2 MOV DPTR, #0F700H MOVX DPTR, A MOVX A, DPTR ; 讀入,高 4 位為列線狀態(tài) ANL A, #0F0H ;屏蔽

12、無效的低 4 位行線狀態(tài) JB ACC.4, LONE ;檢測第一列, 沒按下跳轉(zhuǎn)至下一列 MOV A, #0CH ;該列第一個(gè)鍵碼值為 0CH AJMP LKP LONE: JB ACC.5, LTWO ;檢測第二列 MOV A, #08H AJMP LKP LTWO: JB ACC.6, LTHR ;檢測第三列 MOV A, #04H AJMP LKP LTHR: JB ACC.7, NEXT ;檢測第四列 MOV A, #00H LKP: ADD A, R4 ;計(jì)算鍵碼 MOV R5,A ACALL SHOW1 ;數(shù)碼管顯示最大等待時(shí)間 AJMP TC ;鍵碼存在 R5 中 NEXT:

13、MOV A, R2 JNB ACC.3, CHECK ;4 行都已掃描一遍,轉(zhuǎn)回重新從第一行開始 RL A MOV R2, A ;選通值選中下一行 INC R4 AJMP CHECK1 TC: RET 軟件延時(shí)子程序 ; DELAY: MOV R2, #0C8H LOOP: NOP NOP NOP DJNZ R2, LOOP RET 數(shù)碼管刷新 ; SHOW1: QQ1: PUSH MOV MOV MOV MOVX ACC R0,#00H A, #0FBH DPTR, #0F400H DPTR, A ;輸出位碼 MOV A,R6 ;R6 存分?jǐn)?shù) MOV B,#0AH ;B 存 10,做除法時(shí)用

14、 DIV AB ;除法后, A 存十位數(shù)字, B 存?zhèn)€位數(shù)字 MOV DPTR, #TAB MOVC A, A+DPTR MOV DPTR, #0F300H MOVX DPTR, A ;十位輸出 ACALL DELAY ;調(diào)延時(shí) MOV A, #0FDH MOV DPTR, #0F400H MOVX DPTR, A ;輸出位碼 MOV A,B MOV DPTR, #TAB MOVC A, A+DPTR MOV DPTR, #0F300H MOVX DPTR, A ;個(gè)位輸出 ACALL DELAY ;調(diào)延時(shí) MOV A, #0FEH MOV DPTR, #0F400H MOVX DPTR, A

15、 ;輸出位碼 MOV A,R5 ;R5 存最大設(shè)定時(shí)間 (鍵盤 ) MOV DPTR, #TAB MOVC A, A+DPTR MOV DPTR, #0F300H MOVX DPTR, A ;輸出鍵盤值 ACALL DELAY ;調(diào)延時(shí) CJNE R0,#3AH,QQ AJMP QQ2 QQ: INC R0 AJMP QQ1 QQ2: POP RET ACC 單片機(jī)電風(fēng)扇匯編 0 全局鍵盤檢測 ; KS: MOV MOV MOVX MOVX DPTR, #0F700H A, #0F0H DPTR, A A, DPTR ;4 行全選中 CPL A ;A 取反,若無鍵按下,高四位就全為 ANL A, #0F0H ;屏蔽無效的低 4 位行線狀態(tài) RET ; 段碼表 J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J: J J J J J J J

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論