版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 單片機原理課程</b></p><p><b> 設計報告</b></p><p><b> 一、設計目標</b></p><p> 本設計采用LED和數(shù)碼顯示管顯示洗衣機所處在的模式和水位,所處的的洗衣狀態(tài),水溫,以及完成洗衣的剩余時間。實現(xiàn)不同模式下水位的選擇一
2、共三種模式(標準,輕柔,快洗),四種水位,當洗衣機啟動后,上水電磁閥打開注水,當水到達設定的限位時,上水電磁閥斷電,注水過程停止,啟動電機全自動控制洗衣操作,整個過程的進行按時間控制,時間自定。液位檢測和控制:使水位限定在某一個給定的液位范圍內(nèi),當水位越限時進入超水位中斷報警提示并打開下水電磁閥放水,不啟動洗衣過程,待滿足要求后,投入運行。當投入洗衣量大于洗衣機額定容量時,控制系統(tǒng)應報警,不啟動洗衣過程。待滿足要求后,投入運行</
3、p><p> 1、洗衣程序功能:手動模式:用戶可以選擇單獨的單洗,漂洗,長脫水;自動模式:用戶可以根據(jù)需求通過鍵盤選擇以下模式:即標準洗衣程序、輕柔洗衣、快洗每種模式下又可以選擇四種水位;再上電后如果不進行任何操作一段時間后洗衣機便進入默認模式進行洗衣。 </p><p> 2、顯示功能:顯示選擇的模式,水位,正在進行的洗衣操作(狀態(tài)),水溫,完成洗衣過程的剩余時間。<
4、/p><p> 特殊功能:超水位報警并自動放水,達到要求后結(jié)束報警開始洗衣;超容量報警,待用戶排除后結(jié)束報警開始洗衣。</p><p><b> 設計過程</b></p><p><b> 1、硬件設計</b></p><p><b> ?。?)系統(tǒng)總體設計</b></
5、p><p> 一臺洗衣機大體可分為5部分,分別為按鍵控制部分、顯示部分、進水部分、排水部分、電機部分。這5部分按鍵控制為輸入,其余為輸出。如下圖</p><p><b> 總體結(jié)構(gòu)圖</b></p><p><b> ?。?)具體實現(xiàn)</b></p><p> 本設計用98C51單片機實現(xiàn)洗衣機的
6、控制,通過對撥碼開關和鍵盤的操作實現(xiàn)手動自動模式的選擇,以及水位得選擇,也可以進行任何操作進入默認模式。當選擇好模式后進入該模式設置該模式下的參數(shù),然后再次掃描鍵盤,去選擇水位,選定水位后,進入該水位模式設置水位參數(shù)。</p><p> 在P1.4為低電平是進入手動模式,手動模式下若P1.5為低電平則進入單洗過程,單洗完成聲光報警提示用戶此過程完成;若P1.5為高電平檢查P1.6若為低電平進去漂洗程序進行漂洗,
7、漂洗完成聲光報警提示用戶漂洗結(jié)束。柔P1.6為高電平則檢查P1.7若為低電平就進入長脫水程序,進行長脫水,長脫水結(jié)束聲光報警提示用戶操作完成;若P1.7為高電平則從P1.5重新檢查直到檢查到低電平為止。</p><p> 在P1.4為高電平時不是手動模式,則去掃描鍵盤,第一次掃描鍵盤為選擇標準,輕柔,快洗模式,待選擇好模式設定好參數(shù)后,再次掃描鍵盤選擇水位,選擇好水位后設置參數(shù),然后進入洗衣過程。如果15秒內(nèi)沒
8、有掃描到模式的按鍵,則進入默認模式。</p><p> 單洗衣程序包括單洗、漂洗、長脫水三個過程。</p><p> 自動模式下的三個模式都包括單洗、漂洗、長脫水三個過程,只是在不同模式和水位下的參數(shù)不同罷了;洗衣過程:進入洗衣程序開定時器開始倒計時,根據(jù)選擇的水位進水,進水完成后,在沒有超出要求水位的情況下,進入單洗過程,電動機開始正反轉(zhuǎn)過程根據(jù)所選模式中設置的正反轉(zhuǎn)次數(shù)以及不同模式
9、下正反轉(zhuǎn)的時間自動洗衣;待單洗完成就進入排水過程,排水時間由水位模式設置,排水結(jié)束后進入漂洗過程。漂洗過程:先進行段脫水,脫水結(jié)束再進水,進水完成再進行短洗,短洗時間為四分鐘,短洗完成在排水,然后重復上述過程一次即完成漂洗過程,漂洗完成進入長脫水過程,長脫水時間為四分鐘,電機高速旋轉(zhuǎn),長脫水結(jié)束,整個洗衣過稱也結(jié)束,此時聲光報警提示用戶洗衣完成。</p><p> 標準模式下的單洗過程,電機正反轉(zhuǎn)36次,每次正
10、轉(zhuǎn)十八秒,停兩秒,再反轉(zhuǎn)十八秒,停兩秒;輕柔模式下單洗過程,電機正反轉(zhuǎn)36次,每次正傳是三秒停兩秒,再反轉(zhuǎn)是三秒,停兩秒;快洗模式下但系過程,電機正反轉(zhuǎn)24次,每次正轉(zhuǎn)十八秒,停兩秒,再反轉(zhuǎn)十八秒,停兩秒;三種模式下的漂洗過程相同見下面漂洗過程分析;每個模式下的長脫水都是相同的,都是電機正傳四分鐘。</p><p> 進排水由時間控制,每個水位下設置好了進排水的時間,進水時P3.4置一,表示開進水閥,進水完成時
11、P3.4置0表示關進水閥;排水是P3.5置1表示開排水閥,排水完成是P3.5置0表示管排水閥。</p><p> 在顯示時開始考慮的是通過按鍵實現(xiàn)交替顯示,但是這樣就必須時刻掃描鍵盤,這使程序進入了掃描鍵盤的死循環(huán),無法進行其他的工能,在多次考慮后發(fā)現(xiàn)在進排水,電機動作時沒有其他的要求,可以利用這段時間去驅(qū)動數(shù)碼管顯示模式,水位,狀態(tài),溫度,以及剩余時間等,剩余時間單獨顯示,其他的一起顯示,這樣就只需要顯示兩次
12、,每次十秒,交替顯示,單洗是短洗時電機正傳是顯示十秒的模式,水位,狀態(tài),溫度,然后數(shù)碼管熄滅十秒或五秒,電機反轉(zhuǎn)時顯示十秒的剩余時間,再熄滅十秒或五秒,這樣循環(huán)進行;在脫水或進排水時兩種顯示一十秒每次交替顯示,這樣在整個過程中多有顯示,很好地解決了顯示與洗衣同時進行的問題了。</p><p> 電機的正反轉(zhuǎn)實現(xiàn)方式:當P3.6為1,P3.7為0時電機正轉(zhuǎn),當P3.6和P3.7都為0時電機停轉(zhuǎn),當P3.6為0,P
13、3.7為1時電機反轉(zhuǎn)。電機正反轉(zhuǎn)用LED燈模擬,紅燈亮表示正傳,綠燈亮表示反轉(zhuǎn),兩燈都熄滅表示電機停轉(zhuǎn)。</p><p> 自動模式下,數(shù)碼管右邊第一為表示模式,b表示標準模式,q表示輕柔模式,3表示快洗模式,第二位表示水位分別用1、2、3、4表示四種水位;中間兩位表示正在進行的動作即狀態(tài),7H表示進水,dH表示短脫水,dd表示短洗,CH表示長脫水PH表示排水;左邊兩位顯示的是水的溫度。在顯示模式2下用四個數(shù)碼
14、管顯示剩余時間。</p><p> 在手動模式下的單洗,漂洗,長脫水需要單獨設置參數(shù),具體設置見附錄的程序中;單洗時,模式水位顯示位顯示的是d7表示手動下的單洗;漂洗是顯示P7表示漂洗,長脫水時顯示CH表示長脫水;手動下單洗為28分鐘,漂洗為18分鐘,長脫水為4分鐘。</p><p> 默認模式下調(diào)用的是標準模式下水位2的洗衣程序,顯示也完全相同;</p><p&g
15、t; 另外每一個動作完成時都有一秒鐘的蜂鳴提示。</p><p> 2、軟件程序的設計:</p><p> 洗衣機的一次洗衣過程控制過程比較簡單,主要為順序控制,如先進水、洗滌(電機正轉(zhuǎn)反轉(zhuǎn))、再排水脫水,難點在于過程選擇,如不同的衣物所用的洗滌、漂洗、電機正轉(zhuǎn)反轉(zhuǎn)時間不同,如果為每個過程單獨編一套指令,則指令系統(tǒng)變得很龐大,效率低,為此,把脫水、洗滌、排水、短洗、漂洗、進水單獨編為
16、一個子程序,由主程序根據(jù)過程選擇,不斷調(diào)用,由些減少源程序的長度,不同的洗衣過程,三大動作的時間不同,這可以通過建立數(shù)據(jù)表格,通過查表的方式獲得每個洗衣過程所需時間。此外,還需編出顯示子程序,延時子程序供主程序不斷調(diào)用,而且在每一個模式和水位下設置了不同參數(shù),這樣通過對子程序的調(diào)用,就實現(xiàn)了同一模式下不同水位的選擇這一擴展功能,僅僅在自動模式下就有3*4=12種小模式了。</p><p><b> 三
17、、設計結(jié)果</b></p><p><b> 1、電路原理圖</b></p><p><b> 2、PCB版圖:</b></p><p><b> 3、流程圖</b></p><p><b> N </b></p&g
18、t;<p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b> 主程序框圖</b></p><p> 自動模式下模式水位的選擇</p><p
19、> 洗衣流程單洗流程</p><p><b> N</b></p><p><b> Y</b></p><p><b> N</b></p><p><b> Y</b></p><p><b>
20、長脫水流程</b></p><p><b> 漂洗流程</b></p><p><b> 進水流程排水流程</b></p><p><b> N</b></p><p><b> NY</b></p><p&
21、gt;<b> Y</b></p><p><b> N</b></p><p><b> N</b></p><p><b> YY</b></p><p><b> 電機正反轉(zhuǎn)流程</b></p><
22、;p><b> N</b></p><p><b> Y</b></p><p> 超水位報警并自動排水流程</p><p><b> 匯編語言</b></p><p> 洗衣機系統(tǒng)的匯編程序</p><p> FLAG EQU
23、 45H ;DS18B20是否存在標志 </p><p> DQ EQU P1.3 ;DQ引腳由P2.5控制 </p><p> ORG 0000H</p><p> LJMP START</p><p> ORG 0003H</p><p> LJMP
24、 PINT0</p><p> ORG 0013H</p><p> LJMP PINT1</p><p> ORG 001BH</p><p> LJMP P_T1</p><p> ORG 0030H</p><p> START: MOV SP,#60H
25、</p><p> CLR P3.4 ;關進水閥 </p><p> CLR P3.5;關排水閥 </p><p> CLR P3.6;電機不轉(zhuǎn)動 </p><p> CLR P3.7 ;電機不轉(zhuǎn)動 </p><p> MOV IP,#01H;INTI為
26、高優(yōu)先級 </p><p> SETB EA;CPU允許中斷 </p><p> SETB IT0;跳變觸發(fā)方式 </p><p> SETB IT1;跳變觸發(fā)方式 </p><p> MOV TH1,#3CH<
27、;/p><p> MOV TL1,#0B0H</p><p> MOV 40H,#20;1S定時 </p><p> MOV TMOD,#10H</p><p> SETB EX1;允許INT1中斷SETB EX0;允許INT0中斷 S
28、ETB ET1;允許定時器T1中斷 MOV 4DH,#05 ;等待5秒,供用戶選擇手動還是 </p><p> DENDAI:LCALL DL1S ;自動,若選擇手動并設置自動模式下的哪種 </p><p> DJNZ 4DH,DENDAI ;工作方式,單洗,單漂,長脫水 </p><p> MO
29、V P1,#0F6H</p><p> LCALL DL1S</p><p> MOV P1,#0FFH</p><p> MOV 4FH,#250</p><p> BACK:JB P1.4,KSSM1;P1.4為1即使自動模式,轉(zhuǎn)到掃描鍵盤 JNB P1.5,TODANXI ;P1.5為0
30、即為選擇單洗,轉(zhuǎn)到單洗JNB P1.6,TOPX;P1.6為0即為選擇漂洗,轉(zhuǎn)到漂洗JNB P1.7,TOCTS;P1.7為0即為選擇長脫水,轉(zhuǎn)到長脫水JMP BACK;沒有檢測到手動選擇的是什么,換回重新檢測;******手動單洗程序******** </p><p> TODANXI:SETB TR1</p><
31、p> MOV 30H,#07 ;狀態(tài)顯示參數(shù),顯示7 </p><p> MOV 31H,#13 ;狀態(tài)顯示參數(shù),顯示d,d7代表單洗 </p><p> MOV 2AH,#18H ;電機動作24分鐘 </p><p> MOV 2CH,#05H ;進排水4分鐘 </p><p> MOV 25H,
32、#36;設正反轉(zhuǎn)次數(shù) </p><p> MOV 26H,#08;轉(zhuǎn)動8+10s </p><p> MOV 27H,#02;停2秒 </p><p> MOV 28H,#40;進排水2分鐘,40+20x4 </p><p> LCALLDJSCZ</p><p> LCALL D
33、ANXI</p><p> JNB P1.6,TOPX</p><p> LJMP THEND</p><p> ;****手動漂洗程序****** </p><p> TOPX:SETB TR1</p><p> MOV 30H,#07 ;狀態(tài)顯示參數(shù),顯示7 </p><
34、p> MOV 31H,#18 ;狀態(tài)顯示參數(shù),顯示P,P7代表漂洗 </p><p> MOV 2AH,#0EH ;電機動作14分鐘 </p><p> MOV 2CH,#05H ;進排水4分鐘 </p><p> MOV 28H,#40;進排水2分鐘,40+20x4 </p><p> LCALL
35、DJSCZ</p><p><b> LCALL PX</b></p><p> JNB P1.7,TOCTS</p><p> LJMP THEND</p><p> ;****手動長脫水****** </p><p> TOCTS:SETB TR1</p>
36、<p> MOV 30H,#16;狀態(tài)顯示參數(shù),顯示H </p><p> MOV 31H,#12;狀態(tài)顯示參數(shù),顯示C,CH代表長脫水 </p><p> MOV 2AH,#04H ;脫水4分鐘 </p><p> MOV 2CH,#00H</p><p> LCALLDJSCZ</
37、p><p> LCALL CTS</p><p> LJMP THEND </p><p> ;****鍵盤掃描1******</p><p> KSSM1:MOV P2,#0F0H ;置P2.0~P2.3為輸出,P2.4~P2.6為輸入</p><p> MOV A,P2</
38、p><p> ANL A,#0F0H</p><p> XRL A,#0F0H</p><p> JZ NO_KEY1 ;A為0則無按鍵</p><p> LCALL DL20MS ;延時消抖</p><p> MOV A,P2</p><p> A
39、NL A,#0F0H ;重讀鍵盤</p><p> XRL A,#0F0H</p><p> JZ NO_KEY1 ;A為0則無按鍵</p><p> MOV R2,#11110111B ;列掃描初值</p><p> LSM1:MOV A,R2</p><p>
40、 MOV P2,A</p><p> MOV A,P2</p><p> ANL A,#11110000B</p><p> MOV R3,A</p><p> CJNE A,#0F0H,KEY1;有鍵按下則跳轉(zhuǎn)</p><p> MOV A,R2</p><p
41、><b> RR A</b></p><p><b> MOV R2,A</b></p><p> XRL A,#01111111B</p><p> JNZ LSM1</p><p> NO_KEY1:LJMP NEXT3</p><p>
42、; KEY1:MOV A,R2</p><p> ANL A,#0FH</p><p> ORL A,R3</p><p> MOV R4,A</p><p> SHIFANG1: MOV A,P2</p><p> ANL A,#0F0H</p><p>
43、 XRL A,#0F0H</p><p> JNZ SHIFANG1</p><p> LCALL DL20MS</p><p> MOV A,P2</p><p> ANL A,#0F0H</p><p> XRL A,#0F0H</p><p> JNZ
44、SHIFANG1</p><p> MOV A,R4</p><p> CJNE A,#0D7H,NEXT1</p><p> LJMP FANGSHI1</p><p> NEXT1:CJNE A,#0DBH,NEXT2</p><p> LJMP FANGSHI2</p>&
45、lt;p> NEXT2:CJNE A,#0DDH,NEXT3</p><p> LJMP FANGSHI3</p><p> NEXT3: DJNZ 4FH,KSSM1</p><p> LJMP MORENMOSHI;跳到默認模式 </p><p> ;****實際鍵盤掃描2*****</p
46、><p> KSSM2:MOV P2,#0F0H ;置P2.0~P2.3為輸出,P2.4~P2.6為輸入</p><p> MOV A,P2</p><p> ANL A,#0F0H</p><p> XRL A,#0F0H</p><p> JZ NO_KEY2 ;A為0
47、則無按鍵</p><p> LCALL DL20MS ;延時消抖</p><p> MOV A,P2</p><p> ANL A,#0F0H ;重讀鍵盤</p><p> XRL A,#0F0H</p><p> JZ NO_KEY2 ;A為0則無按鍵</
48、p><p> MOV R2,#11110111B ;列掃描初值</p><p> LSM2:MOV A,R2</p><p> MOV P2,A</p><p> MOV A,P2</p><p> ANL A,#11110000B</p><p> MOV
49、 R3,A</p><p> CJNE A,#0F0H,KEY2;有鍵按下則跳轉(zhuǎn)</p><p> MOV A,R2</p><p><b> RR A</b></p><p><b> MOV R2,A</b></p><p> XRL A
50、,#01111111B</p><p> JNZ LSM2</p><p> NO_KEY2:LJMP KSSM2</p><p> KEY2:MOV A,R2</p><p> ANL A,#0FH</p><p> ORL A,R3</p><p> MOV
51、 R4,A</p><p> SHIFANG2: MOV A,P2</p><p> ANL A,#0F0H</p><p> XRL A,#0F0H</p><p> JNZ SHIFANG2</p><p> LCALL DL20MS</p><p> MOV
52、 A,P2</p><p> ANL A,#0F0H</p><p> XRL A,#0F0H</p><p> JNZ SHIFANG2</p><p> MOV A,R4</p><p> CJNE A,#0B7H,NEXT4</p><p> LJMP S
53、HUIWEI1</p><p> NEXT4: CJNE A,#0BBH,NEXT5</p><p> LJMP SHUIWEI2</p><p> NEXT5:CJNE A,#0BDH,NEXT6</p><p> LJMP SHUIWEI3</p><p> NEXT6:CJNE A,#7
54、7H,NEXT7</p><p> LJMP SHUIWEI4</p><p> NEXT7: LJMP KSSM2</p><p> ;*****默認模式***** </p><p> MORENMOSHI: MOV 2AH,#2AH;設置時間1的參數(shù)42分鐘 MOV 30H,#0B
55、H;顯示方式為b代表標準 MOV 25H,#36;正反轉(zhuǎn)次數(shù) MOV 26H,#08;轉(zhuǎn)動8+10s MOV 27H,#02</p><p> MOV 2CH,#0DH;時間2,為13分鐘 </p><p> MOV 31H,#01;顯示
56、水位為1 </p><p> MOV 28H,#50;進排水時間,50s+80s </p><p> LCALL XYCHX</p><p><b> RET</b></p><p> ;****自動情況下方式一即為標準模式***</p><p>
57、 FANGSHI1 : MOV 2AH,#2AH;設置時間1的參數(shù)42分鐘 MOV 30H,#0BH;顯示方式為b代表標準 MOV 25H,#36;正反轉(zhuǎn)次數(shù) MOV 26H,#08;轉(zhuǎn)動8+10s MOV 27H,#02;停兩秒 LCALL KSSM2;調(diào)用鍵盤掃描
58、程序,選擇水位</p><p> LJMP THEND</p><p> ;******自動情況下方式二,即為輕柔模式*******FANGSHI2: MOV 2AH,#24H;設置時間1的參數(shù)24分鐘 MOV 30H,#25;顯示方式為q代表輕柔 MOV 25H,#36;正反轉(zhuǎn)次數(shù)
59、 MOV 26H,#03;轉(zhuǎn)動3+10s MOV 27H,#02;停兩秒 </p><p> LCALL KSSM2;調(diào)用鍵盤掃描程序,選擇水位</p><p> LJMP THEND</p><p> ;*****自動情況下方式三,
60、即為快洗模式***** FANGSHI3: MOV 2AH,#1EH ;設置時間1的參數(shù)30分鐘 MOV 30H,#03;顯示方式為3代表快洗 MOV 25H,#18;正反轉(zhuǎn)次數(shù) MOV 26H,#08;轉(zhuǎn)動8+10s </p><p> MOV 2
61、7H,#02;停兩秒 </p><p> LCALL KSSM2;調(diào)用鍵盤掃描程序,選擇水位</p><p> LJMP THEND</p><p> ;******水位一***** * </p><p> SHUIWEI1: MOV 2CH,#0DH;時間2,為13分
62、鐘 </p><p> MOV 31H,#01;顯示水位為1 </p><p> MOV 28H,#50;進排水時間,50s+80s </p><p> LCALL XYCHX</p><p><b> RET</b></p><p&g
63、t; ;*****水位二***** </p><p> SHUIWEI2: MOV 2CH,#0CH;時間2,為12分鐘 </p><p> MOV 31H,#02;顯示水位為2 </p><p> MOV 28H,#40;進排水時間,40s+80s </p&
64、gt;<p> LCALL XYCHX</p><p><b> RET</b></p><p> ;*****水位三****** </p><p> SHUIWEI3: MOV 2CH,#0BH;時間2,為11分鐘 </p><p> MOV
65、31H,#03;顯示水位為3 </p><p> MOV 28H,#30;進排水時間,30s+80s </p><p> LCALL XYCHX</p><p><b> RET</b></p><p> ;*****水位四********* <
66、/p><p> SHUIWEI4: MOV 2CH,#0AH;時間2,為10分鐘 </p><p> MOV 31H,#04;顯示水位為4 </p><p> MOV 28H,#20;進排水時間,20s+80s </p><p> LCALL XYCHX</p><p&g
67、t;<b> RET</b></p><p> ;*******洗衣程序****** </p><p> XYCHX: SETB TR1;開定時器 </p><p> LCALL DANXI;調(diào)單洗程序 </p><p> LCALL PX;調(diào)漂洗程序 </p>
68、<p> LCALL CTS;調(diào)長脫水程序 </p><p> RET </p><p> ;******單洗程序 *******</p><p><b> DANXI: </b></p><p> LCALL DJSCZ ;倒計時初值 </p><
69、;p> LCALL JSH;調(diào)進水程序 </p><p> GOON2: MOV 32H,#07</p><p> MOV 33H,#13</p><p> LCALL ZFZ;調(diào)正反轉(zhuǎn)程序 </p><p> DJNZ 25H,GOON2;循環(huán)幾次 </p><p>
70、 LCALL PSH;排水 </p><p><b> RET</b></p><p> ;******漂洗程序 ******* </p><p> PX:MOV 29H,#02;循環(huán)2次 </p><p> LCALL DTS;短脫水 </p><p>
71、; GOON3: LCALL JSH;進水 </p><p> LCALL DXD;短洗滌 </p><p> LCALL PSH;排水 </p><p> LCALL DTS;短脫水 </p><p> DJNZ 29H,GOON3</p><p><b
72、> RET</b></p><p> ;*****長脫水程序(4分鐘) ****** </p><p> CTS:MOV 32H,#16;狀態(tài)顯示查表參數(shù),顯示H</p><p> MOV 33H,#12;狀態(tài)顯示查表參數(shù),顯示C,表示長脫水 </p><p> MOV 2BH,#12
73、;設置調(diào)用延時顯示程序的次數(shù) </p><p> SETB P3.5;開排水閥 </p><p> SETB P3.6</p><p> CLR P3.7;開始脫水 </p><p> LCALL YSXS;延時并顯示 </p><p> CLR P3.6;停止脫水
74、 </p><p> CLR P3.5;關排水閥 </p><p> LCALL SHGTS;聲光提示 </p><p><b> RET</b></p><p> ;******進水程序******* </p><p> JSH:MOV 32H,#16;
75、狀態(tài)顯示查表參數(shù)顯示H </p><p> MOV 33H,#07;狀態(tài)顯示查表參數(shù)顯示7,7H代表進水 </p><p> MOV 24H,28H;進水時間參數(shù) </p><p> SETB P3.4;開排進閥 </p><p> LCALL JPSHYS;延時并顯示 </p>&
76、lt;p> CLR P3.4;關進水閥 </p><p> LCALL SHGTS;聲光提示 </p><p><b> RET</b></p><p> ; *****短脫水程序(2分鐘)******** </p><p> DTS: MOV 32H,#16;狀態(tài)顯示查表
77、參數(shù),顯示H </p><p> MOV 33H,#13;狀態(tài)顯示查表參數(shù),顯示d,dH代表短脫水 </p><p> MOV 2BH,#06;設置調(diào)用延時顯示程序的次數(shù) </p><p> SETB P3.5;開排水閥 </p><p> SETB P3.6</p><p>
78、 CLR P3.7;開始脫水 </p><p> LCALL YSXS;延時并顯示 </p><p> CLR P3.6;停止脫水 </p><p> CLR P3.5;關排水閥 </p><p> LCALL SHGTS;聲光提示 </p><p><b&g
79、t; RET</b></p><p> ;*****短洗程序 4分鐘******* </p><p> DXD:MOV 32H,#13;狀態(tài)顯示查表參數(shù) </p><p> MOV 33H,#13;狀態(tài)顯示查表參數(shù) </p><p> MOV 25H,#08H;正反轉(zhuǎn)次數(shù) </p
80、><p> MOV 26H,#03H;3+10s </p><p> MOV 27H,#02H;停兩秒 </p><p> GOON1:LCALL ZFZ</p><p> DJNZ 25H,GOON1;正反轉(zhuǎn)8次 </p><p> LCALL SHGTS;聲光提示 &
81、lt;/p><p><b> RET</b></p><p> ;******排水程序****** </p><p> PSH:MOV 32H,#16;狀態(tài)顯示查表參數(shù),顯示H </p><p> MOV 33H,#18;狀態(tài)顯示查表參數(shù),顯示P,PH代表排水 </p><
82、p> MOV 24H,28H;進水時間參數(shù) </p><p> SETB P3.5;開排進閥 </p><p> LCALL JPSHYS;延時并顯示 </p><p> CLR P3.5;關進水閥 </p><p> LCALL SHGTS;聲光提示 </p><
83、;p><b> RET</b></p><p> ;****進排水延時并顯示程序***** </p><p> JPSHYS:MOV R7,#04H ;調(diào)4次顯示,共80s </p><p> GO4:LCALL T01</p><p> LCALL T02</p>&l
84、t;p> DJNZ R7,GO4;4次完沒有 </p><p><b> RET</b></p><p> ;*******脫水延時顯示 ******* </p><p><b> YSXS:NOP</b></p><p> GO3:LCALL T01</p&
85、gt;<p> LCALL T02</p><p> DJNZ 2BH,GO3</p><p><b> RET </b></p><p> ;*****20ms延時子程序******* </p><p> DL20MS:MOV 20H,#10</p><p>
86、 DELY1:MOV 21H,#250</p><p> DELY2:NOP</p><p><b> NOP</b></p><p> NOP </p><p><b> NOP</b></p><p><b>
87、; NOP</b></p><p><b> NOP</b></p><p> DJNZ 21H,DELY2</p><p> DJNZ 20H,DELY1</p><p><b> RET</b></p><p> ;******1s延時子程序
88、 ****** </p><p> DL1S:MOV 22H,#50</p><p> DELY3:LCALL DL20MS</p><p> DJNZ 22H,DELY3</p><p><b> RET</b></p><p> ;******t0延時子程序******
89、 </p><p><b> TO:NOP</b></p><p> GO5:LCALL DL1S</p><p> DJNZ 24H,GO5</p><p><b> RET</b></p><p> ;******1ms延時程序***** &l
90、t;/p><p> DL1MS:MOV 23H,#250</p><p> DELY4:NOP</p><p><b> NOP</b></p><p> DJNZ 23H,DELY4</p><p><b> RET</b></p><p&
91、gt; ;*******t01延時顯示程序 ****** </p><p> T01:MOV 47H,#10</p><p> GO10:MOV R6,#00</p><p> LCALL DO18B20</p><p> GO1:LCALL XSCX1;調(diào)顯示程序1 </p><p>
92、; CJNE R6,#01,GO1</p><p> DJNZ 47H,GO10</p><p><b> RET</b></p><p> ;******t02延時顯示程序2****** </p><p> T02:MOV R6,#00</p><p> GO2:LCALL
93、 SHJFL</p><p> LCALL XSCX2</p><p> CJNE R6,#10,GO2</p><p><b> RET</b></p><p> ;******正反轉(zhuǎn)程序******* </p><p> ZFZ:MOV 24H,26H</p>
94、<p> SETB P3.6</p><p> CLR P3.7</p><p> LCALL T01;正轉(zhuǎn)10秒 </p><p> MOV P1,#07H</p><p> LCALL TO;正轉(zhuǎn)8或3秒 </p><p> CLR P3.6;停 </
95、p><p> MOV 24H,27H </p><p> LCALL TO;停2秒 </p><p> MOV 24H,26H</p><p> SETB P3.7</p><p> LCALL T02;反轉(zhuǎn)十秒 </p><p> MOV P1,#07H&l
96、t;/p><p> LCALL TO;反轉(zhuǎn)8或3秒 </p><p><b> CLR P3.7</b></p><p> MOV 24H,27H </p><p> LCALL TO;停2秒 </p><p><b> RET</b></p&
97、gt;<p> ;*******計算倒計時初值****** </p><p> DJSCZ:MOV A,2AH</p><p> ADD A,2CH</p><p><b> DEC A</b></p><p> MOV 42H,A</p><p> MOV
98、 41H,#60</p><p><b> RET</b></p><p> ;*****定時到中斷****** </p><p> P_T1:PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV TH1,#3CH
99、 ;重置計時初值 </p><p> MOV TL1,#0BH</p><p> DJNZ 40H,TODO1;到一秒使秒單元減一 </p><p> MOV 40H,#20</p><p><b> INC R6</b></p><p><b> DE
100、C 41H</b></p><p> MOV R2,41H</p><p> CJNE R2,#00,TODO1</p><p> MOV R3,42H</p><p> CJNE R3,#00,TODO2</p><p><b> CLR TR1</b><
101、/p><p> LJMP TODO1</p><p> TODO2:DEC 42H ;到一分鐘使分單元減一 </p><p> MOV 41H,#60</p><p> TODO1:POP PSW</p><p><b> POP ACC</b></p>&
102、lt;p><b> RETI</b></p><p> ;****時間分離并緩存 **** </p><p> SHJFL:MOV A,41H ;將秒分離到兩個單元里 </p><p> MOV B,#10 ;一個存放個位,一個存放十位</p><p><b> D
103、IV AB</b></p><p> MOV 36H,B</p><p> MOV 37H,A</p><p> MOV A,42H</p><p> MOV B,#10 ;將分鐘數(shù)分離到兩個單元 </p><p> DIV AB;一個存放各位,一個存放十位 &l
104、t;/p><p> MOV 38H,B</p><p> MOV 39H,A</p><p><b> RET</b></p><p> ;************聲光提示程序 ********</p><p> SHGTS:MOV P1,#06H</p><
105、p> LCALL DL1S ;蜂鳴一秒 </p><p> MOV P1,#07H</p><p> LCALL DL1S;亮燈一秒 </p><p> MOV P1,#00H</p><p><b> RET</b></p><p> ;*****顯示程序一
106、***** </p><p> XSCX1:MOV R0,#30H ;數(shù)據(jù)首地址 </p><p> MOV P1,#05H ;選顯示數(shù)碼管 </p><p> LCALL DISP; 顯示模式 </p><p> INC R0</p><p> MOV P1,#04
107、H</p><p> LCALL DISP ;顯示水位 </p><p><b> INC R0</b></p><p> MOV P1,#03H</p><p> LCALL DISP;顯示狀態(tài) </p><p><b> INC R0</b&g
108、t;</p><p> MOV P1,#02H</p><p> LCALL DISP;顯示狀態(tài) </p><p><b> INC R0</b></p><p> MOV P1,#01H</p><p> LCALL DISP ;顯示溫度 </p>
109、<p><b> INC R0</b></p><p> MOV P1,#00H </p><p> LCALL DISP ;顯示溫度 </p><p><b> RET</b></p><p> ;******顯示程序二***** </p>
110、<p> XSCX2:MOV R0,#36H ;數(shù)據(jù)首地址 </p><p> MOV P1,#05H ;選擇數(shù)碼管 </p><p> LCALL DISP</p><p> INC R0;改地址</p><p> MOV P1,#04H;改數(shù)碼管 </p>
111、<p> LCALL DISP</p><p><b> INC R0</b></p><p> MOV P1,#02H</p><p> LCALL DISP</p><p><b> INC R0</b></p><p> MOV
112、P1,#01H</p><p> LCALL DISP</p><p><b> RET</b></p><p> ;*****位顯示程序****** </p><p> DISP:MOV DPTR,#LED_TAB</p><p> MOV A,@R0</p>
113、<p> MOVC A,@A+DPTR</p><p><b> MOV P0,A</b></p><p> LCALL DL1MS</p><p><b> RET</b></p><p> LED_TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,
114、07H</p><p> DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H</p><p> DB 76H,38H,73H,31H,3EH,6EH,40H,80H,00H,67H</p><p> ;****18B20的驅(qū)動機溫度轉(zhuǎn)換程序****** </p><p> DO18B20:MOV 50H,#04&
115、lt;/p><p> GOTO: LCALL RE_TEMP ;對傳感器設置及讀取 </p><p> LCALL TURN ;轉(zhuǎn)化溫度子程序 </p><p> LCALL DISPLAY ;數(shù)據(jù)轉(zhuǎn)換緩存程序 </p><p> DJNZ 50H,GOTO
116、 ;循環(huán) </p><p><b> RET</b></p><p> RE_TEMP: SETB DQ ;對DS18B20初始化及讀取</p><p> ACALL RESET_1820 ;調(diào)用復位子程序 </p><p> JB FLAG, ST
117、 ;判斷DS1820是否存在? </p><p><b> RET </b></p><p> ;*****復位子程序 ***** </p><p> RESET_1820: SETB DQ </p><p><b> NOP </b></p>&l
118、t;p> CLR DQ ;主機發(fā)出延時501微秒的復位低脈沖 </p><p> DLY: MOV R0,#250 </p><p> TTO2: DJNZ R0,TTO2 ;然后拉高數(shù)據(jù)線,等待DS18B20回應 </p><p> SETB DQ </p><p>&l
119、t;b> NOP </b></p><p><b> NOP </b></p><p><b> NOP </b></p><p> MOV R0,#35 </p><p> T2: JNB DQ ,T3 ;等待DS18B20回
120、應,回應0電平 </p><p> DJNZ R0, T2 ;等70us </p><p><b> JMP T4</b></p><p> T3: SETB FLAG ;置標志位,表示DS1820存在 </p><p><b> JMP T5 &l
121、t;/b></p><p> T4: MOV FLAG,#00H ;清標志位,表示DS1820不存在 </p><p><b> JMP T7 </b></p><p> T5: MOV R0,#120 </p><p> T6: DJNZ R0,T6
122、 ;時序要求延時60-240us時間 </p><p> T7: SETB DQ </p><p><b> RET </b></p><p> ;*******子程序溫度傳感工作程序 **** </p><p> ST:
123、 ; DS18B20存在 </p><p> MOV A,#0CCH ;跳過ROM匹配 p217 </p><p> ACALL WRITE_1820 ;寫入數(shù)據(jù) </p><p> MOV A,#44H ;發(fā)出溫度轉(zhuǎn)換命令 </p><p> ACALL WRITE_182
124、0 ;寫入數(shù)據(jù) </p><p> ACALL RESET_1820 ;準備讀溫度前先復位 </p><p> MOV A,#0CCH ;跳過ROM匹配 </p><p> ACALL WRITE_1820 ;寫入數(shù)據(jù) </p><p> MOV A,#0BEH
125、 ;發(fā)出讀溫度命令 </p><p> ACALL WRITE_1820 ;寫入數(shù)據(jù) </p><p> ACALL READ_1820 ;讀出溫度數(shù)據(jù) </p><p><b> RET </b></p><p> ;******寫入程
126、序 ******* </p><p> WRITE_1820: ;寫入DS18B20(有具體的時序要求) </p><p> MOV R2,#8 ;一共8位數(shù)據(jù) </p><p><b> CLR C </b></p><p> WR
127、1: CLR DQ ;總線拉低,開始寫入 </p><p> MOV R3,#8 </p><p> TTO: DJNZ R3,TTO ;保持16微秒以上 </p><p> RRC A ;把字節(jié)DATA分成8個BIT環(huán)移給C <
128、/p><p> MOV DQ, C ;寫入一個BIT,地位在前,高位在后 </p><p> MOV R3,#23 </p><p> TTO1: DJNZ R3,TTO1 ;等待46微妙 </p><p> SETB DQ ;重新釋放
129、總線 </p><p><b> NOP </b></p><p> DJNZ R2,WR1 ;寫入下一個BIT </p><p> SETB DQ </p><p><b> RET </b></p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機課程設計全自動洗衣機
- 全自動洗衣機單片機課程設計
- 全自動洗衣機機電控制系統(tǒng)設計(單片機)課程設計
- plc全自動洗衣機課程設計---全自動洗衣機的plc控制
- 基于單片機的小天鵝全自動洗衣機課程設計
- 全自動洗衣機課程設計
- 全自動洗衣機課程設計
- 全自動洗衣機課程設計
- 全自動洗衣機plc控制課程設計
- 全自動洗衣機plc控制課程設計
- 單片機課程設計(洗衣機控制系統(tǒng))
- 基于單片機的全自動洗衣機控制系統(tǒng)設計
- 基于單片機全自動洗衣機畢業(yè)設計
- 基于單片機全自動洗衣機畢業(yè)設計
- plc課程設計——全自動洗衣機
- plc課程設計--全自動洗衣機
- plc課程設計——全自動洗衣機
- 全自動洗衣機plc課程設計
- plc全自動洗衣機課程設計
- 全自動洗衣機plc課程設計
評論
0/150
提交評論