|
我编了一个交通灯的程序,没法验证请高手看一下是否正确
[复制链接]
| 50S
| 5S
| 70S
| 5S
| ……
| 东西道
| 红灯R1亮
| 黄灯Y1亮
| 绿灯G1亮
| 黄灯Y1亮
| ……
| 南北道
| 绿灯G2亮
| 黄灯Y2亮
| 红灯R2亮
| 黄灯Y2亮
| ……
|
#include
#define uchar unsigned char
#define uint unsigned int
sbit R1=P2^0;
sbit Y1=P2^1;
sbit G1=P2^2;
sbit R2=P2^3;
sbit Y2=P2^4;
sbit G2=P2^5;
uint num=0;
delayms (uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
main()
{
TMOD =0X01;
TH0=(65536-45872)/256;
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
R1=0;
G2=0;
if(1000<=num=1100)
{
G1=1;
Y1=!Y1;
Y2=!Y2;
delayms(500);
}
if(num==1100)
{Y1=1;Y2=1;G1=0;R2=0;}
if(num==1300)
{G1=1;R2=1;num=0;}
}
void T0_TIME () interrupt 1
{
TH0=(65536-45872)/256; //定时50ms
TL0=(65536-45872)%256;
num++;
}
|
|