|
编写交通灯程序,下面程序能够实现红绿灯显示及对应流水灯的显示,但是怎么实现在黄灯时间流水灯闪烁不知道怎么调试了尝试过黄灯流水灯亮时直接加入延时函数发现数码管闪烁了,求大神指点实现黄灯闪烁。附录为单片机的原理图,图片为使用单片机。
#include <REGX52.H>
#define uint unsigned int
#define uchar unsigned char
sbit nsred=P1^0;
sbit nsgreen=P1^1;
sbit nsyellow=P1^2;
sbit ewred=P1^4;
sbit ewgreen=P1^5;
sbit ewyellow=P1^6;
sbit wela=P2^6;
sbit dula=P2^7;
#define nsred() do{nsred=0;nsgreen=1;nsyellow=1;} while(0);
#define nsgreen() do{nsred=1;nsgreen=0;nsyellow=1;} while(0);
#define nsyellow() do{nsred=1;nsgreen=1;nsyellow=0;} while(0);
#define ewred() do{ewred=0;ewgreen=1;ewyellow=1;} while(0);
#define ewgreen() do{ewred=1;ewgreen=0;ewyellow=1;} while(0);
#define ewyellow() do{ewred=1;ewgreen=1;ewyellow=0;} while(0);
#define yeltime 4
#define ewtime 28+yeltime
#define nstime 16+yeltime
uchar t=ewtime;
uchar flag=1;
uchar tt=0;
uchar keyflag=0;
uchar table1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
sbit key2=P3^4;
sbit key3=P3^5;
void delayms(uint xms)
{
|
|