微機(jī)原理課程設(shè)計(jì)汽車速度控制_第1頁
微機(jī)原理課程設(shè)計(jì)汽車速度控制_第2頁
微機(jī)原理課程設(shè)計(jì)汽車速度控制_第3頁
微機(jī)原理課程設(shè)計(jì)汽車速度控制_第4頁
微機(jī)原理課程設(shè)計(jì)汽車速度控制_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、.西 安 郵 電 大 學(xué)(計(jì)算機(jī)學(xué)院)硬件課程設(shè)計(jì)報(bào)告題 目: 汽車速度控制的設(shè)計(jì)與實(shí)現(xiàn) 專業(yè)名稱: 軟件工程班 級: 軟件1201 學(xué)生姓名: 學(xué)號(8位): 指導(dǎo)教師: 設(shè)計(jì)起止時(shí)間:2014年12月15日2014年12月26日1. 設(shè)計(jì)目的:微機(jī)接口電路的設(shè)計(jì)及應(yīng)用。通過微機(jī)原理與接口課程設(shè)計(jì),使學(xué)生能夠進(jìn)一步了解微型計(jì)算機(jī)工作原理, 微型計(jì)算機(jī)的硬件結(jié)構(gòu)及微型計(jì)算機(jī)軟件編程。 要求學(xué)生根據(jù)接口電路的硬件要求進(jìn)行計(jì)算機(jī)的匯編語言程序設(shè)計(jì),使學(xué)生的軟件編程能力得到加強(qiáng),對接口電路的綜合應(yīng)用能力有較大提高。  利用所學(xué)微機(jī)的理論知識進(jìn)行軟硬件整體設(shè)計(jì),

2、提高綜合應(yīng)用能力。通過設(shè)計(jì)掌握綜合使用基本輸入設(shè)備,通用接口芯片,專用接口芯片的方法;熟悉并行接口芯片8255的使用與硬件接口方法,熟悉8255的各種工作方式,掌握8255的編程方法;掌握實(shí)時(shí)處理程序的編制和調(diào)試方法。從而幫助學(xué)生系統(tǒng)地掌握微機(jī)原理的接口技術(shù)的相關(guān)知識,達(dá)到將知識融會貫通的目的。同時(shí)給學(xué)生提供更多、更好的訓(xùn)練機(jī)會,培養(yǎng)學(xué)生的創(chuàng)新能力。2. 設(shè)計(jì)內(nèi)容:所選題目的具體要求。在自行設(shè)計(jì)接口板的的按鍵轉(zhuǎn)換汽車的擋位,用發(fā)光二極管顯示擋位,用數(shù)碼管顯示汽車的速度。(1) 按“1”鍵啟動(dòng)系統(tǒng),汽車以最低速度行駛,同時(shí)用1盞綠燈顯示擋位,數(shù)碼管顯示速度(最低速度為5Kmh)。當(dāng)需要換檔時(shí),用

3、鍵盤鍵入2、3鍵,并加用一盞黃燈和一盞紅燈顯示,同時(shí)在數(shù)碼管上顯示相應(yīng)的速度。(2) 汽車慢加速時(shí)用“A”鍵,急加速時(shí)用“B”鍵。慢剎車時(shí)用“C”鍵,急剎車時(shí)用“D”鍵。加速和剎車時(shí)用數(shù)碼管顯示相應(yīng)的速度變化。(3) 當(dāng)汽車需緊急停車時(shí),鍵入“ESC”鍵,所有發(fā)光二極管熄滅,同時(shí)數(shù)碼管顯示“0”。3. 設(shè)計(jì)過程: 根據(jù)設(shè)計(jì)內(nèi)容,給出設(shè)計(jì)方案,選擇需要的接口芯片和外設(shè)等,確定相應(yīng)的接口芯片的工作方式,并給出proteus下設(shè)計(jì)出的系統(tǒng)原理圖,見文章末尾 根據(jù)系統(tǒng)要求,設(shè)計(jì)程序,給出流程圖描述程序。數(shù)碼管流程圖程序流程:設(shè)置初始狀態(tài):速度為0,數(shù)碼管顯示為01檔初始狀態(tài):速度為5,LED1亮1檔最

