找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于51单片机的十字路口交通灯仿真实验

[复制链接]
跳转到指定楼层
楼主
以前做的十字路口交通灯的实验,可以实现东西方向绿灯时,南北方向红灯,数秒后,绿灯闪烁,然后黄灯亮,黄灯之后红灯亮禁止通行。
部分截图展示,第一次发很多不足,多多见谅。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

  1. #include<reg51.h>
  2. unsigned char t0,t1;
  3. void delay0_5s1()
  4. {
  5. for (t0=0;t0<0x0a;t0++)
  6. {
  7. TH1=0x3c;
  8. TL1=0xb0;
  9. TR1=1;
  10. while(!TF1);
  11. TF1=0;
  12. }
  13. }
  14. void delay_t1(unsigned char t)
  15. {
  16. for(t1=0;t1<t;t1++)
  17. delay0_5s1();
  18. }
  19. void int_0() interrupt 0
  20. {
  21. unsigned char i,j,k,l,m;
  22. i=P1;
  23. j=t0;
  24. k=t1;
  25. l=TH1;
  26. m=TL1;P1=0xdb;
  27. delay_t1(20);
  28. P1=i;t0=j;t1=k;TH1=l;TL1=m;
  29. }
  30. void int_1() interrupt 2
  31. {
  32. unsigned char i,j,k,l,m;
  33. EA=0;i=P1;j=t0;k=t1;l=TH1;m=TH0;
  34. EA=1;P1=0xf3;
  35. delay_t1(10);
  36. EA=0;P1=i;t0=j;t1=k;TH1=l;TH0=m;
  37. EA=1;
  38. }
  39. void main()
  40. {
  41. unsigned char k;
  42. TMOD=0x10;
  43. EA=1;
  44. EX0=1;
  45. IT0=1;
  46. EX1=1;
  47. IT1=1;
  48. while(1)
  49. {
  50. P1=0xf3;
  51. delay_t1(10);
  52. for (k=0;k<3;k++)
  53. {
  54. P1=0xf3;
  55. delay0_5s1();
  56. P1=0xfb;
  57. delay0_5s1();
  58. }
  59. P1=0xeb;
  60. delay_t1(4);
  61. P1=0xde;
  62. delay_t1(10);
  63. for(k=0;k<3;k++)
  64. {P1=0xde;
  65. delay0_5s1();
  66. P1=0xdf;
  67. delay0_5s1();
  68. }
  69. P1=0xdd;
  70. delay_t1(4);
  71. }
  72. }
复制代码


十字路口交通灯.rar

20.11 KB, 下载次数: 33, 下载积分: 黑币 -5

评分

参与人数 1黑币 +5 收起 理由
花落雨 + 5 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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