找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2792|回复: 0
打印 上一主题 下一主题
收起左侧

新手请教一个问题,请高手帮忙

[复制链接]
跳转到指定楼层
楼主
ID:38265 发表于 2012-4-11 12:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

新手请教大家一个问题,我做了一个温度下限报警的程序,现在现在想在程序里加点功能,当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();
   }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表