基于单片机的交通灯课程设计报告[1]
- 格式:doc
- 大小:224.12 KB
- 文档页数:20
基于51单片机控制交通灯课程设计报告本设计课程使用STC89c52型号的芯片及相关元器件自己组装单片机最小系统,并编写程序用于控制交通信号灯。
1.STC89c52的芯片元器件的说明:STC89c52内置8位中央处理单元、256字节内部数据存储器RAM、8k片内程序存储器(ROM)32个双向输入/输出(I/O)口、3个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。
此外,STC89c52还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。
在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。
掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能,STC89c52在众多嵌入式控制应用系统中得到广泛应用。
2.STC89c52的功能是:·标准MCS-51内核和指令系统·片内8kROM(可扩充64kB外部存储器)· 32个双向I/O口· 256x8bit内部RAM(可扩充64kB外部存储器)· 3个16位可编程定时/计数器·时钟频率3.5-12/24/33MHz·向上或向下定时计数器·改进型快速编程脉冲算法· 6个中断源· 5.0V工作电压·全双工串行通信口·布尔处理器—帧错误侦测· 4层优先级中断结构—自动地址识别·兼容TTL和CMOS逻辑电平·空闲和掉电节省模式· PDIP(40)和PLCC(44)封装形式3.管脚说明VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
报告书干路—支路口交通信号灯控制器项目目的:通过对模拟交通灯控制系统的操作,让我们掌握定时器和中断系统的综合应用,进一步熟练51单片机的应用.项目要求:本项目主要通过感应开关控制交通灯的切换显示,实现主干路与支路车辆的分流。
(1)在正常情况下,主干道交通灯绿灯一直亮着。
(2)当支路检测到有车辆,60秒后,主干道禁止通行,支路放行。
(3)支路放行30 秒后,恢复正常情况。
项目电路如图:按键S1、S2模拟支路的车辆检测,当S1、S2为高电平(不按下按键)时,表示正常情况。
当S1或S2为低电平(按下按键)时,表示支路上有车辆,将S1、S2接到P3.0、P3.1把信号送入到单片机。
程序设计:源程序代码:#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar time,second,n,m;sbit k1=P3^0;sbit k2=P3^1;Uchar code Tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,0x90};//数码管显示0~9的段码表void delay(uint t){uchar i;while(t--)for(i=0;i<255;i++);}void shumaguan(uchar s){P2=0xfd;P0=Tab[s/10];delay(1);P2=0xfe;P0=Tab[s%10];delay(1);}void main(){IE=0x82;TMOD=0x01;TH0=(65536-50000)/16;TL0=(65536-50000)%16;while(1){ uchar j;P1=0xde;if(k1==0||k2==0){delay(500);if(k1==0||k2==0){time=40;TR0=1;for(second=60;second>0;)shumaguan(second);TR0=0;P2=0x00;P1=0xf3;delay(3000);for(j=0;j<2;j++){P1=0xfb;delay(200);P1=0xf3;delay(200);}P1=0xeb;delay(500);}}}}void ld() interrupt 1{TR0=0;time--;if(time==0){time=40;second--;if(second==5)P1=0xdf;if(second==4)P1=0xde;if(second==3)P1=0xdf;if(second==2)P1=0xdd;if(second==1)P1=0xdd;}TH0=(65536-50000)/16;TL0=(65536-50000)%16;TR0=1;}项目小结:本项目程序主要包括四部分:主函数、延时函数、数码管显示函数、中断函数。
单片机课程设计报告题目:交通灯院系电子工程学院专业:电子信息工程姓名:学号:指导教师:完成日期:2011年6月10日目录1 设计任务和性能指标 (1)1.1设计任务 (1)1.2性能指标 (1)2 设计方案 (2)2.1任务分析 (2)2.2方案设计 (2)3 系统硬件设计 (3)3.1单片机的最小系统 (3)3.3数码管显示时间电路设计 (4)3.4信号灯控制电路设计 (5)4 系统软件设计 (5)4.1主程序设计 (5)5 调试及性能分析 (6)5.1调试分析 (6)5.1.1 软件调试 (6)5.1.2 硬件调试 (6)5.1.3 系统功能调试 (6)6 心得体会 (6)参考文献 (8)附录1 系统原理图 (9)附录2 系统实物图 (10)附录3 程序清单 (11)1 设计任务和性能指标1.1设计任务利用单片机完成交通信号灯控制器的设计,该交通信号灯控制器由一条主干道和一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。
用红、绿、黄发光二极管作信号灯。
如图上图所示。
设东西向为主干道,南北为支干道。
1.2性能指标(1)处于常允许通行的状态,支干道有车来时才允许通行。
主干道亮绿灯时,支干道亮红灯;支干道亮绿灯时,主干道亮红灯。
(2)干道均有车时,两者交替允许通行,主干道每次放行60秒,支干道每次放行40秒,设立10秒计时、显示电路。
(3)信号灯有9种状态,分别为南北绿灯,东西红灯绿灯,倒计时10;南北绿灯闪烁,东西红灯;南北黄灯,东西红灯;南北红灯,东西黄灯;南北红灯,东西绿灯;南北红灯,东西绿灯闪烁;南北红灯,东西黄灯;南北黄灯,东西红灯;南北红灯南北东西.。
(4)紧急状态时,东西南北四个方向都为红灯。
2 设计方案2.1任务分析模拟交通灯控制器就是使用单片机来控制一些LED 和数码管,模拟真实交通灯的功能。
开题报告-基于单片机交通灯设计开题报告-基于单片机交通灯设计在人们越来越注重自身素养的今天,报告与我们愈发关系密切,我们在写报告的时候要注意涵盖报告的基本要素。
我敢肯定,大部分人都对写报告很是头疼的,以下是小编为大家整理的开题报告-基于单片机交通灯设计,供大家参考借鉴,希望可以帮助到有需要的朋友。
一、综述本课题国内外研究动态,说明选题的依据和意义当今社会,随着日益增长的社会发展,人们对于社活的水平也日益提高,不仅在物质享受方面有所提高,在精神享受方面也逐渐增长。
最明显的就是汽车的增长。
现在几乎每户人家都有一辆汽车,以至于道路经常堵塞,频繁出现交通事故。
由于这种状况的出现,这就要求能有效的管理交通,其中十字路口的交通灯起着巨大的作用。
因此,交通灯的有效控制能较好的缓解当前的交通堵塞压力。
一般的交通灯只有四盏红绿灯,红灯禁止,绿灯通行。
较好的交通灯不仅有红黄绿灯,还有可以让行人通行的行人路灯以及显示通行方向和时间的显示器。
其中主干道为双向的交通线路,垂直的辅路可供行人行走。
主干道上的红绿灯指挥车辆的行驶,辅路上的红绿灯指挥行人的通行与禁止。
但是这种交通灯还是不能满足当前的交通状况,要使车辆和行人能有条不紊的通行,就需要交通灯能根据车流量自动的调节时间,这样就可以提高通行的效率。
目前国内有一种新型的`无线十字路口交通灯智能感应控制系统,该系统的主机通过无线模块通信得到各方向从机采集的公路车辆实时流量信息并计算出十字路口交通动态配时。
该系统突破了传统固定配时模式,大大提高了十字路口车辆通行效率,缓解了交通阻塞,具有实际应用前景。
本设计采用51系列单片机设计智能交通灯,该系统由8051单片机、交通灯显示、LED倒计时、车辆检测及调整、违规检测、紧急处理、时间模式手动设置等模块组成。
系统除基本交通灯功能外,还具有通行时间手动设置、可倒计时显示、急车强行通过、车流量检测及调整、交通异常状况判别及处理等相关功能。
单片机交通灯实验报告(一)引言概述:交通灯是城市交通管理的重要组成部分,通过控制红绿灯的变化,实现车辆和行人的有序通行。
本文将详细介绍单片机交通灯实验的设计与实现,包括硬件设计、程序编写和实验结果分析。
正文:一、硬件设计1. 确定电路所需元件:单片机、LED灯、电阻等。
2. 组装硬件电路:按照电路图进行元件的连接,确保电路的正确连接。
3. 设计适当的电源:为单片机和LED灯提供稳定的电源。
二、程序编写1. 定义程序所需的IO口:确定控制LED灯的IO口。
2. 初始化单片机:设置单片机的工作频率和中断。
3. 设计交通灯的流程控制:根据实际的交通灯变化规律,设计程序的流程控制。
4. 编写交通灯控制的函数:使用if-else语句或switch-case语句编写函数控制交通灯的变化。
5. 调试程序:通过单片机调试工具或仿真软件,检查程序运行的正确与否。
三、实验结果分析1. 观察实验现象:通过实验现场观察交通灯的变化,记录每一种灯亮的时间和顺序。
2. 分析实验结果:根据实验记录,分析交通灯的工作原理和实现的准确性。
3. 比较与设计要求的符合度:将实验结果与设计要求进行比较,评估实验的完成度。
4. 探讨存在问题与改进方向:分析实验中可能存在的问题,并提出改进措施。
四、小结本文介绍了单片机交通灯实验的设计与实现。
通过硬件设计和程序编写,实现了交通灯的变化控制。
通过实验结果分析,我们可以得出实验的有效性和可行性。
当然,实验中也存在一些问题,需要进一步改进。
在后续的实验中,我们将进一步完善交通灯的控制,提高其实际应用的稳定性和可靠性。
总结:本文详细介绍了单片机交通灯实验的设计与实现,包括硬件设计、程序编写和实验结果分析。
通过该实验,我们对交通灯的工作原理和控制方法有了更为深入的了解,并对实验的经验和教训进行了总结。
相信在今后的学习和实践中,我们能够更好地应用单片机技术,为实现交通管理的智能化和高效化作出贡献。
单片机课程设计报告-交通信号灯控制系统设计————————————————————————————————作者:————————————————————————————————日期:单片机课程设计报告一、设计目的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。
目录一•交通灯课程设计功能描述 (2)1.1芯片简介 (2)1.2技术指标 (4)二•课程设计分析设计 (4)2.1设计分析 (4)三•绘制硬件图并对硬件电路进行说明 (4)3.1 MCS-51单片机内部结构 (5)3.2 MCS-51单片机芯片引脚位置及功能符号如下图所示 (6)3.3 51系列单片机运行的硬件条件 (6)3.4单片机的特点与应用 (7)四•绘制软件流程图并对软件流程图进行说明 (7)4.1软件设计 (7)4.2电路连接分配 (8)4.3 主程序流程图 (8)五•程序的源代码清单 (9)六•上机调试运行结果及分析 (13)七•课程设计的经验教训总结 (14)参考文献 (15)一•交通灯课程设计功能描述红黄绿交通灯控制器采用单片机及程序存储器的扩展控制,实现控制器的功能要求,例如红黄绿灯的交替闪烁,定时等等。
单片机将CPU,存储器,定时器/计数器及各接口电路组成,具有良好的性价比。
本控制器可分时段进行道路的管制,还可在紧急时刻进行手动控制,实施道路路况的控制。
交通信号灯控制方式很多。
本系统采用MSC-51系列单片机ATSC51和可编程并行I/O接口芯片8255A为中心器件来设计交通灯控制器,实现了能根据实际车流量通过8051 芯片的P1 口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩5秒时黄灯闪烁警示(交通灯信号通过PA口输出,显示时间直接通过8255的PC 口输出至双位数码管);车辆闯红灯报警;绿灯时间可检测车流量并可通过双位数码管显示。
本系统实用性强、操作简单、扩展功能强。
1.1 芯片简介MSC-51芯片简介8051是MCS-51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。
8051单片机包含中央处理器、程序存储器(ROM)数据存储器(RAM)定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
单片机交通灯实验报告实验目的:1.熟悉单片机的基本工作原理和编程方法。
2.学习如何使用单片机控制交通灯的运行。
3.加深对电子元器件和电路原理的理解和掌握。
实验器材:1.51系列单片机开发板:包括单片机主控板、显示器板、外部扩展板等。
2.LED灯:红色、黄色、绿色各一颗。
3.电阻:用于限流。
4.连接线:用于连接各个电子元器件。
实验原理:在交通中,红灯代表停止、黄灯代表警告、绿灯代表通行。
在本实验中,我们将使用单片机控制三个LED灯实现交通灯的运行。
具体原理如下:1.使用单片机的IO口控制LED灯的亮灭。
2.根据交通灯的运行状态,通过改变LED灯的亮灭顺序来模拟交通的运行。
实验步骤:1.连接电路:将三个LED灯连接到单片机的IO口,并通过电阻限流。
2.编写程序:使用C语言编写程序,在主函数中设置交通灯的运行状态和亮灭顺序。
3.烧写程序:将编写好的程序烧写到单片机中。
4.运行实验:启动单片机,观察LED灯的亮灭情况,验证交通灯是否能正常工作。
实验结果:经过实验,我们成功地实现了单片机交通灯的控制。
在程序运行过程中,红灯先亮,表示停止;然后黄灯亮,表示警告;最后绿灯亮,表示通行。
整个过程循环不断,符合实际交通灯的运行规律。
实验总结:通过这次实验,我深入了解了单片机的基本工作原理和编程方法,掌握了使用单片机控制交通灯的技巧。
同时,我也加深了对电子元器件和电路原理的理解和掌握。
这些知识将对我今后的学习和工作产生积极影响。
然而,在实验过程中也遇到了一些问题。
比如,如果LED灯连接不正确或程序编写有误,交通灯可能无法正常运行。
因此,在进行单片机实验时,我们需要仔细检查电路连接和程序编写,确保一切正常。
总之,单片机交通灯实验是一次充满趣味和挑战的实践活动。
通过这次实验,我不仅学到了许多知识,而且培养了动手能力和实践能力。
希望将来能有更多这样的实验机会,继续提升自己的电子技术水平。
模拟交通灯控制系统的设计一、功能要求利用红、绿、黄三种不同颜色的LED显示不同的通行情况,利用2个数码管进行1秒倒计时显示,最大定时时间为90秒;要求LED点亮时间和倒计时时间准确;完成单片机最小系统及其扩展设计,焊接电路板,组成功能完整的样机。
模拟实际交通灯控制系统功能,完成控制软件的编写与调试。
二、方案论证采用标准AT89C51单片机作为控制器;东、西、南、北各方向通行倒计时显示采用2位LED数码管,LED显示采用直接驱动方式;模拟交通信号灯采用直径为ψ5mm的圆形发光二极管;紧急车辆通行采用实时中断完成;通过蜂鸣器实现盲人提示功能。
按以上系统构架设计,单片机端口资源刚好满足要求,该系统设计方便,电路简单。
三、系统硬件电路的设计整套电路系统由控制系统模块、通行灯控制显示模块、时间显示模块、特种车辆通行控制模块和盲人提示电路模块等组成。
1、主控制系统主控制器采用AT89C51单片机的P1.0~P1.5脚用于控制东西及南北方向的通行灯,P1.6脚用于控制盲人提示电路;P0口及P2 口用于4组2位LED计时器的控制;特种车辆通过时使用外部中断0口(P3.2).5、盲人提示电路模块道口控制系统设计中也考虑到了方便盲人过人行道的声音提示电路,采用蜂鸣器作为声括信号灯提示、数码管倒计时显示、盲人提示功能和紧急车辆通行功能等)。
1、初始化程序初始化程序主要包括声明IO口的连接对象、声明7段LED数码管驱动信号数组、声明基本变量、定义无返回函数(延时函数)。
2、主程序主程序主要负责总体程序管理功能,实现信号灯显示与数码管倒计时显示,以及蜂鸣器提示和特种车通行提示。
主程序流程图如下子程序流程图如下状态1状态2状态4 状态5五、调试及性能分析1、硬件部分首先应用Proteus软件对电路原理图进行检查,检查无误后进行焊接,焊接结束后利用万用表检查线路是否为通路。
2、软件部分首先应用keil u4软件对程序进行编译和调试,调试成功后,利用Proteus 软件进行在线仿真,经过对程序多次地修改后,仿真效果达到了预期的要求。
单片机课程设计报告--基于单片机的交通灯控制系统单片机原理及系统课程设计报告单片机原理及系统课程设计评语:考勤(10)守纪(10)过程(40)设计报告(30)答辩(10)总成绩(100)专业:自动控制班级:姓名:学号:指导教师:兰州交通大学自动化与电气工程学院20XX年3月7日9基于单片机的交通灯控制系统摘要当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。
因此,一个好的交通灯控制系统将在道路拥挤等交通状况方面给予技术革新。
本文主要介绍了一个基于89C52单片机的交通灯控制系统,详细介绍了利用89C52设计并仿真实现交通灯控制系统的过程,重点对硬设计、软编程、调试分析以及各模块系统流程进行了详细分析,对各部分的电路也一一进行了介绍。
本电路由AT89C52单片机、按键、数码管和LED灯组成,并在Protues软上实现仿真。
关键词:交通控制;单片机;AT89C52Abstractagesisan automation ages nowadays andtraffic light controlswaitingalotof equipments of professions isclosely relatedcalculator. Therefore,agoodtrafficlightcontrolsystemwillhustleforroad,givetechnique innovation.Thispaperdescribesa89C52microcontroller-based trafficlightsystem,detailed descriptionoftheuse89C52 development processofthetrafficlightcontrol system.Focusonadetailed analysisofthedesign,software programming,analysis anddebuggingprocessofthemodularsystem,onthepartofthecircuitareintroducedonebyone.ThecircuitismadeupofAT89C52microputer,keyboard,digital tubeandLEDldisplayandrealizesimulationintheProtuessoftware.Keywords:TrafficControl;SingleChipMicroputer;AT89C521引言信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力、减少交通事故有明显效果。
单片机原理及接口技术课程设计报告基于单片机的交通灯姓 名: 江良猛 学 号: 201315310109 指导教师: 尹相雷 学 院: 机电工程学院 专 业: 机械设计制造及其自动化完成日期: 2014年6月25日目录第一章概述 ............................................................................................................ - 2 -1.1 设计背景................................................................................................... - 2 -第二章系统总体方案及硬件设计 ........................................................................ - 3 -2.1 AT89S52单片机简介................................................................................ - 3 -2.2 系统硬件电路的设计............................................................................... - 3 -第三章软件设计 .................................................................................................... - 6 -3.1 交通灯的设计程序流程图....................................................................... - 6 -第四章 Proteus软件仿真 ..................................................................................... - 7 -4.1 仿真图....................................................................................................... - 7 -4.2 仿真步骤................................................................................................... - 7 -第五章课程设计体会 ............................................................................................ - 9 -第一章概述1.1 设计背景如今随着人们生活水平的提高,车辆越来越多,交通事故频繁发生。
交通信号灯的出现,使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。
交通灯在城市交通中起着重要的作用,它与人们日常生活密切相关,是人们出行的安全保障。
因此提供一个可靠、安全、便捷的多功能交通灯控制系统有着现实的必要性。
为了解决这些问题,我们更应该提高交通控制和管理水平,合理使用现有交通设施,充分发挥其能力,提高交通效率,促进和谐交通的建立。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
本系统设计一个基于单片机的交通灯控制系统。
能方便的对交通灯进行控制,使交通更和谐。
1.2设计任务1)设计一个十字路口的交通灯控制电路,要求南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒,时间可设置修改。
2)在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;3)黄灯亮时,要求每秒闪亮一次。
4)东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用显示器进行显示(采用计时的方法)。
5)一道有车而另一道无车(实验时用开关K0 和K1 控制),交通灯控制系统能立即让有车道放行。
6)有紧急车辆要求通过时,系统要能禁止普通车辆通行,A、B道均为红灯,紧急车由K2 开关模拟。
第二章系统总体方案及硬件设计2.1 AT89S52单片机简介AT89S52是一种低功耗、高性能CMOS8位微控制器。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
鉴于以上的优点本系统采用AT89S52作为主控芯片,实现对整个系统的控制。
2.2 系统硬件电路的设计(1)时钟电路设计图2-1时钟电路原理图如图2-1所示,采用内部时钟产生方式,在XTAL1和XTAL2两端跨接晶体或陶瓷振荡器,与内部反相器构成稳定的自击荡器。
其发出的时钟脉冲直接送入片内定时控制部件。
(2)复位电路设计图2-2上电+按钮电平复位电路原理图如图2-2所示,采用上电+按钮电平复位方式,当按下按钮时,RST管脚高电平触发。
为保证复位可靠,RC时间常数应大于两个机器周期,一般电容去22uF,电阻取1K。
(3)灯控制电路设计图2-3交通灯状态显示电路如图2-3所示,交通灯状态显示电路由东西南北四个方向各三个LED灯组成,分别显示四个方向上红、黄、绿三个状态,用以指示十字路口各方向车辆的行驶。
通过软件编程,可使路口交通变化情况为:南北方向(主干道)车道和东西方向(支干道)车道两条交叉道路上的车辆交替运行,主干道每次通行时间都设为30秒、支干道每次通行间为20秒;在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道;黄灯亮时每秒闪亮一次。
(4)倒计时显示电路设计图2-4 数码管显示电路原理图如图2-4所示,由一个共阳极四位数码管来实现倒计时。
由于P0口输出电流小,需外接上拉电阻,COME端接5V电源。
(5)按键控制电路设计图2-5键盘电路原理图如图2-5所示,开光控制由PD1-PD5四个连接到单片机的控制按钮组成。
通过软件编程,按下PD1电路进入外部中断响应,数码显示时间将停止倒计时,此时,可通过按钮PD3和PD4设置通行时间,每按一下PD3时间增加1s,而按下PD4时间减少1s。
按下PD5将使程序重新进入循环点亮状态。
第三章软件设计3.1 交通灯的设计程序流程图Y第四章Proteus软件仿真4.1 仿真图4.2 仿真步骤(1)根据电路图选择器件连接电路(2)双击AT89S52装入源程序编译生成的HEX文件(3)单击运行按钮运行仿真(4)根据仿真情况与程序实现任务对比,对于不能实现的任务修改并调试程序,重新装载重新运行调试仿真,直到能完全实现所要求的功能为止(5)进一步改进和简化程序在进行调试仿真第五章课程设计体会通过这次单片机实训课程学习,才深刻体会到自己实际操作能力的匮乏。
从刚开始老师对单片机的整体介绍及其应用前景,对单片机产生了浓厚的兴趣,并利用自己的课余时间提前学习有关单片机的基本知识。
但空有理路知识,却无半点的实际操作经验。
后来在老师的建议下,选择运用单片机设计一个交通灯控制系统,从简单开始,后期逐步复杂化。
从给定电路图的分析到实际电路元件的识别、焊接,再到后期的程序设计以及系统调试,初步掌握了运用单片机系统设计特定功能的设计步骤,也对单片机有了更深的体会。
了解和掌握了一些简单的编程思想,对单片机各管脚的功能,I/O 口的使用条件都有了更深的理解。
这次的课程设计让我把单片机的理论知识运用的实践中,实现了理论与实践的相结合,从中更懂得了理论是实践的基础,实践更能检验理论的真实性,让我受益匪浅。
参考文献[1] 李朝青.单片机原理及接口技术(修订版).北京:北京航空航天大学出版社,1998[2] 李广弟.单片机基础.北京:北京航空航天大学出版社,1992[3] 何立民.单片机应用技术大全.北京:北京航空航天大学出版社,1994[4] 张毅刚. 单片机原理及接口技术.哈尔滨:哈尔滨工业大学出版社,1990[5] 谭浩强.单片机课程设计. 北京:清华大学出版社,1989[6] 余发山.单片机原理及应用技术焦作:中国矿业大学出版社,2007附录1 源程序代码//#include<REG51.H>#include<AT89X51.H> // 对单片机的口进行了定义#define uint unsigned int#define uchar unsigned charuchar code a[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段码组合,共阴极uchar code b[4]={0xfe,0xfd,0xfb,0xf7}; //位码组合低有效uchar code c[4]={0xcc,0xd4,0x78,0xb8};/*P1 绿红、黄红、红绿、红黄*///12MHz//******************************************************************** *****************uchar NB=25,DX=30,NBG=25,DXG=15,H=5; /*数码管显示值设置*/ uchar i,k=0,cnt=0,j=0;sbit K0=P3^5; /*支干道通行*/sbit K1=P3^6; /*主干道通行*/sbit K4=P3^7; /*返回*/sbit K3=P3^2; /*设置时间*/sbit K2=P3^3; /*紧急刹车*/void delay(uchar t); /*定义延时程序*/void key(); /*定义键盘程序*/void display(); /*定义显示程序*/void settime(); /*定义时间设置显示程序*///*************************程序初始*********************************************void init(void){TMOD=0x01; /*使用定时器0模式一*/TH0=0x3c; /*(65536-5000)/256*/TL0=0xb0; /*(65536-5000)%256*/IT0=1; //开中断ET0=1;TR0=1;EA=1;EX0=1;EX1=1;P1=c[k]; //开启交通灯}//*************************中断0处理程序***************************************void int0(void) interrupt 0 // 通行时间设置{EA=0;P1=0xd8; /*红灯全亮*/for(;;){settime();if(K1==0) /*P3^6=0设置主干道通行时间*/ {delay(40);if(K1==0){while(!K1){settime();}NBG++; /*主干道通行时间加1*/if(NBG==100)NBG=0;}}if(K0==0) /*P3^5=0设置支干道通行时间*/ {delay(40);if(K0==0){while(!K0){settime();}DXG++; /*支干道通行时间加1*/if(DXG==100)DXG=0;}}if(K4==0) /*P3^7=0返回*/{delay(40);if(K4==0){while(!K4){}k=0;P1=c[k];NB=NBG,DX=NBG+H;display();EA=1;break;}}}}/***********************************中断1处理程序******************** void int1(void) interrupt 2 //紧急情况{/*东西南北红灯亮*/EA=0;TR0=!TR0; /*停止计数*/for(;;) /*主支干道显示全为0*/{ P1=0xd8,P0=a[0];P2=0xfe;delay(20);P2=0xfd;delay(20);P2=0xfb;delay(20);P2=0xf7;delay(20);if(K4==0) /*返回*/{delay(20);EA=1;P1=c[k]; /*返回紧急前状态开始计数*/TR0=!TR0; /*重启计数*/break;}}}void time1(void) interrupt 1 /*交通灯控制程序*/{TH0=0x3c; /*定时50ms*/TL0=0xb0;cnt++;if(cnt>=20) /*每20*50ms=1s自减一*/ {NB--;DX--;cnt=0;if(NB==0||DX==0){k++;if(k>3) /*k取0,1,2,3*/k=0;switch(k){case 0:NB=NBG,DX=NBG+H;j=0;P1=c[k];break; /*主干道通行显示绿红*/case 1:NB=H;j=1;P1=c[k];break; /*主干道黄灯闪烁*/case 2:NB=DXG+H,DX=DXG;j=0;P1=c[k];break; /*支干道通行显示红绿*/case 3:DX=H;j=2;P1=c[k];break; /*支干道黄灯闪烁*/}}}}void delay(uchar t) //延时程序延时0.1*nms{uchar i;do{for(i=0;i<20;i++);;;} while(t--);}void settime(){P2=0xfe,P0=a[(NBG+H)%10]; /*显示主干道通行时间*/delay(20);P2=0xfd,P0=a[(NBG+H)/10];delay(20);P2=0xfb,P0=a[(DXG+H)%10]; /*显示支干道通行时间*/delay(20);P2=0xf7,P0=a[(DXG+H)/10];delay(20);}void key() //键盘程序用KO K1模拟一道有车一道无车{if(K1==0) /*主干道有车支干道无车*/ {delay(40);if(K1==0){while(!K1){display();}k=0,P1=c[k];cnt=0;NB=NBG, DX=NBG+H;display();}}if(K0==0) /*支干道有车主干道无车*/{delay(40);if(K0==0){while(!K0){display();}k=2,P1=c[k];cnt=0;NB=DXG+H,DX=DXG;display();}}}void display() //显示程序{P2=0xfe,P0=a[NB%10]; /*由k的不同值进入确定显示数值*/delay(20);P2=0xfd,P0=a[NB/10];delay(20);P2=0xfb,P0=a[DX%10];delay(20);P2=0xf7,P0=a[DX/10];delay(20);}void main(void){ //主程序init();for(;;){display();key();//黄灯闪烁程序while(j==1) /*主干道黄灯闪烁*/{P1=0xdc; /*给黄灯一高电平黄灯灭*/for(i=83;i>0;i--){display();} /*执行for循环延时*/P1=c[k]; /*再给黄灯一低电平黄灯亮*/for(i=83;i>0;i--){display();}}while(j==2){ /*支干道黄灯闪烁*/ P1=0xf8;for(i=83;i>0;i--){display();}P1=c[k];for(i=83;i>0;i--){display();}}}}附录2 系统原理图。