⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wendu.c

📁 本程序可以实现对温度的控制,非常实用,供大家参考
💻 C
字号:
#include <reg51.H>

unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
                                  0xef,0xdf,0xbf,0x7f};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
                               0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsigned char dispbuf[8]={10,10,10,10,10,10,0,0};
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;

sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
sbit LED1=P3^6;
sbit LED2=P3^7;
sbit SPK=P3^5;
bit lowflag;
bit highflag;
unsigned int cnta;
unsigned int cntb;
bit alarmflag;


void main(void)
{
  ST=0;
  OE=0;
  TMOD=0x12;
  TH0=0x216;
  TL0=0x216;
  TH1=(65536-500)/256;
  TL1=(65536-500)%256;
  TR1=1;
  TR0=1;
  ET0=1;
  ET1=1;
  EA=1;
  ST=1;
  ST=0;
  while(1)
    {
      if((lowflag==1) &&(highflag==0))
        {
          LED1=0;
          LED2=1;
        }
        else if((highflag==1) && (lowflag==0))
          {
            LED1=1;
            LED2=0;
          }
          else
            {
              LED1=1;
              LED2=1;
            }
    }
}

void t0(void) interrupt 1 using 0
{
  CLK=~CLK;
}

void t1(void) interrupt 3 using 0
{

  TH1=(65536-500)/256;
  TL1=(65536-500)%256;

       if(EOC==1)
         {
           OE=1;
           getdata=P0;
           OE=0;
           temp=getdata*25;
           temp=temp/64;
           i=6;
           dispbuf[0]=10;
           dispbuf[1]=10;
           dispbuf[2]=10;
           dispbuf[3]=10;
           dispbuf[4]=10;
           dispbuf[5]=10;
           dispbuf[6]=0;
           dispbuf[7]=0;
          while(temp/10)
            {
              dispbuf[i]=temp%10;
              temp=temp/10;
              i++;
            }
          dispbuf[i]=temp;
           if(getdata<77)
             {
               lowflag=1;
               highflag=0;
             }
             else if(getdata>153)
               {
                 lowflag=0;
                 highflag=1;
               }
               else
                 {
                   lowflag=0;
                   highflag=0;
                 }
           ST=1;
           ST=0;
         }

  P1=dispcode[dispbuf[dispcount]];
  P2=dispbitcode[dispcount];
  dispcount++;
  if(dispcount==8)
    {
      dispcount=0;
    }

  if((lowflag==1) && (highflag==0))
    {
      cnta++;
      if(cnta==800)
        {
          cnta=0;
          alarmflag=~alarmflag;
        }
      if(alarmflag==1)
        {
          SPK=~SPK;
        }
    }
    else if((lowflag==0) && (highflag==1))
      {
      cntb++;
      if(cntb==400)
        {
          cntb=0;
          alarmflag=~alarmflag;
        }
      if(alarmflag==1)
        {
          SPK=~SPK;
        }
      }
      else
        {
          alarmflag=0;
          cnta=0;
          cntb=0;
        }
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -