基于AT89C51单片机的交通灯设计与仿真

2024-01-28 03:20

本文主要是介绍基于AT89C51单片机的交通灯设计与仿真,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击链接获取Keil源码与Project Backups仿真图:
https://download.csdn.net/download/qq_64505944/87763760?spm=1001.2014.3001.5503
在这里插入图片描述

源码获取
主要内容:
设计一个能够控制十二盏交通信号灯的模拟系统,:利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED灯显示倒计时间。
基本要求:
1、通过单片机课程设计,了解并掌握汇编语言的编程方法,将理论联系实践,提高动脑和动手的能力。
2、通过该控制系统的设计,掌握定时计数器及中断的使用方法,和简单程序的编写,提高自己的逻辑抽象能力。
3、完成系统基本的硬件和软件设计,并进行仿真调试。
主要参考资料:
[1]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007.
[2]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009.
[3]马忠梅等.单片机的C语言应用程序设计.北京航空航天大学出版社,2003.
[4]王晋凯.简简单单学通51单片机开发 [M].清华大学出版社,2014.
[5]夏继强.单片机实验[M].北京: 航空航天大学出版社,2001

           完  成  期  限:12 月 11 日 - 12 月 26 日  指导教师签名:                     课程负责人签名:                           

摘 要
交通在人们的日常生活中占有重要的地位,随着人们社会活动的日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故有明显作用。本系统采用单片机89C52为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时时间。
中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的作用。智能交通灯的管理比重修一条马路无论在经济、交通运行速率上都有很好的效益、更加节约资源。使交管人员有更多的精力投入到管理整个城市交通控制,带来更大的经济和社会效益,为创造美好的城市交通形象发挥更多的作用。
本设计采用51系列单片机ATMEL89C51为核心控制器件来设计已经简单的交通灯控制器。本系统由单片机I/0口扩展系统、交通灯状态显示系统、LED 数码显示系统、复位电路等几大部分组成。系统除基本的交通灯功能外,还具有倒计时功能,较好的模拟实现了十字路口可能出现的状况。
软件上采用KEILC编程,主要编写了主程序,LED 数码管显示程序,中断程序延时程序等。经过Proteus 8整机调试,实现了对十字路口交通灯的模拟。
关 键 词:AT89C51;LED;交通灯
目 录

摘 要 1
1 概述 1
1.1设计背景 1
1.2设计目的 1
2 技术介绍 2
2.1 keil 2
2.2 proteus 2
3 总体方案与硬件设计 3
3.1硬件电路各元件介绍 3
3.1.1核心芯片AT89C51单片机的说明 3
3.1.2两位共阴七段数码管 4
3.1.3二极管 4
3.2复位电路 5
3.3振荡电路 5
3.2总体电路工作原理 5
4 系统程序设计 7
4.1系统电路图 7
4.2程序源代码 7
5 仿真测试 11
5.1软件调试 11
5.2仿真调试 12
5.2.1所需软件查询展示 12
5.2.2四种状态展示 12
5.3结果分析 14
6 总结 15
参考文献 16

