找回密码
 立即注册

QQ登录

只需一步,快速开始

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

使用单片机定时器控制交通灯设计

[复制链接]
跳转到指定楼层
楼主
这是我课程设计需要的源代码和原理图,发给大家

单片机源程序如下:
  1. #include <reg51.h>
  2. #define SEG P2
  3. #define SCANP P1
  4. #define count_M1 50000
  5. #define TH_M1 (65535-count_M1)/256;
  6. #define TL_M1 (65535-count_M1)%256;
  7. int count_T0=0;
  8. #define count_M2 250
  9. #define TH_M2 (256-count_M2)
  10. #define TL_M2 (256-count_M2)

  11. char count_T1=0;
  12. char code TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,
  13.                    0x92,0x82,0xf8,0x80,0x98};
  14. char disp[2]={0x82,0xc0};
  15. bit red,green,yellow,turnred;  //定义红绿黄灯的标志位
  16. char scan=0;
  17. sbit hong=P3^2;
  18. sbit huang=P3^1;
  19. sbit lv=P3^0;
  20. main()
  21. {
  22. IE=0x8a;
  23. TMOD=0x21;
  24. TH0=TH_M1;TL0=TL_M1;
  25. TR0=1;
  26. TH1=TH_M2;TL1=TL_M2;
  27. TR1=1;
  28. red=1;
  29. green=0;
  30. yellow=0;
  31. hong=0;
  32. while(1);
  33. }

  34. void delay()
  35. {
  36. unsigned char a,b;
  37. for(a=100;a>0;a--)
  38. for(b=255;b>0;b--);
  39. }

  40. void TO_1s(void)interrupt 1
  41. {
  42. static char seconds = 60;
  43. TH0=TH_M1;TL0=TL_M1;
  44. if(++count_T0==20)
  45. {
  46. count_T0=0;
  47. seconds--;
  48. if(seconds==0)
  49. {if(red==1&green==0&yellow==0)
  50. {red=0;
  51. green=1;
  52. yellow=0;
  53. hong=1;
  54. lv=0;
  55. seconds=30;
  56. delay();
  57. }
  58. else if(red==0&green==1&yellow==0)
  59. {
  60. green=0;
  61. red=0;
  62. yellow=1;
  63. lv=1;
  64. huang=0;
  65. seconds=3;
  66. delay();
  67. }
  68. else if(red==0&green==0&yellow==1)
  69. {
  70. red=1;
  71. green=0;
  72. yellow=0;
  73. hong=0;
  74. huang=1;
  75. seconds=60;
  76. delay();
  77. }
  78. }
  79. disp[1]=TAB[seconds%10];
  80. disp[0]=TAB[seconds/10];
  81. }
  82. }

  83. void T1_8ms(void)interrupt 3
  84. {
  85. if(++count_T1==32)
  86. {
  87. count_T1=0;
  88. if(++scan==3)scan=1;
  89. SEG=0xff;
  90. SCANP=~scan;
  91. SEG=disp[scan-1];
  92. }
  93. }
复制代码

所有资料51hei提供下载:
使用定时器的交通灯.rar (26.51 KB, 下载次数: 12)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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