单片机交通灯设计实例
目录
一、初步设计
二、实现过程
三、实现效果
一、初步设计
在Profession中设计一个交通灯的仿真图,结合Keil编写c语言代码实现十字路口的交通灯变化。设计的交通灯主要变化有如下五种情况:(可根据自身的交通灯变化情况进行相应的代码修改)
第一种情况:东西红灯,南北绿灯,南北转向灯绿亮,等待10秒(即数码管显示10秒倒计时);
第二种情况:东西红灯,南北闪黄灯,南北转向灯绿亮,等待5秒 ;
第三种情况:东西绿灯,南北红灯,东西转向灯绿亮,等待10秒;
第四种情况:东西黄灯,南北红灯,东西转向灯绿亮,等待5秒 。
第五种情况:即紧急情况,利用开关(按钮)控制倒计时显示屏(数码管)停止使之为0数字,交通灯(LED)东西南北皆显示为红灯。
交通灯仿真图如下图所示:
二、实现过程
1、设计仿真图
配置的主要元件如下:
7SEG-MPX2-CC(两个):两位数共阴极的红色数码管,亮红灯。仿真图中代表东西方向的倒计时。
7SEG-MPX2-CC-BLUE(两个):两位数共阴极的蓝色数码管,亮蓝灯。仿真图中代表南北方向的倒计时。
AT89C51(一个):最常用的51芯片。
BUTTON(一个):按键开关。本实验用来控制中断紧急事件。
LED-RED(四个):红色发光二极管。仿真图中东西南北各一。
LED-GREEN(八个):绿色发光二极管。仿真图中东西南北各二。
LED-YELLOW(四个):黄色发光二极管。仿真图中东西南北各一。
2、代码实现主要过程
(1) 延时函数
该函数用来定义延时,防止抖动。
(2)定时器函数
该函数用来定时数码管数字变化时间,TMOD表示的含义是使用定时器0,工作方式1,即计数器是16位。16位的二进制可以表示2^16(65535),计数器是向上计数的,一个一个数的加。如果要求每数40000次溢出一次产生中断,那么初值就是2^16-40000+1=25536,将初值25536放在TH0和TL0中,但由于T0是由两个8位的专用寄存器组成的,所以需要将25536分给高8位的TH0和低8位的TL0,25536/256就是将高八位取出,25536%256就是将低八位取出。
其中,EA为总中断开关,ET0打开T0定时器中断,TR0启用T0计数器/定时器。对于51单片机来说,设置了EA=1和ET0=1,这是定时器T0打开中断,即允许T0中断。而设定TR0=1,是启动定时器开始计时/计数(若TR0=0,则表明定时器停止计时/计数)。
(3)交通灯函数
该函数主要是用来定义交通灯变化情况,并将其与计时器结合在一起。首先定时40ms,每次40ms次数加1,直次数达到25(达到1s需要25次的40ms)。当计时到1秒时,开始使倒计时数值减1,直至当倒计时为0时,根据不同的交通灯情况设定倒计时时间(即出现黄灯的情况应该设定为5秒,其它为10秒),倒计时结束后切换下一种交通灯变化。
(4)紧急按钮函数
该函数是应用于发生紧急情况时。通过点击按钮实现数码管计时器的停止(即当按钮接收到低电平的时候,将TR0取反停止计时,TR0表示的是T0的计数),且将东西南北四个方向的路口交通灯皆设置为红灯。函数中如果不添加延迟函数,运行时会出现按钮不灵的现象,利用延迟函数能够防止按钮点击时的抖动。
(5)主函数
运行定时器函数,并在循环中不断运行已经设定好的按钮以及数码管事件。设定的Area1和Area2是为了实现双位数码管中的不同数字显示(即对应数码管中的两个针脚),如果不设置便会出现两边出现相同数字的情况,利用初始化的倒计数数字,将倒计时数字的个位和十位分别用式子表示出来,并显示先后在数码管上(该处设置的是先显示十位后显示个位,数码管时共阴极,所以赋值为1时接收的是高电位会亮)。由于我们只需要运行两个case事件,所以在cnt的值大于1时,重新归0,使之不停循环该过程。
三、实现效果
单片机交通灯效果视频
单片机交通灯设计实例相关推荐
- 基于51单片机交通灯设计时间可设置仿真红绿灯十字路口
演示视频:https://www.bilibili.com/video/BV1Tt4y1y7s8/ 将链接复制至IE浏览器打开!!! 功能操作说明: 从上到下,设置键,加键,减键,特殊键.单独一个按键 ...
- 51单片机交通灯(定时器+38译码器+中断)
51单片机交通灯这个实例主要用到的知识点有: >如何点亮LED >38译码器位选与段选 >定时器控制 >中断控制 #include <reg52.h>/****** ...
- 52单片机交通灯课程设计
单片机交通灯课程设计 1. 实验目的和器件 1.1实验目的 (1)通过单片机课程设计,熟练掌握C语言的编写方法,将理论联系到实际中去,提高我们的动手和动脑能力. (2)通过交通信号灯控制系统的设计,掌 ...
- 基于单片机的交通灯设计
摘要 本系统由单片机系统.键盘.LED 显示.交通灯演示系统组成.系统包括人行道.左转.右转.以及基本的交通灯的功能.系统除基本交通灯功能外,还具有倒计时.时间设置.紧急情况处理.分时段调整信号灯的点 ...
- 基于红外技术的交通灯设计
目录 基于红外技术的交通灯设计 1 摘 要 1 Abstract 2 1 引言 1 1.1基于红外技术的交通灯的选题背景 1 1.2基于红外技术的交通灯选题的现实意义 1 1.3国内外研究现状及其发展 ...
- 简易交通灯控制系统设计c语言,基于单片机交通灯控制系统设计毕业设计.doc
您所在位置:网站首页 > 海量文档  > 计算机 > Java 基于单片机交通灯控制系统设计毕业设计.doc30页 本 ...
- 基于51单片机交通灯控制系统
51单片机交通灯控制系统 可调时间+紧急+行人+黄灯5s 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J008 目录标题 51单片机交通灯控制系统 ...
- 【FPGA】EDA技术综合设计 交通灯设计
交通灯设计: 1.设计原理 (1)对项目进行模块划分.对各模块的功能及其端口进行说明. ①分频器部分 降低实验板固有频率,分出频率用来计数和数码管动态扫描. ②状态机部分 0,1,2,3四个基础状态以 ...
- 微型计算机接口与技术的交通灯,微机原理与接口技术课程设计——交通灯设计.doc...
微机原理与接口技术课程设计--交通灯设计.doc 1 任务及要求 1.1设计任务 交通信号灯的控制: (1)通过8255A并口来控制LED发光二极管的亮灭. (2)A口控制红灯,B口控制黄灯,C口控制 ...
- ewb交通灯报告和文件_基于EWB的交通灯设计
本文着眼于目前普遍应用在城市道路上的交通灯控制系统,从课程设计的题目要求出发,设计了一个十字路口主次街道的交通灯控制电路. 首先进行交通灯状态变换的分析和交通灯总体框架的设计,接着提出了2种电路设计方 ...
最新文章
- Java项目:高校学生社团活动管理系统(java+springboot+freemark+jpa+mysql)
- Item 16: 让const成员函数做到线程安全
- 【django】配置项目日志【5】
- php视频生成指定帧图片,python3.5 cv2 获取视频特定帧生成jpg图片
- 预测回归_回归分析预测技术简介
- 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配......
- 2016年小升初海淀区全部初中排名分析
- 寻找开发区块链协议的完美编程语言
- 阿里的dubbo 到底是用来干嘛的?
- WPF:Webbrowser 捕获关闭事件
- VSTO打包加载项 WPS可用 Advanced Installer
- 计算机课教师评价,教师课堂评价语集锦
- 2.前端开发命名规范
- JAVA POI 对excel加密后 无法打开的解决办法
- 【英语:基础高阶_全场景覆盖表达】K3.口语陈述的思维拓展
- python识别图片背景中数字_用python识别一张数字图片
- angular中的变更检测机制
- pythondocumentation_python官方文档
- 【反演复习计划】【COGS2433】【bzoj3930,CQOI2015选数】爱蜜莉雅的冰魔法
- 大学英语综合教程三 Unit 6 课文内容英译中 中英翻译
热门文章
- oracle 删除索引报错ORA-01418:sepecified index does not exist
- 从零开始实现Unity光照模型_02_为Shader添加简单的多光源支持_技术美术基础学习记录
- 一种基于区块链的物联网架构设计
- java项目:基于springboot高校党建管理系统(springboot+vue+mysql+redis) 1010
- 计算机软件怎么装,电脑拷贝的软件怎么安装
- Python之网络数据采集入门常用模块初识
- 图像处理4:最大类间方差法(大津法)
- cadz轴归零命令_cadz轴归零(cad全部z轴归零)
- MyBatis与JPA的区别是什么
- python统计分析pdf托马斯_Python统计分析