单片机课程设计--交通信号灯实时控制系统设计

合集下载

交通信号灯单片机课程设计

交通信号灯单片机课程设计

交通信号灯单片机课程设计一、设计背景交通信号灯是城市道路上的重要设施,它能够指引行车和行人的方向,维护交通秩序和安全。

而现代交通信号灯则采用了单片机技术,使其更加智能化、可靠化和节能环保。

二、设计目标本课程设计旨在通过学习单片机原理和应用知识,掌握交通信号灯的设计与实现方法,并实现以下目标:1. 理解单片机工作原理及其应用;2. 掌握基本的电子元器件和电路知识;3. 学会使用Keil C51集成开发环境编写程序;4. 能够独立完成交通信号灯系统的设计与实现。

三、设计内容1. 系统硬件设计系统硬件主要由单片机、LED等元器件组成。

其中,单片机采用AT89C52型号,具有强大的计算能力和丰富的外设接口;LED则是光电转换元件,可将电能转换为光能进行显示。

2. 系统软件设计系统软件主要由Keil C51集成开发环境编写。

具体步骤如下:(1)编写程序框架:包括头文件引用、全局变量定义、主函数等;(2)编写延时函数:通过循环语句实现时间延迟,用于控制交通信号灯的闪烁和变换;(3)编写状态转换函数:根据交通信号灯的状态进行相应的控制操作,包括红灯、黄灯、绿灯等状态;(4)调试程序:通过单片机仿真器或实际硬件进行程序调试,确保程序运行正确。

四、设计步骤1. 系统硬件设计步骤:(1)确定系统功能需求和性能指标;(2)选取单片机和LED元器件,并进行电路原理图设计;(3)进行PCB布线和焊接工作,完成系统硬件设计。

2. 系统软件设计步骤:(1)安装Keil C51集成开发环境,并创建工程文件;(2)编写程序框架和延时函数,并测试其正确性;(3)编写状态转换函数,并测试其正确性;(4)将程序下载到单片机中,并进行实际运行测试。

五、设计成果展示经过以上步骤,我们成功地完成了交通信号灯系统的设计与实现。

下面是系统运行效果展示:当交通信号灯处于红灯状态时,车辆需停车等待;当交通信号灯处于黄灯状态时,车辆需减速慢行;当交通信号灯处于绿灯状态时,车辆可正常行驶。

基于单片机的交通信号灯的控制系统设计

基于单片机的交通信号灯的控制系统设计

基于单片机的交通信号灯的控制系统设计交通信号灯是城市交通管理中非常重要的一部分,它通过灯光信号来指示道路上车辆和行人的行动。

基于单片机的交通信号灯控制系统可以实现对交通信号的自动控制,并能根据实际交通情况和时间变化进行灵活调整,提高道路交通的效率和安全性。

1.系统设计需求分析:
-实现红、黄、绿三种信号灯的循环显示,时间可设定;
-根据实际交通情况和时间变化,动态调整红、黄、绿三种信号灯的显示时间;
-配备感应器,检测行人和车辆的存在,根据情况自动调整信号灯时间。

2.系统硬件设计:
-选择合适的单片机,如AT89C52;
-使用LED灯作为信号灯显示器件;
-选择适当的传感器,如红外传感器用于检测行人,光敏电阻用于检测车辆;
-选择适当的电路板进行连接。

3.系统软件设计:
-编写单片机的控制程序,实现红、黄、绿三种信号灯的循环显示;
-设定初始的信号灯显示时间;
-利用定时器和中断控制程序,实现对信号灯显示时间的控制,可以根据设定的时间进行调整;
-设定感应器的检测程序,当检测到行人或车辆时,调整信号灯显示时间。

4.系统工作流程:
(1)初始化系统,设定初始的信号灯显示时间;
(2)通过定时器和中断控制程序实现循环显示红绿黄信号灯;
(3)检测行人和车辆的存在,根据情况调整信号灯显示时间;
(4)循环执行步骤2和步骤3,实现自动控制交通信号灯。

5.系统优化方案:
-根据实际交通数据和研究结果,优化信号灯显示时间;
-利用流量监测技术,实时监测道路交通情况,进一步优化信号灯的控制策略;
-可以加入数据通信模块,将采集到的交通数据上传到中央交通管理系统,实现更智能化的交通信号灯控制。