4、大速度狀態(tài):速度為25,數(shù)碼管顯示252檔初始狀態(tài):速度為25,LED2亮2檔最大速度狀態(tài):速度為60,數(shù)碼管顯示603檔初始狀態(tài):速度為60,LED3亮3檔最大速度狀態(tài):速度為120,數(shù)碼管顯示120進(jìn)入初始狀態(tài),判斷是否按下K1開關(guān),若沒按下則回到初始狀態(tài),若按下則進(jìn)入1檔初始狀態(tài)1檔初始狀態(tài)下接受指令:判斷是否按下KA開關(guān),若按下則進(jìn)入慢加速狀態(tài),直到速度加到1檔的最大速度25,進(jìn)入1檔最大速度狀態(tài);若沒按下KA開關(guān),則判斷是否按下KB開關(guān),若按下則進(jìn)入快加速狀態(tài),直到速度加到1檔的最大速度25,進(jìn)入1檔最大速度狀態(tài);若沒按下KB開關(guān),則判斷是否按下KC開關(guān),若按下則進(jìn)入慢減速狀態(tài),直到

5、速度減到0,進(jìn)入初始狀態(tài);若沒按下KC開關(guān),則判斷是否按下KD開關(guān),若按下則進(jìn)入快減速狀態(tài),直到速度減到0,進(jìn)入初始狀態(tài);若沒按下KD開關(guān),則判斷是否按下KE開關(guān),若按下則進(jìn)入停車狀態(tài),速度減到0,進(jìn)入初始狀態(tài);若沒按下KE開關(guān),則停留在1檔初始狀態(tài),等待接收指令;1檔最大速度狀態(tài)下接收指令:判斷是否按下K2開關(guān)若按下,若按下則進(jìn)入2檔初始狀態(tài);若沒按下K2開關(guān),則判斷是否按下KC開關(guān),若按下則進(jìn)入慢減速狀態(tài),直到速度減到0,進(jìn)入初始狀態(tài);若沒按下KC開關(guān),則判斷是否按下KD開關(guān),若按下則進(jìn)入快減速狀態(tài),直到速度減到0,進(jìn)入初始狀態(tài);若沒按下KD開關(guān),則判斷是否按下KE開關(guān),若按下則進(jìn)入停車狀

6、態(tài),速度減到0,進(jìn)入初始狀態(tài);若沒按下KE開關(guān),則停留在2檔初始狀態(tài),等待接收指令;進(jìn)入2檔初始狀態(tài)后,它的程序流程和1檔初始狀態(tài)流程一樣;進(jìn)入3檔初始狀態(tài)后,流程和1、2檔一樣,只是當(dāng)進(jìn)入3檔最大速度狀態(tài)后,只能接受減速停車指令。 在前兩步的基礎(chǔ)上,給出proteus下程序運(yùn)行的結(jié)果截圖。見文章末尾 具體硬件實(shí)現(xiàn),給出實(shí)際所焊電路的系統(tǒng)連線圖。 在所焊電路的板子上運(yùn)行程序,拍照,打印出系統(tǒng)運(yùn)行截圖。4. 設(shè)計(jì)總結(jié):分析自己的設(shè)計(jì)結(jié)果,總結(jié)設(shè)計(jì)中所遇到的問題以及采取的解決辦法。設(shè)計(jì)結(jié)果分析:整個(gè)系統(tǒng)運(yùn)行過程中考慮到了很多情況,做得比較細(xì)膩,比如1檔必須到達(dá)了最大速度才能接收2檔指令,不能越到3

7、檔;在加速過程中速度只會加到相應(yīng)檔位的最大速度,不會超過它;不足的是:在加速減速狀態(tài)中不會被中斷,速度會加到最大或減到0,這點(diǎn)還需改進(jìn)。遇到問題:不知道如何讓數(shù)碼管正確的顯示相應(yīng)的數(shù)字解決辦法:先查看實(shí)驗(yàn)指導(dǎo)書了解了數(shù)碼管的線路連接,然后上網(wǎng)查找數(shù)碼管顯示的方法,再和組員一行一行代碼的編寫,試了很多次數(shù)碼管都不顯示。最后才知道了程序最開始沒有定義堆棧段,導(dǎo)致要顯示的數(shù)據(jù)不能壓棧。最終解決了數(shù)碼管的問題。遇到問題:編譯時(shí)出現(xiàn)Relative jump out of range錯(cuò)誤 指定的轉(zhuǎn)移超出了允許的范圍(-128+127)解決辦法:該問題是由于轉(zhuǎn)移范圍超出允許范圍,我們就在轉(zhuǎn)移的中間再加一個(gè)

