标题: [求助]交通灯设计 [打印本页]

作者: 247891933hao    时间: 2011-10-14 16:39
看你这个要求:把问题具体化 1,显示 2,定时 3,逻辑控制 解决方法: 1:显示你可以用数码管动态显示,或者用硬件电路实现。例子网上很多 2,定时器的使用,学会基本定时,T1,T0,自己选择,定时器时间 自己合理设置,看你最小间隔为0.5ms,你可以设计一个时间基准就为0.5ms 这部分你可以封装一个利用定时器精确延时的函数。网上也有很多的 3,逻辑这块,你要求已经很明确了。应该不难得。 最后:你可以采用中断的方式,或者在主程序 while(1){ }中控制你的逻辑。 多网上百度资料,把问题细化。实现的目标转化为技术术语,技术规格,就好做了。 祝你成功
作者: 卧山观雨    时间: 2011-10-15 14:51

#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit RED_A=P0^0;
sbit YELLOW_A=P0^1;
sbit GREEN_A=P0^2;
sbit RED_B=P0^3;
sbit YELLOW_B=P0^4;
sbit GREEN_B=P0^5;

uchar Flash_Count = 0;
Operation_Type = 1;

void DelayMS(uint x)
{
  uchar t;
 while(x--)
 {
   for(t=120;t>0;t--);
 }
}

void Traffic_lignt()
{
  switch(Operation_Type)
 {
   case 1:
   RED_A=1;YELLOW_A=1;GREEN_A=0;
   RED_B=0;YELLOW_B=1;GREEN_B=1;
   DelayMS(2000);
   Operation_Type = 2;
   break;
  case 2:
   DelayMS(200);
   YELLOW_A=~YELLOW_A;
   if(++Flash_Count !=10)
    return;
   Flash_Count=0;
   Operation_Type = 3;
   break;
  case 3:
   RED_A=0;YELLOW_A=1;GREEN_A=1;
   RED_B=1;YELLOW_B=1;GREEN_B=0;
   DelayMS(2000);
   Operation_Type = 4;
   break; 
  case 4:
   DelayMS(200);
   YELLOW_B=~YELLOW_B;
   if(++Flash_Count !=10)
    return;
   Flash_Count=0;
   Operation_Type = 1;
   break; 
 }
}

void main()
{
  while(1)
 {
   Traffic_lignt(); 
 }
}


作者: a4270    时间: 2011-10-20 21:14

这个不难,上网搜一大篓,我做的就是基于PLC的交通灯,很简单的


作者: zqysxf    时间: 2011-11-13 13:26
标题: [求助]交通灯设计

要求:

1“南北绿灯东西红灯亮15秒,然后南北黄灯闪3次(间隔0.5秒),此时东西红灯一直亮,接着变为南北红灯东西绿灯亮15秒,后东西黄灯闪3次(间隔0.5秒),南北红灯保持亮,循环往复;

2“具有倒计时功能;

3“能控制让两方都亮红灯,延时10秒恢复。


作者: zqysxf    时间: 2011-11-13 13:28
求高手大大帮忙啊   用的是Proteus仿真软件和keil
作者: zqysxf    时间: 2011-11-13 13:29

新手急求


作者: zqysxf    时间: 2011-11-13 20:00

都没人


作者: a_fei    时间: 2015-5-10 14:46

作者: 冠希哥哥哥    时间: 2017-4-6 21:10
求大神赐教  我们现在也在做这个 东西




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