单片机课程设计报告-交通信号灯控制系统设计

单片机课程设计报告-交通信号灯控制系统设计

单片机课程设计报告-交通信号灯控制系统设计————————————————————————————————作者:————————————————————————————————日期:单片机课程设计报告一、设计目的1、通过单片机课程设计,熟练掌握汇编语言的编程方法,将理论联系到实践中去,提高我们的动脑和动手的能力.2、通过交通信号灯控制系统的设计,掌握定时/计数哭的使用方法,和简单程序的编写,最终提高我们的逻辑抽象能力.二、设计任务和要求任务:设计一个能够控制十二盏交通信号灯的模拟系统要求:利用单片机的定时器定时,令十字路口的红绿灯交替点亮和熄灭,并用LED 灯显示倒计时间。

三、设计原理分析1、首先了解实际交通灯的变化情况和规律。

假设一个十字路口如上图所以,为东南西北走向。

初始状态0为东西南北都红灯亮.然后转状态1东西绿灯通车,南北红灯亮.过一段时间后,转状态2,东西绿灯灭,黄灯闪几下,南北还是红灯。

再转状态3,南北绿灯通车,东西红灯亮.过一段时间后转状态4,南北绿灯灭,闪几个黄灯,东西还是为红灯亮,一段时间后,又循环至状态1。

列出交通信号灯的状态表如下:(其中,1代表灯亮,0代表灯灭)状态北 西 南 东绿黄红 绿黄红绿黄红绿黄红001 001 001 001 1 001 100 001 100 2 001 010 001 010 3 100 001 100 001 411112、对于交通信号灯来说,应该有东西南北共四组灯,但由于同一道上的两组的信号灯的显示情况是相同的,所以只要用两组就行了,因此,采用单片机内部的I/O 口上的P1口中的6个引脚即可来控制6个信号灯。

3、通过编写程序,实现对发光二极管的控制,来模拟交通信号灯的管理。

每延时一段时间,灯的显示情况都会按交通灯的显示规律进行状态转换。

4、通过延时时间送显,可以在原有的交通信号灯系统的基础上,增添其倒计时间的显示功能,实现其功能的扩展。

人行道人行人行人四、硬件资源及其分配主要用到的硬件:P1口、P3口、LED数码管、LED发光二级管、定时器T0硬件分配:1、P1口:做为输出口,与发光二极管相连接,其状态及对应的十六进制值如下:方向状态无南北东西十六进制值说明P1。

单片机交通灯课程设计

单片机交通灯课程设计

单片机 交通灯课程设计一、课程目标知识目标:1. 理解单片机的基本原理,掌握交通灯控制器的设计方法;2. 学会使用编程软件进行单片机程序设计,实现交通灯控制功能;3. 了解交通灯系统的基本构成和运行原理,提高对电子工程实践的认识。

技能目标:1. 能够运用所学知识,独立完成单片机交通灯控制器的硬件搭建;2. 掌握基本的编程技巧,实现交通灯的定时切换和异常处理功能;3. 提高动手实践能力,培养团队协作和问题解决能力。

情感态度价值观目标:1. 培养学生对单片机及电子工程的兴趣,激发创新意识;2. 培养学生的责任心和敬业精神,使其在项目实践中体会工程实践的重要性;3. 增强学生的环保意识,理解交通灯系统在节能减排方面的作用。

课程性质:本课程为实践性较强的课程,结合单片机原理与应用,让学生在实际操作中掌握知识,提高技能。

学生特点:学生具备一定的电子基础和编程能力,对单片机有一定了解,但实践经验不足。

教学要求:注重理论与实践相结合,充分调动学生的积极性,培养其动手实践和团队协作能力。

通过课程学习,使学生能够独立完成单片机交通灯控制器的设计与实现。

1. 单片机基础理论:回顾单片机的组成、工作原理和编程基础,重点讲解I/O 口控制、定时器及中断系统等知识点。

教材章节:第二章 单片机原理与应用。

2. 交通灯控制器设计:介绍交通灯系统的基本构成、工作原理及设计要求,分析控制器硬件设计方法,包括电路图绘制、元器件选型等。

教材章节:第三章 交通信号灯控制系统设计。

3. 程序设计:结合单片机编程语言,讲解交通灯控制程序的编写方法,包括主程序、定时器中断服务程序等。