8、轉(zhuǎn)移,把距離一分為二,從而解決了問題。比如jump state1;出現(xiàn)錯(cuò)誤,我們就改為state1jmp: jump state1; jump state1jmp; 軟件調(diào)試  程序完成后就可以對它進(jìn)行編譯和執(zhí) 行,如果發(fā)現(xiàn)有錯(cuò)誤,則返回程序中修改,完成后再次編譯和執(zhí)行,就這樣周而 復(fù)始的重復(fù)進(jìn)行,直到?jīng)]有出現(xiàn)編譯錯(cuò)誤之后就可以運(yùn)行了。  運(yùn)行的時(shí)候也有問題出現(xiàn)。例如程序的結(jié)構(gòu)有問題,對于寄存器的使用不合 理,或?qū)τ诩拇嫫鞯闹貜?fù)使用導(dǎo)致數(shù)據(jù)混亂,循環(huán)不能正常的結(jié)束等問題。要解 決這些問題就要對匯編用深入的理解,畫清

9、楚流程圖,使用結(jié)構(gòu)簡單的循環(huán), 分布編寫程序,同時(shí)注意對程序的注釋可以減少問題。對于寄存器的使用問題可以 才用入棧出棧來保存部分寄存器的值來安排寄存器的使用。 5. 設(shè)計(jì)心得課程設(shè)計(jì)剛開始的時(shí)候,對整個(gè)系統(tǒng)的設(shè)計(jì)完全沒有思路,也不知道該先從哪部分下手。在老師給我們講解了一些注意事項(xiàng),還用仿真給我們演示了設(shè)計(jì)該達(dá)到的要求之后,小組四個(gè)人就開始討論系統(tǒng)的整個(gè)運(yùn)行流程,討論出方案后就開始分工,我做的是 “汽車速度控制” 的軟件部分。在這之前我對匯編語言的編寫不是很熟悉,對各種寄存器的功能及使用不是很了解,  擔(dān)心自己不會或者做不好。為了完成

10、任務(wù),我不停的翻閱書籍,查看資料,和組員共同商量,盡自己最大的努力去做, 做到自己最好的,最后成功完成了任務(wù)。在做整個(gè)設(shè)計(jì)時(shí)應(yīng)先討論好設(shè)計(jì)方案,畫好流程圖,要完全了解整個(gè)流程之后才去編寫程序,這樣才能有條不紊地做實(shí)驗(yàn),不然只會弄得一團(tuán)糟。同時(shí)我明白,要做好一個(gè)課題,細(xì)心,耐心,好奇心和同學(xué)之間的有效合作 都是不可缺少的,要將書本知識與實(shí)際操作緊密聯(lián)系起來,在實(shí)踐中發(fā)現(xiàn)和解決 問題是非常重要的。在實(shí)驗(yàn)的過程中也出現(xiàn)了一些問題,大部分來 自自身的疏忽與對知識掌握的不牢固,這些方面是要加強(qiáng)的!  通過老師的幫助,在解決問題的過程中,讓我們對

11、問題的認(rèn)知更加深刻了, 這些都將有益于我們學(xué)到更多更為有用的東西。同時(shí)也知道了團(tuán)隊(duì)合作的重要性,在實(shí)驗(yàn)中,同組成員在一起發(fā)現(xiàn)問題、討論問題,大大提高了解決問題的速度。 同時(shí),通過課程設(shè)計(jì)大家得到了很好的鍛煉,也期待我們應(yīng)該有更多實(shí)際操作的機(jī)會,加強(qiáng)合作與創(chuàng)新方面的能力。 感謝老師的悉心指導(dǎo)。設(shè)計(jì)過程:原理圖:流程圖:運(yùn)行截圖:板子圖:源代碼:源代碼:IO_KEY_123A EQU 010BIO_KEY_BCDE EQU 100BMY8255C EQU 100BMY8255A EQU 000BIO_SELECT_OUTSMG1 EQU 010BK1 EQU 0001

