智能自動豆?jié){機設計報告.doc_第1頁
智能自動豆?jié){機設計報告.doc_第2頁
智能自動豆?jié){機設計報告.doc_第3頁
智能自動豆?jié){機設計報告.doc_第4頁
智能自動豆?jié){機設計報告.doc_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

機電工程系機電創(chuàng)意小組智能豆?jié){機的設計系 部 名 稱: 機電工程系學 生 姓 名: 劉鵬浩、劉鵬慧、李喬專 業(yè): 機械制造及其自動化班 級: 1102指 導 教 師: 王新海設計思路:由于以前的豆?jié){機,磨漿要過濾豆渣,豆?jié){熬煮也要自己動手,還要特別注意豆?jié){溢鍋的問題,程序繁瑣麻煩,給人們帶來不便,針對這些情況擬定開發(fā)家用豆?jié){機全自動控制電路裝置。家用豆?jié){機全自動控制裝置是在單片機的程序控制下進行工作的。打漿時,插上電源插頭,接通電源, 直接按“啟動”鍵,控制電路控制豆?jié){機工作。先給黃豆加熱,并由傳感器檢測溫度,當溫度達到80度左右時,停止加熱。啟動磨漿電機開始磨漿,運轉20秒后停止轉運,間歇10秒后再啟動打漿電機,如此循環(huán)進行打漿6次或者4次。磨漿完后,開始對豆?jié){加熱,豆?jié){溫度達到一定值時,豆?jié){上溢。豆?jié){加工自動進入防溢延煮程序,豆?jié){加工完成后發(fā)出聲光報警信號。關鍵詞:豆?jié){機,控制系統,全自動,傳感器。Abstract一、全自動豆?jié){機的工作原理用STC12C5A60S2單板設計一款全自動豆?jié){機,豆?jié){機的工作原理如下:先給電路上電,按下啟動鍵開始加熱;加熱到80C開始打漿(打15秒,停15秒,共4次),磨漿完后,開始對豆?jié){加熱,豆?jié){溫度達到一定值時,豆?jié){上溢。豆?jié){加工自動進入防溢延煮程序,豆?jié){加工完成后發(fā)出聲光報警信號。本設計原理如圖1所示 STC12C5A60S2 溫度檢測電路防溢電路放干燒電路按鍵加熱電路電機聲光報警顯示屏控制系統首先通過電源對系統供電,其中溫度傳感器、防溢電路、放干燒電路、按鍵、均是輸入部分,聲光報警、顯示屏、電機、加熱電路均是輸出部分。二、 方案設計方案1:此方案由單片機、加熱電路、溫度檢測電路、打漿電路、報警電路、顯示電路組成。其工作原理是先加熱,加熱到一定溫度后,開始打漿,打漿完后,打漿停止,又開始加熱即煮沸后,立即停機,報警提示。打漿電路加熱電路溫度檢測電路報警電路顯示電路表 2.1 方案一設計框圖方案2:此方案由單片機、溫度檢測電路、加熱電路、沸騰檢測電路、打漿電路、報警電路、顯示電路等組成。其工作原理是豆?jié){機加電后直接按“啟動”鍵,控制電路控制豆?jié){機進行加熱,當溫度達到80度左右時,停止加熱,開始打漿;打漿電機按間歇方式打漿:運轉15秒后停止轉運,間歇15秒后再啟動打漿電機,如此循環(huán)進行打漿4次。打漿結束后開始對豆?jié){加熱,豆?jié){溫度達到一定值時,豆?jié){上溢。當豆?jié){沫要溢出時,停止加熱,間歇20秒后再開始加熱,如此循環(huán)4次,豆?jié){加工完成后發(fā)出聲光信號。單片機防干燒、防溢電路打漿電路溫度檢測電路報警電路加熱電路顯示電路表 2 .2 方案二設計框圖3、方案論證方案一如圖1.1所示,由單片機、溫度檢測電路、打漿電路、加熱電路、報警電路等組成。工作過程是,接上電源,按下“功能鍵”,開始加熱,加熱到一定溫度后,開始打漿,打漿漿結束后,又加熱直到豆?jié){沸騰煮熟,停止加熱,發(fā)出報警聲,提示豆?jié){已做好。其缺點是:粉碎后煮漿時間過長所易造成的糊鍋現象。方案二如圖1.2所示, 由單片機、溫度檢測電路、防干燒電路電路、防溢電路、打漿電路、加熱電路、報警電路等組成。工作過程是,接上電源,蜂鳴器長鳴一聲,提示已接通電源,指示燈綠色LED亮,處于待命狀態(tài)。按下全自動啟動鍵,開始加熱,溫度達到80度時,停止加熱;攪拌馬達運轉,將黃豆粉碎,豆?jié){過濾,然后馬達停轉,又開始加熱,直到豆?jié){沸騰煮熟,停止加熱,發(fā)出報警聲,提示豆?jié){已做好。進行論證后,我選擇第二方案。其原因是:間歇打漿方式可以提高工作效率;縮短粉碎后加熱至豆?jié){沸騰時間,防止粉碎后煮漿時間過長所易造成的糊鍋現象。三、硬件電路設計:1、單片機的選用:STC12C5A60S2/AD/PWM系列單片機是宏晶科技生產的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統8051,但速度快8-12倍。內部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換(250K/S),針對電機控制,強干擾場合。單片機簡介:1 .增強型8051 CPU,1T,單時鐘/機器周期,指令代碼完全兼容傳統80512 .工作電壓:STC12C5A60S2系列工作電壓:5.5V- 3.3V(5V單片機)STC12LE5A60S2系列工作電壓:3.6V- 2.2V(3V單片機)3. 工作頻率范圍:0 - 35MHz,相當于普通8051的0420MHz4. 用戶應用程序空間8K /16K / 20K / 32K / 40K / 48K / 52K / 60K / 62K字節(jié).5. 片上集成1280字節(jié)RAM6. 通用I/O口(36/40/44個),復位后為:準雙向口/弱上拉(普通8051傳統I/O口)可設置成四種模式:準雙向口/弱上拉,推挽/強上拉,僅為輸入/高阻,開漏每個I/O口驅動能力均可達到20mA,但整個芯片最大不要超過55mA7. 時鐘源:外部高精度晶體/時鐘,內部R/C振蕩器(溫漂為+/-5%到+/-10%以內) 1用戶在下載用戶程序時,可選擇是使用內部R/C振蕩器還是外部晶體/時鐘常溫下內部R/C振蕩器頻率為:5.0V單片機為:11MHz15.5MHz3.3V單片機為:8MHz12MHz精度要求不高時,可選擇使用內部時鐘,但因為有制造誤差和溫漂,以實際測試為準8. 2個時鐘輸出口,可由T0的溢出在P3.4/T0輸出時鐘,可由T1的溢出在P3.5/T1輸出時鐘 9.A/D轉換, 10位精度ADC,共8路,轉換速度可達250K/S(每秒鐘25萬次)10.工作溫度范圍:-40 - +85(工業(yè)級) / 0 - 75(商業(yè)級)21.封裝:PDIP-40,LQFP-44,LQFP-48I/O口不夠時,可用2到3根普通I/O口線外接74HC164/165/595(均可級聯)來擴展I/O口,還可用A/D做按鍵掃描來節(jié)省I/O口,或用雙CPU,三線通信,還多了串口。引腳圖:2、溫度檢測電路的設計當豆?jié){機正常工作時,需要先加熱到80左右的溫度,然后停止加熱繼續(xù)下一步的工作,這就需要一個溫度檢測電路,我設計的溫度檢測電路由一個電位器來代替,通過單片機接口的AD轉換功能,通過調節(jié)電位器的阻值來模擬豆?jié){機溫度的變化,當電位器的阻值達到一定阻值時,豆?jié){機停止加熱,進行下一步工作。3、加熱和打漿電路的設計:加熱電路的作用是通過加熱管把磨成粉末的黃豆煮熟;打漿電路的作用是通過電機把黃豆攪拌成粉沫。 單片機輸出電流經三極管放大,來驅動繼電器必合,使加熱管發(fā)熱把豆?jié){煮熟。同理,繼電器閉合使電機運轉把黃豆攪碎。加熱及打漿電路的工作原理如圖1所示,加熱及磨漿電路由繼電器RL1、RL2,三極管Q1、Q2,電阻R14、R15以及二極管Dl、D2,單片機AT89C51。當單片機工作時,賦給Pl.l一個低電平,使三極管Q2飽和導通,電流流過繼電器RL2,使觸點閉合,于是加熱管通電開始對水加熱,當溫度達到80度時,溫度信號(電位器)傳給單片機,單片機檢測到這個信號后,使P1.1腳變?yōu)楦唠娖剑龢O管Q2截止,繼電器觸點斷開,電阻停止加熱。加熱結束后,單片機P1.0腳變?yōu)榈碗娖?,使三極管RL1飽和導通,從而讓繼電器觸點閉合,于是電機通電開始打漿,在系統程序得控制下,電機進行打漿。電機運轉20秒或者15秒后,單片機P1.0腳變?yōu)楦唠娖?,使三極管Q1截止,繼電器觸點斷開,電機停止打漿,問歇15秒后,單片機P1.0腳又恢復為低電平,從而繼續(xù)驅動電機工作,如此循環(huán)4次后打漿結束。熱敏電阻一般有一個誤差范圍,用來規(guī)定樣品之間的一致性。根據使用的材料不同,誤差值通常在1%至10%之間。有些熱敏電阻設計成應用時可以互換,用于不能進行現場調節(jié)的場合,例如一臺儀器,用戶或現場工程師只能更換熱敏電阻而無法進行校準,這種熱敏電阻比普通的精度要高很多,價格也要貴得多。4、屏幕顯示電路的設計:顯示屏的作用是顯示當前豆?jié){機的工作狀態(tài),將LCD顯示屏按照圖2的接法和單片機連接起來。5、報警電路的設計:報警電路的作州是通過蜂嗚器發(fā)出聲音信號,紅色LED點亮提醒豆?jié){已經煮好了。通過事先編寫的程序,在單片機的控制下,系統開始工作,當加熱完成后,單片機P1.4、P1.5腳自動輸出一個高低平,使蜂鳴器、發(fā)光二極管通電導通,于是蜂鳴器發(fā)出報警,紅色LED點亮提醒豆?jié){加熱6、電源電路的設計:7、防干燒及防溢出電路的設計:防干燒及防溢出電路的作用是以傳感器作為信息采集系統的前端單元來控制自動豆?jié){機缺水時干燒及沸騰溢出等問題。這單采用探針作為傳感器來檢測水位及沸騰溢出,然后通過比較器輸出高低電平,這樣就可以通過單片機檢測比較器輸出電平的高低來檢測水位及沸騰時的溢出狀態(tài)。水位檢測及沸騰溢出電路的原理如圖4.13所示,K1,K2分別是水位檢測傳感器和沸騰溢出傳感器,為了減少成本,這單采用探針來代替這兩個傳感器,使用中將接控制電路的公共點“地”,探針分別通過傳輸。單片機的P3.2,P1.3端連接。正常工作時,Kl被水淹沒,它和地之問的電阻較小,與R13共同對+5V分壓,U+得到比U-低的電平,比較器輸出低電平。缺水時,Kl露出水面,它的電阻很大,R13共同對+5V分壓,U+得到比U-高的電壓,比較器輸出高電平,通過非門后輸出低電平產生下降沿。用軟件檢測比較器的電平變化,便知是否缺水用同樣的方法檢測豆?jié){是否沸騰溢出。豆?jié){沸騰之前,電極K2遠離水而,它和地之間的電阻很大,與R9共同對+5V分壓,U+得到比U-高的電壓,比較器輸出高電平。豆?jié){沸騰時,泡沫淹沒K2,電阻小,與R14共同對+5V分壓,U+得到比U-低的電壓,比較器輸出低電平。用軟件檢測比較器的輸出電平,便知豆?jié){是否沸騰溢出。三、 軟件設計豆?jié){機控制系統的流程圖:通電啟動溫度是合適加熱報警提示NNi4?打漿15s,加熱15sYY加熱至煮沸程序:#includesbit key =P20;/全自動開關sbit LED1=P21;/加熱豆?jié){sbit LED=P22;/sbit BEEP =P23;/蜂鳴sbit M =P24;/攪拌豆?jié){sbit jre=P25;/加熱豆?jié){#include /51基本運算(包括_nop_空函數?typedef unsigned char uint8; / 無符號8位整型變量 /*/ 引腳定義 / (使用者根據實際更改)/*/#defineLCM2402_DB0_DB7P1/ 定義LCM2402的數據總線sbit LCM2402_RS = P3 2;/ 定義LCM2402的RS控制線sbit LCM2402_RW = P3 3;/ 定義LCM2402的RW控制線sbit LCM2402_E = P3 4;/ 定義LCM2402的E控制線sbit LCM2402_Busy = P1 7;/ 定義LCM2402的測忙線(與LCM2402_DB0_DB7關聯)data unsigned char TIME_DD,TIME_MO,TIME_YY,TIME_WW,TIME_HH,TIME_MM,TIME_SS;/設置日、月、年、周、時、分、秒和溫度存放區(qū)data bit DAY_BIT = 0;/天數增加標志位(用于日期進位的啟動)data unsigned char DIS_BIT = 0; /多種信息的切換顯示data unsigned char cou = 0; / 軟計數器,對10ms時基信號累加到1s /*/ 定義LCM2402指令集 / (詳細請見技術手冊)/*/#defineCMD_clear0x01 / 清除屏幕#defineCMD_back0x02 / DDRAM回零位#defineCMD_dec10x04 / 讀入后AC(指針)減1,向左寫#defineCMD_add10x06 / 讀入后AC(指針)加1,向右寫#defineCMD_dis_gb10x0f / 開顯示_開光標_開光標閃爍#defineCMD_dis_gb20x0e / 開顯示_開光標_關光標閃爍#defineCMD_dis_gb30x0c / 開顯示_關光標_關光標閃爍#defineCMD_OFF_dis0x08 / 關顯示_關光標_關光標閃爍#defineCMD_set820x38 / 8位總線_2行顯示#defineCMD_set810x30 / 8位總線_1行顯示(上邊行)#defineCMD_set420x28 / 4位總線_2行顯示#defineCMD_set410x20 / 4位總線_1行顯示(上邊行)#definelin_10x80 / 4位總線_1行顯示(上邊行)#definelin_20xc0 / 4位總線_1行顯示(上邊行)/*函數名:毫秒級CPU延時函數調 用:DELAY_MS (?);參 數:165535(參數不可為0)返回值:無結 果:占用CPU方式延時與參數數值相同的毫秒時間備 注:應用于1T單片機時i600,應用于12T單片機時i125/*/void DELAY_MS (unsigned int a)unsigned int i;while( -a != 0)for(i = 0; i 600; i+);/*/*/ 讀LCM忙程序 底層協議 / (所有底層協議都無需關注)/ LCM2402測忙,若LCM2402處于忙狀態(tài),本函數將等待至非忙狀態(tài) /*/void LCM2402_TestBusy(void) LCM2402_DB0_DB7 = 0xff;/設備讀狀態(tài) LCM2402_RS = 0; LCM2402_RW = 1; LCM2402_E = 1; while(LCM2402_Busy);/等待LCM不忙 LCM2402_E = 0;/*/ 寫指令程序 / 向LCM2402寫命令 本函數需要1個指令集的入口參數 /*/void LCM2402_WriteCMD(uint8 LCM2402_command) LCM2402_TestBusy(); LCM2402_RS = 0; LCM2402_RW = 0; LCM2402_DB0_DB7 = (LCM2402_command/16)4;/0x45 0x40 LCM2402_E = 1; LCM2402_E = 0; LCM2402_DB0_DB7 = (LCM2402_command%16)4;/0x45 0x50 LCM2402_E = 1; LCM2402_E = 0;/*/ 寫數據程序 / 向LCM2402寫數據 /*/void LCM2402_WriteData(uint8 LCM2402_data) LCM2402_TestBusy(); LCM2402_RS = 1; LCM2402_RW = 0;LCM2402_DB0_DB7 = (LCM2402_data/16)4; LCM2402_E = 1; LCM2402_E = 0;LCM2402_DB0_DB7 = (LCM2402_data%16)4; LCM2402_E = 1; LCM2402_E = 0;/*/ 打印字符串程序 / (本函數調用指針函數)/ 向LCM發(fā)送一個字符串,長度48字符之內 / 第一行位置 0x000x17 第二行位置 0x400x57 / 應用舉例:print(0x80,); /在第一行第一位處從左向右打印字符串/*/void print(uint8 a,uint8 *str)LCM2402_WriteCMD(a | 0x80);while(*str != 0)LCM2402_WriteData(*str+);*str = 0;/*/ 打印單字符程序 / / 第一行位置 0x000x17 第二行位置 0x400x57 / 向LCM發(fā)送一個字符,以十六進制(0x00)表示 / 應用舉例:print(0xc0,0x30); /在第二行第一位處打印字符“0”/*/void print2(uint8 a,uint8 t)LCM2402_WriteCMD(a | 0x80);LCM2402_WriteData(t);/*/ 定義小漢字 / 可寫入8個自字義字符,寫入后可用其CGRAM代碼直接提取顯示。/ 字符定義方法請參考技術手冊 /*/uint8 code Xword= 0xff,0x00,0x1f,0x11,0x1f,0x11,0xff,0x00, /,代碼 0x00 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00, /一,代碼 0x01 0x00,0x00,0x00,0x0e,0x00,0xff,0x00,0x00, /二,代碼 0x02 0x00,0x00,0xff,0x00,0x0e,0x00,0xff,0x00, /三,代碼 0x03 0x00,0x00,0xff,0xf5,0xfb,0xf1,0xff,0x00, /四,代碼 0x04 0x00,0xfe,0x08,0xfe,0x0a,0x0a,0xff,0x00, /五,代碼 0x05 0x00,0x04,0x00,0xff,0x00,0x0a,0x11,0x00, /六,代碼 0x06 0x00,0x1f,0x11,0x1f,0x11,0x11,0x1f,0x00, /日,代碼 0x07;void CgramWrite(void) / 裝入CGRAM / uint8 i;LCM2402_WriteCMD(0x06);/ CGRAM地址自動加1LCM2402_WriteCMD(0x40);/ CGRAM地址設為00處 for(i=0;i64;i+) LCM2402_WriteData(Xwordi);/ 按數組寫入數據 /*/ LCM2402初始化 /(使用者可自定義,加 * 號程序行必須保留但可修改)/*/void LCM2402_Init(void) LCM2402_WriteCMD(CMD_set42);/* 顯示模式設置:顯示2行,每個字符為5*7個像素 LCM2402_WriteCMD(CMD_set42);/* 顯示模式設置:顯示2行,每個字符為5*7個像素 LCM2402_WriteCMD(CMD_clear);/ 顯示清屏 LCM2402_WriteCMD(CMD_back);/* 數據指針指向第1行第1個字符位置 LCM2402_WriteCMD(CMD_add1);/ 顯示光標移動設置:文字不動,光標右移 LCM2402_WriteCMD(CMD_dis_gb3); / 顯示開及光標設置:顯示開,光標開,閃爍開CgramWrite();/ 向CGRAM寫入自定義字符/*/以上是LCM2402驅動程序/*/*函數名:10位A/D轉換初始化函數調 用:Read_init (?);參 數:輸入的端口(0000 0XXX 其中XXX是設置輸入端口號,可用十進制07表示,0表示P1.0,7表示P1.7)返回值:無結 果:開啟ADC功能并設置ADC的輸入端口備 注:使用ADC功能時需要將對應的IO接口設置為高阻輸入方式(例如:P1M1 = 0x01;)/*/void Read_init (unsigned char CHA)unsigned char AD_FIN=0; /存儲A/D轉換標志 CHA &= 0x07; /選擇ADC的8個接口中的一個(0000 0111 清0高5位) ADC_CONTR = 0x40;/ADC轉換的速度(0XX0 0000 其中XX控制速度,請根據數據手冊設置) _nop_(); ADC_CONTR |= CHA; /選擇A/D當前通道 _nop_(); ADC_CONTR |= 0x80; /啟動A/D電源 DELAY_MS(1); /使輸入電壓達到穩(wěn)定(1ms即可)/*/*函數名:10位A/D轉換函數調 用:? = ADC_Read();參 數:無返回值:10位ADC數據高(從0到1023(十進制)結 果:讀出指定ADC接口的A/D轉換值,并返回數值備 注:適用于STC12C5A60S2系列單片機(必須使用STC12C5A60S2.h頭文件)/*/unsigned int ADC_Read (void)unsigned char AD_FIN=0; /存儲A/D轉換標志 ADC_CONTR |= 0x08; /啟動A/D轉換(0000 1000 令ADCS = 1) _nop_(); _nop_(); _nop_(); _nop_(); while (AD_FIN =0) /等待A/D轉換結束 AD_FIN = (ADC_CONTR & 0x10); /0001 0000測試A/D轉換結束否 ADC_CONTR &= 0xE7; /1111 0111 清ADC_FLAG位, 關閉A/D轉換, return (ADC_RES*4+ADC_RESL);/返回A/D轉換結果(10位ADC數據高8位在ADC_RES中,低2位在ADC_RESL中)/*/*/ 測試用函數 /void main (void)unsigned int m;unsigned char i=0;/init();/初始化 LCM2402_Init();/LCM2402初始化while(1) print(0x00, huan ying); print(0x40, shi yong);LED=0; BEEP=0; DELAY_MS (2000); LED=1; BEEP=1; while(key=1); DELAY_MS (1000); print(0x00, jia re); print(0x40, ); LED1=0; while(m!=83) /主線程/ /RealTime_Display(); P1M1 = 0x01;/ Read_init (0); m = ADC_Read (); print2(0x40,m/1000+0x30);/ print2(0x41,(m%1000)/100+0x30);/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論