代码修改如下,经keil编译,proteus仿真结果为 P1.0亮10秒,然后P1.1亮2秒,然后P1.2亮10秒,最后P1.0亮10秒,,,
#include<reg51.h>sbitR=P1^0;//HONG
sbitW=P1^1;//HUANG
sbitL=P1^2;//LV
unsignedinta,b=0;
//unsignedcharcodec[]={0xfe,0xfc,0xfb};//1110,1100,1011
unsignedcharcodec[]={0xfe,0xfD,0xfb,0xfd};//1110,1101,1011,1101//红黄绿黄//修正黄灯的值,增加一个状态
voidtimer10s()interrupt1
{
if(a<2000)
{
TH0=0xec;//5ms
TL0=0x78;
a++;
//b=0;//这里不能对b赋值
TR0=1;
TR1=0;//【增加】
}
if(a>=2000)
{
TH0=0xec;
TL0=0x78;
a=0;
b++;//b=1;
if(b==4)b=0;//【增加】
TR1=1;
TR0=0;//【增加】
}
}
voidtimer2s()interrupt3
{
if(a<400)
{
TH1=0xec;
TL1=0x78;
a++;
TR1=1;
TR0=0;
}
if(a>=400)
{
TH1=0xec;
TL1=0x78;
a=0;
b++;//b=2;
//
if(b==4)b=0;//【增加】
TR0=1;
TR1=0;//【增加】
}
}
voidmain()
{
EA=1;
ET0=1;
ET1=1;
TMOD=0X11;
TH0=0xec;//5MS
TL0=0x78;
TH1=0xec;
TL1=0x78;
TR0=1;
TR1=0;
P1=c[0];
b=0;////【增加】
while(1)
{
switch(b)
{
case0x00:P1=c[0];break;
case0x01:P1=c[1];break;
case0x02:P1=c[2];break;
case0x03:P1=c[3];break;//增加一个状态
}
}
}
以上代码可以优化,如下:
#include<reg51.h>
sbitR=P1^0;//HONG
sbitW=P1^1;//HUANG
sbitL=P1^2;//LV
unsignedinta,b=0;
unsignedcharcodec[]={0xfe,0xfD,0xfb,0xfd};
voidtimer10s()interrupt1
{
TH0=0xec;//5ms
TL0=0x78;
a++;
if(TR1==1)TR1=0;
if(a>=2000)
{
a=0;
b++;
if(b==4)b=0;
TR1=1;
TR0=0;
}
}
voidtimer2s()interrupt3
{
TH1=0xec;
TL1=0x78;
a++;
if(TR0==1)TR0=0;
if(a>=400)
{
a=0;
b++;
if(b==4)b=0;
TR0=1;
TR1=0;
}
}
voidmain()
{
EA=1;
ET0=1;
ET1=1;
TMOD=0X11;
TH0=0xec;//5MS
TL0=0x78;
TH1=0xec;
TL1=0x78;
TR0=1;
TR1=0;
a=0;//
b=0;//
while(1)
{
switch(b)
{
case0x00:P1=c[0];break;
case0x01:P1=c[1];break;
case0x02:P1=c[2];break;
case0x03:P1=c[3];break;
}
}
}
什么App里导航带测速,红绿灯播报?
现在一般的地图软件APP都带有导航和测速功能,以及红绿灯限速和限速路段的通知。
一般驾车导航不报测速及闯红灯照像的原因:
一:可能是驾驶员没有打开导航仪。
二:可能是导航仪出现故障了。
三:可能是行车路段上的测速雷达和电子眼是新安装的,导航仪暂未收录。
哪个软件可以在手机上道路上提示电子眼红绿灯和准确路段
推荐图吧或者高德还有凯立德和百度地图,有离线版的,破解的更好,我用的图吧离线破解,增加好多电子眼。
谁有个好软件。可以控制红绿灯的软件?求高手帮忙
你想dang黑客么???
看虎胆龙威看多了把
现在用三角测量的逆反程序可以qin入红绿灯系统
易佰好易(e100haoe)为您作答
祝您顺利
红绿灯用PLC怎么设计循环程序?
额,用PLC设计红绿灯也太没有难度了吧?用几个计时器就搞定了。
例如:红灯20秒,就用现成的计时器T1设置20秒就是,时间到,设置T2 17秒(绿灯),T2时间到设置T3 3秒(黄灯),黄灯输出时设置一个0.5秒循环闪烁的脉冲。T1开始计时时另一个方向T4 17秒,然后3秒。。。。。。。。。。。
定时结束以后等下一个循环开始时不需要把定时器复位一下吗?
你用的是哪家的PLC啊,各家的PLC程序稍微有点细节不同,有的时间继电器需要复位,有的自己会复位。有的提供好几种时间继电器。使用前看看说明文档是!!!
转载请注明出处51数据库 » 红绿灯软件 关于单片机简单的红绿灯程序问题