51单片机的p1.0连接两组灯 模拟交通灯系统
时间: 2023-05-24 22:00:58 浏览: 50
可以使用以下代码模拟交通灯系统:
#include <reg51.h>
#define RED_LIGHT 1
#define YELLOW_LIGHT 2
#define GREEN_LIGHT 3
#define TRAFFIC_LIGHT_INTERVAL 5000
#define YELLOW_LIGHT_INTERVAL 2000
void delay(int n){
int i, j;
for (i = 0; i < n; i++){
for (j = 0; j < 100; j++);
}
}
void turn_on_light(int light){
if (light == RED_LIGHT){
P1 = 0x01; // 连接红色灯的 P1.0
}
else if (light == YELLOW_LIGHT){
P1 = 0x02; // 连接黄色灯的 P1.1
}
else if (light == GREEN_LIGHT){
P1 = 0x04; // 连接绿色灯的 P1.2
}
}
void turn_off_light(int light){
if (light == RED_LIGHT){
P1 = 0x00; // 关闭红色灯
}
else if (light == YELLOW_LIGHT){
P1 = 0x00; // 关闭黄色灯
}
else if (light == GREEN_LIGHT){
P1 = 0x00; // 关闭绿色灯
}
}
void main(){
while (1){
turn_off_light(RED_LIGHT);
turn_on_light(GREEN_LIGHT);
delay(TRAFFIC_LIGHT_INTERVAL);
turn_off_light(GREEN_LIGHT);
turn_on_light(YELLOW_LIGHT);
delay(YELLOW_LIGHT_INTERVAL);
turn_off_light(YELLOW_LIGHT);
turn_on_light(RED_LIGHT);
delay(TRAFFIC_LIGHT_INTERVAL);
}
}
这个程序实现了 P1.0 连接红色和绿色灯,通过控制灯的亮灭来模拟交通灯系统。