1 概述
1.1设计背景
当今,红绿灯安装在个个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这个技术在19世纪就已经出现了。
1858年,在英国伦敦主要街头安装了以燃某气为光源的红、蓝两色的机械般手势信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦孰威斯敏斯特区的会议大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转方式玻璃提灯组
成。红色表示“停止”,绿色表示“注意”。
电气启动的红绿灯出现在美国,这种红绿灯由红黄绿三色圆形的投光器组成,1914年始装于纽约市5号大街的一座高塔上。红k灯亮表示“停止”,绿灯亮表示“通行”。
信号灯的出现,使得交通得以有效的管理,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。1968年,联合国《道路交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯时通行信号灯,面对绿灯的车辆可以直行,左转弯和右转弯,除非两一利中标志禁止某一利梓专向。左右转弯车辆必需让合法的正在路口内行驶的车辆和过人行横线的行人优先通行。红灯是禁行信号灯,面对红灯的车辆必需在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越城过停车线。但车辆已经十分接近停车线而不能安全停车的可以进入交叉路口!
1.2设计目的
本设计是由单片机控制的交通信号灯,运用89c51单片机实现交通灯的控制,实现红绿灯自动跳变,倒计时显示,黄灯蜂鸣器警示灯功能。在这次设计作品中,不仅可以增加对整套系统运行的合理安排,为未来做大的项目打下基础,也可以增加对软硬件的在系统中的作用的了解,同时也培养了我们团队的合作能力。1.3设计思路
模拟交通灯控制器就是使用单片机来控制一些LED灯和数码管,模拟真实交通灯的功能。当南北主干道通车时绿灯亮,而东西次干道干道红灯亮;当25s通车时间到后,主干道绿灯熄灭,黄灯亮,黄灯亮5s后由主干道切换到次干道通车。此时主干道黄灯熄灭,红灯亮,而次干道红灯熄灭,绿灯亮,次干道开始通车;25s通车时间到后,次干道绿灯熄灭,黄灯亮,黄灯亮5s后由次干道切换到主干道通车。此时次干道黄灯熄灭,红灯亮;而主干道红灯熄灭,绿灯亮,如此不断循环。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路口的车辆及行人交通。片机中,运行系统。设计好后通过proteus软件仿真,并调试。

2 技术介绍
2.1 keil
Keil C51是一款兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,[1]因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil的优势。
2.2 proteus
Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。迄今为止是世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年增加Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译.

3 总体方案与硬件设计

3.1硬件电路各元件介绍
3.1.1核心芯片AT89C51单片机的说明
1.AT89C51简介
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammable and Erasable Read Only Memory )的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活
性高且价廉的方案。
在这里插入图片描述

                         图3-1 AT89C51

2.引脚说明
1)电源引脚
VCC(40口) +5v直流电
VSS (20口)接地
2)复位引脚
RST(9口) 复位输入信号
3)时钟引脚
XTAL1(19口) 晶振输入口
XTAL2 (18口) 晶振输入口
4)控制引脚
ALE(30口)地址锁存允许信号
PSEN (29口) 外部存储器选通信号
EA(31口)EA引脚表示存取外部程序代码之意,低电平动作,当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。EA引脚必须接低电平,因为其内部无程序存储器空间。
5)I/O口引脚
P0# : P0.0~P0.7
P1# : P1.0~P1.7
P2# : P2.0~P2.7
P3# : P3.0~P3.7
6)P3口复用引脚
P3.0串口输入;
P3.1串口输出;
P3.2外部中断0;
P3.3外部中断1;
P3.4计数器输入0;
P3.5计数器输入1;
P3.6外部存储器写信号;
P3.7外部存储器读信号;
3.1.2两位共阴七段数码管
两位共阴七段式数码管其实就是将两个一位八段式数码接相应的电路组合在一起。并引出两控制端1和2,同过其电平的高低来控制两个数码管的高低位
工作。

在这里插入图片描述

图3-2 两段共阴七段数码管

3.1.3二极管
交通信号灯:采用红、黄、绿三种颜色的二极管组成三色交通信号。
在这里插入图片描述

图3-3 三色二极管

3.2复位电路
本设计中的单片机采用了外接的复位电路,并且采用了一种上电复位和手动复位的组合。自动上电复位电路保证在上电开机时对AT89C51单片机进行正确的复位,手动复位可在上电复位基础上并接一个复位开关,这样既保证上电复位,又可手动复位。单片机复位后,内部特殊功能寄存器复位后的状态为确定值。
在这里插入图片描述

图3-4复位电路
3.3振荡电路
AT89C51的XTAL 1和XTAL 2引脚分别为单极片内反相放大器的输入/输出端,其频率范围为1.2~1 2 MHz。XTAL2又是内部时钟发生器的输入端,这个内部反相器可与外部元件组成皮尔斯振荡器。
在这里插入图片描述