教材章节:第四章 单片机编程与应用。

4. 硬件搭建与调试:指导学生进行交通灯控制器硬件的搭建、程序烧录及系统调试,分析并解决实际问题。

教材章节:第五章 单片机系统调试与优化。

5. 项目实践:组织学生分组进行项目实践,要求每组完成一个具有定时切换和异常处理功能的单片机交通灯控制器设计。

单片机课程设计-控制交通信号灯

单片机课程设计-控制交通信号灯

单片机课程设计说明书单片机控制交通灯设计专业学生姓名班级学号指导教师完成日期目录1.概述 (1)1.1交通灯设计的背景和意义 (1)1.1.1交通灯的背景 (1)1.1.2交通灯的意义 (1)1.2.交通灯的发展和现状 (1)2.课题方案设计 (2)2.1系统总体设计要求 (2)2.2系统模块结构论证 (2)3.系统硬件设计 (2)3.1总体设计 (2)3.2单片机运行的最小系统 (3)3.2.1 AT89C51简介 (3)3.2.2、振荡电路、时钟电路和CPU时序 (5)3.2.3、复位状态和复位电路设计 (6)3.3按键扫描控制电路 (7)4.系统软件设计 (7)5.软硬件联调及调试结果 (9)5.1实物图 (9)5.2调试结果 (9)5-3 演示效果图.................................. 错误!未定义书签。

6.结论 (9)参考文献 (10)附录 (10)附录1:基于单片机的交通灯设计原理图 (10)附录2:基于单片机的交通灯设计PCB图 (11)附录3:proteus仿真图 (11)附录4:基于单片机的交通灯设计C语言程序清单 (12)附录5:基于单片机的交通灯设计元器件目录表 (13)单片机控制交通灯设计1.概述1.1交通灯设计的背景和意义1.1.1交通灯的背景1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。

这是世界上最早的交通信号灯。

1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。

它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。

1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。

1914年,电气启动的红绿灯出现在美国。

这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。

红灯亮表示“停止”,绿灯亮表示“通行”。

基于单片机的交通信号灯控制系统设计

基于单片机的交通信号灯控制系统设计

基于单片机的交通信号灯控制系统设计
1. 系统设计目标
设计一个基于单片机的交通信号灯控制系统,实现不同方向车辆和行人的交通规划。

2. 系统硬件设计
硬件组成:单片机、LED灯、电源、电阻、电容等。

系统结构:
- 单片机通过IO口控制LED灯显示红、黄、绿三种状态。

- 通过数码管和按钮实现人行道倒数计时和手动切换信号灯的功能。

- 通过外部输入检测传感器实现车辆和行人的检测。

- 接口技术:USB、串口通讯。

3. 系统软件设计
软件设计流程:
- 初始化IO口、定时器等资源。

- 通过程序控制LED灯的开关。

- 利用定时器完成各个状态的时长控制,将绿灯、黄灯和红灯的切换时间控制在合理的范围内。

- 通过IO口读取外部传感器的状态,确定行人和车辆的状态并作出相应的反应。

- 实现手动切换信号灯的功能,红色按钮为停止键,绿色按钮为启动键,通过按照不同的指令来切换信号灯状态。

- 显示人行道倒数计时的时间,可通过数码管显示。

以上就是基于单片机的交通信号灯控制系统的设计。

需要注意的是,在实际的应用中还需要考虑人车流量、路口情况等因素,获得更可靠的结果。

单片机电子课程设计交通灯

单片机电子课程设计交通灯单片机电子课程设计交通灯是一项基于单片机技术开发的交通信号灯控制系统,是电子信息技术应用领域的重要实践课程之一。

它是通过单片机的控制来控制道路上的几组灯光,使得车辆、行人在道路上的行驶与摆动更加有序和安全。

这篇文档将从以下几个方面探讨单片机电子课程设计交通灯的设计思路、开发流程、实施过程及未来发展方向。

一、设计思路单片机电子课程设计交通灯的主要设计思路是通过控制电子器件来实现对交通信号灯的控制。

具体来说,我们需要使用LED灯、红外线检测模块、温度传感器等一系列电子元件,借助单片机的强大控制能力,实现对红绿灯状态的自动切换,保证道路交通的安全有序。

