目录

一、初步设计

二、实现过程

三、实现效果


一、初步设计

在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,使之不停循环该过程。

三、实现效果

单片机交通灯效果视频

单片机交通灯设计实例相关推荐

  1. 基于51单片机交通灯设计时间可设置仿真红绿灯十字路口

    演示视频:https://www.bilibili.com/video/BV1Tt4y1y7s8/ 将链接复制至IE浏览器打开!!! 功能操作说明: 从上到下,设置键,加键,减键,特殊键.单独一个按键 ...

  2. 51单片机交通灯(定时器+38译码器+中断)

    51单片机交通灯这个实例主要用到的知识点有: >如何点亮LED >38译码器位选与段选 >定时器控制 >中断控制 #include <reg52.h>/****** ...

  3. 52单片机交通灯课程设计

    单片机交通灯课程设计 1. 实验目的和器件 1.1实验目的 (1)通过单片机课程设计,熟练掌握C语言的编写方法,将理论联系到实际中去,提高我们的动手和动脑能力. (2)通过交通信号灯控制系统的设计,掌 ...

  4. 基于单片机的交通灯设计

    摘要 本系统由单片机系统.键盘.LED 显示.交通灯演示系统组成.系统包括人行道.左转.右转.以及基本的交通灯的功能.系统除基本交通灯功能外,还具有倒计时.时间设置.紧急情况处理.分时段调整信号灯的点 ...

  5. 基于红外技术的交通灯设计

    目录 基于红外技术的交通灯设计 1 摘 要 1 Abstract 2 1 引言 1 1.1基于红外技术的交通灯的选题背景 1 1.2基于红外技术的交通灯选题的现实意义 1 1.3国内外研究现状及其发展 ...

  6. 简易交通灯控制系统设计c语言,基于单片机交通灯控制系统设计毕业设计.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspJava 基于单片机交通灯控制系统设计毕业设计.doc30页 本 ...

  7. 基于51单片机交通灯控制系统

    51单片机交通灯控制系统 可调时间+紧急+行人+黄灯5s 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 设计编号:J008 目录标题 51单片机交通灯控制系统 ...

  8. 【FPGA】EDA技术综合设计 交通灯设计

    交通灯设计: 1.设计原理 (1)对项目进行模块划分.对各模块的功能及其端口进行说明. ①分频器部分 降低实验板固有频率,分出频率用来计数和数码管动态扫描. ②状态机部分 0,1,2,3四个基础状态以 ...

  9. 微型计算机接口与技术的交通灯,微机原理与接口技术课程设计——交通灯设计.doc...

    微机原理与接口技术课程设计--交通灯设计.doc 1 任务及要求 1.1设计任务 交通信号灯的控制: (1)通过8255A并口来控制LED发光二极管的亮灭. (2)A口控制红灯,B口控制黄灯,C口控制 ...

  10. ewb交通灯报告和文件_基于EWB的交通灯设计

    本文着眼于目前普遍应用在城市道路上的交通灯控制系统,从课程设计的题目要求出发,设计了一个十字路口主次街道的交通灯控制电路. 首先进行交通灯状态变换的分析和交通灯总体框架的设计,接着提出了2种电路设计方 ...

最新文章

  1. Java项目:高校学生社团活动管理系统(java+springboot+freemark+jpa+mysql)
  2. Item 16: 让const成员函数做到线程安全
  3. 【django】配置项目日志【5】
  4. php视频生成指定帧图片,python3.5 cv2 获取视频特定帧生成jpg图片
  5. 预测回归_回归分析预测技术简介
  6. 【编程题目】有 n 个长为 m+1 的字符串,如果某个字符串的最后 m 个字符与某个字符串的前 m 个字符匹配......
  7. 2016年小升初海淀区全部初中排名分析
  8. 寻找开发区块链协议的完美编程语言
  9. 阿里的dubbo 到底是用来干嘛的?
  10. WPF:Webbrowser 捕获关闭事件
  11. VSTO打包加载项 WPS可用 Advanced Installer
  12. 计算机课教师评价,教师课堂评价语集锦
  13. 2.前端开发命名规范
  14. JAVA POI 对excel加密后 无法打开的解决办法
  15. 【英语:基础高阶_全场景覆盖表达】K3.口语陈述的思维拓展
  16. python识别图片背景中数字_用python识别一张数字图片
  17. angular中的变更检测机制
  18. pythondocumentation_python官方文档
  19. 【反演复习计划】【COGS2433】【bzoj3930,CQOI2015选数】爱蜜莉雅的冰魔法
  20. 大学英语综合教程三 Unit 6 课文内容英译中 中英翻译

热门文章

  1. oracle 删除索引报错ORA-01418:sepecified index does not exist
  2. 从零开始实现Unity光照模型_02_为Shader添加简单的多光源支持_技术美术基础学习记录
  3. 一种基于区块链的物联网架构设计
  4. java项目:基于springboot高校党建管理系统(springboot+vue+mysql+redis) 1010
  5. 计算机软件怎么装,电脑拷贝的软件怎么安装
  6. Python之网络数据采集入门常用模块初识
  7. 图像处理4:最大类间方差法(大津法)
  8. cadz轴归零命令_cadz轴归零(cad全部z轴归零)
  9. MyBatis与JPA的区别是什么
  10. python统计分析pdf托马斯_Python统计分析