|
編寫交通燈程序,下面程序能夠實現紅綠燈顯示及對應流水燈的顯示,但是怎么實現在黃燈時間流水燈閃爍不知道怎么調試了嘗試過黃燈流水燈亮時直接加入延時函數發現數碼管閃爍了,求大神指點實現黃燈閃爍。附錄為單片機的原理圖,圖片為使用單片機。
#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)
{
|
|