




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
恒溫水浴箱設計引 溫度控制系統完成的功 總體設計方 方案 方案 顯示模塊的設 4.12864液 溫度模塊的設 DS18B20的工作原 DS18B20的測溫原 語音模塊設 無線模塊設 系統整體設 系統硬件電路設 系統軟件設 的外形設 電路仿真與調試過 測試數據及分 參考文 致 一、引本設計是對溫度進行實時監測與控制,設計的溫度控制系統實現了基的溫度維持在當前溫度,也可通過控制水泵抽水和吸水。本系統也有NRF無線通信模塊加熱的單片機有發送模塊可將ds18b20到的溫度發送二、總體設計
方案AD590利用其感溫效應,在將隨被測溫度變化的電壓或電流過來,進行A/D轉換后,就可以用單片機進行數據的處理,在顯示電,就可以將被測溫度顯示出來,這種設計需要用到A/D轉換電路,感溫電路比較麻煩。溫度模塊實現溫度信號、信號調理、模/數轉換的功能。主要以集成溫度傳感器AD590M為主體,經過電壓跟隨器、差分式減法器、電壓10A/DTLC1549進2所示。方案DS18B20器,直接被測溫度值,之后進行轉換,依次完成設計要求。在本系統的電路設計方框圖如圖所示,它由九部分組成:①控制部分主采用單片機AT89S52;②顯示部分采用12864液晶實現溫度顯示;③溫度部分采用DS18B20溫度傳感器。4聲音部分由ISD4004語音模塊控制5時間由ds1302控制,顯示在128646繼電器構成的橋式驅動電路控制半導體制冷片的加熱與制冷7無線模塊主要是NRF905,發送溫度給電8設置目標溫度只要是通過發送信息給單片機;9上位機顯示???2864單 繼電器構成單片機STC89C52具有低電壓供電和體積小等特點,四個端口只需要兩個口12864DS1302時鐘單片機可根據溫度值控制ISD4004控制加熱的單片機可通過NRF905DS18b20溫DS18B20溫度傳感器 DALLAS半導體公 推出的一種改進型智分主要完成對溫度信號和轉換工作,由DS18B20數字溫度傳感器及其與單片機的接口部分組成。數字溫度傳感器DS18B20把到的溫度通過數據引腳傳到單片機的P1.0口,單片機接受溫度并。此部分只用到DS18B20和單DS18B20DS18B203用戶可定義設置DS18B20DS18B203PR-352-2所示;DS18B202-32-2DS18B20DS18B20非揮發的溫度觸發器TH和TL,可通過軟件寫入用戶上下限值高速暫存,可以設置DS18B20溫度轉換的精度CRC示模塊的設四.溫度模塊的設DS18B20DS18B20工作時DS18B20DS18B20DS18B20ROMRAMDS18B20復位要求主CPU將數據線下拉500微秒,然后釋放,DS18B20收到信號后等待15~60微秒左右后發出60~240微秒的存在低脈沖,主CPU收到此信號表示5-1,5-2,5-3主機最小主機復位主機最小主機復位脈最小響應沖5-1時延時15~60us,并進入接受模式,以產生低電平應答脈沖,若為低電平,再延480us。主機寫"0"時
主機寫"1"時采樣
樣5-20160us,260us,2us。主機寫"0"時
主機寫"1"時主機采
主機采5-3時ROM操作命DS18B20DS18B20的測溫原每一片DSl8B20在其ROM中都存有其唯一的48位序列號,在出廠前已寫入片內ROM中。主機在進入操作程序前必須用讀ROM(33H)命令將該DSl8B20的序程序可以先跳過ROM,啟動所有DSl8B20進行溫度變換,之后通過匹配ROM,DSl8B20DS18B20的測溫原理如圖5-4所示,圖中低溫度系數晶振的振蕩頻率受溫度2圖中還隱含著計數門,當計數門打開時,DS18B20器來決定,每次測量前,首先將-5511551101,112.35-1ROM命 DS18B20ROMDS18B20DS18B20DS18B2064ROM64ROMDS18B20換9RAM器RAM9器暫將E2PRAM中第3,4字節內容到E2PRAM 將E2PRAMRAM3,4DS18B20DS18B20此讀寫時序很重要。系統對DS18B20的必須按協議進行。操作協議為:初始化DS18B20(發復位脈沖)→發ROM功能命令→發器操作命令→處理數模塊設六.無線模塊整體設顯示模
系統硬件電路設時鐘溫度無線通信紅外ISD4004語音模橋式驅動系統軟件溫度//charuchar{uchardeceive_ready;DQ=0;DQ=1;deceive_ready=DQ;}DS18B20DS18B20ucharread_bit(void){uchari;DQ=0;DQ=for(i=0;i<3;i++);}DS18B20bitval(要對DS18B20voidwrite_bit(uchar{}DS18B20DS18B20uchar{uchari,m,receive_data;m=1;receive_data=0;for(i=0;i<8;i++){{receive_data=receive_data+(m<<}}}DS18B20輸入:val(要對DS18B20寫入令值voidDS_18b20_write_byte(uchar{uchari,temp;for(i=0;i<8;i++){temp=val>>i;temp=temp&0x01;}}uint{uintunsignedcharTMPH,TMPL;uchartemperature[4];TMPL=TMPH=DS_18b20_read_byte();mytemp=(TMPH<<8)|TMPL;mytemp=mytemp*0.625+0.5; returnmytemp;//溫度}時鐘#includeuchartable[7];tableadd[7]={0x8c,0x88,0x86,0x80,0x84,0x82,0x8a};/uintvoidwrite_byte(uchar{uinti; }}uchar{uintucharreaddat;{}return}voidwrite_time(ucharadd,uchar{T_RST=1;_nop_();}ucharreadtime(uchar{uintucharreadtime;returnreadtime;}void{uinti;{{case0:table[i]=readtime(0x8d);break;case1:table[i]=readtime(0x89);break;case2:table[i]=readtime(0x87);break;case6:table[i]=readtime(0x8b);break;case4:table[i]=readtime(0x85);break;case5:table[i]=readtime(0x83);break;case}}}uint{uintyeamon; returnyeamon;}uint{uintdayhour;dayhour=100*table[2]+table[4];//10000*table[4]+returndayhour;}uint{uintminsec;minsec=100*table[5]+table[3];returnminsec;voidISD_SPI_Send8(ucharisdx8{ucharISD_SS=0; ISD_SCLK=0; //先發低位再發,依次發送{if((isdx8&0x01)==1) ISD_MOSI=1;ISD_MOSI=isdx8 //右移ISD_SCLK=1; ISD_SCLK=0;}}名稱:ISD_SPI_Send16(uintisdx16)功能:spi發送子程序,16返回voidISD_SPI_Send16(uintisdx16{ucharISD_SS=0; ISD_SCLK=0;for(i=0;i<16;i++)//先發低位再發,依次發送{if((isdx16&0x0001)==1)發送最低位ISD_MOSI=1;ISD_MOSI=isdx16isdx16 //右移 }}功能stop指令:ISD_SPI_Send8(uchar調用:返回:void{//ISD_SS=0;ISD_SS //關閉}名稱功能:發送上電指令,并延遲50ms指令:ISD_SPI_Send8(ucharisdx8);返回:void{ISD_SS=0; ISD_SS=}名稱功能:發送play令,并延遲50ms指令:ISD_SPI_Send8(ucharisdx8);返回:void{ISD_SS=0;ISD_SS=1;}名稱:ISD_SetPlay(uint功能:發送setplay令,并延遲指令:ISD_SPI_Send8(ucharisdx8);ISD_SPI_Send16(uintisdx16);返回voidISD_SetPlay(uint{ //發送setplay指令字節ISD_SS=1;}voidISD_delay(uint{uinti,for(i=0;i<z;i++{for(j=0;j<}}名稱voidDelay1Ms(uchar功能:延時0.1ms參數:t,最大255調用:無返回:voidDelay1Ms(uchar{ucharfor(;t>0;t--{for{}}}voidplay(uchar{ISD_PowerUp();//ISD}}
#defineBYTE_BIT00x01#defineBYTE_BIT7bdata char#defineDATA7((DATA_BUF&BYTE_BIT7)!=0)#defineDATA0 ((DATA_BUF&BYTE_BIT0)!=0) flag1
配置口定義 #define #defineRC #define #define #define #define #define
nrf905控制NRF905寄存器配置unsignedcharidata{ //CH_NO 4 32 信號不使能,16Mcode voidDelay_NRF905(uchar{uinti;}voidSpiWrite(unsignedchar{unsignedchari;for(i=0;i<8;i++){if(DATA7){}{}}}}初始化void{//Spiclocklineinit//InitDRfor//Spiclocklineinit//InitDRfor//InitAMfor//InitCDfornRF905power//SetnRF905instandby//setradioinRx}void{uchar //Spienableforwriteaspi Writeconfigcommandfor Writeconfigrationwords寫放配置字{} //Disable}
發送數據打包voidTxPacket(uchar{uchar //Writepayloadcommandfor(i=0;i<4;i++){ //Write32bytesTx}//Spienableforwriteaspicommand //Spi //Spienableforwriteaspicommand //Writeaddresscommandfor //Write4bytes{} //Spi //SetTRX_CEhigh,startTxdata //while //SetTRX_CE}void{
設置發送 //delayformode}voidsendNRF905(uint{uchartemperature[4];SetTxMode();//SetnRF905inTxmodeTxPacket(temperature);//Senddataby}#include"LCD12864.h" unsignedcharlcd_x,lcd_y;voiddelay_10us(unsignedchar {unsignedi,j;}voiddelay_ms(unsignedchar {unsignedi,j;}voidLCD12864_WriteCmd(unsignedint {}voidLCD12864_WriteDate(unsignedchar {}void{ //1,0LCD12864_WriteCmd(0x30); led}GCROMGCROM0x00void{unsignedchari,j,k;{{{}}}}12864函數參數:lcd_x,lcd_y12864LCD_x=0x80,voidLCD12864_WriteImage(unsignedchar{unsignedchari,j,k; {{ {}}}}void {RS=0;//RC5//RW=1;//RC4{}unsignedcharLCD12864_ReadByte(void{unsignedcharReturnValue//LCD12864_CheckBusy();LCD12864_DatePort=0xff;{{ReturnValue=LCD12864_DatePort;returnReturnValue}voidLCD12864_DrawPoint(unsignedcharX,unsignedcharY,unsignedcharColor){unsignedcharRow,Tier,Tier_bit unsignedcharReadOldH,ReadOldL;unsignedchararray_x;LCD12864_WriteCmd(0x34);LCD12864_WriteCmd(0x36);Tier=X>>4;Tier_bit=X&0x0f;if(Y<32){Row=Y}{Row=Y-32Tier+=8}LCD12864_WriteCmd(Row+0x80) LCD12864_WriteCmd(Tier+0x80);if(Tier_bit<8){switch(case1:ReadOldH|=(0x01<<(7-Tier_bit));break;case2:ReadOldH^=(0x01<<(7-Tier_bit));break;default:break;}LCD12864_WriteDate(ReadOldH);LCD12864_WriteDate(ReadOldL);LCD[2*array_x][Y-32]=ReadOldH;}{{case0:ReadOldL&=(~(0x01<<(15-Tier_bit)));break;case1:ReadOldL|=(0x01<<(15-Tier_bit));break;case2:ReadOldL^=(0x01<<(15-Tier_bit));break;default:break;}LCD12864_WriteDate(ReadOldH);LCD12864_WriteDate(ReadOldL)LCD[2*array_x+1][Y-}LCD12864_WriteCmd(0x30 }voidLCD12864_DrawLine_X(unsignedcharX0,unsignedcharX1,unsignedcharY,unsignedcharColor) unsignedcharTemp;if(X0>X1){Temp=X1;X1=X0;X0=Temp}for(;X0<=X1;X0++LCD12864_DrawPoint(X0,Y,Color)}voidLCD12864_DrawLine_Y(unsignedcharX,unsignedcharY0,unsignedcharY1,unsignedcharColor)unsignedcharTemp;if(Y0>Y1){Temp=Y1;Y1=Y0;Y0=Temp}for(;Y0<=Y1;LCD12864_DrawPoint(X,Y0, }voidLCD12864_DrawLine(unsignedcharStartX,unsignedcharStartY,unsignedcharEndX,unsignedcharEndY,unsignedcharColor){intt,distance;/*int)*/intx=0,y=0,delta_x,delta_y;charincx,incydelta_x=EndX-StartX;delta_y=EndY-StartY;if(delta_x>0){incx=}elseif(delta_x==0{LCD12864_DrawLine_Y(StartX,StartY,EndY,Color);return;}{incx=-1}if(delta_y>0{incy=1}elseif(delta_y==0{LCD12864_DrawLine_X(StartX,EndX,StartY,Color);return;}{incy=-1}delta_xabs(delta_xdelta_y=abs(delta_y);if(delta_x>delta_y{distance=delta_x}{distance=delta_y}LCD12864_DrawPoint(StartX,StartY,Color)/*Drawfor(t=0;t<=distance+1;t++{LCD12864_DrawPoint(StartX,StartY,Color);x+=delta_x;y+=delta_yif(x>distance{x-=distance;StartX+=incx}if(y>distance{y-=distance;StartY+=incy}}}voidLCD12864_DisplayOneChar(unsignedcharX,unsignedcharY,unsignedcharData){{case0:Y=0X80;break;case1:Y=0X90;break;case2:Y=0X88;break;case}LCD12864_WriteCmd(Y+X);//這里測忙信號,發送地址} {{case0:Y=0X80;break;case1:Y=0X90;break;case2:Y=0X88;break;case}LCD12864_WriteCmd(Y+X);//這里測忙信號,發送地址X=Y=while(Data[Y]!=0)//若到達字串退{if(X<= //X{}else}} *Data,unsignedcharnum,intflag){unsignedcharnum1,num2;{case0:Y=0X80;break;case1:Y=0X90;break;case2:Y=0X88;break;case}LCD12864_WriteCmd(Y+X);//這里測忙信號,發送地址X=Y=while(Data[Y]!=0)//若到達字串退{if(X<= //X{}else}num1=num/10+num2=num%10+ } *Data,unsignedcharnum,intflag){unsignedcharnum1,num2;{case0:Y=0X80;break;case1:Y=0X90
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 南充團建活動方案
- 醫療項目活動策劃方案
- 醫療送醫送藥活動方案
- 華僑城團建公益活動方案
- 員工六一活動方案
- 半日早教活動方案
- 參觀種植活動方案
- 雙人對戰彈彈棋活動方案
- 名片漂流活動方案
- 吸引裝修活動方案
- 電力拖動自動控制系統-運動控制系統期末試卷附答案共6套
- 智慧樹知到《海洋文明》2019期末考試答案
- FIDIC設計采購施工合同條件銀皮書
- 2022年吉林省中考化學試卷和答案
- 中央空調主機采購安裝及售后服務方案 (投標技術方案)
- 壓床機構設計課程設計說明書-機械原理課程設計
- 公司職員員工宿舍安全衛生檢查表
- starion電熱能手術系統(熱能刀)產品簡介制作課件
- DB6112∕T 0001-2019 西咸新區中深層無干擾地熱供熱系統應用技術導則
- 國家開放大學《生活方式與常見疾病預防》形考任務1-4參考答案
- 項目監理機構人員配置標準試行
評論
0/150
提交評論