二、开发流程单片机电子课程设计交通灯的开发流程可以分为以下几个步骤:1. 硬件设计:首先需要设计硬件,包括选购各种电子元件,设计电路板以及各种接口连接。

硬件设计完成后,需要进行电路板焊接和测试,确保各个模块可以正常通信和工作。

2. 软件编程:在硬件设计完成且测试正常后,我们需要进行软件编程设计。

具体来说,我们需要使用汇编语言或c语言等编程语言,实现交通信号灯的自动控制,包括灯光切换、红绿灯时间设置、车辆检测和显示等。

3. 系统调试:在软件开发完成后,我们需要对整个系统进行调试。

包括对各个功能模块进行单独测试和整体性能测试,调整系统参数和软件算法,改善系统稳定性和工作效率。

4. 安装部署:当系统调试完成后,我们需要将整个系统进行安装和部署。

具体来说,系统需要进行外壳设计,预展示位置进行选择和安装,各个接口连接,系统的标识和标志体现等。

三、实施过程在完成单片机电子课程设计交通灯的开发后,需要根据实际情况来进行实施。

具体来说,我们需要进行以下几个步骤:1. 需求收集:首先需要了解道路、人流、车流等实际情况,并了解交通信号灯应该如何进行调整和优化。

2. 系统安装:在了解道路实际情况后,我们需要安装系统,并进行相关测试,确保系统可以正常工作。

单片机交通灯控制系统的设计

单片机交通灯控制系统的设计交通灯控制系统是城市交通中至关重要的一环,它通过控制红绿灯的亮灭来指示不同方向的车辆和行人是否可以通行。

单片机作为一种集成度高、功耗低、性能稳定的微控制器,可以用于设计交通灯控制系统。

一、系统设计要求:1.红绿灯的亮灭时间按照交通规则和实际情况来设定;2.红绿灯的切换需要考虑交通流量和优先级等因素;3.可以手动或自动控制交通灯;4.反应灯光状态的显示器。

二、硬件设计:1.选择适当的单片机芯片,考虑到交通灯控制系统的实时性和稳定性,可以选择性能较好的51系列单片机;2.使用相关的外设电路,如指示灯、按键开关、数码管等,与单片机进行连接。

三、软件设计:1.交通灯状态控制:使用定时器来控制红绿灯的亮灭时间。

可以设置多个定时器来实现不同方向的交通灯状态控制,比如东西方向的红绿灯和南北方向的红绿灯可以使用两个定时器进行控制;2.交通灯切换控制:根据交通流量和优先级设定,使用条件语句和循环语句来控制红绿灯的切换;3.手动控制:通过按键开关来实现手动控制交通灯,按下不同的按键可以切换不同的交通灯状态;4.自动控制:通过传感器来获取交通流量信息,使用算法进行分析和判断,控制交通灯与规定的红绿灯切换时间进行同步;5.显示器控制:使用数码管或液晶显示屏等设备,显示当前交通灯的状态,方便交通参与者了解当前通行情况。

四、系统功能拓展:1.添加语音提示功能,例如在交通灯变换过程中通过语音向行人和驾驶员发出提示让其注意交通安全;2.添加违规报警功能,当有车辆闯红灯时触发警报,提醒交通违规者;3.添加远程监控和控制功能,通过网络连接,可以实现对交通灯系统进行远程管理;4.添加紧急事件处理功能,如应急车辆通行时,交通灯系统可以根据特定信号将其优先通行。

综上所述,单片机交通灯控制系统的设计需要综合考虑硬件和软件的因素,它主要包括红绿灯状态控制、红绿灯切换控制、手动和自动控制、显示器控制等功能。

此外,还可以拓展功能,提高系统的智能化和人性化,以更好地满足城市交通的需求。

单片机课程设计--交通灯控制系统

单片机课程设计----交通灯控制系统MCS-51单片机应用--交通灯控制系统摘要:该系统在单片机的最小系统的基础上进行了功能的扩展。

对于人行道设置了相应的人行道指示灯,当有紧急情况发生时可以使用外部中断,使四个路口都显示红灯停止通行10秒,让急救车通行,待急救车通过后交通灯恢复之前工作状态继续工作。

在完成面包板模拟后,我们焊接了电路板,并最终实现了功能。

