标题: 基于51单片机的十字路口交通灯仿真实验 [打印本页]

作者: y555    时间: 2018-5-6 01:05
标题: 基于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






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1