溫度控制代碼_第1頁(yè)
溫度控制代碼_第2頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、#include<ieg51.h>#iiiclude<absacc.h>定義8255A的絕對(duì)地址時(shí)用,必須包含此庫(kù)函數(shù)include<intims.h>#defineDataponPO/LCD數(shù)據(jù)線sbitDQ=P2A7;溫度傳送數(shù)據(jù)IOII/*LCD接I丨定義*/sbitRSsbitRWsbitENsbitcslsbitcs2P2A2;/數(shù)據(jù)指令選擇P2T;讀寫(xiě)選擇P2A0;/讀寫(xiě)使能P2A3;/片選1P2A4;片選2#*sbitALARMsbitKEY!sbitKEY2sbitKEY3=P3A0;P3A1;P3A2;P3A3;sbitMotor=P2A6

2、;sbitACCO=ACCA0;sbitACC7=ACCA7;defineumtunsignedint#defineuchaiunsignedchar#defineLeft0#defineRight1unsignedmtunsignedmtunsignedmtunsignedmtunsignedmtunsignedcharTimjlms;tempvalue;yanwu_vah】e;alarniH=600;alainiL=300;setBit=O;unsignedcharSIGN=0DECIMAL=0.TEMPl=0$IGNI=0.DECl=0;unsignedcharcodeDECP16=0,

3、0,023,0,4,5,0,6Q7,8,0,9;unsignedcharcodeDECN16=O,O,9,8Q7Q6,5,O,4,3,O,2Q1;unsignedcharbdatabits;sbitkevFlag=bit8A0;voidiiNOP(uchari);voidCheckState(void);voidSendConuiiandToLCD(unsignedcharconmiand);voidSetLine(unsignedcharpage);voidSetStartLine(unsignedcharstartime);voidSetColunin(unsignedcharcolumn

4、);voidSetOnOff(unsignedcharonoff);voidWriteByte(unsignedcharData);voidSelectScreen(unsignedchaiscieen);voidCleaiScreen(unsignedcharscreen);voiddelay(uintnnis);voidInitLCDQ;voidInitTmieO(void);voidDisPlay16(unsignedcliailine,unsignedcharcolumn,unsignedcharLorR,unsignedcharaddr);voidDisPlay16_not(unsi

5、gnedcharline,unsignedcharcolunm,unsignedchaiLorR,unsignedcharaddi);voidDisPlay8(unsignedchailine,unsignedcharcolunm,unsignedcharLorR,unsignedcharaddr);voidDisPlav8_not(unsignedcharline,unsignedcharcolunm,unsignedcliaiLorR,unsignedcharaddi);voidKey(void);voidShow(void);voiddelay_l8B20(unsignedmti);vo

6、idInit_DS18B20(void);unsignedcharReadOneChaiXvoid);voidWriteOneChai(unsignedchardat);voidWriteOneChai(unsignedchardat);voidReadTemp(void);unsignedintreaddata(void);嚴(yán)*/*/*定義中文字庫(kù)嚴(yán)*/unsignedcharcodeHzk=0x80,0x70,OxOO.OxFEOx10,0x0&0xFE0x42,0x42、0x42,0xFA.0x42、0x42,0x42q0xFE.0x00,0x80,0x60,0x1&0x

7、07,0x08,0x10,OxFF,0x50,0x48,0x46,0x4L0x42.0x4C,0x40,0xFE0x00/*M,0*/0x10,OxOC,0x05,0x55,0x55,0xD5,0x05,0x7F,0x05,0x55,0x55,0x55,0x05,0x14,OxOC,0x00,0x10,0x10,0x10.0x8A,0xA9,0x6B.0x3550x25.0x25,0xAB.0xE9.0x08.0x10.0x10.0x10.0x00/*,m1*/0x10,0x60,0x02.0x8C,0x20,0x18,0x08.0xC8,0x38,OxCEOxO&0x0&0x