1:设计方案的选择及确定1.1设计方案的选择1.1.1并口动态显示并口动态显示是我们在课本学习中主要讲解的显示方法。

该方法利用动态扫描显示的方法,逐个地循地点亮各位数码管,每位显示1MS左右,利用人的视觉残留,使人们看起来就好象在同时显示不同的字符。

这种方法接线简单,但占用了单片机较多的口线资源,在使用时必须要用到单片机整个P1口,P1口将要显示的数字发送到8155接口芯片,并通过两个驱动器才可以点亮数码管。

1.1.2串口静态显示串口静态显示是我们在课程实验中用过的一种显示方法。

该方法占用单片机口线资源较少,只使用了串行输入RXD(P3.0)及串行输出TXD(P3.1),但这种方法比起并口动态显示要使用更多的芯片,每个数码管都要用一片74LS164来锁存要显示的数字,并且在数码管的显示上由于每次都要从累加器A输出,所以编程上要注意给累加器A 送值的顺序问题。

1.2设计方案的确定考虑到74LS164芯片价格低廉,货源充足,并且串口静态显示可以节省单片机较多的口线资源,可为以后的功能扩展留下更多空间,我们选择了串口静态显示。

2:系统设计思路及原理框图2.1系统设计思路在MSC-51单片机的最小系统的基础上,使用了P1,P2口作为交通灯的驱动信号的输出口,经三极管放大后驱动指示灯。

四个数码管采用了共阳接法,其阴极用级连的164锁存要显示的数字信号。

复位电路采用外部/上电复位电路。

时钟电路采用了内部时钟方式。

2.2原理框图图12.2.1原理图说明系统原理如图1。

单片机课程设计--交通灯控制系统--

交通灯控制系统
一、本系统的工作流程:
1)系统启动后,系统按程序给定的时间工作,即东西向通行60秒,南北向通行40秒,黄灯亮4秒,工作模式如表1所示。

首先东西向通行,然后南北向通行,如此循环。

2)通行时间的设置:当需要更改主、次干道的通行时间时,可以用设置键、增加键、减少键”进行设置。

第一次按“设置键”时,东西向的绿灯亮,东西向的LED数码管显示当前东西向的通行时间,并且按每秒3次的频率闪烁(每秒钟亮3次暗3次),其余的信号指示灯和南北向的LED数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向的通行时间,每按一次键,数码管的显示时间增加1秒或减少1秒,长按键(按下的时间超过1秒钟以上),则数码管显示的时间按每秒钟增加或减少10的速度快速变化。

第二次按“设置键”时,东西向的黄灯亮,东西向的数码管显示当东西向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和南北向的数码管熄灭,此时可以用“增加键”和“减少键”来改变东西向黄灯的点亮时间。

第三次按“设置键”时,南北向的绿灯亮,南北向的数码管显示当前南北向绿灯的通行时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向绿灯的通行时间。

第四次按“设置键”时,南北向的黄灯亮,南北向的数码管显示当前南北向黄灯的点亮时间,并且按每秒3次的频率闪烁,其余的信号指示灯和东西向的数码管熄灭,此时可以用“增加键”和“减少键”来改变南北向黄灯的点亮时间。

第五次按“设置键”时,系统退出设置状态,回到交通信号灯状态,并且东西向先通行,南北向后通行。

二、硬件电路图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

交通信号灯实时控制系统设计一、设计目的1.学习单片机基本电路的设计,加深对单片机理论知识的理解2.掌握单片机内部各功能模块的功能与应用,学会单片机基本外设电路的设计3、学习单片机汇编语言及程序设计方法,掌握单片机汇编语言的程序设计4.掌握单片机应用系统的软件和硬件设计过程、调试方法及功能实现二、设计要求1、根据实际交通状况,分别控制红、绿、黄灯的燃亮与熄灭情况2、各信号灯的燃亮时间为:绿灯:60秒,红灯:80秒,黄灯:5秒3、红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S 后然后恢复正常。

4、绿灯倒计时时,检测车流量三、硬件电路设计1.芯片选用选用设备8051 单片机一片,8255 并行通用接口芯片一片,74LS07 两片,MAX692‘看门狗’一片,共阴极的七段数码管两个双向晶闸管若干,7805 三端稳压电源一个,红、黄、绿交通灯各两个,开关键盘、连线若干。

8051 是MCS-51 系列单片机的典型产品,8051 单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。

