找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求解++Time_Count!=50是什么意思,单片机小小渣渣 请教一点东西

[复制链接]
跳转到指定楼层
楼主
ID:103605 发表于 2016-1-17 21:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  case 0:
       P1=LRA;
      if(++Time_Count!=50) return;
       Time_Count=0;
       Operation_Type=1;
                  P1=ERNG;
        break;
只是部分程序
前面的省略了很多
#define LRA 0XEE
uint Time_Count=0;
uchar Operation_Type=0;
求解++Time_Count!=50是什么意思

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

使用道具 举报

沙发
ID:103605 发表于 2016-1-18 12:49 | 只看该作者

有什么作用呢??!!求解
回复

使用道具 举报

板凳
ID:97249 发表于 2016-1-18 15:26 | 只看该作者
LemonShane 发表于 2016-1-18 12:49
有什么作用呢??!!求解

相当于(Time_Count=Time_Count+1;Time_Count!=50;)
回复

使用道具 举报

地板
ID:103605 发表于 2016-1-18 16:03 | 只看该作者
红尘有你 发表于 2016-1-18 15:26
相当于(Time_Count=Time_Count+1;Time_Count!=50;)

这是一个交通灯C语言的一部分 我想知道他的运行原理是怎样的  
回复

使用道具 举报

5#
ID:97249 发表于 2016-1-18 16:33 | 只看该作者
LemonShane 发表于 2016-1-18 16:03
这是一个交通灯C语言的一部分 我想知道他的运行原理是怎样的

是要大家盲人摸象吗?
不传整个代码神知道
回复

使用道具 举报

6#
ID:103605 发表于 2016-1-18 17:51 | 只看该作者
本帖最后由 LemonShane 于 2016-1-18 17:52 编辑

#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define THVL -50000/256
#define TLVL -50000%256
#define LRA 0XEE
#define ERNG 0XEB
#define ERNY 0XED
#define EGNR 0XBE
#define EYNR 0XDE
uchar i,j;
/**************************************************************/
//定义全局变量
uint Time_Count=0;     //延时倍数
uchar Flash_Count=0;    //闪烁次数
uchar Operation_Type=0; //操作类型
//0:全红;1:东西红灯南北绿灯;2:东西红灯南北黄灯
//3: 东西绿灯南北红灯; 4: 东西黄灯南北红灯
/**************************************************************/
//T0中断函数
void T0_INT()interrupt 1
{  TH0=THVL;
   TL0=TLVL;
   switch(Operation_Type)
{
/**************************************************************/
   //东西南北全红灯 5秒
  case 0:
       P1=LRA;
      if(++Time_Count!=50) return;
       Time_Count=0;
       Operation_Type=1;
                  P1=ERNG;
        break;
/**************************************************************/
   //东西红灯南北绿灯 10秒
   case 1:
       if(++Time_Count!=200) return;
       Time_Count=0;
       Operation_Type=2;
                 P1=ERNY;
        break;
/**************************************************************/
   //东西红灯南北黄灯 3秒
        case 2:
      if(++Time_Count!=10) return;
             Time_Count=0;
             P1^=0X02;  //对黄灯位取反
          //闪烁3次
          if(++Flash_Count!=6)return;
             Flash_Count=0;
             Operation_Type=3;
                                 P1=EGNR;
            break;
/**************************************************************/
   //东西绿灯南北红灯 10秒
    case 3:
     if(++Time_Count!=200) return;
     Time_Count=0;
       Operation_Type=4;
                 P1=EYNR;
     break;
/**************************************************************/
    //东西黄灯南北红灯 3秒
        case 4:
       if(++Time_Count!=10) return;
             Time_Count=0;
             P1^=0X20;  //对黄灯位取反
          //闪烁3次
          if(++Flash_Count!=6)return;
             Flash_Count=0;
             Operation_Type=1;
                                 P1=ERNG;
           break;

}
}
/**************************************************************/
//延时函数
void delay10s()
{ uchar k;
  for(k=0;k<200;k++)
  {
   TH1=THVL;
   TL1=TLVL;
   TR1=1;
   while(!TF1);
   TF1=0;
  }
}
/**************************************************************/
//外中断0函数           
void INT_0() interrupt 0 using 1
{
  P1=LRA;
  delay10s();
}

/**************************************************************/
/*主函数*/
/**************************************************************/
void main()
{
TMOD=0X11;
TH0=THVL;
TL0=TLVL;
TR0=1;
TH1=THVL;
TL1=TLVL;
ET0=1;
IT0=1;
EX0=1;
PX0=1;
EA=1;

while(1);
}

这是个交通灯的C  我想知道++Time_Count!=50 这一句的工作原理 就是让等怎么变换的 为什么?
回复

使用道具 举报

7#
ID:103605 发表于 2016-1-18 17:53 | 只看该作者
红尘有你 发表于 2016-1-18 16:33
是要大家盲人摸象吗?
不传整个代码神知道

楼下有 麻烦帮我看看  谢谢
回复

使用道具 举报

8#
ID:103605 发表于 2016-1-18 23:02 | 只看该作者
uestchina 发表于 2016-1-18 21:37
相当于
Time_Count=Time_Count+1;Time_Count!=50;

这个我知道  我想知道 在这个语句里面  灯是怎么工作的 为什么!!
回复

使用道具 举报

9#
ID:97249 发表于 2016-1-19 10:48 | 只看该作者
LemonShane 发表于 2016-1-18 17:51
#include
#define uchar unsigned char
#define uint unsigned int

++Time_Count!=50,这段代码相当延时5秒; 每响应一次中断Time_Count加1并判断是否=50,不是就结束中断,直到=50
回复

使用道具 举报

10#
ID:103605 发表于 2016-1-19 21:11 | 只看该作者
红尘有你 发表于 2016-1-19 10:48
++Time_Count!=50,这段代码相当延时5秒; 每响应一次中断Time_Count加1并判断是否=50,不是就结束中断, ...

谢谢!!!要的就是这个!!!
回复

使用道具 举报

11#
ID:103605 发表于 2016-1-19 21:14 | 只看该作者
红尘有你 发表于 2016-1-19 10:48
++Time_Count!=50,这段代码相当延时5秒; 每响应一次中断Time_Count加1并判断是否=50,不是就结束中断, ...

谢谢!!
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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