完成:实验三 第四题

This commit is contained in:
2025-03-25 23:26:33 +08:00
parent fe5928c002
commit c7fc48de6c
2 changed files with 65 additions and 2 deletions
+3 -1
View File
@@ -1 +1,3 @@
{}
{
"cSpell.words": ["ENLED"]
}
+61
View File
@@ -1,2 +1,63 @@
// test4.c
// 交通灯(用红黄绿三种颜色LED模拟十字路口交通灯状态,点亮时间红灯>绿灯>黄灯)
#include "homework3.h"
sbit C_RED = P2 ^ 0;
sbit C_YELLOW = P2 ^ 1;
sbit C_GREEN = P2 ^ 2;
sbit V_RED = P2 ^ 3;
sbit V_YELLOW = P2 ^ 4;
sbit V_GREEN = P2 ^ 5;
void test4()
{
ENLED = 0;
ADDR3 = 1;
ADDR2 = 1;
ADDR1 = 1;
ADDR0 = 0;
while (true) {
// 横向绿灯,纵向红灯(绿灯阶段)
V_RED = 0;
V_YELLOW = 1;
V_GREEN = 1;
C_RED = 1;
C_YELLOW = 1;
C_GREEN = 0;
Delay(400000000000); // 缩短绿灯时间
// 横向黄灯,纵向黄灯(过渡阶段)
V_RED = 1;
V_YELLOW = 0;
V_GREEN = 1;
C_RED = 1;
C_YELLOW = 0;
C_GREEN = 1;
Delay(100000000000); // 增加黄灯时间
// 横向红灯,纵向绿灯(绿灯阶段)
V_RED = 1;
V_YELLOW = 1;
V_GREEN = 0;
C_RED = 0;
C_YELLOW = 1;
C_GREEN = 1;
Delay(400000000000); // 缩短绿灯时间
// 横向黄灯,纵向黄灯(过渡阶段)
V_RED = 0; // 纵向红灯提前亮起
V_YELLOW = 0;
V_GREEN = 1;
C_RED = 1;
C_YELLOW = 0;
C_GREEN = 1;
Delay(100000000000); // 增加黄灯时间
}
}
void main()
{
test4();
}