找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14169|回复: 28
收起左侧

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

  [复制链接]
ID:344726 发表于 2018-6-4 16:19 | 显示全部楼层 |阅读模式
基于51单片机的模拟交通灯程序以及原理图
0.png 0.png

单片机源程序如下:
  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 赞一个!

查看全部评分

回复

使用道具 举报

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 | 显示全部楼层
可以的
回复

使用道具 举报

ID:550330 发表于 2019-5-29 17:01 | 显示全部楼层
赞一个
回复

使用道具 举报

ID:556405 发表于 2019-6-6 11:36 | 显示全部楼层
值得学习学习
回复

使用道具 举报

ID:531151 发表于 2019-6-8 15:28 | 显示全部楼层
值得学习  ,试了一下  可以的
回复

使用道具 举报

ID:559274 发表于 2019-6-10 19:12 | 显示全部楼层
这个程序设计的真好
回复

使用道具 举报

ID:559274 发表于 2019-6-10 19:13 | 显示全部楼层
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

取反
回复

使用道具 举报

ID:561726 发表于 2019-6-13 13:33 | 显示全部楼层
我觉得这个程序做的非常好
回复

使用道具 举报

ID:561435 发表于 2019-6-13 13:45 | 显示全部楼层
很不错欸
回复

使用道具 举报

ID:561726 发表于 2019-6-13 16:20 | 显示全部楼层
为什么我的led灯上面有电流经过就是不亮
回复

使用道具 举报

ID:561726 发表于 2019-6-13 16:44 | 显示全部楼层
想麻烦问一下,为什么9个交通灯我就一个亮的
回复

使用道具 举报

ID:556149 发表于 2019-6-19 09:47 来自触屏版 | 显示全部楼层
要怎么连线才会运行?
回复

使用道具 举报

ID:475794 发表于 2019-6-22 22:19 | 显示全部楼层
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

~取反符号
回复

使用道具 举报

ID:570213 发表于 2019-6-23 19:18 | 显示全部楼层
不错不错
回复

使用道具 举报

ID:620969 发表于 2019-10-9 11:07 | 显示全部楼层
不错不错,
回复

使用道具 举报

ID:625804 发表于 2019-10-17 19:12 | 显示全部楼层
这个真的好棒,感谢楼主
回复

使用道具 举报

ID:642377 发表于 2019-11-15 09:05 | 显示全部楼层
十分感谢楼主的分享!谢谢楼主
回复

使用道具 举报

ID:659389 发表于 2019-12-9 12:23 | 显示全部楼层
还行,奈斯
回复

使用道具 举报

ID:660376 发表于 2019-12-11 15:37 | 显示全部楼层
很好用,能不能请教一下咋加紧急按钮呢
回复

使用道具 举报

ID:598743 发表于 2019-12-12 21:03 | 显示全部楼层
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

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

使用道具 举报

ID:707064 发表于 2020-3-12 15:28 | 显示全部楼层
为什么我仿真的时候灯不会亮,其他都正常的
回复

使用道具 举报

ID:707064 发表于 2020-3-12 15:29 | 显示全部楼层
灯不会亮,其他正常
回复

使用道具 举报

ID:708949 发表于 2020-3-15 17:59 | 显示全部楼层
我的没有KEIL文件
回复

使用道具 举报

ID:726280 发表于 2020-4-10 15:26 | 显示全部楼层
楼主的仿真图没有数码管显示吗
回复

使用道具 举报

ID:728994 发表于 2020-4-15 17:22 | 显示全部楼层
楼主,这个可以调时间吗?
回复

使用道具 举报

ID:936726 发表于 2021-6-13 02:18 | 显示全部楼层
nouman 发表于 2019-5-25 22:54
楼主,YELLOW_B=~YELLOW_B这段是什么作用啊?新手求教

第二段黄灯
回复

使用道具 举报

ID:942007 发表于 2021-6-22 12:48 来自触屏版 | 显示全部楼层
东西向的灯在仿真图里面不亮,加一个南北向那样的电源就可以了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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