1、XXXXX学院毕业设计XXXX学院毕业设计(论文)课题名称 交通信号灯模拟控制系统 学生姓名 X X X 学 号 XXXXXXXXXXXXX 系 别 自动化工程系 专业班级 机电一体化X班 指导教师 X X 技术职务 讲 师 XXXXXX学院教务处制XXXXX学院毕业设计(论文)任务书学生姓名XXX学 号XXXXXXXXXXX指导教师XXX技术职务讲师 课题名称基于51单片机设计交通信号灯模拟控制系统课题内容用51单片机设计一个十字路口的红、绿、黄交通信号灯控制系统,要求如下:1、用红、绿、黄三色发光二极管作信号灯。只考虑一条道路相对的两个方向,每个方向有红、绿、黄三个灯。红灯亮禁止通行,绿灯
2、亮允许通行,每隔30秒红绿灯交替变化。在每次由绿灯亮变成红灯亮或者由红灯亮变成绿灯亮的交替变化转换时要求黄灯闪烁5秒,给行驶中的车辆有时间停靠到禁行线之外;2、能实现正常的计时显示功能。用倒计时方法显示红灯、绿灯、黄灯还需亮的时间;3、能实现控制器总清零功能。 按下某个键后,系统实现总清零,计数器由初始状态开始计数,对应状态的指示灯亮。相关要求1)有完整的硬件检测电路2)有必要的程序流程图与单片机系统设计3)上位机程序的编写或规划4)要求格式正确,模块完整进度安排第五学期第2周学生完成设计开题报告第五学期第3-5周学生完成毕业设计初稿,指导教师给予修改建议。第五学期第6-16周学生全部完成毕业
3、设计,并上交给指导教师。第六学期第4周指导教师完成毕业设计(论文)评阅,指导教师完成毕业设计评阅,第六学期7-11周 各系对毕业设计进行抽答辩和评定成绩。并将最后评定的成绩登录上网。指导教师:XXX 2016年 9月 5 日XXXXX学院毕业设计(论文)开题报告学生姓名XXX学 号XXXXXXXXXXX系 别自动化工程系专业班级机电一体化技术X班指导教师XXX技术职务讲师课题名称基于51单片机设计交通信号灯模拟控制系统阅读中外文献资料情况1 李亚伯等编著,数字电路与系统,北京:电子工业出版社,2001年6月出版130-1502 李双庆等编著,常用半导体器件简明手册,北京:电子工业出版社,198
4、9年6月出版 53-843 徐建仁主编,数字集成电路应用与实验,长沙:国防科技大学出版社,1990年2月出版, 66-1234 郝鸿安编著,常用数字集成电路应用手册,北京:中国计量出版社,1987年10月出版, 153-197立题依据及主要内容在当今电子信息发达的时代,在各界领域都能发现各种单片机控制系统的应用,如:工厂、火车站、医院.可想而知单片机控制系统的实用性、广泛性,单片机控制系统不仅成本低、体积小、应用简便等优点,而且便于更换。基于AT89C51单片机的性能参数和工作原理,应用Keil单片机编译软件的C语言编程以及使用该软件开发单片机程序,说明设计的交通信号灯模拟控制系统的工作原理、
5、程序流程和硬件结构等相关技术,指出该系统的特点。设计方案或论文提纲设计一种基于AT89C51超低功耗单片机的交通信号灯模拟控制系统,详细阐明交通信号灯模拟控制系统的工作原理,实现了一般交通信号灯控制系统的主要功能及要求,具有实用性。而以一般情况下的交叉十字路口的交通情况为背景,设计并介绍一种通用性很强的交通信号灯模拟控制系统,最终完成系统的仿真达到了设计目标。毕业设计(论文)工作计划2016年9月份确定选题、9月20号完成初稿、9月30号交给指导老师进行考核修正、10月下旬再将修改设计交给指导老师评定指导教师审核意见指导教师签字:年 月 日用51单片机设计交通信号灯模拟控制系统 机电一体化X班
6、 XXX 指导老师:XXX摘要:城市交通信号灯模拟控制系统模拟了能够对信号灯进行远程投时的城市十字路口控制系统功能。借助于单片机开发板上的已有资源,构建了模拟实际系统功能的单片机扩N82C55控制LED灯模块、8位七段数码管显示控制模块和板上扩展接线模块。在分析实际系统工作流程的基础上,给出了针对单片机开发板的模拟系统C51控制程序流程。用于实际系统时,只需要将代码移植到现场设备并进行具体设置和适当修改即可,可以在满足客户需求的前提下最小化系统开发成本。交通信号灯模拟控制系统模拟了能够对信号灯进行远程授时的城市十字路口控制系统功能。基于AT89C51单片机的性能参数和工作原理,应用Keil单片
7、机编译软件的C语言编程以及使用该软件开发单片机程序,说明设计的交通信号灯模拟控制系统的工作原理、程序流程和硬件结构等相关技术,指出该系统的特点。设计一种基于AT89C51超低功耗单片机的交通信号灯模拟控制系统,详细阐明了交通信号灯模拟控制系统的工作原理,实现了一般交通信号灯控制系统的主要功能及要求,具有实用性。该系统充分利用了AT89C51单片机的特点,使用现今单片机广泛采用的C语言编制了系统程序,并利用Keil uVision3软件进行编译运行,最终通过Proteus完成了模拟控制系统的仿真。关键词:AT89C51单片机 Keil单片机编译软件 仿真软件Proteus 6 C语言 交通灯 X
8、XXXX学院毕业设计(论文)指导记录表学生姓名XXX学 号XXXXXXXXXXX系 别自动化工程工程系专业班级2014级机电一体化X班指导教师XXX技术职务讲师课题名称基于51单片机设计交通信号灯模拟控制系统第一次指导情况 指导教师签字:年 月 日第二次指导情况 指导教师签字:年 月 日注:指导情况须填明学生在毕业设计(论文)撰写过程中存在的问题,指导教师要求修改的内容或改进措施。指导情况填写不包括下达任务书和开题报告意见。XXXXX学院毕业设计(论文)初评成绩表学生姓名XXX学 号XXXXXXXXXXX系 别自动化工程系专业班级2014级机电一体化X班指导教师XXX技术职务讲师课题名称基于5
9、1单片机设计交通信号灯模拟控制系统指导教师意见评 语:指导教师签字: 年 月 日初评成绩:指导教师签字: 年 月 日XXXXX学院毕业设计(论文)成绩评定表学生姓名XXX学 号XXXXXXXXXXX系 别自动化工程系专业班级2014级机电一体化X班指导教师XXX技术职务讲师课题名称基于51单片机设计交通信号灯模拟控制系统评阅教师意见评阅评语:评阅成绩:评阅教师签字: 年 月 日答辩小组意见答辩评语:答辩成绩:答辩小组成员签字: 年 月 日系毕业设计(论文)评审委员会意见评定成绩系毕业设计(论文)评审委员会主任签字: 年 月 日目 录引言11AT89C51单片机的性能参数和工作原理21.1AT8
10、9C51单片机的简要介绍21.1.1 8051单片机的基本结构21.1.2 51单片机管脚说明41.1.3 各端口工作原理讲解61.1.4 51单片机的时钟及复位101.2定时器、计数器的基本结构及工作原理132基于Keil单片机编译软件的C语言编程以及使用该软件开发单片机程序的方法142.1 基于Keil单片机编译软件的C语言编程142.1.1 Keil单片机编译软件的简单介绍142.1.2 Keil单片机编译软件的使用143交通信号灯模拟控制系统的工作原理、程序流程和硬件结构介绍183.1交通信号灯模拟控制系统的工作原理的讲解183.2交通信号灯模拟控制系统的硬件结构介绍184交通信号灯模
11、拟控制系统的工作测试仿真介绍204.1仿真软件Proteus 6简介204.2交通信号灯模拟控制系统的工作测试仿真204.2.1 控制系统程序分析20结论29致谢:30参考文献:31引言2005年最新统计数据表明,在中国每5分钟就有一人丧身车轮,每一分钟都会有一人因为交通事故儿伤残。每年因交通事故所造成的的经济损失达数百亿元。为了减少交通事故,如今交通红绿灯已经安装在各个交通路口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,
12、英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成,1914年始安装于纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。1918年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一种是把压力探测器安在地下,车辆一接近红灯便变为绿灯;另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面
13、时,它就能察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故本文以一般情况下的交叉十字路口的交通情况为背景,设计并介绍一种通用性很强的交通信号灯模拟控制系统,最终完成系统的仿真达到了设计目标。系统的核心是AT89C51超低功耗单片机,利用Keil软件进行控制程序的开发来对交通信号灯模拟控制系统的模拟及控制。文中详细阐述了AT89C51单片机的性能参数和工作原理,并介绍了基于Keil单片机编译软件的C语言编程以及使用该软件开发单片机程序的方法,说明了设计的交通信号灯模拟控制系统的工作原理、程序流程和硬件结构等相关技术,指出了该系统的特点。另外,文中还简单介绍
14、了电子仿真软件Proteus 6的特点及使用方法。1AT89C51单片机的性能参数和工作原理1.1AT89C51单片机的简要介绍微控制器是交通信号灯模拟控制系统的核心,它完成对模拟信号的输入接受处理和控制信号的输出控制外部设备的功能。AT89系列单片机是通用性强、功耗小、使用广泛、性能优良的微处理芯片。考虑本设计的具体设计要求,选择AT89C51单片机作为控制核心,它是高性能8位微处理芯片,兼容MCS-51,具有4KB的FLASH存储空间,32个全双工可编程I/O口,两个16位的定时器/计数器以及6个中断源等特点,大大的简化了系统设计。1.1.1 8051单片机的基本结构在介绍单片机的内部结构
15、之前,我们先了解下我们现在正在使用的计算机五个组成部分:运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行;控制器:是计算机的控制指挥部件,使计算机各部份能自动协调的工作;存储器:用于存放程序和数据;(又分为内存储器和外存储器,内存储器就如我们电脑的硬盘,外存储器就如我们的U盘)输入设备:用于将程序和数据输入到计算机(例如我们电脑的键盘、扫描仪);输出设备:输出设备用于把计算机数据计算或加工的结果以用户需要的形式显示或保存(例如我们的打印机)。注:1、通常把运算器和控制器合在一起称为中央处理器(Central Processing Unit),简称CPU。2、通常把外存储器、输入设
16、备和输出设备合在一起称之为计算机的外部设备。典型系列单片机是由下图所示的器件组成的:1 中央处理器(CPU):刚刚讲过,需要提醒的是MCS-51的CPU能处理8位二进制数或代码;2 内部数据存储器(RAM):8051芯片共有256个RAM单元,其中后128单元被专用寄存器占用(稍后我们详解),能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。地址范围为00HFFH(256B)。是一个多用多功能数据存储器,有数据存储、通用工作寄存器、堆栈、位地址等空间。3 内部程序存储器(ROM):在前面也已讲过,8051内部有4KB
17、的ROM,用于存放程序、原始数据或表格。因此称之为程序存储器,简称内部RAM。地址范围为0000HFFFFH(64KB)。4 定时器/计数器8051共有2个16位的定时器/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。定时时靠内部分频时钟频率计数实现,做计数器时,对P3.4(T0)或P3.5(T1)端口的低电平脉冲计数。5 并行I/O口MCS-51共有4个8位的I/O口(P0、P1、P2、P3)以实现数据的输入输出。6 串行口MCS-51有一个全双工的串行口,以实现单片机和其它设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为移位器使用。
18、RXD( P3.0)脚为接收端口,TXD(P3.1)脚为发送端口。7 中断控制系统MCS-51单片机的中断功能较强,以满足不同控制应用的需要。共有5个中断源,即外中断2个,定时中断2个,串行中断1个,全部中断分为高级和低级共二个优先级别。8 时钟电路MCS-51芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率为12MHZ。1.1.2 51单片机管脚说明MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照-单片机引脚图:l P0.0P0.7 P0口8位双向口线(在引脚的3932号端子)。l P1.0P1.7 P1口8位双向口线(
19、在引脚的18号端子)。l P2.0P2.7 P2口8位双向口线(在引脚的2128号端子)。l P3.0P3.7 P2口8位双向口线(在引脚的1017号端子)。这4个I/O口具有不完全相同的功能,需要不同等待。P0口有三个功能:1、外部扩展存储器时,当做数据总线(如图1中的D0D7为数据总线接口)2、外部扩展存储器时,当作地址总线(如图1中的A0A7为地址总线接口)3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口只做I/O口使用:其内部有上拉电阻。P2口有两个功能:1、扩展外部存储器时,当作地址总线使用2、做一般I/O口使用,其内部有上拉电阻;P3
20、口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的,即:编程脉冲:30脚(ALE/PROG)编程电压(25V):31脚(EA/Vpp)。ALE 地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。参见图2(8051扩展2KB EEPROM电路,在图中ALE与4LS373锁存器的G相连接,当CPU对外部进行存取时,用以锁住地址的低位地址
21、,即P0口输出。由于ALE是以晶振六分之一的固定频率输出的正脉冲,当系统中未使用外部存储器时,ALE脚也会有六分之一的固定频率输出,因此可作为外部时钟或外部定时脉冲使用PSEN 外部程序存储器读选通信号:在读外部ROM时PSEN低电平有效,以实现外部ROM单元的读操作。1、内部ROM读取时,PSEN不动作;2、外部ROM读取时,在每个机器周期会动作两次;3、外部RAM读取时,两个PSEN脉冲被跳过不会输出;4、外接ROM时,与ROM的OE脚相接。EA/VPP 访问和序存储器控制信号1、接高电平时:CPU读取内部程序存储器(ROM)扩展外部ROM:当读取内部程序存储器超过0FFFH(8051)1
22、FFFH(8052)时自动读取外部ROM。2、接低电平时:CPU读取外部程序存储器(ROM)。3、8751烧写内部EPROM时,利用此脚输入21V的烧写电压。RST 复位信号:当输入的信号连续2个机器周期以上高电平时即为有效,用以完成单片机的复位初始化操作。XTAL1和XTAL2 外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VCC:电源+5V输入VSS:GND接地。1.1.3 各端口工作原理讲解P0端口:总线IO端口,双向,三态,数据地址分时复用,该端口除用于数据的输入输出外,在8031单片机外接程序存储器时,还分时地输出输
23、入地址指令。由Po端口输出的信号无锁存,输入的信息有读端口引脚和读端口锁存器之分。P0端口8位中的一位结构图见下图:PO口的结构及工作原理由上图可见,P0端口由锁存器、输入缓冲器、切换开关与相应控制电路、场效应管驱动电路构成。在输出状态下,当切换开关MUX向下时,从内部总线来的数据经锁存器反相和场效应管T2反相,输出到端口引脚线上。此时,场效应管T1关断,因而这种输出方式应为外接上拉电阻的漏极开路式。当切换开关MUX向上时,一位地址数据信号分时地输出到端口线上。此外,由T1、T2的通断组合,形成高电平、低电平与高阻浮动三态的输出。在输入状态下,从锁存器和从引脚上读来的信号一般是一致的,但也有例
24、外。例如,当从内部总线输出低电平后,锁存器Q0,Q1,场效应管T2开通,端口线呈低电平状态。此时无论端口线上外接的信号是低电乎还是高电平,从引脚读入单片机的信号都是低电平,因而不能正确地读入端口引脚上的信号。又如,当从内部总线输出高电平后,锁存器Q1,Q0,场效应管T2截止。如外接引脚信号为低电平,从引脚上读入的信号就与从锁存器读入的信号不同。为此,8031单片机在对端口P0一P3的输入操作上,有如下约定:为此,8051单片机在对端口P0一P3的输入操作上,有如下约定:凡属于读-修改-写方式的指令,从锁存器读入信号,其它指令则从端口引脚线上读入信号。P1端口:通用I0端口,准双向静态口。输出的
25、信息有锁存,输入有读引脚和读锁存器之分。P1端口的一位结构见下图. 由图可见,P1端口与P0端口的主要差别在于,P1端口用内部上拉电阻R代替了P0端口的场效应管T1,并且输出的信息仅来自内部总线。由内部总线输出的数据经锁存器反相和场效应管反相后,锁存在端口线上,所以,P1端口是具有输出锁存的静态口。由下图可见,要正确地从引脚上读入外部信息,必须先使场效应管关断,以便由外部输入的信息确定引脚的状态。为此,在作引脚读入前,必须先对该端口写入l。具有这种操作特点的输入输出端口,称为准双向IO口。8031单片机的P1、P2、P3都是准双向口。P0端口由于输出有三态功能,输入前,端口线已处于高阻态,无需
26、先写入l后再作读操作。P1口功能结构图单片机复位后,各个端口已自动地被写入了1,此时,可直接作输入操作。如果在应用端口的过程中,已向P1一P3端口线输出过0,则再要输入时,必须先写1后再读引脚,才能得到正确的信息。此外,随输入指令的不同,H端口也有读锁存器与读引脚之分。Pl端口是803l单片机中唯一仅有的单功能IO端口,并且没有特定的专用功能,输出信号锁存在引脚上,故又称为通用静态口。P2端口:P2端口的一位结构见下图:P2端口功能结构图由图可见,P2端口在片内既有上拉电阻,又有切换开关MUX,所以P2端口在功能上兼有P0端口和P1端口的特点。这主要表现在输出功能上,当切换开关MUX向左时,从
27、内部总线输出的一位数据经反相器和场效应管反相后,输出在端口引脚线上;当MUX向右时,输出的一位地址信号也经反相器和场效应管反相后,输出在端口引脚线上。由于8031单片机必须外接程序存储器才能构成应用电路,而P2端口就是用来周期性地输出从外存中取指令的地址(高8位地址),因此,P2端口的切换开关MUX总是在进行切换,分时地输出从内部总线来的数据和从地址信号线上来的地址。因此P2端口是动态的IO端口。输出数据虽被锁存,但不是稳定地出现在端口线上。其实,这里输出的数据往往也是一种地址,只不过是外部RAM的高8位址。在输入功能方面,P2端口与P0和H端口相同,有读引脚和读锁存器之分,并P2端口也是准双
28、向口。P3端口:双功能静态IO口P3端口的一位结构见下图:P3口功能结构图由上图可见,P3端口和Pl端口的结构相似,区别仅在于P3端口的各端口线有两种功能选择。当处于第一功能时,第二输出功能线为1,此时,内部总线信号经锁存器和场效应管输入输出,其作用与P1端口作用相同,也是静态准双向IO端口。当处于第二功能时,锁存器输出1,通过第二输出功能线输出特定的内含信号,在输入方面,即可以通过缓冲器读入引脚信号,还可以通过替代输入功能读入片内的特定第二功能信号。由于输出信号锁存并且有双重功能,故P3端口为静态双功能端口。P3口的特殊功能(即第二功能):口线 第二功能 信号名称 P3.0 RXD串行数据接
29、收P3.1TXD串行数据发送P3.2INT0外部中断0申请P3.3INT1外部中断1申请P3.4T0定时器/计数器0计数输入P3.5T1定时器/计数器1计数输入P3.6WR外部RAM写选通P3.7RD外部RAM读选通使P3端品各线处于第二功能的条件是:1串行I/O处于运行状态(RXD,TXD);2打开了处部中断(INT0,INT1);3定时器/计数器处于外部计数状态(T0,T1)4执行读写外部RAM的指令(RD,WR)在应用中,如不设定P3端口各位的第二功能(WR,RD信叼的产生不用设置),则P3端口线自动处于第一功能状态,也就是静态IO端口的工作状态。在更多的场合是根据应用的需要,把几条端口
30、线设置为第二功能,而另外几条端口线处于第一功能运行状态。在这种情况下,不宜对P3端口作字节操作,需采用位操作的形式。1.1.4 51单片机的时钟及复位单片机的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内电路初始化,使单片机从一种确定的初态开始运行。时钟电路:8051单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。图中,电容器Col,C0
31、2起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MH2,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡方式的外部电路如下图所示。内部振荡方式 外部振荡方式由上图可见,外部振荡信号由XTAL2引入,XTAL1接地。为了提高输入电路的驱劝能力,通常使外部信号经过一个带有上拉电阻的TTL反相门后接入XTAL2。基本时序单位:单片机以晶体振荡器的振荡周期(或外部引入的时钟周期)为最小的时序单位,片内的各种微操作都以此周期为时
32、序基准。振荡频率二分频后形成状态周期或称s周期,所以,1个状态周期包含有2个振荡周期。振荡频率foscl2分频后形成机器周期MC。所以,1个机器周期包含有6个状态周期或12个振荡周期。1个到4个机器周期确定一条指令的执行时间,这个时间就是指令周期。8031单片机指令系统中,各条指令的执行时间都在1个到4个机器周期之间。4种时序单位中,振荡周期和机器周期是单片机内计算其它时间值(例如,波特率、定时器的定时时间等)的基本时序单位。下面是单片机外接晶振频率12MHZ时的各种时序单位的大小:振荡周期1/fosc=1/12MHZ=0.0833us复位电路:当MCS-5l系列单片机的复位引脚RST(全称R
33、ESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如下图(A)中右图所示。单片机的复位电路 A:上电复位 B:上电或开关复位电路上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位
34、。常用的上电或开关复位电路如上图(B)所示。上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或开关复位的操作。根据实际操作的经验,下面给出这两种复位电路的电容、电阻参考值。上图(A)中:Cl10-30uF,R11kO上图127(B)中:C:1uF,RllkO,R210kO单片机复位后的状态:单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器PC0000H,这表明程序从0000H地址单元开始执行。单片机冷启动后,片内RAM为随机值,运行中的复位操作不改变片内RAM区中的内容,
35、21个特殊功能寄存器复位后的状态为确定值。1.2定时器、计数器的基本结构及工作原理本设计中应用了定时器0(T0)用于计时,因此这里有必要介绍一下定时器、计数器的基本结构及工作原理。定时器、计数器定时器计数器简称定时器,其作用主要包括产生各种时标间隔、记录外部事件的数量等,是微机中最常用、最基本的部件之一。803l单片机有2个16位的定时器计数器:定时器0(T0)和定时器1(T1)。T0由2个定时寄存器TH0和TL0构成,T1则由TH1和TL1构成,它们都分别映射在特殊功能寄存器中,从而可以通过对特殊功能寄存器中这些寄存器的读写来实现对这两个定时器的操作。作定时器时,每一个机器周期定时寄存器自动
36、加l,所以定时器也可看作是计量机器周期的计数器。由于每个机器周期为12个时钟振荡周期,所以定时的分辨率是时钟振荡频率的112。作计数器时,只要在单片机外部引脚T0(或T1)有从1到0电平的负跳变,计数器就自动加1。计数的最高频率一般为振荡频率的l24。2基于Keil单片机编译软件的C语言编程以及使用该软件开发单片机程序的方法2.1 基于Keil单片机编译软件的C语言编程2.1.1 Keil单片机编译软件的简单介绍基于8051的编程语言通常有两种:一种是汇编语言,另一种就是C语言了。汇编语言生成的机器代码效率很高但是可读性不强,复杂一点的程序更是难读,而C语言在大多数情况下其机器代码效率和汇编语
37、言相当,但可读性和可移植性却远远超过汇编语言,而且C语言还允许嵌入汇编语言代码来解决少数的高时效性代码编写问题。因此,本设计中采用C语言来进行系统控制程序代码的编写。使用C语言肯定要使用到C语言编译器了,以便把写好的C程序编译生成为可执行的机器码。本设计所采用的Keil uVision3是众多单片机应用开发软件当中的优秀软件之一,在国内外有广泛的使用范围,它支持众多不同公司的MCS51架构芯片,集编辑、编译和仿真等于一体,同时还支持PLM、汇编和C语言的程序设计,它的界面友好,易学易用,在调试仿真各方面都拥有强大的功能。2.1.2 Keil单片机编译软件的使用按以下步骤可以建立基于89C51的
38、C语言程序项目:第一步:打开运行Keil uVision3软件,点击 Project菜单,选择New Project,接着弹出创建新项目对话框,输入项目名称后点击保存即可,如下图所示:第二步:选取芯片。在弹出对话框中选取所要的芯片,这里选择Ateml公司的AT89C51单片机。如下图所示:第三步:在项目中加入程序文件,这里是加入C语言(.c)文件,如果没有现有的文件则可以选择新建。如下图所示:第四步:现在在项目中如果已经是写好的程序就可以开始编译了,编译之前还要配置一下输出文件的格式(.hex)。如下图所示:第五步:最终生成的HEX文件就可以烧写到芯片内用做控制使用了。3交通信号灯模拟控制系统
39、的工作原理、程序流程和硬件结构介绍3.1交通信号灯模拟控制系统的工作原理的讲解现今的社会快速发展,随着我国改革开放的不断深入,我国的经济迅猛发展,人民的生活水平持续提高,现代的交通工具越来越多尤其是机动车辆的数量急剧增长,由此带来了我国城市交通情况恶化,大一点的城市交通堵塞、交通事故频有发生,因此, 改善城市交通情况是我们面临的一项严峻而由紧迫的问题。采用现代的交通信号指示系统对于改善交通问题有很大的帮助,这套系统由于长期的使用而不断得到完善技术方面已经相当成熟了,它在各国的道路交通系统上都有着广泛的应用。我国建立起现代的交通系统较晚,在有的方面还是不够完善和成熟,所以,对于交通信号指示系统的
40、试验和改进是有一定的必要性的,这将对我国的城市交通情况持续改善有极大裨益。本设计要求使用8051单片机设计一交通信号灯模拟控制系统,通过建立模拟系统可以在低廉的成本、直接的观测性和极大的灵活性基础上对交通系统进行持续的模拟试验和改进,使实际的道路交通指示系统不断完善。本文中,笔者是按最常见的A、B道交叉组成十字路口(A是主道,B是支道)红黄绿指示灯系统来建立模型的,并且根据实际情况对该模型赋予如下的特点:(1)正常情况下A、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行,A道放行1分钟(其中5秒用于警告),B道放行30秒(其中5秒用于警告)。(2)一道有车而另一道无车(用按键开关
41、K1、K2模拟)时,使有车车道放行。(3)有紧急车辆通过(用按键开关K0模拟)时,A、B道均为红灯。以上也可认为是该设计的设计要求,所设计的模拟系统就必须严格按照这些要求来工作运行。3.2交通信号灯模拟控制系统的硬件结构介绍本设计采用AT89C51作为系统控制核心,外接12M的晶振电路,使用3组按键开关K0、K1和K2分别模拟作为紧急车辆通过指示开关、主道状态指示开关和支道状态指示开关,具体硬件结构图如下图所示。在本设计中,由P1.0、P1.1和P1.2来分别接3组按键开关K0、K1和K2用来检测模拟信号的输入,使用P3.0、P3.1和P3.2分别来输出控制信号控制主道信号的各组指示灯,用P2
42、.0、P2.1和P2.2分别来输出控制信号控制支道信号的各组指示灯。在结构图中,还另外接入了时间指示表来用来计时。 4交通信号灯模拟控制系统的工作测试仿真介绍4.1仿真软件Proteus 6简介PROTEUS系统包括ISIS.EXE(电路原理图设计、电路原理仿真),ARES.EXE(印刷电路板设计)两大主要程序三大基本功能。其中最令人称赞的是电路原理仿真功能,除了普通分离器件、小规模集成器件的仿真功能以外,还具有多种带有CPU的可编程序器件的仿真功能,如51系列、68系列、PIC系列等;具有多种总线、储存器、RS232终端仿真功能;具有电动机、液晶显示器等特殊器件的仿真功能;对可编程序器件可以
43、灵活地外挂各种编译、编辑工具,使用非常方便。具有多种虚拟仪器帮助完成实时仿真调试;具有传输特性、频率特性、电压波动分析、噪声分析等多种图形分析工具、可以完成电路参数和可靠性分析。可以完成:电路原理实验(电阻、电容、电感、开关、继电器、电机、指示灯等)模拟电子技术实验(二极管、三极管、场效应管、晶闸管、光电管、运算放大器等)数字电子技术实验(4000系列、74系列、ECL10000系列逻辑器件、PLD器件等)单片机与接口实验(51系列、68系列、PIC系列、储存器、ADC、DAC器件等)本文中设计是采用PROTEUS系统对已经设计的交通信号灯模拟控制系统进行仿真和调试来得到所要求的结果,采用这种
44、方式的优点是显而易见的。4.2交通信号灯模拟控制系统的工作测试仿真4.2.1 控制系统程序分析按照上一节的程序流程图可以编写出控制系统的C程序,具体程序如下:#include sbit main_red=P30;/定义两组交通灯(主、支道)sbit main_yel=P31;sbit main_gre=P32;sbit sub_red=P20;sbit sub_yel=P21;sbit sub_gre=P22;sbit button1=P10;/K0 紧急车辆通过指示开关sbit button2=P11;/K1 支道状态指示开关sbit button3=P12;/K2 主道状态指示开关unsigned int num0;void time0_int(unsigned int time0_num);void ini()P3=0xff;P1