版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
...wd......wd......wd...《單片機原理及接口技術》課程設計報告題目:智能小家電(全自動豆?jié){機)控制系統(tǒng)的設計專業(yè):電氣工程及其自動化班級:32040901學號:3204090124姓名:何玉毛授課教師:段晨東時間:2011.12設計要求題目4智能小家電控制系統(tǒng)的設計〔1〕〔一〕功能介紹全自動家用豆類和谷物處理機〔即全自動豆?jié){機〕具有按預設模式自動粉碎谷物、加熱功能、防止溢出、處理完畢報警等根本功能。一般可以處理如豆類、玉米、其他五谷雜糧、蔬菜等多種食品。全自動家用豆類和谷物處理機的處理食品的過程通常為:加熱——粉碎1——加熱——粉碎2——加熱——完成報警,整個加工過程的進展按時間控制。由于食品原料的物理特性不同,在加工處理時采用不同的加工〔過程〕模式,其主要區(qū)別在于加熱和粉碎時間的長短不同。在工作過程中,被加工的食品液體被限定在某一個給定的液位范圍內(nèi),當液體加熱時泡沫到達溢出液位時,停頓加熱,待脫離溢出液位區(qū)時繼續(xù)加熱?!捕吃O計參數(shù)〔1〕電機5W,24VDC〔2〕加熱器500W,220VAC〔3〕加熱容器1.25〔4〕電力供給:220VAC〔三〕設計要求〔1〕實現(xiàn)多模式選擇。被選中的模式用LED顯示器說明〔2〕實現(xiàn)不同模式下的加工過程:加熱——粉碎1——加熱——粉碎2——加熱——完成報警,整個加工過程的進展按時間控制,時間自定〔3〕液位檢測和控制:使被加工的食品液體限定在某一個給定的液位范圍內(nèi),當液體溢出容器或無液體時,報警并斷電?!?〕顯示工作模式、加工狀態(tài)和時間。〔5〕每個動作完成時,通過聲光報警提示?!?〕測量并顯示液體溫度?!菜摹硵U大功能〔1〕在加熱階段進展恒溫控制〔2〕PWM調(diào)節(jié)電機轉(zhuǎn)速目錄摘要對于此次課程設計的要求,本設計采用STC89C52來實現(xiàn)全自動豆?jié){機的各個功能的控制。在本設計中,能實現(xiàn)一下功能:針對食品原料的物理特性不同,在加工處理時采用不同的加工〔過程〕模式,其主要區(qū)別在于加熱和粉碎時間的長短不同〔其中我用不同顏色的LED燈來表示加熱和粉碎過程?!巢煌墓补ぷ髂J胶图訜帷⒎鬯闀r間用數(shù)碼管表示出來可以實現(xiàn)液位溢出和過低報警〔用撥碼開關來模擬〕每個模式完成后報警在豆?jié){機工作過程中,全部用軟件控制。對不同物料的不同處理用處理時間來區(qū)分,用定時來完成。防液位溢出和過低用中斷方式來實現(xiàn)。但在設計過程中,對于PWM調(diào)速和恒溫控制沒能很好的實現(xiàn),在后面的學習中,我一定會更加認真地學習理論知識,并與實踐相結合,進一步提升自己的能力。在此,感謝在此次課程設計過程中提供幫助的同學,謝謝你們。一,系統(tǒng)分析此次課程設計的題目是:全自動豆?jié){機。我們采用STC89C52來完成其設計,用不同顏色的LED燈模擬加熱與粉碎功能,還有就是用蜂鳴器來完成其報警功能,以中斷方式采用撥碼開關來實現(xiàn)液位的控制等。1.方案分析與論證:〔1〕模式選擇模塊:方案一:鍵盤選擇模式方法。通過按下鍵的鍵值判斷,來跳轉(zhuǎn)到不同的模式。鍵盤有九個鍵,最多可以設計九中模式,設計時設計三種模式即可。該方案可行。方案二:定時計數(shù)模式方法。設計一個三循環(huán)的計數(shù)。通過按一下,外部給單片機一個低電平,計數(shù)一次。按兩下,計數(shù)加二,按三下計數(shù)加三。按四下后回到按一下的狀態(tài)。然后通過計數(shù)后的數(shù)值來選擇不同的模式。該方案可行。方案選擇:總體來講,兩種方案都挺好。最后,選擇模塊選擇方案一,由于板上有鍵盤,可以加以運用,也方便實現(xiàn)。計數(shù)口可以留著擴展外部事件中斷用?!?〕加熱粉碎完成報警模塊:方案一:加熱和粉碎時都有一定的時間,用延時實現(xiàn)。方案二:加熱和粉碎需要的時間可以用定時實現(xiàn)。方案選擇:選擇方案二,因為加熱和粉碎的時間需要用動態(tài)掃描的方式顯示出來,因此定時可以實現(xiàn)加熱和粉碎時的顯示,而延時方式不行?!?〕液位控制模塊:液位控制模塊可用外部事件中斷方式實現(xiàn)。燒干,液體溢出容器功能采用外部事件中斷(INTO,P3.2)實現(xiàn),設為高優(yōu)先級的中斷。加熱液位控制功能也采用外部事件(INT1,P3.3)中斷實現(xiàn),設為低優(yōu)先級?!?〕擴展計時模塊:計時用來動態(tài)計量在某種模式下工作了多久,以此來觀察還需要多久完成全過程。并且工作過程中有兩個報警的狀態(tài),由計時的時間大概可以判斷屬于那種情況。計時還可以檢測豆?jié){機工作的時間是否正常。最后,我采用正計時的方式來實現(xiàn)。二,設計框圖1.矩陣式鍵盤實現(xiàn)的模式選擇框圖開場開場置置P2為輸入有按鍵按下 N有按鍵按下Y延時延時20ms消抖 Y有按鍵按下?有按鍵按下?按鍵識別按鍵識別按鍵釋放?按鍵釋放?Y延時延時20ms消抖Y按鍵釋放?按鍵釋放?Y選擇模式1KEY1選擇模式1KEY1按下?N選擇模式2KEY2選擇模式2KEY2按下?N選擇模式3KEY3選擇模式3KEY3按下?NRETRET2.加熱粉碎完成報警及液位控制模塊框圖開場開場定時加熱定時加熱定時粉碎定時加熱定時加熱定時粉碎定時加熱定時加熱完成報警完成報警RETRETRETRETRETRETRET3.液位溢出或者過低報警框圖加熱時是否超液位或者液位過低加熱時是否超液位或者液位過低N返回繼續(xù)加熱返回繼續(xù)加熱中斷,停頓加熱,延時適當時間中斷,停頓加熱,延時適當時間RET'RET'4.顯示程序框圖開場開場設置顯示起始位置設置顯示起始位置取顯示數(shù)據(jù)取顯示數(shù)據(jù)查顯示數(shù)據(jù)字型碼查顯示數(shù)據(jù)字型碼顯示顯示數(shù)據(jù)是否顯示完數(shù)據(jù)是否顯示完 NYRETRET5.定時程序框圖開場開場設置設置TMODTH0,TL0TH0,TL0置初值0允許定時器工作允許定時器工作等待,并調(diào)用正計時顯示程序及模式顯示程序定時器是否溢出等待,并調(diào)用正計時顯示程序及模式顯示程序定時器是否溢出NYRETRET5.主程序框圖開場開場主程序初始化主程序初始化調(diào)用顯示程序,初始化顯示調(diào)用顯示程序,初始化顯示090124調(diào)用鍵盤掃描程序,有鍵按下調(diào)用鍵盤掃描程序,有鍵按下 NY選擇相應模式選擇相應模式,并顯示。同時顯示加熱和粉碎的時間及調(diào)用正計時程序中斷返回調(diào)用加熱粉碎程序,是否有中斷調(diào)用加熱粉碎程序,是否有中斷執(zhí)行燒干和溢出容器中斷程序執(zhí)行超液位中斷程序Y Y執(zhí)行燒干和溢出容器中斷程序執(zhí)行超液位中斷程序 N完成報警,調(diào)用所有顯示程序完成報警,調(diào)用所有顯示程序RETRET三,軟件模擬初始化其初始值為090124,上電復位后顯示模式1其中第一個1表示工作在模式一,后面的09為加熱和粉碎各維持9s,后三位為計時局部模式二其中和模式一一樣,不同的是加熱和粉碎時間不同,還有就是模式三也是一樣的方式。液位溢出報警和液位過低報警其中用撥碼開關模擬液位的變化,進展聲光報警,液位過低也是這種模式。溫度當按下4號鍵,就會顯示溫度四,硬件調(diào)試:1.調(diào)試圖詳相見附錄2.問題歸納①中斷時,返回的不是原來的狀態(tài)?解決方案:因為中斷里面的程序改變了主程序里面的端口狀態(tài),所以返回時不時原來的狀態(tài)。需要對影響主程序的量進展保護和復原就行了。②通過鍵盤選擇某模式,復位后,必須復位后的瞬間選擇其它模式,否則就無法選擇其他模式了解決方案:這是因為鍵盤掃描程序里沒有對無按鍵時的狀態(tài)進展操作。只要讓無按鍵時,執(zhí)行重新掃描鍵盤即可。③在軟件里模擬沒有問題,但是下載板子里就不行了解決方案:軟件、硬件的靈敏度不同,軟件里都是理想的,和實際存在一定差距,要結合硬件來調(diào)試。在延時、端口方面應該多注意。④數(shù)碼管顯示不要穩(wěn)定,一直在閃解決方案:改變延時長短,多調(diào)試幾次,直至穩(wěn)定。⑤溫度一直是85度解決方案:18b20在運行過程中,其第一次讀數(shù)就是85,應該舍棄第一次讀數(shù),讓其循環(huán)調(diào)用。3.總結:在此次課程設計過程中,讓我深刻認識到把理論轉(zhuǎn)化為現(xiàn)實的不易,可謂是收益匪淺。通過這次的課設,讓我也熟悉了keil和protuse這兩個軟件,大大的提高了動手能力。過程中,遇到問題是在所難免的,最終那份通過尋求各種幫助將問題解決后的興奮是令人難忘的。特別是當我看著自己辛苦兩周焊接出來的板子上的各種功能一一實現(xiàn),那份喜悅是無法代替的。在此感謝教師,感謝在此次課程設計過程中幫助我的同學。五,參考文獻《單片機原理及接口技術》段晨東主編,清華大學出版社《手把手教你學單片機》周興華編著,北京航空航天大學出版社附錄一:電路原理圖軟件模擬原理圖附錄二:原件明細表元器件數(shù)量備注電阻31K電阻45.1K電阻28K獨石電容60.1uF獨石電容230PF電解電容110Uf25V51單片機實驗板189C52芯片1MAX232芯片174LS245芯片274LS138芯片1DS18B201三極管90122PNP二極管IN40011數(shù)碼管2三位八段共陰繼電器1晶振111.0592MHz芯片座6電源座1三腳5V通信插座1CON232電源適配器1通訊電纜1微型按鈕開關10實驗插板1單排插針假設干雙排插針假設干短路塊假設干導線假設干補充原件:LED燈2個〔一個紅色,一個綠色〕排線:4根面包板:1快焊接線:假設干附錄三:程序清單ORG0000HLJMPMAINORG0003HLJMPP_T0ORG0013HLJMPP_T1ORG0030HMAIN:MOVSP,#60H;開辟棧區(qū)CLRIT0;INT0低電平觸發(fā)CLRIT1;INT1低電平觸發(fā)SETBEA;開CPU中斷SETBEX0;允許INT0中斷SETBEX1;允許INT1中斷SETBPX0;設置INT0為高優(yōu)先級CLRPX1;設置INT1為低優(yōu)先級CLRP3.6;加熱指示燈清零CLRP3.7;粉碎指示燈清零MOV20H,#0;賦初始值MOV21H,#9MOV22H,#0MOV25H,#1MOV26H,#2MOV27H,#4LCALLDSPLY1;調(diào)顯示程序LCALLDSPLY2LCALLSCAN_KEYB;點鍵盤掃描程序MOV25H,#00H;高三位清零MOV26H,#00HMOV27H,#00HMOVA,R5;鍵盤返回值在然中NEXT:CJNEA,#01H,NEXT1;判斷是否為1鍵按下 LCALLFUNCTION_1;調(diào)1鍵處理程序LCALLLOOP4;調(diào)用計時程序和完成之后的報警程序LCALLLOOP6 RETNEXT1:CJNEA,#02H,NEXT2;判斷是否2鍵按下LCALLFUNCTION_2;和第一種模式一樣LCALLLOOP6LCALLLOOP4RETNEXT2:CJNEA,#3,NEXT3;3鍵按下LCALLFUNCTION_3;同前兩種LCALLLOOP6LCALLLOOP4NEXT3:CJNEA,#4,NEXT4;4鍵按下否LCALLPRO_18B20;調(diào)溫度處理程序NEXT4:LJMPMIAN;假設無鍵按下,返回;#######中斷處理程序,液位溢出##########ORG0100HP_T0:PUSHACC;保護現(xiàn)場PUSHPSWCLRP3.6;停頓加熱,粉碎CLRP3.7LCALLALARM;報警POPPSW;恢復現(xiàn)場POPACCRETI;########液位過低處理程序#############ORG0200HP_T1:CLREA;關中斷PUSHACC;保護現(xiàn)場PUSHPSWSETBEA;開中斷SETBRS0;將工作存放器切換CLRP3.6;停頓加熱停頓粉碎CLRP3.7LCALLALARM;報警 SETBP3.6;恢復中斷前狀態(tài)CLREA;關中斷POPPSW;恢復現(xiàn)場POPACCSETBEA;開中斷RETI;按鍵處理程序FUNCTION_1:MOV20H,#01H;MOV21H,#0MOV22H,#9MOV30H,#03H MOV31H,#03H LCALLDSPLY1RETS2_PRESS:MOV20H,#02HMOV21H,#1MOV22H,#2MOV30H,#04H MOV31H,#04H LCALLDSPLY1RETS3_PRESS:MOV20H,#03HMOV21H,#1MOV22H,#5MOV30H,#05H MOV31H,#05H LCALLDSPLY1RETDSPLY1:MOVR0,#20HMOVR2,#00HREDO:ACALLDISPINCR2MOVA,R2INCR0XRLA,#03HJNZREDORETDSPLY2:MOVR0,#25HMOVR2,#03HREDO2:ACALLDISPINCR2MOVA,R2INCR0XRLA,#06HJNZREDO2RETDISP:MOVP1,R2MOVDPTR,#LED_SEGMOVA,@R0MOVCA,@A+DPTRMOVP0,ALCALLDL1MSRETLED_SEG:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHLOOP6:LCALLDL1SMOVA,27HCJNEA,#09H,GOON1MOV27H,#00HMOVA,26HCJNEA,#05H,GOON2MOV26H,#00HINC25HRETGOON1:INC27HRETGOON2:INC26HRETDL20MS:MOVTMOD,#01HMOVTH0,#0DBHMOVTL0,#00HSETBTR0CONT1:JBCTF0,OVERF1SJMPCONT1OVERF1:RETLOOP4:LCALLJIARELCALLFENSUILCALLJIARELCALLFENSUILCALLJIARECLRP3.6CLRP3.7LCALLALARMRETJIARE:MOV23H,30HCLRP3.7SETBP3.6LOOP1:LCALLDL1MINDJNZ23H,LOOP1RETFENSUI:MOV24H,31HCLRP3.6SETBP3.7LOOP2:LCALLDL1MINDJNZ24H,LOOP2RETALARM:LOOP5:MOVR1,#20MOVA,#06HMOVP1,ALCALLDL1MSLCALLDL1MSINCAMOVP1,ALCALLDL1MSLCALLDL1MSLCALLDSPLY1LCALLDSPLY2DJNZR1,LOOP5RETDL1MIN:MOVR7,#3DL1:LCALLLOOP6DJNZR7,DL1RETDL1MS:MOVR1,#200DL2:NOPNOPNOPDJNZR1,DL2RETDL1S:MOVR6,#20WAIT:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBTR0CONT2:JBCTF0,OVERF2LCALLDSPLY1LCALLDSPLY2SJMPCONT2OVERF2:DJNZR6,WAITRETSCAN_KEYB:MOVP2,#0F0HMOVA,P2ANLA,#0F0HXRLA,#0F0HJZNO_KEYACALLDL20MSANLA,#0F0HXRLA,#0F0HJZNO_KEYMOVR2,#11110111BSCAN:MOVA,R2MOVP2,AMOVA,P2ANLA,#11110000BMOVR3,ACJNEA,#0F0H,KEY_PRSDMOVA,R2RRAMOVR2,AXRLA,#01111111BJNZSCANNO_KEY:LJMPMAINKEY_PRSD:MOVA,R2ANLA,#00001111BORLA,R3MOVR4,AMOVR5,#01HMOVDPTR,#KEY_TABCAL_VAL:MOVA,R5MOVCA,@A+DPTRXRLA,R4JZFIXEDINCR5SJMPCAL_VALFIXED:MOVA,P2ANLA,#0F0HXRLA,#0F0HJNZFIXEDACALLDL20MSMOVA,P2ANLA,#0F0HXRLA,#0F0HJNZFIXEDINCARETKEY_TAB:DB77H,77H,7BH,7DH,0B7H,0BEH,0BDHDB0D7H,0DBH,0DDHRET ;WENDUXIANSHIFLAG1BITF0;DS18B20存在標志位DQBITP1.3TEMPER_LEQU27HTEMPER_HEQU26HPRO_18B20:MOV30H,#250REPLY:LCALLINIT_18B20LCALLRE_CONFIGLCALLGET_TEMPERLCALLCHANGE ;將18B20讀的16位溫度轉(zhuǎn)換8位數(shù)據(jù) LCALLDISPLAY;調(diào)用數(shù)碼管顯示子程序DJNZ30H,REPLY;**********DS18B20復位程序*****************INIT_18B20:SETBDQ NOPNOPCLRDQNOPNOPMOVR0,#0FBHTSR1:DJNZR0,TSR1;延時SETBDQMOVR0,#25HTSR2:JNBDQ,TSR3DJNZR0,TSR2TSR3:SETBFLAG1;置標志位,說明DS18B20存在CLRP2.0;二極管指示AJMPTSR5TSR4:CLRFLAG1LJMPTSR7TSR5:MOVR0,#06BHTSR6:DJNZR0,TSR6TSR7:SETBDQ;說明不存在RET;********************設定DS18B20暫存器設定值**************RE_CONFIG:JBFLAG1,RE_CONFIG1RETRE_CONFIG1:MOVA,#0CCH;放跳過ROM命令LCALLWRITE_18B20MOVA,#4EHLCALLWRITE_18B20;寫暫存器命令MOVA,#00H;報警上限中寫入00HLCALLWRITE_18B20MOVA,#00H;報警下限中寫入00HLCALLWRITE_18B20MOVA,#1FH;選擇九位溫度分辨率LCALLWRITE_18B20RET;*****************讀轉(zhuǎn)換后的溫度值****************GET_TEMPER:SETBDQLCALLINIT_18B20JBFLAG1,TSS2RET;假設不存在則返回TSS2:MOVA,#0CCH;跳過ROMLCALLWRITE_18B20MOVA,#44H;發(fā)出溫度轉(zhuǎn)換命令LCALLWRITE_18B20;LCALLDISPLAY;延時LCALLINIT_18B20MOVA,#0CCH;跳過ROMLCALLWRITE_18B20MOVA,#0BEH;發(fā)出讀溫度換命令LCALLWRITE_18B20LCALLREAD2_18B20;讀兩個字節(jié)的溫度RET;***************寫ds18b20匯編程序************WRITE_18B20:MOVR2,#8CLRCWR1:CLRDQMOVR3,#6DJNZR3,$RRCAMOVDQ,CMOVR3,#23DJNZR3,$SETBDQNOPDJNZR2,WR1SETBDQRET;***********讀18B20程序,讀出兩個字節(jié)的溫度*********READ2_18B20:MOVR4,#2;低位存在29H,高位存在28HMOVR1,#29HRE00:MOVR2,#8RE01:CLRCSETBCNOPNOPCLRDQNOPNOPNOPSETBDQMOVR3,#7DJNZR3,$MOVC,DQMOVR3,#23DJNZR3,$RRCA
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單位管理制度呈現(xiàn)匯編職員管理篇
- 單位管理制度呈現(xiàn)大全人員管理篇
- 藝術節(jié)主持詞
- 70MW光伏發(fā)電項目工程(EPC)總承包投標文件 承包人實施計劃
- 《市場營銷學導言》課件
- 《天貓規(guī)則學習》課件
- 空調(diào)維修公司保安工作總結
- 財務工作品質(zhì)提升總結
- 兒童新媒體編輯工作總結
- 2003年廣東高考語文真題及答案
- 腦病科中醫(yī)健康宣教課件
- 江蘇省常州市教育學會2023-2024學年八年級上學期期末學業(yè)水平檢測英語試題(無答案)
- 物業(yè)管理服務領域:保利物業(yè)企業(yè)組織架構及部門職責
- 如何在地震演練中應對火災和燃氣泄漏
- 融媒體專題報道方案
- 工作失誤匯報
- 呼吸科主任述職報告
- 旅游法規(guī)期末試卷與參考答案匯編
- 11054-國家開放大學2023年春期末統(tǒng)一考試《流通概論》答案
- 晉江物流行業(yè)分析
- 編譯原理考試題及答案匯總
評論
0/150
提交評論