綜合設計報告-張斌0127_第1頁
綜合設計報告-張斌0127_第2頁
綜合設計報告-張斌0127_第3頁
綜合設計報告-張斌0127_第4頁
綜合設計報告-張斌0127_第5頁
已閱讀5頁,還剩10頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

PAGE13綜合設計(論文)設計(論文)題目:溫度測控系統設計學院名稱:電子與信息工程學院專業:電子科學與技術班級:電科111姓名:張斌學號11401090127指導教師:胡勁松職稱教授定稿日期:2014年1月5日前言本次設計是基于DS18B20溫度傳感器的溫度測控的軟硬件設計。本測溫系統分為溫度測量和加熱輸出兩個系統。MCU采用ATMEGA48P單片機,這是考慮到AVR系列單片機是目前國內主流的教學使用MCU,而且用AVR系列單片機控制采集與傳輸也完全可以滿足系統設計要求。顯示用LCD1602液晶顯示屏,實時顯示測量溫度,加熱輸出采用PWM控制,用發光二極管來模擬,能設置目標溫度,能設置報警溫度閾值,超過了進行報警,報警采用液晶屏幕顯示。經測試,這套系統具有運行可靠、實時性強、精度高等優點。關鍵詞:ATMEGA48P單片機、DS18B20溫度傳感器、LCD1602

目錄綜合設計任務書方案分析與設計硬件設計軟件設計軟件仿真作品聯調總結與體會參考文獻附件(含程序清單)