8、28,0x9&0x00,0x00,0x04,0x04,0x7E,0x01,0x04,0x02,0x01,OxFF,0x40,0x21,0x06,0x0A,0xl1,0x20,0x40,0x00,/*,r濃H,2/0x00,0x00,0xFC.0x24,0x24,0x24,0xFC.0x25,0x26,0x24,OxFC,0x24,0x24,0x24,0x04.0x00.0x40,0x30,0x8E0x80,0x84,0x4C,0x55.0x25,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,OxOO,/*H度3*/0x00,0x40,0x42.0x44,0x5&

9、amp;0x400x400x7F,0x40,0x40,0x50,0x4&0xC6,0x00,0x00.0x00.0x00,0x40,0x44.0x44,0x44,0x44.0x44.0x44.0x44.0x44.0x44.0x44.0xFF,0x00,OxOO.OxOOy*H當(dāng)4*/0x08,0x08,OxE8,0x29,0x2E,0x2&0xE&0x08,0x08,0xC8,0x0C,0x0E,0xE8,0x08,0x08,0x00,0x00,0x00,0xFE0x09.0x49,0x89,0x7E0x00.0x00.0x0E0x40.0x80.0x7F,0x00,0

10、x00,OxOO,/*H前5*/0x10,0x60,0x02,0x8C,0x00,0x00,OxFE,0x92,0x92,0x92,0x92,0x92,OxFE,0x00,0x00,0x00,0x04,0x04,0x7E,0x01,0x40,0x7E,0x42,0x42,0x7E,0x42,0x7E,0x42,0x42,0x7E,0x40,0x00,/杯溫6*/0x00,0x00,0xFC.0x24,0x24,0x24,0xFC.0x25,0x26,0x24,0xFC.0x24,0x24,0x24,0x04.0x00.0x40,0x30,0x8E0x80,0x84,0x4C,0x55.0x25

11、,0x25,0x25,0x55,0x4C,0x80,0x80,0x80,OxOO,/*H度7*/0x00,0x00,0x00.0x00.0x00.0x00.0xFE0x40,0x40,0x40,0x40,0x40.0x40、0x00.0x000x00,0x40,0x40,0x40,0x40,0x40,0x40,0x7F,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00嚴(yán),上8*/0x02,0x02,0x02,0x02,0x02,0x02,0xFE,0x02,0x02,0x42,0x82,0x02,0x02,0x02,0x02,0x00,0x00,0x00

12、,0x00.0x00.0x00,OxOO.OxFEOxOO,0x00,0x00,0x00,0x0L0x06.0x00.0x00.0x00/*H卜'9*/0x00,0xFE,0x22,0x5A,0x86,0x00,0xFE,0x92,0x92,0x92,0x92,0x92.0xFE,0x00,0x00.0x00.0x00,0xFE0x04.0x0&0x07,0x00,0xFE0x40.0x20.0x03.0x0C.0xl4.0x22.0x41.0x40,0x00/*M限H,10*/;嚴(yán)*/*定義ASCn字庫(kù)8列*16行*/嚴(yán)*/unsignedcharcodeEzk=0x00,O

