51单片机电子制作DIY—–交通灯控制器

作者:李剀
出处:https://www.cnblogs.com/kevin-nancy/
或者
https://blog.csdn.net/Kevin_8_Lee/article/details/91351632
欢迎转载,但也请保留上面这段声明。谢谢!(上面两个都是我的博客,只是在不同平台)

首先说一下背景吧 :

最近在帮别人做一些小东西,是用51做的,主要给他们提供单片机课设的思路。 且由于时间问题,我也没有将程序进行优化,只是拿来分享一下,大家可以参考。 有思路之后可以稍微花点时间去优化一下代码,是代码更简洁。

马丁·福勒 的一句名言与君共勉:

任何一个傻瓜都会写能够让机器理解的代码,只有好的程序员才能写出人类可以理解的代码。—Martin Fowler

ok, 废话不多说,下面是设计要求及制作过程,proteus仿真以及代码流程的介绍

1) 题目及设计要求

题目: 交通灯控制器
要求:
1、红灯和绿灯相互转换时经过黄灯,黄灯闪烁三次(6秒);

2、主干道方向通行30秒,辅干道方向通行20秒,单独左转信号15秒;先直行信号,后左转信号。

3、设手动、自动、特殊情况三种方式。

4、特殊情况时所有路口红灯都亮,给120、110等通行。

5、自动时显示各种状态倒计时。

2) C51编程以及电路仿真软件

编程
51单片机的C语言编程一般都是keil3或者keil4,我一直以来用的keil3,这次使用的keil4,其实都一样的。

(**注:**关于keil3/4/5的资料和安装破解教程,在我的另一篇博客讲过了,可以参考一下 点击蓝字–>> keil3/4/5安装及破解(附百度云资源))

51单片机电子制作DIY-----交通灯控制器

( PS:: 不过这次做这些东西的过程中,keil4经常自己卡死,害得我只能任务管理器关闭它,超级烦,不知道什么原因,有了解的可以评论一下告诉我,感激不尽 …但是老版本的keil3却很稳定)

仿真:
proteus仿真软件

我用的7版本的

51单片机电子制作DIY-----交通灯控制器
这个界面里面的电路图与这个交通灯无关,是我以前做的一个,只是给大家演示

3)解决思路

硬件部分:

交通灯显示部分分为6个部分
  • [ 1] 首先:主干道通行30秒 其中单独左转15秒 黄灯6秒
1)主干道——–绿灯 辅干道——–红灯 0-15s // 单独直行
2)主干道——–蓝灯 辅干道——–红灯 15-24s // 单独左转
3)主干道——–黄灯 辅干道——–红灯 24-30s // 黄灯减速

  • [ 2] 辅干道通行20秒 单独左转15秒 黄灯6秒
4)主干道——–红灯 辅干道——–绿灯 0-5s
5)主干道——–红灯 辅干道——–蓝灯 5-14s
6)主干道——–红灯 辅干道——–黄灯 14-20s

模拟交通的灯的几个led灯的显示在程序中就是按照上面的流程显示的,由 1)—>2)—>…—>6)—>1)->… 一直循环

仿真电路图各个部分展示:
(1)单片机 & 复位电路 & 晶振

51单片机电子制作DIY-----交通灯控制器
上图标注了每个灯对应的引脚 以及每个灯的颜色

分别在上面和右面放置了一排 用来表示道路的方向

D1-D4指示的是主干道 D5-D8指示的是辅干道

(3)数码管显示部分

这部分是和交通灯部分一起的 为了方便看到我写的标注,我把交通灯抹去了,抹去的部分就是上面交通灯的部分

51单片机电子制作DIY-----交通灯控制器

(该芯片使用方法这里不多说,网上很多资料。。。本质就是一个锁存器)

软件部分

首先代码流程图如下,对这个画图软件不是很熟,画的很垃圾,不过大致能体现出来

51单片机电子制作DIY-----交通灯控制器

// 最后在主函数里面初始化,然后循环扫描按键

5)整体效果演示

51单片机电子制作DIY-----交通灯控制器

因为这个是帮别人设计的,所以完整源码和仿真工程文件不贴出。 如果需要完整的仿真以及源码,请私聊我或者评论留下联系方式


2019/06/20 修改
上面所使用的数码管是共阴极数码管,我标记错了,抱歉!

今天所有的懒惰都会换来明天的卑微 加油吧!!!

来源:Kevin_8_Lee

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年5月10日
下一篇 2019年5月10日

相关推荐