找回密码
 立即注册

QQ登录

只需一步,快速开始

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

51单片机实现简易交通灯的程序和电路图

  [复制链接]
跳转到指定楼层
楼主
ID:255579 发表于 2017-12-14 09:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我前几天无聊自己写的交通灯程序,在51单片机上实现的。基本的定时的交通灯转换是实现了,根据时间来改变交通灯的变换。可以下载下来看看的,电路图和原程序都有,代码就自己下载吧。我不全放上了。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

单片机源程序:
  1. #include<reg51.h>
  2. sbit beiR=P1^0;
  3. sbit beiY=P1^1;
  4. sbit beiG=P1^2;
  5. sbit nanR=P1^3;
  6. sbit nanY=P1^4;
  7. sbit nanG=P1^5;
  8. uint a,b,c,type,j,i;
  9. void Delay(uint x)                   //延时
  10. {
  11.         uchar i;
  12.         while(x--)for(i=0;i<120;i++);        

  13. }
  14. void delay_ms(uint q)           //延时
  15. {         
  16.         uint i,j;
  17.         for(i=q;i>0;i--)
  18.         for(j=141;j>0;j--);
  19. }
  20. void shumaguan(uint k)           //数码管显示
  21. {
  22.                 b=k/10;
  23.                 c=k%10;
  24.                 P3=11111101;
  25.                 P2=smg_dw[b];//选段码
  26.         delay_ms(20);//延时5ms
  27.                 P3=11111110;
  28.                 P2=smg_dw[c];//选段码
  29.                 delay_ms(20);//延时5ms
  30. }
  31. main()
  32. {
  33.         TMOD=0x01;                                   //设置定时器T0为工作方式1定时
  34.         TH0=(65536-50000)/256;
  35.         TL0=(65536-50000)%256;
  36.         TR0=1;                                          //启动T0计数
  37.         ET0=1;                                          //允许T0中断
  38.         EX0=1;                                          //允许外部中断0中断
  39.         EA=1;                                          //开中断
  40.         IT0=1;                                          //允许外部中断0为边沿触发方式
  41.         a=10;                                          //倒计时10s
  42.         type=1;
  43.         while(1){
  44.                 switch(type)
  45.                 {
  46.                         case 1: //东西向绿灯与南北向红灯亮
  47.                                 beiR=0;beiY=1;beiG=1;
  48.                                 nanR=1;nanY=1;nanG=0;
  49.                                 shumaguan(a);
  50.                         break;
  51.                         case 2: //东西向黄灯闪烁,绿灯关闭        
  52.                                 if(a%2!=0)
  53.                                 {
  54.                                 beiR=1;beiY=0;beiG=1;
  55.                                 }
  56.                                 if(a%2==0)
  57.                                 {               
  58.                                 beiR=1;beiY=1;beiG=1;
  59.                                 }
  60.                                 shumaguan(a);
  61.                         break;
  62.                         case 3: //东西向红灯,南北向绿灯亮
  63.                                 beiR=1;beiY=1;beiG=0;
  64.                                 nanR=0;nanY=1;nanG=1;
  65.                                 shumaguan(a);
  66.                         break;
  67.                         case 4: //南北向黄灯闪烁3次
  68.                                 if(a%2!=0)
  69.                                 {
  70.                                 nanR=1;nanY=0;nanG=1;
  71.                                 }        
  72.                                 if(a%2==0)
  73.                                 {        
  74.                                 nanR=1;nanY=1;nanG=1;
  75.                                 }
  76.                                 shumaguan(a);
  77.                         break;
  78.                 }
  79.                         }
  80. }
复制代码



全部资料51hei下载地址:
51单片机实现定时交通灯.rar (55.81 KB, 下载次数: 568)



评分

参与人数 4黑币 +61 收起 理由
daxudaai + 1 很给力!
Ekoo + 5 共享资料的黑币奖励!
hhhgg + 5
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:318620 发表于 2018-5-6 15:43 | 只看该作者
你的proteus仿真没有办法打开,格式上传错误的。请解决。
回复

使用道具 举报

板凳
ID:324112 发表于 2018-5-7 12:42 | 只看该作者
谢谢  
回复

使用道具 举报

地板
ID:330979 发表于 2018-5-16 08:58 | 只看该作者
不能用啊

[code][/code]
回复

使用道具 举报

5#
ID:343531 发表于 2018-6-3 21:13 | 只看该作者
数码管是共阴的还是共阳的
回复

使用道具 举报

6#
ID:352998 发表于 2018-6-16 21:02 | 只看该作者
666太棒了
回复

使用道具 举报

7#
ID:249033 发表于 2018-9-14 21:20 | 只看该作者
谢谢你啊////
回复

使用道具 举报

8#
ID:398417 发表于 2018-9-15 19:15 | 只看该作者
凯尔特 发表于 2018-5-6 15:43
你的proteus仿真没有办法打开,格式上传错误的。请解决。

那个可能是版本问题吧
回复

使用道具 举报

9#
ID:405287 发表于 2018-10-6 15:10 | 只看该作者
代码有错
回复

使用道具 举报