12、0000BK2 EQU 00100000BK3 EQU 01000000BKA EQU 10000000BKB EQU 00000001BKC EQU 00000010BKD EQU 00000100BKE EQU 00001000BLED1 EQU 11101111BLED2 EQU 11011111BLED3 EQU 10111111BLED4 EQU 01111111BSELECT_LED_NONE EQU 0FFH; 減緩速度增加或減少速率的倍數(shù)(快); 最大為 216/數(shù)碼管要顯示的最大速度SLOW_DOWN_SPEED_FAST EQU 10; 同上(慢)SLOW_DOWN_SPE

13、ED_SLOW EQU 200DATA SEGMENT DATA_SMG DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,00H;數(shù)碼管表 SELECT_OUTSMG1 DB 0H, 0FEH, 0FDH, 0FBH, 0F7HDATA ENDSISTACK SEGMENT STACK DATA2 DW 16 DUP(?) TOP EQU LENGTH DATA2ISTACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:ISTACK START:MOV AX,DATA MOV DS,AX MOV AX,ISTAC

14、K MOV SS,AX MOV AX,TOP MOV SP,AX;速度為0 state1:MOV AX,0state1_INit: ; 數(shù)碼管顯示速度 CALL OUTSMG1 ; LED 顯示檔位 MOV AL, SELECT_LED_NONE OUT MY8255C, AL ; 測試 K1 是否按下,若是跳到狀態(tài) 2, 否則回到狀態(tài) 1 開始 IN AL, IO_KEY_123A AND AL, K1 CMP AL, 0 JE state2 JMP state1;1檔state2: ; DX = 當(dāng)前速度 * SLOW_DOWN_SPEED_SLOW ; 當(dāng)前速度 MOV AX, 0 MO

15、V CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AX;一檔下速度升為5state2_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 5 JE state3 JMP state2_after_INit;一檔速度為5,再接受加速減速指令state3: MOV AX, 5 CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL ; 測試

16、慢加速指令KA IN AL, IO_KEY_123A AND AL, KA CMP AL, 0 JE state4 ; 測試快加速指令KB IN AL, IO_KEY_BCDE AND AL, KB CMP AL, 0 JE state5 ; 測試慢減速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state6 ; 測試快減速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state7 ; 測試停車指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE st

17、ate1 JMP state3;一檔下的慢加速,速度最高為25state4: MOV AX, 5 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AXstate4_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 25 JE state8 JMP state4_after_INit;一檔下的快加速,速度最高為25state5: MOV AX, 5 MOV

18、CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AXstate5_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 25 JE state8 JMP state5_after_INitstate1jmp: jmp state1;一檔下的慢減速state6: MOV AX, 5 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX,

19、AXstate6_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 0 JE state1jmp ;state1 JMP state6_after_INit;一檔下的快減速state7: MOV AX, 5 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AXstate7_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT

20、MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state1jmp ;state1 JMP state7_after_INit;一檔加到25后進(jìn)入該狀態(tài),接受二檔,慢減速??鞙p速,停車等指令state8: MOV AX, 25 CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL ; 測試二檔指令K2 IN AL, IO_KEY_123A AND AL, K2 CMP AL, 0 JE state9 ; 測試慢減速指令KC IN AL,

21、 IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state10 ; 測試快減速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state11 ; 測試停車指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state1jmp JMP state8state2jmp: jmp state1 state9jmp: JMP state14state10jmp: JMP state15;進(jìn)入二檔模式,接受加速減速指令state9: MOV AX, 25 CALL OUTSMG1 MOV

22、 AL, LED2 OUT MY8255C, AL ; 測試慢加速指令KA IN AL, IO_KEY_123A AND AL, KA CMP AL, 0 JE state12 ; 測試快加速指令KB IN AL, IO_KEY_BCDE AND AL, KB CMP AL, 0 JE state13 ; 測試慢減速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state9jmp ;state14 ; 測試快減速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state10jmp ;state15

23、 ; 測試停車指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state2jmp ;state1 JMP state9;一檔下的慢減速state10: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AXstate10_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 0 JE stat

24、e2jmp JMP state10_after_INit;一檔下的快減速state11: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AXstate3jmp: JMP state1state11_after_INit: CALL OUTSMG1 MOV AL, LED1 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state3jmp JMP state11_after_INit;二檔下的慢

