基于单片机的交通灯模拟控制系统设计...带个proteus仿真图吧 谢谢啦 打包发我邮箱里也行874974405@qq.com

总体设计提纲1.交通控制系统至少应包括由电源电路、单片机主控电路、报警电路、键盘控制电路和显示电路等;2.以C51单片机为核心芯片,通过控制三色LED的亮灭来控制各干道的... 总体设计提纲
1.交通控制系统至少应包括由电源电路、单片机主控电路、报警电路、键盘控制电路和显示电路等;
2.以C51单片机为核心芯片,通过控制三色LED的亮灭来控制各干道的通行;
3.显示主要是采用两位的数码管进行计数显示;
4.在紧急情况下峰鸣器提示。
二、技术和量化要求
1.正常情况下交叉路口的轮流通行(主道3个LED红、黄、绿控制直行,支道3个LED红、黄、绿);并要求主干道每次至少放行30秒;支干道每次至多放行20秒;
2.每次绿灯变红灯,要求黄灯先亮5秒钟。
3.特殊情况控制通行方式控制,用按键开关K1控制主道通行,支道禁行,K2控制支道通行,主道禁行,特殊情况控制通行放行。
4.有紧急情况时用按键开关K0控制两道均为红灯;
5.4位LED数码管能够显示双直行方向绿灯和红灯的等待时间;
6.软件采用单片机C程序设计,能够在proteus仿真通过。

不好意思没有财富值了
有没有人编程不要钱呐??????帮个忙写写啦
展开
 我来答
弹迷Dp
2011-11-03 · TA获得超过219个赞
知道小有建树答主
回答量:155
采纳率:83%
帮助的人:67.5万
展开全部
  #include <reg51.h>
  #define uchar unsigned char
  #define uint unsigned int
  sbit R1=P2^0; //东西红灯
  sbit Y1=P2^1; //东西黄灯
  sbit G1=P2^2; //东西绿灯
  sbit R2=P2^3; //南北红灯
  sbit Y2=P2^4; //南北黄灯
  sbit G2=P2^5; //南北绿灯
  sbit Z1=P2^6; //南北人行道绿灯
  sbit Z2=P2^7; //东西人行道绿灯
  sbit K0=P3^0; //全部禁行开关
  sbit K1=P3^2; //主干道通行开关
  sbit K2=P3^3; //支道通行开关
  sbit JG=P3^6; //全部禁行警报
  uchar a=0,m,k,h;
  uchar code dis[]={0Xc0,0Xf9,0Xa4,0Xb0,0X99,0X92,0X82,0Xf8,0X80,0X90,0Xff}; //断码
  void delay(uchar x) //延时
  {
  uchar j;
  while(x--)
  for(j=0;j<120;j++);
  }
  xianshi() //显示部分
  {
  while(1)
  {
  while(1)
  {
  G1=1;R1=0;Y1=1;JG=0;
  G2=0;R2=1;Y2=1;Z2=0;Z1=1;
  k=35;h=30;
  while(1) //主干道通行35s
  {
  if(K0==0) break; //判断K0是否被按下,如果按下跳出本循环
  P0=0x01;
  P1=dis[k/10];
  delay(2);
  P0=0x02;
  P1=dis[k%10];
  delay(2);
  P0=0x04;
  P1=dis[h/10];
  delay(2);
  P0=0x08;
  P1=dis[h%10];
  delay(2);
  if(k==0) break;
  if(h==0)
  {h=5;G2=1;R2=1;Y2=0;}
  }
  if(K0==0) break; //再判断一次K0,跳出本循环
  G1=0;R1=1;Y1=1;JG=0;
  G2=1;R2=0;Y2=1;Z2=1;Z1=0;
  k=20;h=25;
  while(1) //支道通行25s
  {
  if(K0==0) break;
  P0=0x01;
  P1=dis[k/10];
  delay(2);
  P0=0x02;
  P1=dis[k%10];
  delay(2);
  P0=0x04;
  P1=dis[h/10];
  delay(2);
  P0=0x08;
  P1=dis[h%10];
  delay(2);
  if(h==0) break;
  if(k==0)
  {k=5;G1=1;R1=1;Y1=0;}
  }
  if(K0==0) break;
  }
  if(K0==0)
  {
  while(1) //全部禁止通行
  {
  G1=1;R1=0;Y1=1;JG=1;P0=0x00;
  G2=1;R2=0;Y2=1;Z2=1;Z1=1;
  if(K0!=0) break;
  }
  }
  }
  }
  void zhutong() interrupt 0 //主干道通行,支道禁止通行
  {
  EX0=0;
  m=P2;
  if(K1==0)
  { while(1)
  {
  G1=1;R1=0;Y1=1;JG=0;P0=0x00;
  G2=0;R2=1;Y2=1;Z2=0;Z1=1;
  if(K1!=0) break;
  }
  }
  P2=m;
  EX0=1;
  }
  void zhitong() interrupt 2 //支道通行,主干道禁止通行
  {
  EX1=0;
  m=P2;
  if(K2==0)
  { while(1)
  {
  G1=0;R1=1;Y1=1;JG=0;P0=0x00;
  G2=1;R2=0;Y2=1;Z2=1;Z1=0;
  if(K2!=0) break;
  }
  }
  P2=m;
  EX1=1;
  }
  void dss() interrupt 1 //1s的定时
  {
  a=a+1;
  if(a==10)
  {k--;h--; a=0;}
  TH0=0x3C; TL0=0xB0;
  }
  void main()
  {
  TMOD=0x01;
  TH0=0x3C; TL0=0xB0; //6M晶振,100ms初值
  ET0=1;
  TR0=1;
  EA=1;
  EX1=1;
  EX0=1;
  IT0=0;
  IT1=0;
  PX0=1;PX1=1;
  xianshi();
  while(1);
  }
匿名用户
2011-10-17
展开全部
建议 去 我的领地 5d6d 的 proteus 论坛看看

那里有很多 单片机仿真实例,包括仿真图 和 源码
搜 5d6d 和 proteus 2个关键词
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式