-
大小: 184KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-07-23
- 語言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
功能實(shí)現(xiàn):
(一)LCD顯示
1.開始動(dòng)畫
一個(gè)圖形向下移動(dòng)直至消失。
2.歡迎界面
打印出“歡迎使用溫度傳感器制作:柳玉誠(chéng)”字樣。
3.使用界面
(1)當(dāng)前溫度、溫度上限、溫度下限顯示。
(2)超上限報(bào)警等級(jí)、超下限報(bào)警等級(jí)顯示。
(3)風(fēng)扇檔位顯示。
(4)傳感器工作時(shí)間顯示。
(二)設(shè)置上下限
矩陣鍵盤0-9設(shè)置3位上下限,默認(rèn)上限100℃,下限25℃。
(三)超限報(bào)警
溫度超過上下限時(shí)LED燈閃爍,閃爍頻率通過按鈕調(diào)節(jié),共分6檔,默認(rèn)上限5檔,下限1檔。
(四)溫度控制
1.超下限時(shí):電阻絲加熱,恢復(fù)正常溫度時(shí)電阻絲迅速恢復(fù)常溫。
2.超上限時(shí):
通過調(diào)節(jié)高低電平占空比,使風(fēng)扇吹風(fēng)散熱,分為自動(dòng)檔和手動(dòng)檔。
自動(dòng)檔:
(1)超上限1-10℃時(shí):風(fēng)扇吹4檔自然風(fēng)(風(fēng)速先漸快后漸慢,如此往復(fù))。
(2)超上限11-20℃時(shí):風(fēng)扇吹1檔微風(fēng)。
(3)超上限21-35℃時(shí):風(fēng)扇吹2檔中風(fēng)。
(4)超上限35℃以上時(shí):風(fēng)扇吹3檔勁風(fēng)。
手動(dòng)檔:
不受超上限數(shù)值的影響,手動(dòng)調(diào)節(jié)1-4檔風(fēng)速。