10#
ID:408147 发表于 2018-11-22 15:14 | 只看该作者
压缩包错误打不开啊
回复

使用道具 举报

11#
ID:412308 发表于 2018-11-22 18:06 来自手机 | 只看该作者
衷曲无默 发表于 2018-10-6 15:10
代码有错

我也觉得好像是有点问题的样子
回复

使用道具 举报

12#
ID:432381 发表于 2018-11-24 15:11 | 只看该作者
定义的那里有错误啊
回复

使用道具 举报

13#
ID:465503 发表于 2019-1-10 16:25 | 只看该作者
仿真图根本打不开
回复

使用道具 举报

14#
ID:465503 发表于 2019-1-10 16:45 | 只看该作者
用isis打开不了
回复

使用道具 举报

15#
ID:540968 发表于 2019-6-14 20:13 | 只看该作者
isis打不开求解决
回复

使用道具 举报

16#
ID:625698 发表于 2019-10-17 17:08 | 只看该作者
为啥说第8行‘a’前missing一个“;”呢?
回复

使用道具 举报

17#
ID:641275 发表于 2019-11-13 16:37 | 只看该作者
你好厉害
回复

使用道具 举报

18#
ID:653987 发表于 2019-12-3 15:57 | 只看该作者
xingr 发表于 2019-10-17 17:08
为啥说第8行‘a’前missing一个“;”呢?

我的也是
回复

使用道具 举报

19#
ID:653987 发表于 2019-12-3 16:27 | 只看该作者
能改改程序不,第八行哪里错了
回复

使用道具 举报

20#
ID:660625 发表于 2019-12-10 15:09 | 只看该作者
很给力
回复

使用道具 举报

21#
ID:660625 发表于 2019-12-10 15:09 | 只看该作者

用isis打开不了
回复

使用道具 举报

22#
ID:693950 发表于 2020-2-16 17:07 | 只看该作者
isis打开第八行有错误
回复

使用道具 举报

23#
ID:756481 发表于 2020-5-20 17:12 | 只看该作者
想要这个课件学习学习
回复

使用道具 举报

24#
ID:756481 发表于 2020-5-20 17:13 | 只看该作者
想要这个课件来学习学习
回复

使用道具 举报

25#
ID:761673 发表于 2020-5-27 09:48 | 只看该作者
十分感谢
回复

使用道具 举报

26#
ID:400047 发表于 2020-6-2 10:35 | 只看该作者
很好的实例,不知道怎么下载
回复

使用道具 举报

27#
ID:768157 发表于 2020-6-3 10:18 | 只看该作者
大佬能不能实现一下东西南北带强通功能,和通过按键来调节红绿灯时间的
回复

使用道具 举报

28#
ID:772420 发表于 2020-6-8 09:04 | 只看该作者
好棒啊
回复

使用道具 举报

29#
ID:772895 发表于 2020-6-8 15:28 | 只看该作者
用的是什么芯片啊
回复

使用道具 举报

30#
ID:772895 发表于 2020-6-8 17:24 | 只看该作者
代码是错的,在proteus上弄不出来
回复

使用道具 举报

31#
ID:778627 发表于 2020-6-13 23:42 来自手机 | 只看该作者
不错可以可以
回复

使用道具 举报

32#
ID:779798 发表于 2020-6-17 09:19 | 只看该作者
xingr 发表于 2019-10-17 17:08
为啥说第8行‘a’前missing一个“;”呢?

我也想问,无法解决
回复

使用道具 举报

33#
ID:824474 发表于 2020-10-13 08:18 | 只看该作者
超级牛逼啊兄弟
回复

使用道具 举报

34#
ID:770817 发表于 2020-10-18 19:26 | 只看该作者
寰夜 发表于 2020-6-8 17:24
代码是错的,在proteus上弄不出来

第108行的if(type==6)改为if(type==5)
回复

使用道具 举报

35#
ID:770817 发表于 2020-10-18 19:27 | 只看该作者
100234 发表于 2018-11-22 18:06
我也觉得好像是有点问题的样子

第108行的if(type==6)改为if(type==5)
回复

使用道具 举报

36#
ID:828400 发表于 2020-10-21 21:40 | 只看该作者
#在这里快Build target 'Target 1' compiling jtd.c... linking... *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS     SEGMENT: ?PR?_DELAY?JTD Program Size: data=21.0 xdata=0 code=475 creating hex file from "jtd"...速回复#
回复

使用道具 举报

37#
ID:836519 发表于 2020-10-30 09:24 | 只看该作者
代码有误啊,怎么修改呀?求解
回复

使用道具 举报

38#
ID:840644 发表于 2020-11-8 19:37 | 只看该作者
第八行的代码怎么修改啊?
回复

使用道具 举报

39#
ID:840644 发表于 2020-11-9 18:24 | 只看该作者
本帖最后由 super233 于 2020-11-11 19:41 编辑
super233 发表于 2020-11-8 19:37
第八行的代码怎么修改啊?

后面应该还有一串中断程序
回复

使用道具 举报

40#
ID:876318 发表于 2021-1-12 15:04 | 只看该作者
这个单片机的程序是可以用于c51的单片机吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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