原标题:基于AT89C52单片机的交通灯C语言程序
如图,简易 。
有四个状态0,1,2,3
数码管为2位7段共阳数码管,可以通过修改i,j的值进而修改倒计时的长短。
不当地方,敬请批评指正!
图一:十字路口交通灯
图二:状态0
绿灯:0x42
红灯:0xbd
图三:状态1
绿灯:0x25
红灯:0xda
图四:状态2
绿灯:0x90
红灯:0x6f
图五:状态3
绿灯:0x2c
红灯:0xd3
#include
#include
#define uint unsigned int
#define uchar unsigned char
sbit ge=P0^6;
sbit shi=P0^7;
sbit d0=P0^0;
sbit d1=P0^1;
sbit d2=P0^2;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=113;y>0;y--);
}
void shu0()
{
d0=0;
d1=0;
d2=0;
delay(1);
d0=1;
d1=0;
d2=0;
delay(1);
d0=0;
d1=1;
d2=0;
delay(1);
d0=1;
d1=1;
d2=0;
delay(1);
d0=0;
d1=0;
d2=1;
delay(1);
d0=1;
d1=0;
d2=1;
delay(1);
_nop_();
_nop_();
_nop_();
delay(1);
}
void shu1()
{
d0=1;
d1=0;