首页 接线图文章正文

单片机控制交通灯c51程序

接线图 2023年09月21日 20:10 125 admin
简介:本文和大家分享一个单片机控制交通灯C51程序,由于本人对交通灯的规则不是特别了解,产生于事实冲突,敬请包涵。

先上图

单片机控制交通灯c51程序  第1张

单片机控制交通灯c51程序  第2张

/*

程序效果:单片机模拟控制交通灯程序,规则如下:当南北通车时,此时南北的绿灯亮,东西的红灯亮,之后南北的绿灯闪烁3次,过后黄灯亮,延时片刻,转东西绿灯亮同时南北红灯亮,之后东西的绿灯闪烁3次,过后黄灯亮,延时片刻;数码管显示的值都同步,结束。

*/

#include //头文件

#define uchar unsigned char//宏定义

#define uint unsigned int

uchar code table[]={0x00,0x01,0x02,0x03, //数码管显示的值

0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,

0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,

0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,

0x28,0x29,0x30,0x31,0x32,0x33,0x34,0x35,

0x36,0x37,0x38,0x39,0x40,0x41,0x42,0x43,

0x44,0x45};

void delay(uint x)//延时子函数

{

uint i,j;

for(i=x;i>0;i--)

for(j=500;j>0;j--);

}

void main() //主函数

{

uchar i; //定义局部变量

P1=table[0]; //数码管显示0

delay(400); //延时一会儿,在此之前所有数码管全为0,

while(1) //所有的交通灯都亮

{

for(i=0;i<45;i++) //南北通车较多,故延时较多

{

P2=0x0a; //南北绿灯亮,东西红灯亮

P1=table[i];

delay(200);

}

for(i=0;i<3;i++) //南北绿灯闪烁3次,同时东西红灯亮

{

P2=0x0a;

delay(200);

P2=0x02;

delay(200);

}

P2=0x22; //南北黄灯亮,同时东西红灯亮

delay(600); //延时片刻

for(i=0;i<35;i++) //东西开始通车,由于车辆较少,故延时较少

{

P2=0x11; //南北的红灯亮 ,东西的绿灯亮

P1=table[i];

delay(200);

}

for(i=0;i<3;i++) //东西的绿灯闪烁3次

{

P2=0x11;

delay(200);

P2=0x10;

delay(200);

}

P2=0x14; //东西的黄灯亮

delay(600); //延时片刻

}

}

版权与免责声明

本网转载并注明自其它出处的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。其他媒体、网站或个人从本网转载时,必须保留本网注明的作品出处,并自负版权等法律责任。

如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。

标签: 单片机 交通灯 C51程序 电路图 51单片机

发表评论

接线图网Copyright Your WebSite.Some Rights Reserved. 备案号:桂ICP备2022002688号-2 接线图网版权所有 联系作者QQ:360888349