新手请教一个问题,请大家帮忙看一下

2019-07-16 06:04发布

新手请教大家一个问题,我做了一个温度下限报警的程序,现在现在想在程序里加点功能,当temp<set的时候,num加1就不在加了,然后等待下次temp<set的时候再加1,如此循环。可是怎么也想不出来该怎么加,麻烦大家帮忙看看应该怎么写这部分程序。
#define uint unsigned int
#define uchar unsigned char
#define ms 4
#define set 30  //设定温度下限
sbit beep=P1^5;
uchar code table1[]= {0x28,0xEB,0x32,0xA2,0xE1,0xA4,0x24,0xEA,0x20,0xA0,0x60,0x25,0x3C,0x23,0x34,0x74};   
//                    0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
uchar code table2[]= {0x08,0xcb,0x12,0x82,0xc1,0x84,0x04,0xca,0x00,0x80};
uchar flag=0,temp;
uchar num;
void disp(uint x)
{
  P0=table1[num/10];
  P2=0x7f;
  delayms(ms);
  P0=table1[num%10];
  P2=0xbf;
  delayms(ms);
  P0=table1[x/10];
  P2=0xdf;
  delayms(ms);
  P0=table1[x%10];
  P2=0xef;
  delayms(ms);
}
void dete()     //想在这里加个功能,当temp<set的时候,蜂鸣器响的同时,num加1(只加个   1),然后就等待下一次temp<set的时候再加1,就是这里怎么也想不出来该怎么写。
{
  
  if(temp<set)
   {
     beep=!beep;
     num        (这里下面不知道该怎么写了,如果直接写成num++;的话,条件一成立num就不停的加,请大家指点一下,谢谢!)
   }
  else
   {
     beep=1;
  flag=0;
   }   
}
void main()
{
  delayms(1);
  sendChangeCmd();
  while(1)
   {
     temp=getTmpValue();
     disp(getTmpValue());
     sendChangeCmd();
  dete();
   }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
yy251745080
1楼-- · 2019-07-16 09:44
加一个变量 ,如果已经报警过就设为true.然后在你所谓的下一次开始时设为false
abeyond
2楼-- · 2019-07-16 13:43
你好,我刚学单片机时间不长,不太明白,麻烦你能不能详细说一下,谢谢!!!

一周热门 更多>