1、綜合設計任務書一、總體要求1.對實際系統進行分析、寫出系統分析報告。2.在Proteus平臺給出仿真效果;3.給出硬件設計書。4.給出軟件設計書。5.硬件電路的搭建與調試。6.軟件的編制與調試。7.系統聯調。8.提交綜合設計報告。二、綜合設計的內容和要求題目:溫度測控系統設計內容和要求:用單片機開發一個溫度測量控制系統,顯示用16*2的液晶,實時顯示測量溫度,加熱輸出采用PWM控制,用發光二極管來模擬,能設置目標溫度,能設置報警溫度閾值,超過了進行報警,報警采用液晶屏幕顯示。時間:3周。提交:1.原理圖和PCB板圖;2.仿真文件和程序;3.能演示的作品;4.綜合設計報告。三、綜合設計報告格式1.對設計系統進行分析、寫出設計書;2.給出完整的硬件原理圖,PCB板圖;3.給出軟件結構圖;4.提交應用程序的源程序清單;5.心得體會。四、綜合設計評分1.仿真演示評分(20);2.作品評分(30);3.設計報告評分(50分);2、方案分析與設計本系統分溫度測量和加熱輸出。主要由溫度采集模塊、加熱輸出模塊、LCD顯示模塊、控制系統模塊組成。2.1溫度采集的論證與選擇方案一:采用DS18b20芯片。該芯片精度高,操作簡單。方案二:采用NTC熱敏電阻。熱敏電阻有電阻值隨溫度升高而升高的正溫度系數簡稱PTC。熱敏電阻和電阻值隨溫度升高而降低的負溫度系數簡稱NTC。運用熱敏電阻的特性,結合A/D轉換電路送至MCU處理,就可以換算到環境的溫度。綜上所述,選擇方案一。1.2控制系統的論證與選擇本設計MCU采用ATMEGA48P,這是考慮到AVR系列單片機是目前國內主流的教學使用MCU,而且該系統對MCU的單片機要求不高,用AVR系列單片機控制采集與傳輸也完全可以滿足系統設計要求。3、硬件設計3.1硬件方框圖圖1硬件方框圖3.2MCU模塊MCU模塊是本設計的核心模塊,ATmega48是基于增強的AVRRISC結構的低功耗8位CMOS微控制器。ATmega48的AVR內核具有豐富的指令集和32個通用工作寄存器。所有的寄存器都直接與算邏單元(ALU)相連接,使得一條指令可以在一個時鐘周期內同時訪問兩個獨立的寄存器。這種結構大大提高了代碼效率,并且具有比普通的CISC微控制器最高至10倍的數據吞吐率。 3.3LCD液晶顯示模塊本模塊主要用于與MCU模塊接口,提供中文或圖形的液晶顯示,在該系統中LCD1602實時顯示測量溫度,報警也采用液晶屏幕顯示。軟件設計4.1算法設計 利用ATmega48的ADC端口將經過與參考量比較處理后的模擬量轉換成以二進制數值表示的離散信號,用以表示溫度的大小。軟件仿真將所編寫的程序(見附錄)通過軟件編譯,出現錯誤時先在運行停頓臨近處尋找錯誤,若查找不出,再一步步運行查找,改正錯誤并重新編譯,編譯成功后下載到實驗箱進行進一步測試。在整個設計模塊中,調試是重要的步驟,也是考驗人耐心的一步,只有耐心的將調試所得結果進行思考分析,然后修改程序中某些小細節,重復這些細小但又重要的步驟才能將溫度測控儀更精確。作品聯調6.1硬件測試與調整 經過測試6.3整體指標測試總結與體會7.1設計任務完成情況通過老師的理論指導,我們對各個模板有了一定的了解認知。經過小組間的設計與實驗,在老師的幫助下,在比較短的時間內第一個完成作品,較為精確的完成了簡易頻率計,誤差控制在0.1%以內,完成所有的基礎部分和發揮部分的要求,性能達到并超過了設計要求。7.2問題及改進初步調試顯示屏太亮,結果誤差較大,通過修改定時器的定時參數,使得誤差最后調整為0.1%,更為精確的達到了設計指標。7.3心得體會 通過本次實驗,認識了解了溫度傳感器的應用,我學到了不少的知識。通過老師的細心教導,我們了解到了由溫度采集模塊、加熱輸出模塊、LCD顯示模塊、控制系統模塊組成的溫度測量儀,能夠實現測試環境溫度的功能。理解了電路元件在現實生活中的實際應用。在這次實踐操作中,我們實現了由溫度采集模塊、加熱輸出模塊、LCD顯示模塊、控制系統模塊組成的溫度測量儀。當然在實驗過程中,碰到不少問題如:LCD顯示不正確,誤差較大。通過本次課程設計也認識到了自身知識的不足。所以在將來的學習中我們要加強所學知識的應用練習。經過一系列測試和調整,最終各項指標都滿足要求。在這次設計中,我們查閱到很多關于課程設計的書籍,對我們幫助也很大。參考文獻[1]馬占有.模糊PID控制技術在烘干爐單片機溫度控制系統中的應用研究[D].西北第二民族學院,2007.[2]史玲.基于單片機的溫度控制系統的研究與實現[J].電子制作,2014,17:9-10.[3]王海寧.基于單片機的溫度控制系統的研究[D].合肥工業大學,2008.[4]趙曉光.單片機溫度控制系統方案的研究[J].科技傳播,2013,03:187+175.[5]夏志華.基于單片機的溫度控制系統的研究與實現[J].煤炭技術,2013,02:191-193.[6]盧思祺.MCS-51單片機溫度控制系統的設計[J].科技致富向導,2013,17:25+30.[7]夏大勇,周曉輝,趙增,陳博峰,虎恩典.MCS-51單片機溫度控制系統[J].工業儀表與自動化裝置,2007,01:43-46.[8]劉軍,李建偉,李慧琴.基于模糊PID的通用中檔單片機溫度控制系統設計[J].科學技術與工程,2007,15:3934-3936.[9]余瑾,姚燕.基于DS18B20測溫的單片機溫度控制系統[J].微計算機信息,2009,08:105-106+112.[10]張曉芳.Protel在單片機溫度控制系統設計中的應用[J].中國科技信息,2009,11:152-153.[11]張曉芳.基于C51的單片機溫度控制系統設計[J].蘇州市職業大學學報,2009,04:36-38.[12]岳慧平,劉廣,劉建平.單片機溫度控制系統方案的研究[J].信息系統工程,2012,02:139-140.[13]呂俊亞.一種基于單片機的溫度控制系統設計與實現[J].計算機仿真,2012,07:230-233.[14]劉迪,譚春亮,李建海,孫晶.基于數字PID和89C52單片機的溫度控制系統[J].電子設計工程,2010,04:28-30.[15]關力鑫.單片機溫度控制系統的總體設計[J].農機使用與維修,2010,06:29-31.9、附件(含程序清單)硬件原理圖C語言主函數程序/*溫度控制系統.c*/#include<mega48a.h>#include<delay.h>//1WireBusinterfacefunctions#include<1wire.h>//DS1820TemperatureSensorfunctions#include<ds18b20.h>//AlphanumericLCDModulefunctions#include<alcd.h>#defineADC_VREF_TYPE0x60#defineTemp_Set_Key_Not_PressedPIND.6#defineAlarm_Set_Key_Not_PressedPIND.7//Readthe8mostsignificantbits//oftheADconversionresultunsignedcharread_adc(unsignedcharadc_input){ADMUX=adc_input|(ADC_VREF_TYPE&0xff);//DelayneededforthestabilizationoftheADCinputvoltagedelay_us(10);//StarttheADconversionADCSRA|=0x40;//WaitfortheADconversiontocompletewhile((ADCSRA&0x10)==0);ADCSRA|=0x10;returnADCH;}//DeclareyourglobalvariablesherefloatTemp;intTemprature;charChar_Array[3];unsignedcharAD_Value=0;unsignedcharTemp_Set_Value=20;unsignedcharAlarm_Set_Value=80;voidHEX_To_AscII(intdata,unsignedchar*P){P[2]=(data/100)+0X30;P[1]=((data%100)/10)+0X30;P[0]=(data%10)+0X30;}voidmain(void){//Declareyourlocalvariableshere//CrystalOscillatordivisionfactor:1#pragmaoptsize-CLKPR=0x80;CLKPR=0x00;#ifdef_OPTIMIZE_SIZE_#pragmaoptsize+#endif//Input/OutputPortsinitialization//PortBinitialization//Func7=InFunc6=InFunc5=InFunc4=InFunc3=InFunc2=OutFunc1=OutFunc0=In//State7=TState6=TState5=TState4=TState3=TState2=0State1=0State0=TPORTB=0x00;DDRB=0x06;//PortCinitialization//Func6=InFunc5=OutFunc4=OutFunc3=OutFunc2=OutFunc1=OutFunc0=In//State6=PState5=0State4=0State3=0State2=0State1=0State0=TPORTC=0x40;DDRC=0x3E;//PortDinitialization//Func7=InFunc6=InFunc5=InFunc4=InFunc3=OutFunc2=InFunc1=InFunc0=In//State7=PState6=PState5=TState4=TState3=1State2=TState1=TState0=TPORTD=0xC8;DDRD=0x08;//Timer/Counter2initialization//Clocksource:SystemClock//Clockvalue:250.000kHz//Mode:FastPWMtop=0xFF//OC2Aoutput:Disconnected//OC2Boutput:InvertedPWMASSR=0x00;TCCR2A=0x33;TCCR2B=0x03;TCNT2=0x00;OCR2A=0x00;OCR2B=0x00;//Timer/Counter2Interrupt(s)initializationTIMSK2=0x00;//ADCinitialization//ADCClockfrequency:500.000kHz//ADCVoltageReference:AVCCpin//ADCAutoTriggerSource:ADCStopped//Onlythe8mostsignificantbitsof//theADconversionresultareused//DigitalinputbuffersonADC0:Off,ADC1:On,ADC2:On,ADC3:On//ADC4:On,ADC5:OnDIDR0=0x01;ADMUX=ADC_VREF_TYPE&0xff;ADCSRA=0x84;//1WireBusinitialization//1WireDataport:PORTD//1WireDatabit:0//Note:1Wireportsettingsmustbespecifiedinthe//Project|Configure|CCompiler|Libraries|1WireIDEmenu.w1_init();//AlphanumericLCDinitialization//Connectionsspecifiedinthe//Project|Configure|CCompiler|Libraries|AlphanumericLCDmenu://RS-PORTBBit1//RD-PORTBBit2//EN-PORTCBit1//D4-PORTCBit2//D5-PORTCBit3//D6-PORTCBit4//D7-PORTCBit5//Characters/line:16lcd_init(16);lcd_gotoxy(0,0);lcd_puts("nbut");lcd_gotoxy(0,1);if(ds18b20_init(0,-60,80,DS18B20_9BIT_RES))lcd_puts("ok!");elselcd_puts("fault!");delay_ms(1000);lcd_gotoxy(0,0);lcd_puts("temp:");lcd_gotoxy(0,1);lcd_puts("AD:");lcd_gotoxy(8,1);lcd_puts("ALM:");HEX_To_AscII(Alarm_Set_Value,Char_Array);lcd_putchar(Char_Array[1]);lcd_putchar(Char_Array[0]);lcd_putchar('c');while(1){//溫度讀取Temp=ds18b20_temperature(0);//加熱處理if(Temp>Temp_Set_Value)OCR2B=0;elseOCR2B=AD_Value;//報警處理lcd_gotoxy(12,0);if(Temp>Alarm_Set_Value)lcd_puts("ALM!");elselcd_puts("");//溫度顯示Temprature=Temp*10;//delay_ms(10);lcd_gotoxy(5,0);if(Temprature<0){Temprature=-Temprature;lcd_putchar('-');}elselcd_putchar('+');HEX_To_AscII(Temprature,Char_Array);lcd_putchar(Char_Array[2]);lcd_putchar(Char_Array[1]);lcd_putchar('.');lcd_putchar(Char_Array[0]);lcd_putchar('C');AD_Value=read_adc(0);Temprature=(AD_Value*10)/51;HEX_To_AscII(Temprature,Char_Array);lcd_gotoxy(3,1);//lcd_putchar(Char_Array[2]);lcd_putchar(Char_Array[1]);lcd_putchar('.');lcd_putchar(Char_Array[0]);lcd_putchar('V');//溫度設置按鍵處理if(!Temp_Set_Key_Not_Press

溫馨提示

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

評論

0/150

提交評論