25、加速指令,最高速度為60state12: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AXstate12_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 60 JE state16 JMP state12_after_INit;二檔下的快加速模式,最高速度為60state13: MOV AX, 25 MOV CL, SLOW_D

26、OWN_SPEED_FAST MUL CL MOV DX, AXstate13_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 60 JE state16 JMP state13_after_INit;二檔下的慢減速模式,最小速度為25state14: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AXstate14_after_

27、INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 0 JE state3jmp JMP state14_after_INitstate4jmp: JMP state1;二檔下快減速模式,最小速度為25 state15: MOV AX, 25 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AXstate15_after_INit: CALL OUTSMG1 MOV A

28、L, LED2 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state4jmp JMP state15_after_INit;二檔下速度達(dá)到最大60,等待三檔或減速指令state16: MOV AX, 60 CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL ; 測試進(jìn)入三檔指令K3 IN AL, IO_KEY_123A AND AL, K3 CMP AL, 0 JE state17 ; 測試慢減速指令KC IN AL,

29、IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state18 ; 測試快減速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state19 ; 測試停車指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state4jmp JMP state16state5jmp: JMP state1 state8jmp: JMP state23 state11jmp: JMP state22;進(jìn)入三檔模式,相應(yīng)LED燈亮,等待接收加速減速指令state17: MOV AX, 60 CALL

30、 OUTSMG1 MOV AL, LED3 OUT MY8255C, AL ; 測試慢加速指令KA IN AL, IO_KEY_123A AND AL, KA CMP AL, 0 JE state20 ; 測試快加速指令KB IN AL, IO_KEY_BCDE AND AL, KB CMP AL, 0 JE state21 ; 測試慢減速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE state11jmp ;state22 ; 測試快減速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state8

31、jmp ;state23 ; 測試停車指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state5jmp ;state1 JMP state17;二檔下達(dá)到最高速度60后慢減速 state18: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AXstate18_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV A

32、H, 0 CMP AL, 0 JE state5jmp JMP state18_after_INit;二檔下達(dá)到最高速度60后快減速state19: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AXstate19_after_INit: CALL OUTSMG1 MOV AL, LED2 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state5jmp JMP state19_after_I

33、Nit;三檔下慢加速,最大速度為120state20: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AXstate20_after_INit: CALL OUTSMG1 MOV AL, LED3 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 120 JE state24 JMP state20_after_INit;三檔下快加速,最大速度為120state21: MOV AX, 60 MOV CL,

34、SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AXstate21_after_INit: CALL OUTSMG1 MOV AL, LED3 OUT MY8255C, AL INC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 120 JE state24 JMP state21_after_INitstate6jmp: JMP state1 ;三檔下慢減速 state22: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV D

35、X, AXstate22_after_INit: CALL OUTSMG1 MOV AL, LED3 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV CL MOV AH, 0 CMP AL, 0 JE state6jmp ;state1 JMP state22_after_INit;三檔下快減速 state23: MOV AX, 60 MOV CL, SLOW_DOWN_SPEED_FAST MUL CL MOV DX, AXstate23_after_INit: CALL OUTSMG1 MOV AL, L

36、ED3 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_FAST DIV CL MOV AH, 0 CMP AL, 0 JE state6jmp ;state1 JMP state23_after_INitstate7jmp: JMP state1 ;三檔下速度達(dá)到最大值120,等待減速指令 state24: MOV AX, 120 CALL OUTSMG1 MOV AL, LED3 OUT MY8255C, AL ; 測試慢減速指令KC IN AL, IO_KEY_BCDE AND AL, KC CMP AL, 0 JE s

37、tate25 ; 測試快減速指令KD IN AL, IO_KEY_BCDE AND AL, KD CMP AL, 0 JE state26 ; 測試停車指令KE IN AL, IO_KEY_BCDE AND AL, KE CMP AL, 0 JE state7jmp ;state1 JMP state24;三檔速度達(dá)到最大值120后慢減速state25: MOV AX, 120 MOV CL, SLOW_DOWN_SPEED_SLOW MUL CL MOV DX, AXstate25_after_INit: CALL OUTSMG1 MOV AL, LED3 OUT MY8255C, AL DEC DX MOV AX, DX MOV CL, SLOW_DOWN_SPEED_SLOW DIV 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論