版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 單片機(jī)原理課程</b></p><p><b> 設(shè)計(jì)報(bào)告</b></p><p><b> 一、設(shè)計(jì)目標(biāo)</b></p><p> 本設(shè)計(jì)采用LED和數(shù)碼顯示管顯示洗衣機(jī)所處在的模式和水位,所處的的洗衣狀態(tài),水溫,以及完成洗衣的剩余時(shí)間。實(shí)現(xiàn)不同模式下水位的選擇一
2、共三種模式(標(biāo)準(zhǔn),輕柔,快洗),四種水位,當(dāng)洗衣機(jī)啟動(dòng)后,上水電磁閥打開注水,當(dāng)水到達(dá)設(shè)定的限位時(shí),上水電磁閥斷電,注水過(guò)程停止,啟動(dòng)電機(jī)全自動(dòng)控制洗衣操作,整個(gè)過(guò)程的進(jìn)行按時(shí)間控制,時(shí)間自定。液位檢測(cè)和控制:使水位限定在某一個(gè)給定的液位范圍內(nèi),當(dāng)水位越限時(shí)進(jìn)入超水位中斷報(bào)警提示并打開下水電磁閥放水,不啟動(dòng)洗衣過(guò)程,待滿足要求后,投入運(yùn)行。當(dāng)投入洗衣量大于洗衣機(jī)額定容量時(shí),控制系統(tǒng)應(yīng)報(bào)警,不啟動(dòng)洗衣過(guò)程。待滿足要求后,投入運(yùn)行</
3、p><p> 1、洗衣程序功能:手動(dòng)模式:用戶可以選擇單獨(dú)的單洗,漂洗,長(zhǎng)脫水;自動(dòng)模式:用戶可以根據(jù)需求通過(guò)鍵盤選擇以下模式:即標(biāo)準(zhǔn)洗衣程序、輕柔洗衣、快洗每種模式下又可以選擇四種水位;再上電后如果不進(jìn)行任何操作一段時(shí)間后洗衣機(jī)便進(jìn)入默認(rèn)模式進(jìn)行洗衣。 </p><p> 2、顯示功能:顯示選擇的模式,水位,正在進(jìn)行的洗衣操作(狀態(tài)),水溫,完成洗衣過(guò)程的剩余時(shí)間。<
4、/p><p> 特殊功能:超水位報(bào)警并自動(dòng)放水,達(dá)到要求后結(jié)束報(bào)警開始洗衣;超容量報(bào)警,待用戶排除后結(jié)束報(bào)警開始洗衣。</p><p><b> 設(shè)計(jì)過(guò)程</b></p><p><b> 1、硬件設(shè)計(jì)</b></p><p><b> ?。?)系統(tǒng)總體設(shè)計(jì)</b></
5、p><p> 一臺(tái)洗衣機(jī)大體可分為5部分,分別為按鍵控制部分、顯示部分、進(jìn)水部分、排水部分、電機(jī)部分。這5部分按鍵控制為輸入,其余為輸出。如下圖</p><p><b> 總體結(jié)構(gòu)圖</b></p><p><b> (2)具體實(shí)現(xiàn)</b></p><p> 本設(shè)計(jì)用98C51單片機(jī)實(shí)現(xiàn)洗衣機(jī)的
6、控制,通過(guò)對(duì)撥碼開關(guān)和鍵盤的操作實(shí)現(xiàn)手動(dòng)自動(dòng)模式的選擇,以及水位得選擇,也可以進(jìn)行任何操作進(jìn)入默認(rèn)模式。當(dāng)選擇好模式后進(jìn)入該模式設(shè)置該模式下的參數(shù),然后再次掃描鍵盤,去選擇水位,選定水位后,進(jìn)入該水位模式設(shè)置水位參數(shù)。</p><p> 在P1.4為低電平是進(jìn)入手動(dòng)模式,手動(dòng)模式下若P1.5為低電平則進(jìn)入單洗過(guò)程,單洗完成聲光報(bào)警提示用戶此過(guò)程完成;若P1.5為高電平檢查P1.6若為低電平進(jìn)去漂洗程序進(jìn)行漂洗,
7、漂洗完成聲光報(bào)警提示用戶漂洗結(jié)束。柔P1.6為高電平則檢查P1.7若為低電平就進(jìn)入長(zhǎng)脫水程序,進(jìn)行長(zhǎng)脫水,長(zhǎng)脫水結(jié)束聲光報(bào)警提示用戶操作完成;若P1.7為高電平則從P1.5重新檢查直到檢查到低電平為止。</p><p> 在P1.4為高電平時(shí)不是手動(dòng)模式,則去掃描鍵盤,第一次掃描鍵盤為選擇標(biāo)準(zhǔn),輕柔,快洗模式,待選擇好模式設(shè)定好參數(shù)后,再次掃描鍵盤選擇水位,選擇好水位后設(shè)置參數(shù),然后進(jìn)入洗衣過(guò)程。如果15秒內(nèi)沒(méi)
8、有掃描到模式的按鍵,則進(jìn)入默認(rèn)模式。</p><p> 單洗衣程序包括單洗、漂洗、長(zhǎng)脫水三個(gè)過(guò)程。</p><p> 自動(dòng)模式下的三個(gè)模式都包括單洗、漂洗、長(zhǎng)脫水三個(gè)過(guò)程,只是在不同模式和水位下的參數(shù)不同罷了;洗衣過(guò)程:進(jìn)入洗衣程序開定時(shí)器開始倒計(jì)時(shí),根據(jù)選擇的水位進(jìn)水,進(jìn)水完成后,在沒(méi)有超出要求水位的情況下,進(jìn)入單洗過(guò)程,電動(dòng)機(jī)開始正反轉(zhuǎn)過(guò)程根據(jù)所選模式中設(shè)置的正反轉(zhuǎn)次數(shù)以及不同模式
9、下正反轉(zhuǎn)的時(shí)間自動(dòng)洗衣;待單洗完成就進(jìn)入排水過(guò)程,排水時(shí)間由水位模式設(shè)置,排水結(jié)束后進(jìn)入漂洗過(guò)程。漂洗過(guò)程:先進(jìn)行段脫水,脫水結(jié)束再進(jìn)水,進(jìn)水完成再進(jìn)行短洗,短洗時(shí)間為四分鐘,短洗完成在排水,然后重復(fù)上述過(guò)程一次即完成漂洗過(guò)程,漂洗完成進(jìn)入長(zhǎng)脫水過(guò)程,長(zhǎng)脫水時(shí)間為四分鐘,電機(jī)高速旋轉(zhuǎn),長(zhǎng)脫水結(jié)束,整個(gè)洗衣過(guò)稱也結(jié)束,此時(shí)聲光報(bào)警提示用戶洗衣完成。</p><p> 標(biāo)準(zhǔn)模式下的單洗過(guò)程,電機(jī)正反轉(zhuǎn)36次,每次正
10、轉(zhuǎn)十八秒,停兩秒,再反轉(zhuǎn)十八秒,停兩秒;輕柔模式下單洗過(guò)程,電機(jī)正反轉(zhuǎn)36次,每次正傳是三秒停兩秒,再反轉(zhuǎn)是三秒,停兩秒;快洗模式下但系過(guò)程,電機(jī)正反轉(zhuǎn)24次,每次正轉(zhuǎn)十八秒,停兩秒,再反轉(zhuǎn)十八秒,停兩秒;三種模式下的漂洗過(guò)程相同見(jiàn)下面漂洗過(guò)程分析;每個(gè)模式下的長(zhǎng)脫水都是相同的,都是電機(jī)正傳四分鐘。</p><p> 進(jìn)排水由時(shí)間控制,每個(gè)水位下設(shè)置好了進(jìn)排水的時(shí)間,進(jìn)水時(shí)P3.4置一,表示開進(jìn)水閥,進(jìn)水完成時(shí)
11、P3.4置0表示關(guān)進(jìn)水閥;排水是P3.5置1表示開排水閥,排水完成是P3.5置0表示管排水閥。</p><p> 在顯示時(shí)開始考慮的是通過(guò)按鍵實(shí)現(xiàn)交替顯示,但是這樣就必須時(shí)刻掃描鍵盤,這使程序進(jìn)入了掃描鍵盤的死循環(huán),無(wú)法進(jìn)行其他的工能,在多次考慮后發(fā)現(xiàn)在進(jìn)排水,電機(jī)動(dòng)作時(shí)沒(méi)有其他的要求,可以利用這段時(shí)間去驅(qū)動(dòng)數(shù)碼管顯示模式,水位,狀態(tài),溫度,以及剩余時(shí)間等,剩余時(shí)間單獨(dú)顯示,其他的一起顯示,這樣就只需要顯示兩次
12、,每次十秒,交替顯示,單洗是短洗時(shí)電機(jī)正傳是顯示十秒的模式,水位,狀態(tài),溫度,然后數(shù)碼管熄滅十秒或五秒,電機(jī)反轉(zhuǎn)時(shí)顯示十秒的剩余時(shí)間,再熄滅十秒或五秒,這樣循環(huán)進(jìn)行;在脫水或進(jìn)排水時(shí)兩種顯示一十秒每次交替顯示,這樣在整個(gè)過(guò)程中多有顯示,很好地解決了顯示與洗衣同時(shí)進(jìn)行的問(wèn)題了。</p><p> 電機(jī)的正反轉(zhuǎn)實(shí)現(xiàn)方式:當(dāng)P3.6為1,P3.7為0時(shí)電機(jī)正轉(zhuǎn),當(dāng)P3.6和P3.7都為0時(shí)電機(jī)停轉(zhuǎn),當(dāng)P3.6為0,P
13、3.7為1時(shí)電機(jī)反轉(zhuǎn)。電機(jī)正反轉(zhuǎn)用LED燈模擬,紅燈亮表示正傳,綠燈亮表示反轉(zhuǎn),兩燈都熄滅表示電機(jī)停轉(zhuǎn)。</p><p> 自動(dòng)模式下,數(shù)碼管右邊第一為表示模式,b表示標(biāo)準(zhǔn)模式,q表示輕柔模式,3表示快洗模式,第二位表示水位分別用1、2、3、4表示四種水位;中間兩位表示正在進(jìn)行的動(dòng)作即狀態(tài),7H表示進(jìn)水,dH表示短脫水,dd表示短洗,CH表示長(zhǎng)脫水PH表示排水;左邊兩位顯示的是水的溫度。在顯示模式2下用四個(gè)數(shù)碼
14、管顯示剩余時(shí)間。</p><p> 在手動(dòng)模式下的單洗,漂洗,長(zhǎng)脫水需要單獨(dú)設(shè)置參數(shù),具體設(shè)置見(jiàn)附錄的程序中;單洗時(shí),模式水位顯示位顯示的是d7表示手動(dòng)下的單洗;漂洗是顯示P7表示漂洗,長(zhǎng)脫水時(shí)顯示CH表示長(zhǎng)脫水;手動(dòng)下單洗為28分鐘,漂洗為18分鐘,長(zhǎng)脫水為4分鐘。</p><p> 默認(rèn)模式下調(diào)用的是標(biāo)準(zhǔn)模式下水位2的洗衣程序,顯示也完全相同;</p><p&g
15、t; 另外每一個(gè)動(dòng)作完成時(shí)都有一秒鐘的蜂鳴提示。</p><p> 2、軟件程序的設(shè)計(jì):</p><p> 洗衣機(jī)的一次洗衣過(guò)程控制過(guò)程比較簡(jiǎn)單,主要為順序控制,如先進(jìn)水、洗滌(電機(jī)正轉(zhuǎn)反轉(zhuǎn))、再排水脫水,難點(diǎn)在于過(guò)程選擇,如不同的衣物所用的洗滌、漂洗、電機(jī)正轉(zhuǎn)反轉(zhuǎn)時(shí)間不同,如果為每個(gè)過(guò)程單獨(dú)編一套指令,則指令系統(tǒng)變得很龐大,效率低,為此,把脫水、洗滌、排水、短洗、漂洗、進(jìn)水單獨(dú)編為
16、一個(gè)子程序,由主程序根據(jù)過(guò)程選擇,不斷調(diào)用,由些減少源程序的長(zhǎng)度,不同的洗衣過(guò)程,三大動(dòng)作的時(shí)間不同,這可以通過(guò)建立數(shù)據(jù)表格,通過(guò)查表的方式獲得每個(gè)洗衣過(guò)程所需時(shí)間。此外,還需編出顯示子程序,延時(shí)子程序供主程序不斷調(diào)用,而且在每一個(gè)模式和水位下設(shè)置了不同參數(shù),這樣通過(guò)對(duì)子程序的調(diào)用,就實(shí)現(xiàn)了同一模式下不同水位的選擇這一擴(kuò)展功能,僅僅在自動(dòng)模式下就有3*4=12種小模式了。</p><p><b> 三
17、、設(shè)計(jì)結(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> 自動(dòng)模式下模式水位的選擇</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、長(zhǎng)脫水流程</b></p><p><b> 漂洗流程</b></p><p><b> 進(jìn)水流程排水流程</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> 電機(jī)正反轉(zhuǎn)流程</b></p><
22、;p><b> N</b></p><p><b> Y</b></p><p> 超水位報(bào)警并自動(dòng)排水流程</p><p><b> 匯編語(yǔ)言</b></p><p> 洗衣機(jī)系統(tǒng)的匯編程序</p><p> FLAG EQU
23、 45H ;DS18B20是否存在標(biāo)志 </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 ;關(guān)進(jìn)水閥 </p><p> CLR P3.5;關(guān)排水閥 </p><p> CLR P3.6;電機(jī)不轉(zhuǎn)動(dòng) </p><p> CLR P3.7 ;電機(jī)不轉(zhuǎn)動(dòng) </p><p> MOV IP,#01H;INTI為
26、高優(yōu)先級(jí) </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定時(shí) </p><p> MOV TMOD,#10H</p><p> SETB EX1;允許INT1中斷SETB EX0;允許INT0中斷 S
28、ETB ET1;允許定時(shí)器T1中斷 MOV 4DH,#05 ;等待5秒,供用戶選擇手動(dòng)還是 </p><p> DENDAI:LCALL DL1S ;自動(dòng),若選擇手動(dòng)并設(shè)置自動(dòng)模式下的哪種 </p><p> DJNZ 4DH,DENDAI ;工作方式,單洗,單漂,長(zhǎng)脫水 </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即使自動(dòng)模式,轉(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即為選擇長(zhǎng)脫水,轉(zhuǎn)到長(zhǎng)脫水JMP BACK;沒(méi)有檢測(cè)到手動(dòng)選擇的是什么,換回重新檢測(cè);******手動(dòng)單洗程序******** </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 ;電機(jī)動(dòng)作24分鐘 </p><p> MOV 2CH,#05H ;進(jìn)排水4分鐘 </p><p> MOV 25H,
32、#36;設(shè)正反轉(zhuǎn)次數(shù) </p><p> MOV 26H,#08;轉(zhuǎn)動(dòng)8+10s </p><p> MOV 27H,#02;停2秒 </p><p> MOV 28H,#40;進(jìn)排水2分鐘,40+20x4 </p><p> LCALLDJSCZ</p><p> LCALL D
33、ANXI</p><p> JNB P1.6,TOPX</p><p> LJMP THEND</p><p> ;****手動(dòng)漂洗程序****** </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 ;電機(jī)動(dòng)作14分鐘 </p><p> MOV 2CH,#05H ;進(jìn)排水4分鐘 </p><p> MOV 28H,#40;進(jìn)排水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> ;****手動(dòng)長(zhǎng)脫水****** </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代表長(zhǎng)脫水 </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則無(wú)按鍵</p><p> LCALL DL20MS ;延時(shí)消抖</p><p> MOV A,P2</p><p> A
39、NL A,#0F0H ;重讀鍵盤</p><p> XRL A,#0F0H</p><p> JZ NO_KEY1 ;A為0則無(wú)按鍵</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;跳到默認(rèn)模式 </p><p> ;****實(shí)際鍵盤掃描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、則無(wú)按鍵</p><p> LCALL DL20MS ;延時(shí)消抖</p><p> MOV A,P2</p><p> ANL A,#0F0H ;重讀鍵盤</p><p> XRL A,#0F0H</p><p> JZ NO_KEY2 ;A為0則無(wú)按鍵</
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> ;*****默認(rèn)模式***** </p><p> MORENMOSHI: MOV 2AH,#2AH;設(shè)置時(shí)間1的參數(shù)42分鐘 MOV 30H,#0B
55、H;顯示方式為b代表標(biāo)準(zhǔn) MOV 25H,#36;正反轉(zhuǎn)次數(shù) MOV 26H,#08;轉(zhuǎn)動(dòng)8+10s MOV 27H,#02</p><p> MOV 2CH,#0DH;時(shí)間2,為13分鐘 </p><p> MOV 31H,#01;顯示
56、水位為1 </p><p> MOV 28H,#50;進(jìn)排水時(shí)間,50s+80s </p><p> LCALL XYCHX</p><p><b> RET</b></p><p> ;****自動(dòng)情況下方式一即為標(biāo)準(zhǔn)模式***</p><p>
57、 FANGSHI1 : MOV 2AH,#2AH;設(shè)置時(shí)間1的參數(shù)42分鐘 MOV 30H,#0BH;顯示方式為b代表標(biāo)準(zhǔn) MOV 25H,#36;正反轉(zhuǎn)次數(shù) MOV 26H,#08;轉(zhuǎn)動(dòng)8+10s MOV 27H,#02;停兩秒 LCALL KSSM2;調(diào)用鍵盤掃描
58、程序,選擇水位</p><p> LJMP THEND</p><p> ;******自動(dòng)情況下方式二,即為輕柔模式*******FANGSHI2: MOV 2AH,#24H;設(shè)置時(shí)間1的參數(shù)24分鐘 MOV 30H,#25;顯示方式為q代表輕柔 MOV 25H,#36;正反轉(zhuǎn)次數(shù)
59、 MOV 26H,#03;轉(zhuǎn)動(dòng)3+10s MOV 27H,#02;停兩秒 </p><p> LCALL KSSM2;調(diào)用鍵盤掃描程序,選擇水位</p><p> LJMP THEND</p><p> ;*****自動(dòng)情況下方式三,
60、即為快洗模式***** FANGSHI3: MOV 2AH,#1EH ;設(shè)置時(shí)間1的參數(shù)30分鐘 MOV 30H,#03;顯示方式為3代表快洗 MOV 25H,#18;正反轉(zhuǎn)次數(shù) MOV 26H,#08;轉(zhuǎn)動(dòng)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;時(shí)間2,為13分
62、鐘 </p><p> MOV 31H,#01;顯示水位為1 </p><p> MOV 28H,#50;進(jìn)排水時(shí)間,50s+80s </p><p> LCALL XYCHX</p><p><b> RET</b></p><p&g
63、t; ;*****水位二***** </p><p> SHUIWEI2: MOV 2CH,#0CH;時(shí)間2,為12分鐘 </p><p> MOV 31H,#02;顯示水位為2 </p><p> MOV 28H,#40;進(jìn)排水時(shí)間,40s+80s </p&
64、gt;<p> LCALL XYCHX</p><p><b> RET</b></p><p> ;*****水位三****** </p><p> SHUIWEI3: MOV 2CH,#0BH;時(shí)間2,為11分鐘 </p><p> MOV
65、31H,#03;顯示水位為3 </p><p> MOV 28H,#30;進(jìn)排水時(shí)間,30s+80s </p><p> LCALL XYCHX</p><p><b> RET</b></p><p> ;*****水位四********* <
66、/p><p> SHUIWEI4: MOV 2CH,#0AH;時(shí)間2,為10分鐘 </p><p> MOV 31H,#04;顯示水位為4 </p><p> MOV 28H,#20;進(jìn)排水時(shí)間,20s+80s </p><p> LCALL XYCHX</p><p&g
67、t;<b> RET</b></p><p> ;*******洗衣程序****** </p><p> XYCHX: SETB TR1;開定時(shí)器 </p><p> LCALL DANXI;調(diào)單洗程序 </p><p> LCALL PX;調(diào)漂洗程序 </p>
68、<p> LCALL CTS;調(diào)長(zhǎng)脫水程序 </p><p> RET </p><p> ;******單洗程序 *******</p><p><b> DANXI: </b></p><p> LCALL DJSCZ ;倒計(jì)時(shí)初值 </p><
69、;p> LCALL JSH;調(diào)進(jìn)水程序 </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;進(jìn)水 </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> ;*****長(zhǎng)脫水程序(4分鐘) ****** </p><p> CTS:MOV 32H,#16;狀態(tài)顯示查表參數(shù),顯示H</p><p> MOV 33H,#12;狀態(tài)顯示查表參數(shù),顯示C,表示長(zhǎng)脫水 </p><p> MOV 2BH,#12
73、;設(shè)置調(diào)用延時(shí)顯示程序的次數(shù) </p><p> SETB P3.5;開排水閥 </p><p> SETB P3.6</p><p> CLR P3.7;開始脫水 </p><p> LCALL YSXS;延時(shí)并顯示 </p><p> CLR P3.6;停止脫水
74、 </p><p> CLR P3.5;關(guān)排水閥 </p><p> LCALL SHGTS;聲光提示 </p><p><b> RET</b></p><p> ;******進(jìn)水程序******* </p><p> JSH:MOV 32H,#16;
75、狀態(tài)顯示查表參數(shù)顯示H </p><p> MOV 33H,#07;狀態(tài)顯示查表參數(shù)顯示7,7H代表進(jìn)水 </p><p> MOV 24H,28H;進(jìn)水時(shí)間參數(shù) </p><p> SETB P3.4;開排進(jìn)閥 </p><p> LCALL JPSHYS;延時(shí)并顯示 </p>&
76、lt;p> CLR P3.4;關(guān)進(jìn)水閥 </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;設(shè)置調(diào)用延時(shí)顯示程序的次數(shù) </p><p> SETB P3.5;開排水閥 </p><p> SETB P3.6</p><p>
78、 CLR P3.7;開始脫水 </p><p> LCALL YSXS;延時(shí)并顯示 </p><p> CLR P3.6;停止脫水 </p><p> CLR P3.5;關(guān)排水閥 </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;進(jìn)水時(shí)間參數(shù) </p><p> SETB P3.5;開排進(jìn)閥 </p><p> LCALL JPSHYS;延時(shí)并顯示 </p><p> CLR P3.5;關(guān)進(jìn)水閥 </p><p> LCALL SHGTS;聲光提示 </p><
83、;p><b> RET</b></p><p> ;****進(jìn)排水延時(shí)并顯示程序***** </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次完沒(méi)有 </p><p><b> RET</b></p><p> ;*******脫水延時(shí)顯示 ******* </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延時(shí)子程序******* </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延時(shí)子程序
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延時(shí)子程序******
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延時(shí)程序***** &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延時(shí)顯示程序 ****** </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延時(shí)顯示程序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> ;*******計(jì)算倒計(jì)時(shí)初值****** </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> ;*****定時(shí)到中斷****** </p><p> P_T1:PUSH ACC</p><p><b> PUSH PSW</b></p><p> MOV TH1,#3CH
99、 ;重置計(jì)時(shí)初值 </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> ;****時(shí)間分離并緩存 **** </p><p> SHJFL:MOV A,41H ;將秒分離到兩個(gè)單元里 </p><p> MOV B,#10 ;一個(gè)存放個(gè)位,一個(gè)存放十位</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ù)分離到兩個(gè)單元 </p><p> DIV AB;一個(gè)存放各位,一個(gè)存放十位 &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ū)動(dòng)機(jī)溫度轉(zhuǎn)換程序****** </p><p> DO18B20:MOV 50H,#04&
115、lt;/p><p> GOTO: LCALL RE_TEMP ;對(duì)傳感器設(shè)置及讀取 </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 ;對(duì)DS18B20初始化及讀取</p><p> ACALL RESET_1820 ;調(diào)用復(fù)位子程序 </p><p> JB FLAG, ST
117、 ;判斷DS1820是否存在? </p><p><b> RET </b></p><p> ;*****復(fù)位子程序 ***** </p><p> RESET_1820: SETB DQ </p><p><b> NOP </b></p>&l
118、t;p> CLR DQ ;主機(jī)發(fā)出延時(shí)501微秒的復(fù)位低脈沖 </p><p> DLY: MOV R0,#250 </p><p> TTO2: DJNZ R0,TTO2 ;然后拉高數(shù)據(jù)線,等待DS18B20回應(yīng) </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、應(yīng),回應(yīng)0電平 </p><p> DJNZ R0, T2 ;等70us </p><p><b> JMP T4</b></p><p> T3: SETB FLAG ;置標(biāo)志位,表示DS1820存在 </p><p><b> JMP T5 &l
121、t;/b></p><p> T4: MOV FLAG,#00H ;清標(biāo)志位,表示DS1820不存在 </p><p><b> JMP T7 </b></p><p> T5: MOV R0,#120 </p><p> T6: DJNZ R0,T6
122、 ;時(shí)序要求延時(shí)60-240us時(shí)間 </p><p> T7: SETB DQ </p><p><b> RET </b></p><p> ;*******子程序溫度傳感工作程序 **** </p><p> ST:
123、 ; DS18B20存在 </p><p> MOV A,#0CCH ;跳過(guò)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 ;準(zhǔn)備讀溫度前先復(fù)位 </p><p> MOV A,#0CCH ;跳過(guò)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(有具體的時(shí)序要求) </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個(gè)BIT環(huán)移給C <
128、/p><p> MOV DQ, C ;寫入一個(gè)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 ;寫入下一個(gè)BIT </p><p> SETB DQ </p><p><b> RET </b></p><p>
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)全自動(dòng)洗衣機(jī)
- 全自動(dòng)洗衣機(jī)單片機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)機(jī)電控制系統(tǒng)設(shè)計(jì)(單片機(jī))課程設(shè)計(jì)
- plc全自動(dòng)洗衣機(jī)課程設(shè)計(jì)---全自動(dòng)洗衣機(jī)的plc控制
- 基于單片機(jī)的小天鵝全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)plc控制課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)plc控制課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)(洗衣機(jī)控制系統(tǒng))
- 基于單片機(jī)的全自動(dòng)洗衣機(jī)控制系統(tǒng)設(shè)計(jì)
- 基于單片機(jī)全自動(dòng)洗衣機(jī)畢業(yè)設(shè)計(jì)
- 基于單片機(jī)全自動(dòng)洗衣機(jī)畢業(yè)設(shè)計(jì)
- plc課程設(shè)計(jì)——全自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)--全自動(dòng)洗衣機(jī)
- plc課程設(shè)計(jì)——全自動(dòng)洗衣機(jī)
- 全自動(dòng)洗衣機(jī)plc課程設(shè)計(jì)
- plc全自動(dòng)洗衣機(jī)課程設(shè)計(jì)
- 全自動(dòng)洗衣機(jī)plc課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論