• 大小: 184KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-07-23
  • 语言: 其他
  • 标签:

资源简介

功能实现: (一)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个文件信息

评论

共有 条评论

相关资源