找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8231|回复: 0
打印 上一主题 下一主题
收起左侧

51单片机交通灯仿真图与源码

[复制链接]
跳转到指定楼层
楼主
51单片机交通灯仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


单片机源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit RED_A=P0^0; //东西向灯
  5. sbit YELLOW_A=P0^1;
  6. sbit GREEN_A=P0^2;
  7. sbit RED_B=P0^3; //南北向灯
  8. sbit YELLOW_B=P0^4;
  9. sbit GREEN_B=P0^5;
  10. uchar  Flash_Count=0,Operation_Type=1;
  11.          //闪烁次数,操作类型变量
  12. //延时
  13. void DelayMS(uint x)
  14. {
  15. uchar i;
  16. while(x--) for(i=0;i<120;i++);
  17. }
  18. //交通灯切换
  19. void Traffic_Light()
  20. {
  21. switch(Operation_Type)
  22. {
  23. case 1: //东西向绿灯与南北向红灯亮
  24. RED_A=1;YELLOW_A=1;GREEN_A=0;
  25. RED_B=0;YELLOW_B=1;GREEN_B=1;
  26. DelayMS(2000);
  27. Operation_Type=2;
  28. break;
  29. case 2: //东西向黄灯闪烁,绿灯关闭
  30. DelayMS(300);
  31. YELLOW_A=~YELLOW_A;GREEN_A=1;
  32. if(++Flash_Count!=10) return; //闪烁5次
  33. Flash_Count=0;
  34. Operation_Type=3;
  35. break;
  36. case 3: //东西向红灯,南北向绿灯亮
  37. RED_A=0;YELLOW_A=1;GREEN_A=1;
  38. RED_B=1;YELLOW_B=1;GREEN_B=0;
  39. DelayMS(2000);
  40. Operation_Type=4;
  41. break;
  42. case 4: //南北向黄灯闪烁5 次
  43. DelayMS(300);
  44. YELLOW_B=~YELLOW_B;GREEN_B=1;
  45. if(++Flash_Count!=10) return;
  46. Flash_Count=0;
  47. Operation_Type=1;
  48.        }
  49.        }
复制代码

所有资料51hei提供下载:
51单片机交通灯.zip (72.62 KB, 下载次数: 98)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表