图3-5振荡电路
3.2总体电路工作原理
十字路口要有数字显示装置,作为时间提示,以便人们更直观地把握时间。具体要求为:当某方向绿灯亮时,置定时器为某一个数值,然后以每秒减1的计数方式工作,直至减到数为0,十字路口红、绿灯交换,一次工作循环结束,进入另一个方向的工作循环。数码显示管就是用来显示东西和南北两个道口的红黄绿三种颜色的灯的倒计时时间。
南北路处于禁止通行的状态,东西路处于允许通行的状态。南北路亮红灯时,东西路亮绿灯;南北路亮绿灯时,东西路亮红灯。南北路亮红灯时,东西路亮绿灯;当绿灯时间减完之后,东西路换为黄灯,南北路仍为红灯.这样东西路与南北路的时间同时减完。减完之后,东西路换为红灯,南北路换为绿灯,再经过一个绿灯时间,南北路换为黄灯,东西路仍为红灯。这时东西路与南北路时间相同,同时减完。减完后,南北路为红灯,东西路为绿灯。如此隔环下去。
整个设计满足了任务的要求,即完成了四个状态的转换,完成了倒计时数码管的显示,所以这个系统的设计足以控制十字路口的交通灯正常变换,保证各道车辆的畅通运行。

4 系统程序设计
4.1系统电路图
在这里插入图片描述

图4-1 系统电路图

4.2程序部分代码

#include<reg51.h>sbit led_red = P1 ^ 0;
sbit led_yellow = P1 ^ 1;
sbit led_green = P1 ^ 2;sbit led_red1 = P1 ^ 3;
sbit led_yellow1 = P1 ^ 4;
sbit led_green1 = P1 ^ 5;unsigned int i = 0;
unsigned int j = 0;unsigned char code LedChar[] ={0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90 };  //0 1 2 3 4 5 6 7 8 9static unsigned int sec = 5;
static unsigned char togle_flag = 0;
static unsigned char rg_flag = 0;
static unsigned char skip_yellow = 0;
static unsigned char fs = 0;void timer0(){TMOD = 0x01;TH0 = (65536-50000)/256;	 TL0 = (65536-50000)%256;EA = 1;ET0 = 1;TR0 = 1;
}void tcount() interrupt 1 {TH0 = (65536-50000)/256;TL0 = (65536-50000)%256;i++;
}void display(){//P0 = 0x01;P0 = 0x05;P2 = LedChar[sec % 10];  // P3 = LedChar[(sec + 5) % 10];

5 仿真测试
5.1软件调试
(1)生成hex文件::

图5-1生成hex文件
(2)将hex文件导入AT89C51中:

图5-2导入hex文件
5.2仿真调试
在keil中调试完成后,生成文件,再到proteus中进行仿真。
5.2.1所需软件查询展示

图5-3所需元件展示图
5.2.2四种状态展示
1)点击play键,电路开始进行仿真,此时红绿灯显示的情况为:南边方向为绿灯亮,东西方向为红灯亮。南边方向通行时间为25秒,东西禁止通行时间为25秒,交通灯显示状态如图所示。

图5-4状态一

2)在开始仿真经过25秒后,黄灯开始闪烁,闪烁时间为5秒,红绿灯的状态将发生变化,南边方向黄灯闪烁,显示情况如图所示。

图5-5状态二

3)此时红绿灯显示的情况为:东西方向为绿灯亮,南北方向为红灯亮。南边方向禁止通行时间为30秒,南北通行时间为25秒,交通灯显示状态如图所示。

图5-6状态三
4)在开始仿真经过25秒后,黄灯开始闪烁,闪烁时间为5秒,红绿灯的状态将发生变化,东西方向黄灯闪烁,显示情况如图所示。

图5-7状态四
5.3结果分析
经过测试,本次简单交通灯设计基本满足了所需要的要求,可以进行简单的红绿黄灯计时显示,避免出现拥挤、堵车等现象,但设计也有不足,由于程序设计较为简便,无法对具体的的路况进行适时地调整,无法通过对当前道路的状况进行智能化调节。比如;早高峰和晚高峰期间的人流和车辆较多,可以适当增加绿灯时间,减少红灯时间,以此来减少道路拥挤。