8051引脚图8255 可编程并行接口芯片有三个输入输出端口,即A口、B 口和C 口,对应于引脚PA7~PA0、PB7~PB0 和PC7~PC0。

其内部还有一个控制寄存器,即控制口。

通常A 口、B 口作为输入输出的数据端口。

C 口作为控制或状态信息的端口,它在方式字的控制下,可以分成4 位的端口,每个端口包含一个4 位锁存器。

它们分别与端口A/B配合使用,可以用作控制信号输出或作为状态信号输入。

8255引脚图74LS373 是一种带三态门的8D 锁存器,其管脚示意图如图1:其中:1D-8D 为8 个输入端。

1Q-8Q 为8 个输出端。

LE 为数据打入端:当LE 为“1”时,锁存器输出状态同输入状态;当LE 由“1”变“0”时,数据打入锁存器OE 为输出允许端:当OE=0 时,三态门打开;当OE=1 时,三态门关闭,输出高阻。

74LS373 芯片管脚图2.系统工作原理(1)开关键盘输入交通灯初始时间,通过8051 单片机P1 输入到系统(2)由8051 单片机的定时器每秒钟通过P0 口向8255 的数据口送信息,由8255 的PA口显示红、绿、黄灯的燃亮情况;由8255 的PC 口显示每个灯的燃亮时间。

(3)8051 设置各个信号灯的燃亮时间,通过8051 设置,绿、红时间分别为60 秒、80 秒循环,由8051 的P0 口向8255 的数据口输出。

(4)通过8051 单片机的P3.0 位来控制系统是工作或设置初值,当为0 就对系统进行初始化,为 1 系统就开始工作。

(5)红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S 后然后恢复正常。

(6)增加每次绿灯时间车流量检测的功能,并且通过查询P2.0 端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。

(7)绿灯时间倒计时完毕,重新循环。

三、软件设计1.秒脉冲的产生延时方法可以有两种一中是利用MCS-51 内部定时器才生溢出中断来确定1 秒的时间,另一种是采用软件延时的方法。

2.计数器硬件延时2.1 设置计数器初值定时器工作时必须给计数器送计数器初值,这个值是送到TH 和TL 中的。

他是以加法记数的,并能从全1 到全0 时自动产生溢出中断请求。

因此,我们可以把计数器记满为零所需的计数值设定为C 和计数初值设定为TC 可得到如下计算通式:TC=M-C式中,M 为计数器摸值,该值和计数器工作方式有关。

在方式0 时M 为213 ;在方式1 时M 的值为216;在方式2 和3 为282.2 计算公式T=(M-TC)T 计数或 TC=M-T/T 计数T 计数是单片机时钟周期TCLK的12 倍;TC 为定时初值;如单片机的主脉冲频率为TCLK12MHZ,经过12 分频:方式0:TMAX=213 *1微秒=8.192 毫秒方式1:TMAX=216 *1微秒=65.536 毫秒显然1秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题。

2.3 秒计时我们采用在主程序中设定一个初值为20 的软件计数器和使T0 定时50 毫秒.这样每当T0 到50 毫秒时CPU 就响应它的溢出中断请求,进入他的中断服务子程序。

在中断服务子程序中,CPU 先使软件计数器减1,然后判断它是否为零。

为零表示1秒已到可以返回到输出时间显示程序。

2.4 相应程序代码(1)主程序定时器需定时50 毫秒,故T0 工作于方式1。

初值:TC=M-T/ T 计数=216-50ms/1us=15536=3CB0HORG 1000HSTART: MOV TMOD, #01H ;令T0 为定时器方式1MOV TH0, #3CH ;装入定时器初值MOV TL0, #B0HMOV IE, #82H ;开T0 中断SEBT TR0 ;启动T0 计数器MOV R0, #14H ;软件计数器赋初值LOOP: SJMP $ ;等待中断(2)中断服务子程序ORG 000BHAJMP BRT0ORG 00BHBRT0:DJNZ R0,NEXTAJMP TIME ; 跳转到时间及信号灯显示子程序DJNZ:MOV R0,#14H ;恢复R0 值MOV TH0, #3CH ;重装入定时器初值MOV TL0, #B0HMOV IE, #82H3. 软件延时MCS-51 的工作频率为2-12MHZ,我们选用的8051 单片机的工作频率为6MHZ。

