找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的模拟交通灯仿真+代码

  [复制链接]
跳转到指定楼层
楼主
基于51单片机的模拟交通灯程序以及原理图


单片机源程序如下:
  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. void DelayMS(uint x)
  13. {
  14. uchar  i;
  15. while(x--)  for(i=0;i<120;i++);
  16. }
  17. //交通灯切换
  18. void Traffic_Light()
  19. {
  20. switch(Operation_Type)
  21. {
  22. case  1:  //东西向绿灯与南北向红灯亮
  23. RED_A=1;YELLOW_A=1;GREEN_A=0;
  24. RED_B=0;YELLOW_B=1;GREEN_B=1;
  25. DelayMS(2000);
  26. Operation_Type=2;
  27. break;
  28. case  2:  //东西向黄灯闪烁,绿灯关闭
  29. DelayMS(300);
  30. YELLOW_A=~YELLOW_A;GREEN_A=1;
  31. if(++Flash_Count!=10)  return; //闪烁 5 次
  32. Flash_Count=0;
  33. Operation_Type=3;
  34. break;
  35. case  3:  //东西向红灯,南北向绿灯亮
  36. RED_A=0;YELLOW_A=1;GREEN_A=1;
  37. RED_B=1;YELLOW_B=1;GREEN_B=0;
  38. DelayMS(2000);
  39. Operation_Type=4;
  40. break;
  41. case  4:  //南北向黄灯闪烁 5 次
  42. DelayMS(300);
  43. YELLOW_B=~YELLOW_B;GREEN_B=1;
  44. if(++Flash_Count!=10)  return;
  45. Flash_Count=0;
  46. Operation_Type=1;
  47. }
  48. }
  49. //主程序
  50. void main()
  51. {
  52. while(1)  Traffic_Light();
  53. }
复制代码

所有资料51hei提供下载:
第五个 1.zip (35.69 KB, 下载次数: 216)



评分

参与人数 1黑币 +4 收起 理由
按实际回 + 4 赞一个!

查看全部评分

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

使用道具 举报

沙发
ID:543595 发表于 2019-5-21 11:10 | 只看该作者
可以        
回复

使用道具 举报

板凳
ID:526182 发表于 2019-5-25 22:54 | 只看该作者
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教
回复

使用道具 举报

地板
ID:549233 发表于 2019-5-29 10:50 | 只看该作者
可以的
回复

使用道具 举报

5#
ID:550330 发表于 2019-5-29 17:01 | 只看该作者
赞一个
回复

使用道具 举报

6#
ID:556405 发表于 2019-6-6 11:36 | 只看该作者
值得学习学习
回复

使用道具 举报

7#
ID:531151 发表于 2019-6-8 15:28 | 只看该作者
值得学习  ,试了一下  可以的
回复

使用道具 举报

8#
ID:559274 发表于 2019-6-10 19:12 | 只看该作者
这个程序设计的真好
回复

使用道具 举报

9#
ID:559274 发表于 2019-6-10 19:13 | 只看该作者
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

取反
回复

使用道具 举报

10#
ID:561726 发表于 2019-6-13 13:33 | 只看该作者
我觉得这个程序做的非常好
回复

使用道具 举报

11#
ID:561435 发表于 2019-6-13 13:45 | 只看该作者
很不错欸
回复

使用道具 举报

12#
ID:561726 发表于 2019-6-13 16:20 | 只看该作者
为什么我的led灯上面有电流经过就是不亮
回复

使用道具 举报

13#
ID:561726 发表于 2019-6-13 16:44 | 只看该作者
想麻烦问一下,为什么9个交通灯我就一个亮的
回复

使用道具 举报

14#
ID:556149 发表于 2019-6-19 09:47 来自手机 | 只看该作者
要怎么连线才会运行?
回复

使用道具 举报

15#
ID:475794 发表于 2019-6-22 22:19 | 只看该作者
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

~取反符号
回复

使用道具 举报

16#
ID:570213 发表于 2019-6-23 19:18 | 只看该作者
不错不错
回复

使用道具 举报

17#
ID:620969 发表于 2019-10-9 11:07 | 只看该作者
不错不错,
回复

使用道具 举报

18#
ID:625804 发表于 2019-10-17 19:12 | 只看该作者
这个真的好棒,感谢楼主
回复

使用道具 举报

19#
ID:642377 发表于 2019-11-15 09:05 | 只看该作者
十分感谢楼主的分享!谢谢楼主
回复

使用道具 举报

20#
ID:659389 发表于 2019-12-9 12:23 | 只看该作者
还行,奈斯
回复

使用道具 举报

21#
ID:660376 发表于 2019-12-11 15:37 | 只看该作者
很好用,能不能请教一下咋加紧急按钮呢
回复

使用道具 举报

22#
ID:598743 发表于 2019-12-12 21:03 | 只看该作者
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

~ 是求反符号 懂了吧  就是如果它是0 求反就是1
回复

使用道具 举报

23#
ID:707064 发表于 2020-3-12 15:28 | 只看该作者
为什么我仿真的时候灯不会亮,其他都正常的
回复

使用道具 举报

24#
ID:707064 发表于 2020-3-12 15:29 | 只看该作者
灯不会亮,其他正常
回复

使用道具 举报

25#
ID:708949 发表于 2020-3-15 17:59 | 只看该作者
我的没有KEIL文件
回复

使用道具 举报

26#
ID:726280 发表于 2020-4-10 15:26 | 只看该作者
楼主的仿真图没有数码管显示吗
回复

使用道具 举报

27#
ID:728994 发表于 2020-4-15 17:22 | 只看该作者
楼主,这个可以调时间吗?
回复

使用道具 举报

28#
ID:936726 发表于 2021-6-13 02:18 | 只看该作者
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

第二段黄灯
回复

使用道具 举报

29#
ID:942007 发表于 2021-6-22 12:48 来自手机 | 只看该作者
东西向的灯在仿真图里面不亮,加一个南北向那样的电源就可以了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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