6 总结
通过这次课程设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计C语言的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的.本次课程设计用到了许多单片机上所学的知识,使书本上所学的知识得到了实际应用,同时也发现了很多自己的不足之处。经过多次查阅相关书籍和资料,一些自己不是很有把握的地方得到了补充,不仅完成了课程设计的任务,更增长了自己的知识面,填补了很多知识的空白之处,使我又有了新的长进,学到了新的知识。
通过本次的课程设计,使我学到了很多新的知识,经历了将理论转化为实践的过程,知道了如何让将所学的理论知识转化为生活中所常见的东西,所学知识得到了充分应用。大学的课堂是给我们学习专业知识的,而我们更应该把自己所学到的书面知识应用到生活中去。课程设计给了我们这样一个化理论为实践的机会,自己独立的完成这么一个任务,看起来很难,但当你深入到这个过程中去时,每一点点的成功都会让自己欣喜若狂,这是一个享受成功的过程,也是一个良好的学习机会.当然,也遇到了很多困难,让我认识到了很多不足,我会在以后的学习生活当中不断磨练自己、完善自己,为自己以后的职业生活储备更多的知识,做一个生活的强者。

参考文献
[1] 何立民.单片机高级教程[M].北京: 航空航天大学出版社,2001.
[2] 王东峰等.单片机C语言应用100例[M].电子工业出版社,2009.
[3] 马忠梅等.单片机的C语言应用程序设计.北京航空航天大学出版社,2003.
[4] 王晋凯.简简单单学通51单片机开发 [M].清华大学出版社,2014.
[5] 夏继强.单片机实验[M].北京: 航空航天大学出版社,2001.

这篇关于基于AT89C51单片机的交通灯设计与仿真的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/652324

相关文章

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

怎么让1台电脑共享给7人同时流畅设计

在当今的创意设计与数字内容生产领域,图形工作站以其强大的计算能力、专业的图形处理能力和稳定的系统性能,成为了众多设计师、动画师、视频编辑师等创意工作者的必备工具。 设计团队面临资源有限,比如只有一台高性能电脑时,如何高效地让七人同时流畅地进行设计工作,便成为了一个亟待解决的问题。 一、硬件升级与配置 1.高性能处理器(CPU):选择多核、高线程的处理器,例如Intel的至强系列或AMD的Ry

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

SprinBoot+Vue网络商城海鲜市场的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平台Java领域优质创作者,全网30w+

单片机毕业设计基于单片机的智能门禁系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍程序代码部分参考 设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订

Spring的设计⽬标——《Spring技术内幕》

读《Spring技术内幕》第二版,计文柯著。 如果我们要简要地描述Spring的设计⽬标,可以这么说,Spring为开发者提供的是⼀个⼀站式的轻量级应⽤开发框架(平台)。 作为平台,Spring抽象了我们在 许多应⽤开发中遇到的共性问题;同时,作为⼀个轻量级的应⽤开发框架,Spring和传统的J2EE开发相⽐,有其⾃⾝的特点。 通过这些⾃⾝的特点,Spring充分体现了它的设计理念:在

开题报告中的研究方法设计:AI能帮你做什么?

AIPaperGPT,论文写作神器~ https://www.aipapergpt.com/ 大家都准备开题报告了吗?研究方法部分是不是已经让你头疼到抓狂? 别急,这可是大多数人都会遇到的难题!尤其是研究方法设计这一块,选定性还是定量,怎么搞才能符合老师的要求? 每次到这儿,头脑一片空白。 好消息是,现在AI工具火得一塌糊涂,比如ChatGPT,居然能帮你在研究方法这块儿上出点主意。是不

创业者该如何设计公司的股权架构

本文来自七八点联合IT橘子和车库咖啡的一系列关于设计公司股权结构的讲座。 主讲人何德文: 在公司发展的不同阶段,创业者都会面临公司股权架构设计问题: 1.合伙人合伙创业第一天,就会面临股权架构设计问题(合伙人股权设计); 2.公司早期要引入天使资金,会面临股权架构设计问题(天使融资); 3.公司有三五十号人,要激励中层管理与重要技术人员和公司长期走下去,会面临股权架构设计问题(员工股权激

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d