
单片机,我想在程序里加一个蜂鸣器,一个时间用的数码管
单片机,我想在程序里加一个蜂鸣器,一个时间用的数码管紧急通行控制,如某一方向现为红灯,通过按键强行切换为绿灯,而另一路改为红灯,延时10秒后,恢复原状态(红灯)继续倒数,...
单片机,我想在程序里加一个蜂鸣器,一个时间用的数码管紧急通行控制,如某一方向现为红灯,通过按键强行切换为绿灯,而另一路改为红灯,延时10秒后,恢复原状态(红灯)继续倒数,应该怎么做啊
#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit RED_NANBEI=P0^0; sbit YELLOW_NANBEI=p0^1; sbit GREEN_NANBEI=P0^2; sbit RED_DONGXI=P0^3; sbit YELLOW_DONGXI=P0^4; sbit GREEN_DONGXI=P0^5; unchar count=0; unchar second=0; void init() { TMOD=0x11; TL0=(65536-50000)%256; TH0=(65536-50000)/256; EA=1; ET0=1; RED_NANBEI=0; GREEN_NANBEI=1; YELLOW_NANBEI=1; RED_DONGXI=0; GREEN_DONGXI=1; YELLOW_DONGXI=1; } void state_1() { RED_DONGXI=1; GREEN_DONGXI=0; while(second<60) { second=0; while(second<1); GREEN_DONGXI=!GREEN_DONGXI; } uchar i=5; GREEN_DONGXI=1; GREEN_YELLOW=0; while(second<5); while(i--); YELLOW_DONGXI=1; RED_DONGXI=0; } void state_2() { RED_NANBEI=1; GREEN_NANBEI=0; while(second<60) { second=0; while(second<1); GREEN_NANBEI=!GREEN_NANBEI; } uchar i=5; GREEN_NANBEI=1; GREEN_NANBEI=0; while(second<5); while(i--); YELLOW_NANBEI=1; RED_NANBEI=0; } void time()interrupt1 { count++; if(count==20) { second++; count=0; } TMOD=0x01; TL0=(65536-50000)%256; TH0=(65536-50000)/256; } int main(void) { init(); TR0=1; while(1) { state_1(); state_2(); } } 展开
#include<reg51.h> #define uint unsigned int #define uchar unsigned char sbit RED_NANBEI=P0^0; sbit YELLOW_NANBEI=p0^1; sbit GREEN_NANBEI=P0^2; sbit RED_DONGXI=P0^3; sbit YELLOW_DONGXI=P0^4; sbit GREEN_DONGXI=P0^5; unchar count=0; unchar second=0; void init() { TMOD=0x11; TL0=(65536-50000)%256; TH0=(65536-50000)/256; EA=1; ET0=1; RED_NANBEI=0; GREEN_NANBEI=1; YELLOW_NANBEI=1; RED_DONGXI=0; GREEN_DONGXI=1; YELLOW_DONGXI=1; } void state_1() { RED_DONGXI=1; GREEN_DONGXI=0; while(second<60) { second=0; while(second<1); GREEN_DONGXI=!GREEN_DONGXI; } uchar i=5; GREEN_DONGXI=1; GREEN_YELLOW=0; while(second<5); while(i--); YELLOW_DONGXI=1; RED_DONGXI=0; } void state_2() { RED_NANBEI=1; GREEN_NANBEI=0; while(second<60) { second=0; while(second<1); GREEN_NANBEI=!GREEN_NANBEI; } uchar i=5; GREEN_NANBEI=1; GREEN_NANBEI=0; while(second<5); while(i--); YELLOW_NANBEI=1; RED_NANBEI=0; } void time()interrupt1 { count++; if(count==20) { second++; count=0; } TMOD=0x01; TL0=(65536-50000)%256; TH0=(65536-50000)/256; } int main(void) { init(); TR0=1; while(1) { state_1(); state_2(); } } 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询