资源简介
功能实现:
(一)LCD显示
1.开始动画
一个图形向下移动直至消失。
2.欢迎界面
打印出“欢迎使用温度传感器制作:柳玉诚”字样。
3.使用界面
(1)当前温度、温度上限、温度下限显示。
(2)超上限报警等级、超下限报警等级显示。
(3)风扇档位显示。
(4)传感器工作时间显示。
(二)设置上下限
矩阵键盘0-9设置3位上下限,默认上限100℃,下限25℃。
(三)超限报警
温度超过上下限时LED灯闪烁,闪烁频率通过按钮调节,共分6档,默认上限5档,下限1档。
(四)温度控制
1.超下限时:电阻丝加热,恢复正常温度时电阻丝迅速恢复常温。
2.超上限时:
通过调节高低电平占空比,使风扇吹风散热,分为自动档和手动档。
自动档:
(1)超上限1-10℃时:风扇吹4档自然风(风速先渐快后渐慢,如此往复)。
(2)超上限11-20℃时:风扇吹1档微风。
(3)超上限21-35℃时:风扇吹2档中风。
(4)超上限35℃以上时:风扇吹3档劲风。
手动档:
不受超上限数值的影响,手动调节1-4档风速。
代码片段和文件信息
#include
#include
#include
#include
/////////////////////警示灯闪烁频率设置子函数,1-6档,频率依次提高////////////////////////
void led(uint i)
{
red=~reddelay(8000-(i+1)*1000);
}
/////////////////////中断程序,计数按下0-9按键的次数////////////////////////
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;}
}
////////////////////////////////////////////时钟定时器0中断服务程序///////////////////////////////////////////////////
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 为定时器1的中断号
{ static uchar i=0;
TH1=(65536-1000)/256;
TL1=(65536-1000)%256; //定时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; //电压值,为方便比较大小,扩大了100倍
uint k; //使用参量
uint maxmax0max1max2max3min; //上限max,下限min,为方便比较大小,都扩大了100倍
TMOD=0x01; // T0的方式1
EA=1; //开启总中断
EX0=1; //开启外部中断0
IT0=1; //设置中断为下跳沿触发
TH1=(65536-1000)/256;
TL1=(65536-1000)%256;
num=0; //令0-9按键次数记录默认为0
red=0; //默认警示灯为灭
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; //启动T0
TR1=1;
while(1){
/////////////////////电压值(电压表中示数)数模转换 ////////////////////////
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按键的次数,按下第1-3次设置上限
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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\阶段代码备份\严重等级上:X级下:X级.txt
目录 0 2016-12-29 23:12 Project Assist\阶段代码备份
目录 0 2017-01-31 15:59 Project Assist
----------- --------- ---------- ----- ----
1101353 27
............此处省略0个文件信息
- 上一篇:网络抓包snmp数据包
- 下一篇:SPSS其实很简单 全套数据文件
评论
共有 条评论