标题: 求写《交通灯控制系统》程序 [打印本页]

作者: 求学单片机    时间: 2013-5-17 17:12
标题: 求写《交通灯控制系统》程序
具体控制规律:此十字路口,初始状态为东西、南北路口的所有灯全亮。之后,东西路口的绿灯亮,南、北路口红灯亮,即东西路口方向通车。延迟一段时间后,东西路口的绿灯熄灭,黄灯开始闪烁,闪烁3次后,东西路口的红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车。延迟一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁3次后,东西、南北路口的灯全灭。之后,重复上述过程。

ZV1[RB5F$N%7)CXFP%Q}{OI.jpg (144.11 KB, 下载次数: 114)

求流程图

求流程图

作者: 求学单片机    时间: 2013-5-17 17:12
求教写程序
作者: hiren    时间: 2013-5-28 16:57
#include<reg51.h>

sbit   EW_red   =P0^0;
sbit   EW_yellow=P0^1;
sbit   EW_green =P0^2;

sbit   NS_red   =P0^5;
sbit   NS_yellow=P0^4;
sbit   NS_green =P0^3;

void delay(unsigned int z)
{
        unsigned int x,y;
        for(x=0;x<z;x++)
                for(y=0;y<5000;y++);
       
}

void main()
{
        unsigned char x;
        P0=0XFF;
        P0=0XC0;
        delay(5);
        while(1)
        {
                 P0=0XFF;
                 EW_green=0;
                 NS_red=0;
                 delay(5000);
                 EW_green=1;
                 NS_red=1;
                 for(x=0;x<3;x++)
                 {
                          NS_yellow=0;
                     EW_yellow=0;
                     delay(500);
                         NS_yellow=1;
                     EW_yellow=1;
                          delay(500);
                 }
                 NS_green=0;
                 EW_red         =0;
                 delay(5000);
                 NS_green=1;
                 EW_red         =1;
                 for(x=0;x<3;x++)
                 {
                          NS_yellow=0;
                     EW_yellow=0;
                     delay(500);
                         NS_yellow=1;
                     EW_yellow=1;
                          delay(500);
                 }
        }
}
作者: hiren    时间: 2013-5-28 16:59
时间要准确的就用定时器
作者: denghuiming    时间: 2014-2-15 14:14
不明觉厉
作者: 默默默默    时间: 2016-4-9 16:06
有仿真和程序的打包就好了。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1