您当前的位置:五五电子网电子知识单片机-工控设备51单片机数字温度计程序 正文
数字温度计程序

数字温度计程序

点击数:7633 次   录入时间:03-04 11:42:55   整理:http://www.55dianzi.com   51单片机
     {
       GetTempTS();
       line1[0]=0x20;
       i=temp1;
if(i>39)                            //超过40摄氏度,告警灯亮
 ALERT=1;
       if(i>99)                        //超过100摄氏度,显示温度的百位
       {
         line1[0]=0x31;    
         i-=100;
       }
       line1[1]=i/10+0x30;                 //显示温度的十位
       line1[2]=i%10+0x30;             //显示个位
       line1[4]=temp2+0x30;            //显示小数位
       if(timeover)                     //若定时结束,则电位器缓慢复0
       {
            for(;pos>0;pos--)
         {
         ChangePos(0,255-pos,255-pos);       
         _nop_();
         _nop_();
         }
         timeover=0;
         posset=0;
       }
       if(pos>posset)                   //若按键修改电位器位置
       {
         for(;pos>posset;pos--)            //则缓变到设定值
         {
         ChangePos(0,255-pos,255-pos);       
         _nop_();
         _nop_();
         } 
         ChangePos(0,255-pos,255-pos);
       }
       else if(pos<posset)   
       {
         for(;pos<posset;pos++)
         {
         ChangePos(0,255-pos,255-pos);       
         _nop_();
         _nop_();
         } 
         ChangePos(0,255-pos,255-pos); 
       }
       i=pos;  
       line1[9]=0x20;                    //显示电位器等级值
       if(i>99)
       {
         line1[9]=i/100+0x30;
         i=i%100;
       }
       line1[10]=i/10+0x30;
       line1[11]=i%10+0x30;
       ShowString(1,line1);
       line0[5]=min/10+0x30;            //显示时间
       line0[6]=min%10+0x30;
       line0[8]=sec/10+0x30;
       line0[9]=sec%10+0x30;
       ShowString(0,line0);       
       Delay100ms();
     }
}

void InitInterupt()
{
  TMOD=0x21;                        //初始化中断设置
  TL1=0xFD;
  TH1=0xFD;
  PX0=1;
  EA=1;                 
  ES=1;                 
  PCON=0;    
  TR1=1;
  SCON=0x50;


  TL0=0x00;                             //定时0.05m
  TH0=0x4C;  
  ET0=1;

  EX0=1;                
  IT0=1;
}

void KeyboardDelay()                    //按键中断延时
{
 unsigned char i,j;
 i=0x40;
 j=0xFF;
 while(i--)
  while(j--);
}

/*--------------------------------------------中断处理-----------------------------------------------------*/
Int0_process() interrupt 0 using 0
{
  unsigned char key;
  unsigned char keycode[]= "TP";
  unsigned char step[3]={1,2,5};
  EA=0;
  key=GetKey();                         //获得按键值
  switch(key)
  {
   case 0:
     stop=!stop;
     min=minset;
     sec=0;
     break;
   case 1:
   case 2:
   case 3:
     if(stop)
     {
      minset+=step[key-1];

上一页  [1] [2] [3] [4]  下一页


本文关键字:程序  数字温度计  51单片机单片机-工控设备 - 51单片机