1、毕业设计(论文)任务书站名 直属站 年级专业 2011级电气工程及其自动化 学生姓名 刘俊涛一、设计(论文)题目:基于单片机控制交通灯设计二、设计(论文)任务与要求本设计针对基于单片机控制交通灯设计要求:1、设计说明书一份,不少于35页,内容概念清楚,层次分明,完整连贯。2、运用所学专业知识和作业技能,查阅相关资料,做好论文题目的选题工作。3、认真撰写毕业论文,按照论文写作要求,按质按量完成写作任务。4、完成毕业论文答辩工作。(论文)三、设计(论文)时间: 年 月 日至 年 月 日指导教师_(签名)成教院院长_(签名)毕业设计(论文)评定书站名 直属站 年级专业_2011级电气工程及其自动化_
2、学生姓名 刘俊涛一、设计(论文)题目:基于单片机控制交通灯设计二、设计(论文)共_ _页三、审阅意见及评语根据学院教学管理的有关规定,同意(不同意)该生参加毕业答辩指导教师_(签名)职 称_工作单位_毕业设计(论文)答辩委员会(小组)决议站名 直属站 年级专业_2011级电气工程及其自动化_学生姓名 刘俊涛该生于_年_月_日进行毕业设计(论文)答辩设计(论文)题目 基于单片机控制交通灯设计 答辩委员会:主任委员(组长)委 员(成员)答辩学生向答辩委员会(小组)提交如下资料:设计(论文)说明书 共_ 页设计(论文)图纸 共_页导教师评阅意见 共_页根据学生所提供的毕业设计(论文)材料和指导教师意
3、见以及在答辩过程中学生回答问题的情况,毕业设计(论文)答辩委员会(小组)作出如下决议:一、毕业设计(论文)的总评语二、毕业设计(论文)的总评成绩毕业设计答辩委员会主席(组长)_(签名)委员(成员)_(签名)_年_月_日 基于单片机控制交通灯设计摘要:近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。
4、交通信号灯控制方式很多。本系统采用MSC-51系列单片机89S51为中心器件来设计交通灯控制器,实现了通过89S51芯片的P0.0至P0.7口作为LED数码管的段码输入口,将P1.0至P1.5口作为LED数码管的位码输入口,做为倒计时显示时间,P2.0至P2.7口作为发光二极管的输出端,模拟红绿灯的运行状态,P1.6和P1.7接紧急按键,做为特殊情况用。本系统实用性强、操作简单、扩展功能强。关键词 单片机、MSC-51、89S51、交通灯目 录第1章 绪论11.1 交通灯的历史与发展11.2 单片机的发展与应用11.2.1 单片机发展的4个阶段11.2.2 单片机的特点11.2.3 单片机的应
5、用11.2.4 单片机的发展前景1第2章 单片机的结构与原理12.1 MCS-51系列单片机简介12.2 单片机的内部结构12.2.1 MCS-51系列单片机的基本结构做成12.2.2 MCS-51单片机的存储器12.2.3 MCS-51单片机输入/输出端口12.3 MCS-51单片机的引脚功能及片外总线结构12.3.1 引脚功能12.3.2 片外三总线结构1第3章 MCS-51指令系统13.1 指令格式与寻址方式13.1.1 指令格式13.1.2 寻址方式13.2 操作指令13.2.1 传送指令13.2.2 算术运算指令13.2.3 逻辑运算指令13.2.4 无条件转移指令13.2.5 条件
6、转移指令13.2.6 空指令,调用、返回指令13.2.7 位操作指令1第4章 汇编语言程序设计14.1 汇编语言程序设计的特点14.2 汇编语言与高级语言的比较14.3 汇编语言程序设计的一般方法14.3.1 顺序结构程序14.3.2 分支程序14.3.3 循环程序14.3.4 子程序1第5章 系统设计15.1 设计要求15.2 设计思路15.2.1 设计总体框图15.2.2 计时设计15.2.3 显示设计15.2.4 按键设计15.3 硬件选择15.3.1 74LS373简介15.3.2 74LS07简介15.3.3 七段LED数码管简介15.3.4 按键简介15.3.5 原理图15.4 程
7、序设计15.4.1 主程序设计15.4.2 显示子程序设计15.4.3 中断程序设计15.4.4 按键子程序设计15.4.5 程序1结语错误!未定义书签。致谢1参考文献1第1章 绪论1.1 交通灯的历史与发展19世纪初,在英国中部的约克城,红、绿装分别代表女性的不同身份。其中,着红装的女人表示我已结婚,而着绿装的女人则是未婚者。后来,英国伦敦议会大厦前经常发生马车轧人的事故,于是人们受到红绿装启发,1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德哈特设计、制造的灯柱高7米,身上挂着一盏红、绿两色的提灯-煤气交通信号灯,这是城市街道的第一盏信号灯。
8、在灯的脚下,一名手持长杆的警察随心所欲地牵动皮带转换提灯的颜色。后来在信号灯的中心装上煤气灯罩 ,它的前面有两块红、绿玻璃交替遮挡。不幸的是只面世23天的煤气灯突然爆炸自灭,使一位正在值勤的警察也因此断送了性命。从此,城市的交通信号灯被取缔了。直到1914年,在美国的克利夫兰市才率先恢复了红绿灯,不过,这时已是“电气信号灯”。稍后又在纽约和芝加哥等城市,相继重新出现了交通信号灯。中国最早的马路红绿灯,是于1928年出现在上海的英租界。交通灯信号灯的出现是人类历史上的一次重大改革,使人类的聚居生活,产生了深远的影响。使交通得以有效管制,对于疏导交通流量,提高道路通行能力,减少交通事故有明显效果。
9、如何采用合适的控制方法,最大限度利用好耗费巨资修建的城市高速道路,缓解主干道与匝道、城区同周边地区的交通拥堵状况,越来越成为交通运输管理和城市规划部门亟待解决的主要问题。随着电子技术的发展,利用单片机技术对交通灯进行智能化管理,已成为目前广泛采用的方法。1.2 单片机的发展与应用单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。1971年微处理器研制成功不久,就出现了单片微型计算机即单片机,但最早的单片机是1位的,处理能力有限。1.2.1 单片机发展的4个阶段1.第一阶段(19741976年):单片机初级阶段。因
10、为受工艺限制,单片机采用单片的形式而且功能比较简单。例如美国仙童公司生产的F8单片机,实际上只包括了8位CPU,64个字节的RAM和2个并行接口。2.第二阶段(19761978年):低性能单片机阶段。以Intel公司生产的MCS-48系列单片机为代表,该系列单片机片内集成有8位CPU,8位定时器/计数器,并行I/O接口,RAM和ROM等,但是最大的缺点就是无串行接口,中断处理比较简单而且片内RAM和ROM容量较小,且寻址范围不大与4KB。3.第三阶段(19781983年):高性能单片阶段。这个阶段推出的单片机普遍带有串行接口。多级中断系统,16位定时器/计数器,片内ROM,RAM容量加大,且寻
11、址范围可达64KB,有的片内还带有A/D转换器。4.第四阶段(1983年至今):8位单片机巩固发展以及16位单片机,32 位单片机推出阶段。此阶段的主要特征是:一方面发展16位单片机,32位单片机及专用型单片机;另一方面不断完善高档8位单片机,改善其结构,增加片内器件,以满足不同的客户要求。1.2.2 单片机的特点1. 小巧灵活、成本低、易于产品化。它能方便地组装成各种智能化的控制设备及各种智能仪器仪表。2. 面向控制,能针对性地解决从简单到复杂的各类控制任务,因而能获得最佳的性价比。3. 抗干扰能力强,适应温度范围广。在各种恶劣的环境条件下都能可靠地工作,这是其他机种无法比拟的。4. 可以很
12、方便地实现多机和分布控制。使整个控制系统的效率和可靠性大为提高。1.2.3 单片机的应用目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹:导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。1.智能化家用电器:各种家用电器普遍采用单片机智能化控制代替传统的电子线路控制,升级换代,提高档次。如洗衣机、空调、电视机、录像机
13、、微波炉、电冰箱、电饭煲以及各种视听设备等。2.办公自动化设备:现代办公室使用的大量通信和办公设备多数嵌入了单片机。如打印机、复印机、传真机、绘图机、考勤机、电话以及通用计算机中的键盘译码、磁盘驱动等。3.商业营销设备:在商业营销系统中已广泛使用的电子称、收款机、条形码阅读器、IC卡刷卡机、出租车计价器以及仓储安全监测系统、商场保安系统、空气调节系统、冷冻保险系统等都采用了单片机控制。4.工业自动化控制:工业自动化控制是最早采用单片机控制的领域之一。如各种测控系统、过程控制、机电一体化、PLC等。在化工、建筑、冶金等各种工业领域都要用到单片机控制。5.智能化仪表:采用单片机的智能化仪表大大提升
14、了仪表的档次,强化了功能。如数据处理和存储、故障诊断、联网集控等。6.智能化通信产品:最突出的是手机,当然手机内的芯片属专用型单片机。7.汽车电子产品:现代汽车的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统和运行监视器(黑匣子)等都离不开单片机。8.航空航天系统和国防军事、尖端武器等领域:单片机的应用更是不言而喻。1.2.4 单片机的发展前景计算机系统的发展已明显地朝三个方向发展;这三个方向就是:巨型化,单片化,网络化。以解决复杂系统计算和高速数据处理的仍然是巨型机在起作用,故而,巨型机在目前在朝高速及处理能力的方向努力。单片机在出现时,Intel公司就给其单片机取名为嵌入式微控制器
15、(embedded microcontroller)。单片机的最明显的优势,就是可以嵌入到各种仪器、设备中。这一点是巨型机和网络不可能做到的。数字单片机的技术进步反映在内部结构、功率消耗、外部电压等级以及制造工艺上。1.内部结构的进步:为了构成控制网络或形成局部网,内部含有局部网络控制模块CAN;为了能在变频控制中方便使用单片机,形成最具经济效益的嵌入式控制系统,有的内部设置了专门用于变频控制的脉宽调制控制电路。特别引人注目的是:现在有的单片机已采用所谓的三核(TrCore)结构。这是一种建立在系统级芯片(System on a chip)概念上的结构。这种单片机由三个核组成:一个是微控制器和
16、DSP核,一个是数据和程序存储器核,最后一个是外围专用集成电路(ASIC)。这种单片机的最大特点在于把DSP和微控制器同时做在一个片上。2.功耗、封装及电源电压的进步:现在新的单片机的功耗越来越小,特别是很多单片机都设置了多种工作方式,这些工作方式包括等待,暂停,睡眠,空闲,节电等工作方式。现在单片机的封装水平已大大提高,随着贴片工艺的出现,单片机也大量采用了各种合符贴片工艺的封装方式出现,以大量减少体积。扩大电源电压范围以及在较低电压下仍然能工作是今天单片机发展的目标之一。目前,一般单片机都可以在3.35.5V的条件下工作。而一些厂家,则生产出可以在2.26V的条件下工作的单片机。3.工艺上
17、的进步:现在的单片机基本上采用CMOS技术,但已经大多数采用了0.6m以上的光刻工艺,有个别的公司则已采用0.35m甚至是0.25m技术。这些技术的进步大大地提高了单片机的内部密度和可靠性。第2章 单片机的结构与原理2.1 MCS-51系列单片机简介MCS-51系列单片机的各种型号都是以8051为核心电路发展起来的。因此,它们都具有MCS-51的基础结构与软件特征。其主要特性如下:1. 8位的CPU;2. 具有布尔处理(位处理)功能;3. 4K字节片内程序存储器(ROM);4. 128字节片内数据存储器(RAM);5. 21个特殊功能寄存器(SFR);6. 4个8位的并口,32根口线;7. 两
18、个16位的定时计数器;8. 一个全双工的串口;9. 5个中断源,2个中断优先级;10. 片内时钟振荡器的最高振荡频率为12MHz;11. 可扩展64KB数据存储器空间;12. 可扩展64KB程序存储器空间。三种基本型的MCS-51单片机8031、8051、8751的基本结构都相同,它们的主要区别在于片内有无程序存储器,程序存储器是ROM还是EPROM,还有CHMOS工艺低功耗的产品89C51。.另外,为了减少芯片体积,还出现了一些功能简化的芯片系列,如AT892052。.MCS-51系列除了基本型的外,还有一些各方面功能增强型的机型,如8752。2.2 单片机的内部结构2.2.1 MCS-51
19、系列单片机的基本结构做成MCS-51系列单片机的内部结构由8个部分组成:1. 微处理器(CPU):中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2. 数据存储器(RAM):8051内部有128个8位用户数据存储单元和128个专用寄存3. 器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。4. 程序存储器(ROM):8051共
20、有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。5. 并行I/O口(P0、P1、P2、P3):8051共有4组8位I/O口(P0、 P1、P2和P3),用于对外部数据的传输。6. 串口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。7. 定时计数器:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。8. 中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。9.
21、 特殊功能寄存器(SFR):80C51系列中的80C51,共定义了26个特殊功能寄存器。88数据存储器程序存储器ROM/EPROMCPU(运算器)(控制器)P2口P0口(RAM)特殊功能寄存器计数/定时器中断系统串口P1口8P3口图2-1 MCS-51单片机内部结构2.2.2 MCS-51单片机的存储器MCS-51系列单片机存储器结构的主要特点是:程序存储器和数据存储器的看空间是独立的,程序存储器(ROM)用于存放指令及常数、表格等,数据存储器(RAM)用于存放数据、运算的结果等。存储器有片内和片外之分,所以MCS-51系列单片机有4个物理上的相互独立的存储空间,即片内程序存储器、片外程序存储
22、器、片内数据存储器、片外数据存储器,而从地址分配空间来说,片内外程序存储器是统一地址的。FFFFH外部1000H0FFFH0FFFH外部(EA=0)内部(EA=1)0000H0000H图2-2 程序存储器FFH特殊功能寄存器(SFR)80H7FH内部数据存储器00H图2-3 片内数据存储器FFFFH外部RAM0000H图2-4 片外数据存储器2.2.3 MCS-51单片机输入/输出端口MCS-51单片机有四个双向的并口,对应4个特殊功能寄存器。每个并口都由一个锁存器、两个三个缓冲器和输出驱动电路组成。2.3 MCS-51单片机的引脚功能及片外总线结构2.3.1 引脚功能MCS-51单片机为40
23、脚双列直插式的芯片,按其引脚功能可分为三个部分:I/O口线、控制线、电源和时钟。图2-5 MCS-51单片机引脚图1.并行I/O口线:具有P0、P1、P2、P3四个8位口,这四个除了P1口外,每个I/O口线既用作普通I/O口,又具有第二功能。P0口:既可作为双向的I/O口,又可在访问片外存储器时,分时作为低8位地址总线和8位数据总线。P1口:为双向的I/O口。P2口:既可作为双向的I/O口,又可在访问片外存储器时,作为高8位的地址总线。P3口:既可作为双向的I/O口,又可作为如表2-1的第二功能。表2-1 P3口第二功能表口线第二功能P3.0RXD(串行输入线)P3.1TXD(串行输出线)P3
24、.2(外中断0输入线)P3.3(外中断1输入线)P3.4T0(定时器0外部输入线)P3.5T1(定时器1外部输入线)P3.6(片外RAM写选通信号)P3.7(片外RAM读选通信号)2.控制口线:、ALE、RST。:片内外程序存储器选择线/编程电压:片外取指控制ALE/PRG:地址锁存信号/编程脉冲RST/VPD:复位信号/掉电保护3.电源及时钟:电源端:接地端XTAL1、XTAL2:时钟电路引脚2.3.2 片外三总线结构单片机为40引脚芯片,其管脚除了电源、复位、时钟输入、用户I/O口外,其余管脚都是为实现系统扩展而设置的,这些管脚构成三总线形式。1. 地址总线。地址总线(AB)为16位的,外
25、部存储器的寻址范围为64KB。16位地址总线由P0口经地址锁存器提供低8位的地址(A0A7);由P2口直接提供高8位地址(A8A15)。2. 数据总线。数据总线(AB)为8位,由P0口提供。3. 控制总线。控制总线(CB)由第二功能状态下的P3口和4根独立的控制线组成。第3章 MCS-51指令系统3.1 指令格式与寻址方式3.1.1 指令格式标号:操作码目的操作数,源操作数;注释LOOP: MOV A , #OOH ;A清03.1.2 寻址方式MCS-51的寻址方式有7种:1.立即寻址,例MOV A, #3AH; 将数据3AH送到累加器A2.寄存器寻址,例MOV A, R0; 把寄存器R0的内
26、容送到累加器A3.直接寻址,例MOV A, 20H; 将片内RAM 20H单元的数据传送到累加器A4.寄存器间接寻址,例MOV A, R0; 以R0寄存器内容为地址5.变址寻址,例MOVC A, A+DPTR; 将DPTR和A的内容相加作为地址6.位寻址,例MOV C, 00H; 将位地址00H的一位二进制送到进位位CY中7.相对寻址目的地址=转移指令存放的地址+转移指令字节数+rel单片机的不同存储器区域采用不同的寻址方式:1.特殊功能寄存器:只能采用直接寻址方式,对于可位寻址的SFR可采用位寻址。2.片内128字节的RAM:可采用直接寻址和寄存器间接寻址方式,对于其中的位寻区可采用位寻址,
27、寄存器区可采用寄存器寻址。3.片外数据存储器RAM:只能采用寄存器间接寻址方式。4.片内外程序存储器ROM:只能采用变址寻址。3.2 操作指令MCS-51单片机的操作指令共有111条指令,分为5大类:数据传送类指令(29条)、算术运算类指令(24条)、逻辑运算类指令(24条)、控制转移类指令(17条)、位操作类指令(17条)。3.2.1 传送指令1.片内RAM传送指令:片内传送指令助记符为MOV,通过图3-1中的寻址方式及传送关系,则可知所有的片内传送指令,箭头指向的地址为目的地址。Adirect#dataRnRiDPTR#data16RnAdirectRi图3-1 片内RAM传送指令2.片外
28、RAM传送指令:助记符MOVX,如图3-2所示。DPTRARi图3-2 片外RAM传送指令3.ROM的读指令:助记符MOVC,如图3-3所示。A+DPTRAA+PC图3-3 ROM读指令4.交换指令:以A为目的地址,助记符为XCH(整字节交换)有三条指令,XCHD(低半字节交换),SWAP(高半字节交换)各一条,如图3-4所示。RnRidirectAXCHDSWAP图3-4 交换指令图5.堆栈操作。PUSHdirectPOP3.2.2 算术运算指令1.以A为目的地址的ADD、ADDC、SUBB,共4条,如图3-5所示。2.AB的乘除MUL、DIV2条,如图3-5所示。RiAMULDIVdire
29、ct#dataRnB图3-5 以A为目的地址的指令3.自加1,自减1,如图3-6所示。AINC (DEC)directINC DPTRRnRi图3-6 自加1自减1指令4.BCD调整指令:DA A。3.2.3 逻辑运算指令1.以A为目的地址的与、或、异或:ANL、ORL、XRL的指令有4条,见图3-7。2.以direct为目的地址的ANL、ORL、XRL的指令有2条,见图3-7。RiARn#datadirect图3-7 以A、direct为目的地址的指令3.对A位移、清0、求反,见图3-8。RL RLCRR RRCCLR CPLA图3-8 对A位移、清0、求反指令3.2.4 无条件转移指令无条
30、件转移指令:LJMP、AJMP、SJMP。3.2.5 条件转移指令1.A的判零转移JZ、JNZ指令2条。2.比较转移指令CJNE,以A为目的地址的2条,以Rn、Ri为目的地址的各一条。3.自减1转移指令DJNZ 2条,见图3-9。JZJNZCJNEAdirectDJNZCJNECJNECJNEDJNZRiRn#data图3-9 条件转移指令3.2.6 空指令,调用、返回指令NOPLCALL RETACALL RETI3.2.7 位操作指令1.位操作指令包括传送、逻辑运算、置1、清0、求反。位的逻辑运算目的地址为C,位之间的传送必须通过C进行,见图3-10。CLR SETBCPLCLRSETBC
31、PLMOVbitbitCANL ORLANL ORL图3-10 位操作运算指令2.位控制转移指令,见图3-11。JCJNCJBJNBJBCbitC图3-11 位控制转移指令第4章 汇编语言程序设计4.1 汇编语言程序设计的特点用汇编语言进行程序设计与使用其他高级语言进行程序设计的过程相似。即首先对问题进行分析,确定算法,然后根据算法画出流程图,再编写程序。但汇编语言程序设计也有自己的特点:1. 设计汇编程序时,数据的存放、寄存器和工作单元的使用等要由设计者安排。2. 汇编语言程序设计要求人员对所使用的计算机的硬件结构有较为详细的了解。3. 汇编语言程序设计的技巧性较高,且具有软硬结合的特点。4
32、.2 汇编语言与高级语言的比较目标程序汇编语言(查表)汇编语言(源程序)目标程序高级语言(源程序)编译程序图4-1 汇编程序和编译程序的功能示意汇编语言与机器语言是一一对应的,汇编语言生成的目标程序,相对于高级语言生成的目标程序,所占的存储单位少,执行速度快,能发应计算的实际运行情况。汇编语言能直接和存储器及接口电路打交道,且能申请中断,即汇编语言程序能直接管理和控制硬件设备,因此在实时控制及检测的应用场合,用汇编语言可直接进行输入、输出,执行速度快,实时性强。汇编语言编程比高级语言困难,这是因为,汇编语言是面向计算机的,程序设计人员必须对计算机硬件有深入的了解,才能使用汇编语言编写程序。汇编
33、语言缺乏通用性,程序不易移植。4.3 汇编语言程序设计的一般方法对于同一个问题,往往可以编制出不同的程序,一个程序的优劣,通常由以下三个方面来衡量:一,程序所占的空间越少越好;二,程序的运行时间越短越好;三,程序的编制、调试及排查所需的时间越短越好。为了设计一个高质量的程序,必须掌握程序设计的一般方法,在汇编语言程序设计中,普遍采用结构化的程序设计方法。这种设计的依据是任何复杂的程序都可由顺序结构、分支结构、循环结构的程序构成。每个结构只有一个入口和一个出口,整个程序也只有一个入口和一个出口。结构程序设计的特点是结构清晰、易于读写、易于验证、可靠性强。4.3.1 顺序结构程序它是程序结构中最简
34、单的一种,在执行这类程序时,从第一条指令开始顺序执行每一条,直到结束。入口 A B C出口图4-2 顺序结构4.3.2 分支程序在编程时常常会遇到要求根据不同条件进行不同的处理的情况,此时可采取分支结构。通常用条件转移指令实现分支结构。入口S1S2条件满足?出口图4-3 分支结构4.3.3 循环程序在程序设计中,常会遇到反复执行某一段程序,这时可采用循环结构的程序,不但可以使程序简练而且可大大节省存储单元。修改条件A入口条件满足?出口图4-4 循环结构4.3.4 子程序子程序是程序设计的一种重要方法,一般把功能相对独立,需要多次使用的程序单独写成子程序,这样即节约了存储空间,又简化了程序结构,
35、且便于调试。第5章 系统设计5.1 设计要求1.用单片机设计一个模拟交通灯,在十字路口的两个方向上各设一组红绿黄橙灯(橙色灯代表左转信号),显示顺序为: 其中一个方向是绿灯、黄灯、红灯、橙灯,另一个方向是橙灯、红灯、黄灯、绿灯。2.设置一组数码管,以倒计时的方式显示允许通过或禁止通行的时间。其中橙灯、绿灯、黄灯、红灯的持续时间分别是15S、30S、3S、48S。3.当各条路上任意一条出现特殊情况,例如消防车、救护车或其他需要优先放行的车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。5.2 设计思路5.2.1 设计总体框图根据设计
36、要求可得出总体框图(图5-1),将单片机P0.0至P0.7口作为LED数码管的段码输入口,将P1.0至P1.5口作为LED数码管的位码输入口,做为倒计时显示时间,P2.0至P2.7口作为发光二极管的输出端,模拟红绿灯的运行状态,P1.6和P1.7接紧急按键,做为特殊情况用。89S51图5-1 设计总体框图5.2.2 计时设计我利用89S51内部的定时/计数器进行中断定时,配合软件延时实现时的倒计时。5.2.3 显示设计我采用LED动态显示实现系统的显示功能:动态显示的方案硬件连接简单,虽动态扫描的显示方式需占用CPU较多的时间,但在该系统中由于单片机除了显示红、绿灯的倒计时间没有太多的实时测控
37、任务,故选用动态扫描方式。这种方案既满足系统功能要求,又减少了系统实现的复杂度。5.2.4 按键设计我选用非编码键盘中的独立式键盘的接口电路。计算机中所用的键盘有编码键盘和非编码键盘两种。编码键盘需要较多的硬件,价格较贵,一般的单片机应用系统较少使用;而非编码键盘硬件简单,成本低,所以目前在单片机应用系统中多采用非编码键盘。在单片机应用系统中,按键作为系统信息的输入端,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。每个独立式按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。如果按键数较多时,为减少占用I/O接口线数,通常采用行列式键
38、盘。由于我这个设计只使用两个按键,所以我采用独立式键盘,将按键K2接在P1.6上,把K1接在P1.7。来完成道路上的应急情况。5.3 硬件选择电路的核心是89S51单片机,系统配备8个LED显示和2个单接口键盘,采用P0接口外接8路反相三态缓冲器74LS373作LED动态扫描的段码控制驱动信号,用P1接口的P1.0至P1.3外接一片集电极开路反相门电路74LS07做为4位LED的位选信号驱动口,LED共阴极端与74LS07的输出端相连;按键接口,由P1.6和P1.7来完成,P2口接交通指示灯。整个系统采用查表的方法,将交通灯的显示情况和数码管的计时情况,分别以代码的形式送到指示灯和LED数码管
39、,启动定时器,同时调用显示程序和查询按键。利用软件计数器的方法计时一秒,利用中断的方法使计时时间循环,当按下应急按键时停止定时器,送一个代码使两个方向都亮红灯,按下一个按键时启动定时器,恢复循环。5.3.1 74LS373简介在本设计中,我采用74LS373总线驱动器作为字形驱动芯片,接在P0口作为数码管的段码输入。74LS373是原码三态输出的8缓冲数码驱动器,其管脚分布图如图5-2所示,G为控制端,又称为使能端其工作原理如下: 当G=0时,A输入为低电平时,Y输出为低电平。当G=0时,A输入为高电平时,Y输出为高电平。图5-2 74LS373的管脚分配图5.3.2 74LS07简介因为我在
40、设计中使用的是共阴极的数码显示,所以需要一个反相器将89S51P1口输出的高电平转换为低电平来驱动数码管,而74LS07即是一个反相器,所以我使用74LS07作为6路反相驱动器。74LS07是六缓冲的数码驱动器,它是有6个集电极开路的非门所组成,管脚分布如图5-3所示,接在单片机的P1口,其工作原理如下,当使能端为低电平时,输入为高电平时输出也为高电平,当输入为低电平时输出也为低电平,其逻辑表达式为:Y=A。图5-3 74LS07的管脚分配图5.3.3 七段LED数码管简介七段LED数码管构成“日”字形,还有一只发光二极管作为小数点。因此,这种七段数码管又可称为八段数码管。如图5-4,这八段发
41、光管分别称为a、b、c、d、e、f、g、dp。通过8个发光段的不同组合,可以显示09和AF等16个数字字母,从而可以实现十六进制整数和小数的显示。图5-4 数码管的管脚分配LED数码管可以分为共阴极和共阳极两种结构:共阴极结构:如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光。共阳极结构:如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低电平有效,当某段输入低电平该段便发光。在此设计中我使用的是共阴极,将所有的发光二极管的阴极接在一起,段码接89S51的P1口,位码接P2口,在需要显示的段输入高电平1,来模拟显示交通
42、灯亮的时间。七段LED数码管与单片机的连接,将一个八位并行I/O口与数码管的各发光二极管引脚相连。要显示某字型,只要使此字型的相应的字段点亮即可,实际上就是送一个用不同电平组合代表的数据至数码管。我在设计中所用的是P1口,连接方法如下图5-5。89S51图5-5 LED显示器与单片机接口电路5.3.4 按键简介在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信。VCC图5-6 89S51与按键连接如图5-6,在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电平。当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。5.3.5 原理图图5-7 原理图5.4 程序设计5.4.1 主程序设计主程序初始化和按键控制,首先将时间、中断、次数和显示分别进行初始化,然后启动定时器对时间进行判断,将时间送数据缓冲区,调用显示程序,同时扫描按键程序,用无