模擬控制的全自動洗衣機(jī)實驗報告_第1頁
模擬控制的全自動洗衣機(jī)實驗報告_第2頁
模擬控制的全自動洗衣機(jī)實驗報告_第3頁
模擬控制的全自動洗衣機(jī)實驗報告_第4頁
模擬控制的全自動洗衣機(jī)實驗報告_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、西 安 郵 電 大 學(xué)(計算機(jī)學(xué)院)硬件課程設(shè)計報告題目:模擬控制的全自動洗衣機(jī)的設(shè)計與實現(xiàn)專業(yè)名稱:XXXX班級:XXXX學(xué)生姓名:XXXX學(xué)號(8位: 指導(dǎo)教師:XXXX設(shè)計起止時間:XXXX設(shè)計目的能夠了解和熟悉微機(jī)與可編程并行接口芯片 8255A 之間的工作原理,掌握8255Aproteusproteus一個簡單的設(shè)計。設(shè)計內(nèi)容基本實驗礎(chǔ)實驗三參考學(xué)習(xí)通視頻,然后自己在電腦上重新連接線路。三個基本實驗的 proteus仿真的原理圖如下:8255要求:實現(xiàn)撥動開關(guān)控制 LED 的亮滅注:因為本次實驗沒有做這個,所以這里只貼上圖片不進(jìn)行詳細(xì)的介紹。(2)流水燈設(shè)計要求:實現(xiàn)撥動不同開關(guān)控制

2、 LED 燈的變化。例如,K1 從左往右,K2 從右往左,K3 從中間向兩邊,K48255AcsIOY08255AA0A1XA1XA2ABC8255AA884實驗截圖如下:數(shù)碼管應(yīng)用要求:數(shù)碼管顯示 0 到 7,實現(xiàn)撥動不同開關(guān),數(shù)碼管顯示該開關(guān)位置值(1-8);若同時撥動兩個以上開關(guān),則數(shù)碼管顯示“E”。思路做法:8255AABCA,B,CC(及數(shù)碼管)輸出對應(yīng)的數(shù)值。實驗截圖如下:本組自選題目設(shè)計要求描述模擬控制的全自動洗衣機(jī):按下啟動按鈕,洗衣機(jī)電源導(dǎo)通,準(zhǔn)備進(jìn)入洗衣程序。在洗衣過程中可任意時刻按下停止鍵,洗衣程序終止運(yùn)行。按下啟動按鈕,程序重新開始運(yùn)行。設(shè)計過程設(shè) 計 方 案 (1)基

3、本實驗相對來說比較簡單,所以我就將基本實驗的內(nèi)容放到設(shè)計內(nèi)容中, 這里介紹自選實驗的相關(guān)內(nèi)容。本次實驗使用器件如下: 8255A8衣機(jī)的洗衣正轉(zhuǎn)和反轉(zhuǎn))。壞)接口芯片工作方式8255A0,即基本輸入/8255A的數(shù)據(jù)輸入或輸出操作。系統(tǒng)原理圖設(shè) 計 程 序 (1(2)讀取開關(guān)流程圖:調(diào)試程序接,就會解決問題。8255A cs IOY0 8255A A0A1 XA1XA2 A 0600HB 0602HC 0604H0606H。實驗代碼截圖如下:實驗接線圖及運(yùn)行截圖如下:proteus 中的電路原理圖如下:電路布線圖proteus8255Aproteusproteus會少一點等。接口電路板焊接后的

4、正面和反面實物圖接口電路板的正面圖如下:接口電路板的背面圖如下:運(yùn)行結(jié)果如下:實驗箱運(yùn)行Proteus仿真8255A8255AABproteus發(fā)現(xiàn)就是在連實驗箱的時候如果某個接線柱沒有接線,那么它就是高電位。注:接口電路板焊接完畢,但是連線沒有成功遇到的問題問題一:不會使用 proteus 仿真軟件csdnproteus問題二:數(shù)碼管顯示數(shù)字沒有達(dá)到預(yù)期目標(biāo)請教老師之后,并查閱相關(guān)資料成功解決。問題三:8255AC解決方法:單步調(diào)試發(fā)現(xiàn)是工作方式控制字沒有寫對,修改代碼,重新運(yùn)行,問題解決。設(shè)計總結(jié)proteus8255proteus8255A8086cpu8255Aproteus8255A

5、!附錄:基礎(chǔ)實驗(8255)CSEG SEGMENTassume CS:CSEGmovoutdx,(0600H+01H*2)dx,al;BSTART:jmpagainMOV AL,10010000B;初始化MOV DX,(0600H+03h*2)movah,4chOUT DX,ALint21hagain: mov dx,(0600h+00H*2)in al,dx ;A22(流水燈設(shè)計:MY8255_A EQU 0600H MY8255_B EQU 0602H MY8255_C EQU 0604H MY8255_MODE EQU 0606HDATA SEGMENTdatdb 80H,40H,20

6、H,10H,08H,04H,02H,01HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:;初始化MOV DX,MY8255_MODE MOV AL,90HOUT DX,ALREAD:;主程序MOV DX,MY8255_A IN AL,DXMOV AH,ALMOV DX,MY8255_B AND AL,10HJNZ QUITzf1;zf 若;當(dāng)前的運(yùn)算結(jié)果為 0,那么為;1CSEG ENDSEND MOV AL,AHAND AL,01H JNZ KEY1 MOV AL,AH AND JNZ KEY2 MOV AL,AH AND JNZ KEY

7、3 MOV AL,AH AND JNZ KEY4 JMP READQUIT:MOV AH,04CH INT 21HKEY1:;從左到右MOV AL,80H MOV CX,8L_TO_R:OUT DX,AL CALL DELAY SHR AL,1 LOOP L_TO_R JMP READKEY2:;從右到左MOVAL,01HDECSIMOVCX,8JNZO_TO_MR_TO_L:JMPREADOUTDX,ALCALL DELAYDELAY:PUSH CXSHL AL,1;延遲程序LOOP R_TO_LMOV CX, 0FFFFHJMP READAA2:PUSH AXKEY3:POPAX;從中間到

8、兩邊LOOP AA2MOV SI,4POPCXM_TO_O:RETMOV AL,81HCODEENDSOUT DX,ALENDSTARTCALL DELAY MOV AL,42H OUT DX,AL CALL DELAY MOV AL,24H OUT DX,AL CALL DELAY MOV AL,18H OUT DX,AL CALL DELAY DEC SIJNZ M_TO_O JMP READKEY4:;從兩邊到中間MOV AX,4C00H INT 21HCODE ENDSEND STARTAA2:PUSH AX POPAX LOOP POPCX RETCODEENDSENDMOV AX,

9、4C00H INT 21HCODE ENDSMOVSI,4ENDSTARTO_TO_M:MOVAL,18HOUTDX,ALCALL DELAY MOV AL,24H OUT DX,AL CALL DELAY MOV AL,42H OUT DX,AL CALL DELAY MOV AL,81H OUT DX,AL CALL DELAY3(數(shù)碼管 CSEG SEGMENTassume cs:CSEG START:;825 初始化MOV AL,10010000BMOV DX,(0600H+03h*2)c6:cmp jb noje ja c7OUT DX,ALagain: ;主程序mov dx,(06

10、00h+00H*2) in al,dx;輸入mov dx,(0600H+01H*2) out dx,almov dx,(0600H+02H*2)c:cmp al,0;根據(jù)輸入進(jìn)行判斷各自輸;出je no0 ja c1c7:cmp jb noje ja c8c8:cmp jb noje ja nono:mov out dx,aljmp mmc1:no128:moval,7fhcmp al,1outdx,alje no1jmpmmja c2no0:moval,3fhc2:outdx,alcmp al,2jmpmmje no2no1:moval,06hja c3outdx,alc3:jmpmmcmp

11、al,4no2:moval,5bhjbnooutdx,aljeno4jmpmmjac4no4:moval,4fhc4:outdx,alcmpal,8jmpmmjbnono8:moval,66hjeno8outdx,aljac5jmpmmc5:no16:moval,6dhcmpal,16outdx,aljbnojmpmmjeno16no32:moval,7dhjac6outdx,aljmp mmmov ah,4chno64:mov al,07hint 21hout dx,alCSEGENDSjmp mmEND STARTmm:jmp again自選實驗(模擬控制的全自動洗衣機(jī));=; 文件名:;

12、 功能描述: 全自動滾筒洗衣機(jī);=SSTACKSSTACKSEGMENT STACKDW 256 DUP(?) ENDS;B 輸出,C 低四位輸出Outdx,al;控制字送到控制端口DATASEGMENTleddbBEGIN:CALL TUBE_STOP6FH,7FH,07H,7DH,6DH,66H,4FH,5BH,06H,3FH;數(shù)碼管的顯示字(dp)gfe dcba;9-0ioporta equ 600h ioportb equ 602h ioportc equ 604hTABDT DB 01H,02H,04H,08H,10H,20H,40H,80H;八位二極管燈依次顯示 ,是、電DATA

13、ENDSCODESEGMENTASSUME CS:CODE, DS:DATA;將當(dāng)前的 IP 或 CS 壓入棧;中轉(zhuǎn):移MOV DX,0604Hc;寄存;器中INAL, DXCMOV BL, ;獲取高四位,因為右移之;后低四;位都被移出去了MOV CL, 4START:SHR BL, CL;=Begin=;獲取低四位=;zf0MOV AX, DATAzf=1MOV DS, AXCMP BL, 0Mov dx,606hJZ BEGIN;控制字端口;(iump if zero)如果等于零mov al,88H;那么跳轉(zhuǎn);方式0,A輸出,CMP BL, 1;若開關(guān)1打開,甩干模式和;*讀取開關(guān)子程序*

14、;1相等,那么就是方式一READPROC;極快速檔PUSH DXJZ FASTESTPUSH AXCMPBL,02H;和 2;快速檔JZCMP BL, 04H;和 4;慢速檔表示得是JZSLOWFASTEST:; 比 較 DI 和 10dI=10的時候;那么不跳到beginCMP DI,10;甩干模式出來停JZBEGIN;不等那么就執(zhí)行下一條語;句call meantime;MOV DI, 1000H;約定使用 DI 來傳遞參數(shù);(延時長短);CALL SPEED;甩干模式,急速快FAST:MOV DI, 4000H;約定使用 DI 來傳遞參數(shù);(延時長短);目的變址寄存器CALL SPEED

15、11SLOW:MOV DI, 0FFFFH;約定使用 DI 來傳遞參數(shù);(延時; 長 短 ) CALL SPEED22;甩干模式執(zhí)行完之后才進(jìn);行讀開關(guān)PUSH BX PUSH CXMOV DX, 0604HINAL, DXCMOV BL, ALMOV CL, 4 SHR BL, ;獲取低四位cCMP BL, 0JZBEGIN;CMP BL, 1;若開關(guān) 1 打開,甩干模式;JZQ1;CMP BL, 02H;若開關(guān) 2 打開,標(biāo)準(zhǔn)模式;JZFAST;CMP BL, 04H;若開關(guān) 3 打開,輕柔模式;JZPOP CX POP BX POP AX POP DXRETREADENDP;動態(tài)數(shù)碼管停

16、止; TUBE_STOP PROC;將 AX,BX,DX 中的內(nèi)容先保存到;堆棧中,;也就是代碼剛一開始的數(shù)據(jù)段PUSH AXPUSH BXPUSH DXmov cx,6mov dx,606h;讓數(shù)碼管和led都開始工作digit1:mov al,88H;方式 0,A 輸出,B 輸出,;Cout dx,al;初始化 8255;1000 1000;A,B,C 低四位 都為輸出,;c 高四位為輸入mov bx,offset ledmov al,11111001b ;選擇全部mov dx,ioportc;11111001 的值放 iportc 中;把要用的端口初始化為 0 ,;避免之前的數(shù)據(jù)影響ou

17、t dx,al ;出 Cmov al,bx+9 ;mov dx,ioporta;將 3FH 放到 al 中out dx,al ;從 aPOPDXAX,BX,DX;拿出來POP BX POP AX RETTUBE_STOP ENDP同步* meantime procmov dx,606hmov al,10001000b;方式 0,A 輸出,B 輸出,;C低位輸出,高四位輸入out dx,al;初始化mov bx,offset ledmov si,0;個位mov di,8;十位;動態(tài)刷新一次數(shù)碼管數(shù)字CALL GEW ;從 a 口輸出call delay;1000CALL TENCALL shua

18、igan;甩干模式結(jié)束讀開關(guān)call read ;讀開關(guān)loop digit1digit3:mov cx,6 inc si cmp si,9jbedigit1;無符號小于等于則跳轉(zhuǎn)CMPDI,9;只為判斷最后一次00情JaDIGIT4;無符號大于則跳轉(zhuǎn)inc di ;滿十進(jìn)一mov si,0;清零個位;digit2:;個位刷成 0,十位刷成 原來-1CALL GEWcall delay;1000 CALL TENCALL shuaigan call read ;讀開關(guān)loop digit2movcx,6CMPDI,9 JBeDIGIT4:0call tube_stopjmp begin;選擇十

19、位;跳轉(zhuǎn)到開始;顯示的數(shù)字位置meantime endp;顯示的是十位的數(shù)字;*個位*mov dx,ioportCGEW PROCout dx,alPUSH AXcPUSH BXmov al,bx+di;PUSH DXPUSH SImov bx,offset led mov al,11111101b;選擇個位;選擇哪個數(shù)碼管的位置亮;選擇的是個位的數(shù)字;9-c1c2mov dx,ioportC out dx,al;出 C 口 選擇個位;1111 1011cmov al,bx+SI;尋址方式基址變址NOT AL;對 al 取非mov dx,ioportaout dx,al ;從 aPOP SIP

20、OP POP ;還原POP AX RETGEW ENDP;*十位TEN PROCPUSH AX;保存PUSH PUSH PUSH mov bx,offset led mov al,11111011BNOT ALmov dx,ioportaout dx,al ;從 a 口輸出POP DI POP DX POP BX POP AX RETTEN ENDP;*延時子程序* delay procpush cx; 將代碼段保存起來mov cx,1000hdel:;nop;執(zhí)行 nop 指令只使程序計PC1,所以占用一;個機(jī)器周期, noploop delPC1,;所占用一個機(jī)器周期 ,;保證讀寫穩(wěn)定有一

21、定的時pop cx retdelay endp甩干子程序* shuaigan procpush push push push dxTABDTMOVBX, OFFSET;*電機(jī)驅(qū)動子程序SPEED PROC;led 燈MOVCX, 0008HMOVAL, 88HQ2:;因為是8個led燈; 控制B口工作于方式0,;輸出MOVDX, 0606HcallMOVAL,BX;寫 B 口;SI 用于計算反轉(zhuǎn)時間OUT DX,;寫 B 口;SI 用于計算反轉(zhuǎn)時間OUT DX,AL;*正轉(zhuǎn)*ALb端口中INCBXA1:calldelayOUTDX, MOVSI, 0CALLTENcalldelayLOOPQ2pop dxMOVBX, OFFSET MOVCX, 0008H;正轉(zhuǎn)八圈A2:MOV AL,BX MOVDX, BBOUT DX,ALpoppopcxbxALBpopaxCALL DALLYret;控制步進(jìn)電機(jī)的+轉(zhuǎn)速

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論