51单片机自学--交通红绿灯模拟
51单片机自学--交通红绿灯模拟(黄灯闪烁与不闪两种模式)
ABC东西红黄绿DEF南北红黄绿S时间K选择模式
或许看这文章的是初学者,有些话还是要说的,就是要使用本代码,需要把对应的端口进行更改为你连接的IO端口,就能直接使用本代码运行,看到运行效果了。
如:我这里定义自己板上接LED的端口
sbit DongXi_Hong = P2^2;//东西向红灯
sbit DongXi_Huan = P2^3;//东西向黄灯
sbit DongXi_Lv = P2^4;//东西向绿灯
sbit NanBei_Hong = P2^5;//南北向红灯
sbit NanBei_Huan = P2^6;//南北向黄灯
sbit NanBei_Lv = P2^7;//南北向绿灯
初学者一时不熟悉改如何使用本代码,这是只要把你的LED灯接在哪个IO口就改为哪个端口即可,假如说你的LED接在P0口,那么,改为如下即可:
sbit DongXi_Hong = P0^2;//东西向红灯
sbit DongXi_Huan = P0^3;//东西向黄灯
sbit DongXi_Lv = P0^4;//东西向绿灯
sbit NanBei_Hong = P0^5;//南北向红灯
sbit NanBei_Huan = P0^6;//南北向黄灯
sbit NanBei_Lv = P0^7;//南北向绿灯
其它的代码不用改就可以了。
示例视频链接:https://pan.baidu.com/s/1B2H5imR9lJVAZ1dG-NpBlg 密码:qrim
非常灵活任意编排出各种状态,很好用简单的代码。
#include"ShuJu_LeiXin.H" /*头文件,数据类型定义*/
sbit DongXi_Hong = P2^2;//东西向红灯
sbit DongXi_Huan = P2^3;//东西向黄灯
sbit DongXi_Lv = P2^4;//东西向绿灯
sbit NanBei_Hong = P2^5;//南北向红灯
sbit NanBei_Huan = P2^6;//南北向黄灯
sbit NanBei_Lv = P2^7;//南北向绿灯
bit KB=1, KE=1;
void HongLvDen(U8 A, U8 B, U8 C, U8 D, U8 E, U8 F, U8 S, U8 KB, U8 KE)
{
U8 ShiJian=S*4;
do
{
DongXi_Hong = A;
DongXi_Huan = KB?~DongXi_Huan:B;
DongXi_Lv = C;
NanBei_Hong = D;
NanBei_Huan = KE?~NanBei_Huan:E;
NanBei_Lv = F;
YanShiMs(250);
}while(ShiJian--);
}
void main()
{
while(1)
{
HongLvDen(0, 1, 1, 1, 1, 0, 2, 0, 0);
HongLvDen(0, 0, 1, 1, 1, 0, 2, KB, 0);
HongLvDen(1, 1, 0, 0, 1, 1, 2, 0, 0);
HongLvDen(1, 1, 0, 0, 0, 1, 2, 0, KE);
KB=~KB; KE=~KE;
};
}