机器周期与主频有关,机器周期是主频的12 倍,所以一个机器周期的时间为12*(1/6M)=2us。

我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1 秒的时间。

具体的延时程序分析:DELAY : MOV R4 , #08H ;延时1 秒子程序DE2 : LCALL DELAY1DJNZ R4 , DE2RETDELAY1 : MOV R6 , #0 ;延时125ms 子程序MOV R5 , #0DE1 : DJNZ R5 , $DJNZ R6 , DE1RETDELAY1 为一个双重循环,循环次数为256*256=65536,所以延时时间为65536*2=131072us,约为 125ms。

DELAY 中R4 设置的初值为8,主延时程序循环8 次,所以125ms*8=1 秒。

由于单片机的运行速度很快其他的指令执行时间可以忽略不计。

4. 时间及信号灯的显示4.1 8051 并行口的扩展8051 虽然有4 个8 位I/O 端口,但真正能提供借用的只有P1 口,因为P2 和P0 口通常用于传送外部传送地址和数据,P3 口也有它的第二功能。

因此,8051 通常需要扩展。

由于我们用外部输入设定红绿灯倒计时初值、数码管的输出显示、红绿黄信号灯的显示都要用到一个I/O 端口,显然8051 的端口是不够,需要扩展。

扩展的方法有两种:(1)借用外部RAM 地址来扩展I/O 端口;(2)采用I/O 接口新片来扩充。

我们用8255 并行接口信片来扩展I/O 端口。

4.2 显示原理当定时器定时为1 秒,时程序跳转到时间显示及信号灯显示子程序,它将依次显示信号灯时间,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值,重新进入循环。

4.3 8255 PA 口输出信号接信号灯由于发光二极管为共阳极接法,输出端口为低电平,对应的二极管发光,所以可以用置位方法点亮红,绿,黄发光二极管。

4.4 8255 输出信号与数码管的连接LED 灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点量而显示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH 所以SP 上为0伏,不亮其余为TTL 高电平,全亮则显示为8。

4.5 8255 与8051 的连接用 8051 的P0 口的P0.7 连接8255 的片选信号cs 我们用8031 的地址采用全译码方式,当p0.7 =0 时片选有效,其他无效,P0.7 用于选择8255 端口。

P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0A7 A6 A5 A4 A3 A2 A1 A01 X X X X X 0 0 00H为8255的PA口1 X X X X X 0 1 01H为8255的PB口1 X X X X X 1 0 02H为8255的PC口1 X X X X X 1 1 03H为8255的控制口由于 8051 是分时对8255 和储存器进行访问所以8051 的P0 口不会发生冲突。

