用单片机编写交通信号灯

时间:504次浏览2020.03.14提问

用单片机编写交通信号灯

已解决问题

hao231知道平台可亲可爱的匿名用户网友在504次浏览2020.03.14提问提了关于单片机相关的问题,他的提问有多少用单片机编写交通信号灯单片机希望大家能够帮助她。

详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !

第1个回答

林风2020.03.15回答代码原理图如下,I/O高电平时LED亮#include<reg51.h>typedefenum{LED0=0,LED1,LED2,LED3,LED4,LED5}ledEnum;unsignedintgreenLedTime=30;unsignedintyellorLedTimer=3;//延时n毫秒voiddelay_ms(unsignedintn){unsignedinti=0,j=0;for(i=0;i<n;i++)for(j=0;j<123;j++);}//延时n秒voiddelay_m(unsignedintn){unsignedinti=0,j=0;for(i=0;i<n;i++)for(j=0;j<21738;j++);}voidPx_SetBit(ledEnumPin)//pin引脚置1函数{P1|=(1<<Pin);}voidPx_ResetBit(ledEnumPin)//Pin引脚操作清零函数{P1&=~(1<<Pin);}voidWriteLED(ledEnumredLed,ledEnumyellor,ledEnumgreenLed)//LED控制函数,三个参数分别是要亮的红灯,黄灯,绿灯{inti;P1=0;//关闭所有LED灯Px_SetBit(redLed);//红灯亮Px_SetBit(greenLed);//绿灯亮delay_m(greenLedTime);//延时30sPx_ResetBit(greenLed);//绿灯灭for(i=0;i<yellorLedTimer;i++)//黄灯闪烁{Px_SetBit(yellor);delay_ms(500);Px_ResetBit(yellor);delay_ms(500);}}intmain(){P1=0;Px_SetBit(LED0);Px_SetBit(LED5);//初始化LEDdelay_m(1);while(1){WriteLED(LED3,LED1,LED2);//南北通行WriteLED(LED0,LED4,LED5);//东西通行}}