代碼片段和文件信息
#include
#include
#include
#include
/////////////////////警示燈閃爍頻率設(shè)置子函數(shù),1-6檔,頻率依次提高////////////////////////?
void?led(uint?i)
{
red=~reddelay(8000-(i+1)*1000);
}
/////////////////////中斷程序,計(jì)數(shù)按下0-9按鍵的次數(shù)////////////////////////?
void?in()?interrupt?0
{n=P2&0x0f;
if(n>=0&&n<=9)?{num++;}
else?if(n==10)?{up++;if(up>6)?up=1;}
else?if(n==11)?{down++;if(down>6)?down=1;}
else?if(n==12)?{tt++;if(tt>4)?tt=0;}
else?if(n==13)?{dang=~dang;}
else?if(n==14)?{num=0;}
else?if(n==15)?{num=4;}
}
////////////////////////////////////////////時(shí)鐘定時(shí)器0中斷服務(wù)程序///////////////////////////////////////////////////
void?clock0()interrupt?1???????
{?
?int?count;?
?TH0?=(65536-50000)/256;?
?TL0?=(65536-50000)%256;?
?count++;?
?if(count==20)?
?{?count=0;?s2++;?
??if(s2==10)?
??{?
???s2=0;?s1++;?
???if(s1==6)?
???{s1=0;?m2++;?
????if(m2==10)?
????{m2=0;?m1++;?
?????if(m1==6)?
?????{m1=0;?h2++;?
??????if?(h2==10)?
??????{h2=0;h1++;
??if?(h1==10)?
??????{h1=0;}}?????
?????}?????
????}?
???}????
??}?
?}?
}
void?Fan()?interrupt?3????//3?為定時(shí)器1的中斷號(hào)??
{??static?uchar?i=0;
??TH1=(65536-1000)/256;
??TL1=(65536-1000)%256;??//定時(shí)1ms
if(tt<4)
{if(i else?cold=0;
????i++;
if(i>=10)?i=0;}
else?if(tt==4)
{static?uchar?j=0;
if(j else??cold=0;
j++;
if?(j>=30)
{?j=0;
jj++;}
if(jj>9)
jj=0;?}?
}???????????
?????????????????
??
void?main()
{?
///////////////////////////////////程序初始化//////////////////////////////////////??
??uint?u; //電壓值,為方便比較大小,擴(kuò)大了100倍?
??uint?k; //使用參量
??uint?maxmax0max1max2max3min;?? ?//上限max,下限min,為方便比較大小,都擴(kuò)大了100倍
??TMOD=0x01; ?//?T0的方式1
??EA=1; ?//開啟總中斷
??EX0=1; ?//開啟外部中斷0
??IT0=1; ?//設(shè)置中斷為下跳沿觸發(fā)?
??TH1=(65536-1000)/256;
??TL1=(65536-1000)%256;?
??num=0; ?//令0-9按鍵次數(shù)記錄默認(rèn)為0
??red=0; ?//默認(rèn)警示燈為滅
??hot=1;
??cold=0;
??Clear_Scr();?????????//?清屏???
??init_lcd();????
??Display_Img(FirstPage);?
??delay(5000);?
??delay(5000);?
??init_lcd();???
??StartMsg();????
??delay(10000);????
??Display_title();
??ET0=1;???//T0中斷允許
??ET1=1;?
??TR0=1;??//啟動(dòng)T0?
??TR1=1;
??while(1){
/////////////////////電壓值(電壓表中示數(shù))數(shù)模轉(zhuǎn)換?////////////////////////
??wr=1;
??_nop_();
??wr=0;
??_nop_();
??wr=1;??
??for(k=10;k>0;k--)
??{
??u=P1*1.0/255*255;
??b=u/100;
??s=u%100/10;
??g=u%10;
}?
??
??Display_Change();
??//判斷電壓值是否超過上下限,若超過則以超上限警示燈閃爍頻率閃爍,若低于下限則以超下限警示燈閃爍頻率閃爍,否則燈滅?//
??max=x1*100+x2*10+x3;
??max0=max+10;
??max1=max+20;
??max2=max+35;
??max3=max+50;
??min=y1*100+y2*10+y3;??
??
??if(dang==0)
??{if(u>=max)?
??{led(up);hot=1;
??if(u>max&&u ??else?if(u>max0&&u ??else?if(u>max1&&u ??else?if(u>max2&&u ??else?if(u<=min)?
??{led(down);hot=0;cold=1;}
??else?{red=0;hot=1;cold=1;}}
???
??else?if(dang==1)
??{if(u>=max)?
??{led(up);hot=1;}
??else?if(u<=min)?
??{led(down);hot=0;cold=1;}
??else?{red=0;hot=1;cold=1;}}
?? ??
//判斷按下0-9按鍵的次數(shù),按下第1-3次設(shè)置上限
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????186228??2017-01-03?09:04??Project?Assist\Backup?Of?The?First?Work.DBK
?????文件???????1099??2017-01-03?15:44??Project?Assist\define.h
?????文件?????192796??2017-01-03?15:59??Project?Assist\Last?Loaded?The?First?Work.DBK
?????文件??????26747??2017-01-03?15:19??Project?Assist\LCD12641.h
?????文件??????43049??2017-01-03?15:47??Project?Assist\The?First?Work
?????文件??????????0??2016-12-26?11:15??Project?Assist\The?First?Work.build_log.htm
?????文件???????3681??2017-01-03?15:59??Project?Assist\The?First?Work.c
?????文件?????192748??2017-01-05?22:18??Project?Assist\The?First?Work.DSN
?????文件??????19271??2017-01-03?15:47??Project?Assist\The?First?Work.hex
?????文件?????????45??2017-01-03?15:47??Project?Assist\The?First?Work.lnp
?????文件???????7549??2017-01-03?15:47??Project?Assist\The?First?Work.LST
?????文件??????41378??2017-01-03?15:47??Project?Assist\The?First?Work.M51
?????文件??????26396??2016-12-27?09:22??Project?Assist\The?First?Work.MAP
?????文件??????52038??2017-01-03?15:47??Project?Assist\The?First?Work.OBJ
?????文件????????193??2017-01-05?20:29??Project?Assist\The?First?Work.plg
?????文件???????1078??2017-01-06?10:02??Project?Assist\The?First?Work.PWI
?????文件???????7374??2016-12-27?09:22??Project?Assist\The?First?Work.SBR
????.......?????70417??2016-12-26?11:16??Project?Assist\The?First?Work.uvgui.LYC
????.......?????70420??2016-12-26?11:15??Project?Assist\The?First?Work.uvgui_LYC.bak
????.......?????56906??2017-01-05?20:50??Project?Assist\The?First?Work.uvopt
????.......?????13269??2016-12-27?10:49??Project?Assist\The?First?Work.uvproj
????.......?????56905??2017-01-04?16:39??Project?Assist\The?First?Work_uvopt.bak
????.......?????13263??2016-12-26?11:24??Project?Assist\The?First?Work_uvproj.bak
?????文件??????17171??2017-01-05?23:08??Project?Assist\使用說明及感想.docx
?????文件???????1332??2016-12-29?22:01??Project?Assist\階段代碼備份\嚴(yán)重等級(jí)上:X級(jí)下:X級(jí).txt
?????目錄??????????0??2016-12-29?23:12??Project?Assist\階段代碼備份
?????目錄??????????0??2017-01-31?15:59??Project?Assist
-----------?---------??----------?-----??----
??????????????1101353????????????????????27
............此處省略0個(gè)文件信息
評(píng)論
共有 條評(píng)論