5. 程序设计图3 程序流程图程序源代码ORG 0000H ;主程序的入口地址LJMP MAIN ;跳转到主程序的开始处ORG 0003H ;外部中断0的中断程序入口地址 ORG 000BH ;定时器0的中断程序入口地址 LJMP T0_INT ;跳转到中断服务程序处ORG 0013H ;外部中断1的中断程序入口地址MAIN : MOV SP,#50HMOV IE,#8EH ;CPU开中断,允许T0中断,T1中断和外部中断1中断MOV TMOD,#51H ;设置T1为计数方式,T0为定时方式,且都工作于模式1MOV TH1,#00H ;T1计数器清零MOV TL1,#00HSETB TR1 ;启动T1计时器SETB EX1 ;允许INT1中断SETB IT1 ;选择边沿触发方式MOV DPTR ,#0003HMOV A, #80H ;给8255赋初值,8255工作于方式0MOVX @DPTR, AAGAIN: JB P3.1,N0 ;判断是否要设定东西方向红绿灯时间的初值,若P3.1为1 则跳转MOV A,P1JB P1.7,RED ;判断P1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间MOV R0,#00H ;R0清零MOV R0,A ;存入东西方向绿灯初始时间MOV R3,ALCALL DISP1LCALL DELAYAJMP AGAINRED: MOV A,P1ANL A,#7FH ;P1.7置0MOV R7,#00H ;R7清零MOV R7,A ;存入东西方向红灯初始时间MOV R3,ALCALL DISP1LCALL DELAYAJMP AGAIN;-------------------------------------------N0: SETB TR0 ;启动T0计时器MOV 76H,R7 ;红灯时间存入76HN00: MOV A,76H ;东西方向禁止,南北方向通行MOV R3,AMOV DPTR,#0000H ;置8255A口,东西方向红灯亮,南北方向绿灯亮 MOV A,#0DDHMOVX @DPTR, AN01: JB P2.0,B0N02: SETB P3.0CJNE R3,#00H,N01 ;比较R3中的值是否为0,不为0转到当前指令处执行;------黄灯闪烁5秒程序------N1: SETB P3.0MOV R3,#05HMOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮MOV A,#0D4HMOVX @DPTR,AN11: MOV R4,#00HN12: CJNE R4,#7DH,$ ;黄灯持续亮0.5秒N13: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭MOV A,#0DDHMOVX @DPTR,AN14: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续灭0.5秒CJNE R3,#00H,N1 ;闪烁时间达5秒则退出;------------------------------------------------------------N2: MOV R7,#00HMOV A,R0 ;东西通行,南北禁止MOV R3,AMOV DPTR,#0000H ; 置8255A口,东西方向绿灯亮,南北方向红灯亮 MOV A,#0EBHMOVX @DPTR,AN21: JB P2.0,T03N22: CJNE R3,#00H,N21;------黄灯闪烁5秒程序------N3: MOV R3,#05HMOV DPTR,#0000H ;置8255A口,东西,南北方向黄灯亮MOV A,#0E2HMOVX @DPTR,AN31: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续亮0.5秒N32: MOV DPTR,#0000H ; 置8255A口,南北方向黄灯灭MOV A,#0EBHMOVX @DPTR,AN33: MOV R4,#00HCJNE R4,#7DH,$ ;黄灯持续灭0.5秒CJNE R3,#00H,N3 ;闪烁时间达5秒则退出SJMP N00;------闯红灯报警程序------B0: MOV R2,#03H ;报警持续时间3秒B01: MOV A,R3JZ N1 ;若倒计时完毕,不再报警CLR P3.0 ;报警CJNE R2,#00H,B01 ;判断3秒是否结束SJMP N02;------1秒延时子程序-------N7: RETIT0_INT:MOV TL0,#9AH ;给定时器T0送定时10ms的初值MOV TH0,#0F1HINC R4INC R5CJNE R5,#0FAH,T01 ;判断延时是否够一秒,不够则调用显示子程序 MOV R5,#00H ;R5清零DEC R3 ;倒计时初值减一DEC R2 ;报警初值减一T01: ACALL DISP ;调用显示子程序RETI ;中断返回;------显示子程序------DISP: JNB P2.4,T02DISP1: MOV B,#0AHMOV A,R3 ;R3中值二转十显示转换DIV ABMOV 79H,AMOV 7AH,BDIS: MOV A,79H ;显示十位MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001HMOV A,#0F7HMOVX @DPTR,ALCALL DELAYDS2: MOV A,7AH ;显示个位MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001HMOV A,#0FBHMOVX @DPTR,ARET;------东西方向车流量检测程序------T03: MOV A,R3SUBB A,#00H ;若绿灯倒计时完毕,不再检测车流量 JZ N3JB P2.0,T03INC R7CJNE R7,#64H,E1MOV R7,#00H ;中断到100次则清零E1: SJMP N22;------东西方向车流量显示程序------T02: MOV B,#0AHMOV A,R7 ;R7中值二转十显示转换DIV ABMOV 79H,AMOV 7AH,BDIS3: MOV A,79H ;显示十位MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001HMOV A,#0F7HMOVX @DPTR,ALCALL DELAYDS4: MOV A,7AH ;显示个位MOV DPTR,#TABMOVC A,@A+DPTRMOV DPTR,#0002HMOVX @DPTR,AMOV DPTR,#0001HMOV A,#0FBHMOVX @DPTR,ALJMP N7;------延时4MS子程序----------DELAY: MOV R1,#0AHLOOP: MOV R6,#64HNOPLOOP1: DJNZ R6,LOOP1DJNZ R1,LOOPRET;------字符表------TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END程序运行结果:五、结论本系统充分利用了8051 和8255 芯片的I/O 引脚功能,系统采用MSC-51 系列单片机8051 和可编程并行I/O 接口芯片8255A 为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051 芯片的P1 口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5 秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。

相关文档
最新文档