51单片机上实现的交通灯程序

这是我前几天无聊自己写的交通灯程序,在51单片机上实现的。基本的定时的交通灯转换是实现了,根据时间来改变交通灯的变换。可以下载下来看看的,电路图和原程序都有,代码就自己下载吧。我不全放上了。
仿真原理图如下:
单片机源程序:
#include
sbit beir=p1^0;
sbit beiy=p1^1;
sbit beig=p1^2;
sbit nanr=p1^3;
sbit nany=p1^4;
sbit nang=p1^5;
uint a,b,c,type,j,i;
void delay(uint x) //延时
{
uchar i;
while(x--)for(i=0;i《120;i++);
}
void delay_ms(uint q) //延时
{
uint i,j;
for(i=q;i》0;i--)
for(j=141;j》0;j--);
}
void shumaguan(uint k) //数码管显示
{
b=k/10;
c=k%10;
p3=11111101;
p2=smg_dw;//选段码
delay_ms(20);//延时5ms
p3=11111110;
p2=smg_dw[c];//选段码
delay_ms(20);//延时5ms
}
main()
{
tmod=0x01; //设置定时器t0为工作方式1定时
th0=(65536-50000)/256;
tl0=(65536-50000)%256;
tr0=1; //启动t0计数
et0=1; //允许t0中断
ex0=1; //允许外部中断0中断
ea=1; //开中断
it0=1; //允许外部中断0为边沿触发方式
a=10; //倒计时10s
type=1;
while(1){
switch(type)
{
case 1: //东西向绿灯与南北向红灯亮
beir=0;beiy=1;beig=1;
nanr=1;nany=1;nang=0;
shumaguan(a);
break;
case 2: //东西向黄灯闪烁,绿灯关闭
if(a%2!=0)
{
beir=1;beiy=0;beig=1;
}
if(a%2==0)
{
beir=1;beiy=1;beig=1;
}
shumaguan(a);
break;
case 3: //东西向红灯,南北向绿灯亮
beir=1;beiy=1;beig=0;
nanr=0;nany=1;nang=1;
shumaguan(a);
break;
case 4: //南北向黄灯闪烁3次
if(a%2!=0)
{
nanr=1;nany=0;nang=1;
}
if(a%2==0)
{
nanr=1;nany=1;nang=1;
}
shumaguan(a);
break;
}
}
}

未来AI将更理解用户的个人艺术品味?
智能家居界的黑科技产品,智能魔镜显示屏上市
运动蓝牙耳机哪个好一些,音质好的运动蓝牙耳机推荐
电机基本参数怎么测量?
MAX1284, MAX1285,MAX1285B串行12位ADC,内置电压基准
51单片机上实现的交通灯程序
PIC单片机与MCS-51单片机有什么区别
安超云参与编写的《中国多云管理平台发展洞察报告(2023)》正式发布!
vivo X21世界杯非凡版5月26日正式上市销售 定价为3698元
关于JVM的调优知识
锂电池厂商双雄战:战略不同,欣旺达反超德赛电池
英国加速推进太空太阳能电站的相关研究
无人机温度巡检信号调理电路详解 —电路图天天读(155)
Redmi终于透露了Redmi 9 Power在印度的发布日期
以NXP的Cortex-M系列为基础的linux系统与内存管理单元的关系详解
基于DSP Builder设计工具实现FPGA控制系统的设计与仿真分析
嵌入式数据库mSQL在Linux下的应用
跃然科技:首款跃然人工智能交易基金成立
威马汽车协同紫光、芯鑫强化车载芯片在汽车智能网联领域的深入应用
3D打印或将打破汽车设计常规 重新定义汽车设计