13、xEO,0x10,0x0&0x0&0xl0.0xE0,0x00,OxOO.OxOF,0x10,0x20,0x20.0xl0、0x0E0x00,/00x00,0x10,OxlO.OxFS,0x00,0x00.0x00.0x00.0x00.0x20.0x20.0x3F,0x20,0x20.0x00.0x00,/10x00,0x70,0x08.0x0&0x0&0x88.0x700x0(X0x00,0x3(X0x2&0x24,0x22,0x21,0x30,0x00,/20x00,0x30,0x08.0x8&0x8&0x4&0x30.0x0

14、(0x00q0xl&0x2(X0x20、0x20,0xll,0x0E,0x00,/30x00,0x00,OxCO,0x20,Oxi0,0xF&OxOO,0x00.0x00X)x07,0x04.0x24、0x24Qx3F,0x24.0x00./40x00,OxF&0x0&0x8&0x8&0x0&0x0&0x000x00Qxl90x2X0x2(X0x20,0xlX0x0E,0x00,/50x00,OxEO,0x10,0x8&0x8&0xl&0x00.0x000x0(0x0F、0xlX0x2(X0x20、0xll

15、,0x0EX)x00,/60x00,0x3&0x0&0x0&0xC&0x3&0x08.0x000x000x000x000x3F、0x00,0x00,0x00.0x00,/70x00,0x70,0x88.0x0&0x0&0x880x70.0x0(X0x00,0xlU0x22、0x21、0x21q0x22,0xlU0x0(X/80x00,OxEO,0x10,0x08,0x08,0x10,OxEO,0x00,0x00.0x00.0x3L0x22.0x22.0xl1,0x0E0x00,/90x00,OxEO,0x10,0x0&0x0&am

16、p;0xl0.0xE0,0x00,OxOO.OxOF,0x10,0x20,0x20.0xl0、0x0FQxC0,/O.0x00,0x10,0xl0.0xF&0x00,0x000x00.0x000x0(h0x200x2(X0x3F,0x20,0x20.0x00.0xC0、/1.0x00,0x70,0x08,0x0&0x0&0x88.0x70.0x0(X0x00,0x3(X0x2&0x24,0x22,0x21、0x30、0xC0、/2.0x00,0x30,0x08.0x8&0x8&0x4&0x30.0x0(0x00q0xl&0x2(X

17、0x20、0x20,0xll,0x0E,0xC(X/3.0x00,0x00,OxCO,0x20,Oxi0,0xF&OxOO,0x00.0x00X)x07,0x04.0x24、0x24Qx3F,0x24X)xC(X/4.0x00,OxF&0x0&0x8&0x8&0x0&0x0&0x000x00Qxl90x2X0x2(X0x20,0xlX0x0EX)xC(X/5.0x00,OxEO,0x10,0x8&0x8&0xl&0x00.0x000x0(0x0F、0xlX0x2(X0x20、0xll,0x0EX)xC(X/6.0x

18、00,0x38,0x08.0x08.0xC8,0x38,0x08.0x00.0x00.0x00.0x00.0x3F,0x00,0x00,OxOO.OxCO./7.0x00,0x70,0x88.0x0&0x0&0x8&0x70、0x00J)x00q0xlC,0x22、0x2X0x2X0x22,0xlU0xC0,h8.0x00,OxEO,0x10,0x0&0x0&0xia0xE0,0x00,0x00、0x00.0x31、0x22,0x22X)xll,0x0E0xC(X/9.OxCO,0x30,0x0&0x0&0x0&0x0&0

19、x3&0*000只07.0只1&0只20.0*20。0*20。0“10,0“0&0*00尸”(7;20*/0xF050x08,0xF0,0x00,OxEO,0x18,0x00.0x00.0x00.0x21,0x1C.0x03,0x1E,0x2l.OxlE,0x00,21*/voidniainQhutLCD();InitTmieOQ;Init_DS18B20();/DS18B20初始化ClearScreen(O);ALARM=0;Motor=0;delav(50);wliile(l)ShowQ;i罠(temp_value>=alainiH)|(temp_value&

20、lt;alaiinL)判斷報(bào)警ALARM=1;ALARM=0;if(temp-value>=alanuH)Motor=1;if(temp-value<alarniL)Motor=0;Key();voidShow(void)DisPlayl6(0QLeft,4);當(dāng)前溫度DisPlayl6(0J6,Left,5);DisPlayl6(0,32.Left.6);DisPlayl6(0,48,Left,7);ReadTempQ;百位數(shù)十位數(shù)個(gè)位數(shù)小數(shù)位DisPlay8(0.8,Right,tempvalue/l000);DisPlay8(0,16,Right5(temp_value%10

21、00)/100);DisPlay8(0,245Right5(temp_value%100)/10+10);DisPlay8(032,Right,temp_value%10);DisPlay8(0,40,Right,20);DisPlayl6(4,0.Left,6);溫度報(bào)警DisPlayl6(4,16,LeftJ);DisPlayl6(4,32,Left,8);DisPlayl6(4,48Xeft,l0);DisPlay8(4,8,Right,alarmH/1000);if(setBit=O)DisPlay8_not(4,l6,Right,(alarmH%1000)/100);elseDisP

22、lay8(4J6,Righ以alarmH%1000)/100);o£OOKHWmsH&Hoou(OOOKHnma)HTqsHwsxdODA.一qsHobnHPQUm.sm(ptoa)aqhpYoeM倉(cāng)0p9)8A£dsBsT%Tnw】qbDr37T9)8A£dsB宀sT+0MooT<Tnnca)qbn£寸c9)8A£dsTG宀YoT+0T/(ooT%TU亙SMMTH,寸a9)oul8A£dsTCIHlss-宀(00v(000TXTUUUawqbnracTG)8A£dsTG宀"(00TsooT%TUUU

23、sqmTH9-G)oul8A£dsTG(*=4Ntsm"(000HTm£cqWJTH8G)8A£ds_CI"(0p£T8p9)9-A£dsKI(6七TCO9)9-A£dsKIp£T9T9)9TA£dsKI孰罡粽§X9KIO.9)9-AEdsTGYoeM倉(cāng)0bs8A£dsBST<Hnm-eqbnE7gs8A£dsB宀(0HOu(00TfHW.TUa)Tbbra.寸寸)8A£dsTG宀sT+0gooTXHnnusMMTH,寸esoul8A£ds

24、TGTlss-Yshi=(alarniL%1000)/100;Yge=(alarinL%100)/10;if<!KEYl)while(!KEYl);if(setBit=0)Tslu+;if(Tslu=10)Tslii=0;elseTge+;if(Tge=10)Tge=0;elseif(setBit=2)Yslii-H-;if(Yslu=10)Yslii=0;elseif(setBit=3)Yge+;if(Yge=10)Yge=0;alainiH=Tshi*100+Tge*10;alaiinL=Yslii*100+Yge*10;敢!KEY3)while(!KEY3);if(setBit=O

25、)if(Tshi>0)Tslii;elseif(setBit=l)if(Tge>0)Tge-;elseif(setBit=2)if(Yslii>0)Yslu-;elseif(setBit=3)if(Yge>0)Yge-;alainiH=Tslii*100+Tge*10;alai-mL=Yshi*100+Yge*10;敢!KEY2)fwhile(!KEY2);setBit+;if(setBit=4)setBit=0;voidiiNOP(uchari)for(;i>0;i-);voidCheckState(void)unsignedchardat;RS=0;RW=1;

26、doDatapoit=0x00;EN=1;dat=Dataport;EN=0;dat=0x80&dat;號(hào))while(!(dat=0x00);短延時(shí)函數(shù)狀態(tài)檢查,LCD是否忙?/僅當(dāng)?shù)?位為0時(shí)才可操作(判別busy信voidSendCoininandToLCD(unsignedcharcommand)寫(xiě)命令到LCD中CheckStateQ;RS=0;向LCD發(fā)送命令RW=0;Datapoit=coininand;/conmiaiid:命令EN=1;EN=0;voidSetLine(unsignedcharpage)/設(shè)置頁(yè)0xb8是頁(yè)的首地址/1011Ixxx0<=page&

27、lt;=7設(shè)定頁(yè)地址page=0xb8|page;-X0-7,8行為一頁(yè)64/8=8,共8頁(yè)staitlme=Oxc0|startime;SendConmiandToLCD(stanliiie);女臺(tái)顯voidSetColunin(unsignedcharcolunin)colunm=colunm&0x3f;0=<colunin<=63cohimn=0x40colunm;SendConmiandToLCD(colunm);voidSetOnOff(unsignedcharonoff)onoff=0x3e|onoff;SendConmiandToLCD(onofi);void

28、WriteByte(unsignedcharData)SendConmiandToLCD(page);voidSetStartLine(unsignedcharstartliiie)設(shè)定顯示開(kāi)始行,OxcO是行的首地址/11000000設(shè)置從哪行開(kāi)始:0-63,一般從0行開(kāi)設(shè)定列地址-Y0-63,0x40是列的首地址/column最人值為64,越出/01XXXXXX開(kāi)關(guān)顯示,0x3f是開(kāi)顯示,0x3e是關(guān)顯示/0011lllxonoff只能為0或者1寫(xiě)顯示數(shù)據(jù)CheckStateQ;RS=1;RW=0;Dataport=Data;/data:顯示數(shù)據(jù)EN=1;EN=0;voidSelectSc

29、reen(unsignedcharscreen)選擇屏幕screen:0-全屏,1左屏,2右屏switch(screen)case0:csl=0;_nop_0;_nop_();_nop_();cs2=0;_nop_0;_nop_();_nop_();break:case1:csl=0;_nop_0;_nop_();_nop_();cs2=l;_nop_0;_nop_();_nop_();break:case2:csl=l;_nop_0;_nop_();_nop_();cs2=0;_nop_0;_nop_();_nop_();break:voidCleaiScreen(unsignedchars

30、creen)unsignedcharij;SelectScreen(screen);fbr(i=0;i<8;i+)SetLme(i);SetColuiim(O);for(j=0;j<64;j+)WriteByte(OxOO);清屏screen:0全屏,1左屏2右控制頁(yè)數(shù)0-7,共8頁(yè)控制列數(shù)0-63,共64列寫(xiě)點(diǎn)內(nèi)容,列地址自動(dòng)加1延時(shí)程序voiddelay(umtnnis)uiiiti;for(;mils>0;urns)fbr(i=0;i<500;i+);voidInitLCDO初始化LCDCheckState();SelectScreen(O);SetOnOff(0

31、);/關(guān)顯示SelectScreen(O);SetOnOff(l);/開(kāi)顯示SelectScreen(O);ClearScreen(O);/清屏SetStaitLine(O);開(kāi)始行9設(shè)置TO定時(shí)模式1設(shè)置TO低8位初值設(shè)置TO高8位初值總中斷允許定時(shí)器TO中斷允許定時(shí)器TO啟動(dòng)voidInitTmieO(void)TMOD=0x01;TL0=0x17;TH0=OxFC;EA=1;ETO=1;TR0=l;LorR,unsignedvoidDisPlay16(unsignedcliailine,unsignedcharcolumn,unsignedchaicharaddr)unsignedcha

32、ri;unsignedcharj;csl=1;cs2=1;if(LorR=0)csl=0;cs2=0;fbr(i=0;i<2;i+)ifor(j=0;j<16J+)/ISetLiiie(lme+i);SetColuiim(colunm+j);WriteByte(Hzkaddi*32+j+16*1);csl=1;cs2=1;voidDisPlay16_not(unsignedcharline,unsignedcharcolunm,unsignedchaiLorR,unsignedcharaddi)unsignedchar1;unsignedcharj;csl=1;cs2=1;if(L

33、orR=0)csl=0;cs2=0;fbr(i=O;i<2;i+)foi(j=0;j<16J+)SetLiiie(lme+i);SetColuiim(colunm+j);WriteBvte(Hzkaddi*32+j+16*i);csl=1;cs2=1;unsignedvoidDisPlay8(unsignedcharline,unsignedcharcolunm,unsignedcharLorR.charaddi)unsignedchari;unsignedcharj;csl=1;cs2=1;if(LorR=0)csl=0;elsecs2=0;fbr(i=O;i<2;i+)foi(j=0;j<8J+)SetLiiie(lme+i);SetColuiim(colunm+j);WriteByte(Ezkaddi*16+j+8*i);csl=1;cs2=1;LorR,voidDisPlav8_not(unsignedcharline,unsignedcharcolunm,unsignedcliarunsignedcharaddi)unsignedchar1;unsignedcharj;csl=1;cs2=1;if(LorR=0)csl=0;elsecs2=0;for(i=0;i<2;i+)foi(j=

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論