学习任务五 单片机定时计数器应用-交通灯控制系统设计 单片机应用技术教学课件_第1页
学习任务五 单片机定时计数器应用-交通灯控制系统设计 单片机应用技术教学课件_第2页
学习任务五 单片机定时计数器应用-交通灯控制系统设计 单片机应用技术教学课件_第3页
学习任务五 单片机定时计数器应用-交通灯控制系统设计 单片机应用技术教学课件_第4页
学习任务五 单片机定时计数器应用-交通灯控制系统设计 单片机应用技术教学课件_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习任务五单片机定时/计数器应用——

交通灯控制系统设计

单片机应用技术学习目标任务说明自从1868年英国人发明了原始的机械扳手交通灯之后,随后的100多年里,交通灯改变了交通路况,也在人们日常生活中占据了重要地位。随着经济的发展人们社会活动日益频繁,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,交通得到有效管制,对于提高道路导通能力、减少交通事故等都有显著的效果。学习目标任务说明近年来随着科技的飞速发展,电子器件也随之广泛应用,其中单片机也不断深入我们的生活。本学习任务模拟交通灯系统利用单片机A89S51作为核心元件,实现通过信号灯对路面状况的智能控制。在本学习任务中,根据实际情况设计一套交通灯控制系统,假设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间后,经过短暂的过渡,将通行和禁行方向对换,该系统运行状况如下。学习目标任务说明东西路口绿灯亮,南北路口红灯亮,同时在两位七段显示器上开始25s倒计时,南北方向上也同时显示时间;25s倒计时进行到5s时,东西路口绿灯闪烁,以示警示;绿灯闪烁3s后,倒计时到2s时东西路口黄灯亮,表示进入路口的车继续行进,未进入路口的车辆禁止超过标志线,黄灯亮2s之后熄灭;然后是东西向与南北向反过来进行一次上面的循环,以此类推不断循环。交通灯控制系统总体框图如图5-1所示,其中“按键控制电路”及其功能的实现不在本学习任务之中。按键控制电路部分为功能扩展部分,基于实际情况,可增加紧急状况处理和通行时间可调这两项特殊功能。感兴趣的学生可以在完成本任务的基础上实现此项特殊功能,使交通灯控制系统的功能更完善。通过实训模块的操作训练和相关知识的学习,使学生熟悉单片机端口控制的工作原理,掌握定时器/计数器的控制方法,熟悉单片机开发的根本过程。图5-1交通灯控制系统总体框图学习目标学习目标知识和能力要求

知识要求(1)掌握单片机端口的控制方法;(2)熟悉常用的单片机定时/计数器的使用方法;(3)理解常用几种结构的程序设计特点;(4)掌握单片机定时/计数器初始化的方法;(5)掌握常用元器件的特性和测试方法;(6)掌握单片机子程序的编写及调用方法;(7)掌握单片机倒计时程序的编写方法。学习目标知识和能力要求

能力要求(1)能够根据项目要求分解任务并设计出硬件电路;(2)能够使用WAVE6000软件对汇编程序进行调试、编译等;(3)能够进行复杂电路的正确连接及调试;(4)能够进行显示电路的设计和数据传输程序的设计与调试;(5)能够灵活运用单片机中除法指令进行数据拆分;(6)能够把分解开的任务进行综合、整体分析并编写连接程序;(7)能够读懂交通灯系统总体程序;(8)能够熟练使用编程器下载程序到单片机中。任务准备在单片机控制系统中,常常需要有实时时钟以实现定时或延时控制,也常需要有对外界事件进行计数的功能。定时或计数功能既可用软件实现,也可用单片机内部的可编程定时/计数器实现。用软件实现定时及计数,常采用延时程序,它占用了CPU的执行时间,降低CPU的利用率。为了提高CPU的利用率往往采用单片机内部的定时/计数器,通过软件确定和改变它的定时/计数值,实现各种定时/计数要求。单片机定时/计数器系统一、定时/计数器的结构1.

A89S51单片机内部有两个定时/计数器T0和T1,每个定时/计数器都可以实现定时和计数功能,其结构框图如图5-2所示。定时/计数器i的基本部件是两个8位寄存器THi及i组合的16位加法计数器,用于对定时或计数脉冲进行加法计数。任务准备图5-2定时/计数器结构框图任务准备当计数脉冲来自内部时钟脉冲,即机器周期〔fosc/12〕时,定时/计数器作定时器使用。当计数脉冲来自于外部引脚T0/T1上的输入脉冲时,定时/计数器作计数器使用。如果在第一个周期检测到T0/T1引脚的脉冲信号为1,第二个机器周期检测到T0/T1引脚的脉冲信号为0,即出现从高电平到低电平的跳变时,计数器加1。由于检测到一次负跳变需要两个机器周期,所以最高的外部计数脉冲的频率不能超过时钟频率的1/24,并且要求外部计数脉冲的高电平和低电平的持续时间不能小于一个机器周期。任务准备定时器方式寄存器TMOD用于设置定时/计数器的工作方式,定时器控制寄存器TCON用于控制定时/计数器的启动和停止。任务准备定时/计数器的控制1.1)定时/计数器方式控制寄存器OD定时/计数器方式控制存放器TMOD的地址为89H,用于控制和选择定时/计数器的工作方式,高4位置1,低4位控制0,不能采用位寻址方式。格式如下。任务准备〔1〕GATE。门控位,用来指定外部中断请求是否参与对定时/计数器的启动控制。当GATE=0时,只要TCON存放器中的TRi位为1,就可以启动定时/计数器i,与外部中断输入信号INi无关,是一种内部启动方式;假设GATE=1,那么只有当TRi为1且外部中断输入信号INi为1时,才能启动定时/计数器i,这种方式可以实现外部信号对定时器的启动控制。〔2〕C/定时/计数方式选择位。C/=0为定时方式,C/=1为计数方式。任务准备〔3〕T1/T0。工作方式选择位。用以选择定时/计数器的工作方式,内部定时/计数器的操作方式见表5-1。任务准备例如,设置T0工作于定时方式,内部启动,操作方式为方式2;设置T1工作在计数方式下,外部启动,操作方式为方式0。那么设定工作方式的程序为MOVTMOD,#0C2或MOVTMOD,#11000010B;对应OD存放器可以看出设置方法任务准备2)定时/计数器控制寄存器TCON

TCON既参与定时控制,又参与中断控制,有关中断控制的内容详见学习任务六。与定时/计数器控制相关的有定时器溢出中断请求标志F1/F0及定时启动/定时控制TR1/TR0。TF1/TF0=1时,定时器有溢出中断请求;TF1/TF0=0时,定时器无溢出中断请求。TR1/TR0=1时,启动定时器工作;TR1/TR0=0时,停止定时器工作。任务准备定时/计数器的工作方式二、工作方式01.当TMOD中的10=00时,定时/计数器工作在方式0。此时,定时/计数器内部的计数器为13位计数器,由i提供高8位,i提供低5位。假设在i和i中设置好计数初值,且启动定时/计数器就可以进行加法计数。i低5位计数满时直接向i进位,当13位计数器计数满时,定时器溢出中断请求标志位Fi置1。此种工作方式下内部计数器的最大计数值为213=8192。定时时间及计数值可按如下公式计算。任务准备〔1〕作定时器用时,定时时间为Δt=〔213-计数初值〕×机器周期=〔8192-计数初值〕×时钟周期×12〔2〕作计数器用时,计数值为C=213-计数初值=8192-计数初值任务准备工作方式12.当TMOD中的M1M0=01时,定时计数器工作在方式1。此时,定时/计数器内部的计数器为16位计数器。由THi提供高8位,i提供低8位。在THi和TLi中设置好计数初值,启动定时/计数器就可以进行加法计数。当16位计数器计数满时,定时器溢出中断请求标志位TFi置1。此种工作方式下内部计数器的最大计数值为216=65536。定时时间及计数值可按如下公式计算。任务准备(1)作定时用时,定时时间为Δt=(216-计数初值)×机器周期=(65536-计数初值)×时钟周期×12(2)作计数器用时,计数值为C=216-计数初值=65536-计数初值例如,当fosc=6z时,计数初值为0FF06(65286),则定时时间为

任务准备工作方式23.当TMOD中的M1M0=10时,定时/计数器工作在方式2。此时,定时/计数器内部的计数器为自动重装初值的8位计数器。两个8位计数器THi和TLi中的TLi作加法计数器,THi作为预置常数存放器。当TLi计数满时,将中断请求TFi置1,同时将THi中的计数初值以硬件方法自动装入TLi。此种工作方式下内部计数器的最大计数值为28=256。定时时间及计数值可按如下公式计算。〔1〕作定时器用时,定时时间为Δt=〔28-计数初值〕×机器周期=〔256-计数初值〕×时钟周期×12〔2〕作计数器用时,计数值为C=28-计数初值=256-计数初值任务准备工作方式34.当TMOD中的M1M0=11时,定时/计数器工作在方式3。此时定时/计数器T0可拆成两个独立的8位定时/计数器使用,T1不变。当定时/计数器工作在方式3时,T0、T1的设置和使用方法是不同的。定时/计数器T0中的两个8位计数器TH0、TL0拆分为两个独立的计数器后,TL0所对应的定时/计数器使用T0原有控制资源,即使用TR0控制启停,TF0作为溢出标志。TH0所对应的定时/计数器只能作8位定时器用,借用T1的资源TR1、TF1。任务准备

T0工作在方式3时的定时/计数值计算与方式2相同。定时/计数值1仍然可工作于方式0~方式2下,只是由于其TR1、TF1被0的0占用,因而没有计算溢出标志可供使用,计算溢出时只能将输出结果送至串行口,即用作串行口波特率发生器。任务准备交通信号灯发展史三、1868年12月10日,信号灯家族的第一个成员就在伦敦议会大厦的广场上诞生了,由当时英国机械师德·哈设计制造的灯柱高7m,身上挂着一盏红、绿两色的提灯——煤气交通信号灯,这是城市街道的第一盏信号灯。第一盏名副其实的三色灯(红、黄、绿三种标志)于1918年诞生。它是三色圆形四面投影器,被安装在纽约市五号街的一座高塔上,由于它的诞生使城市交通情况大为改善。任务准备黄色信号灯的创造者是我国的胡汝鼎,他怀着“科学救国〞的抱负到美国深造,在大创造家爱迪生为董事长的美国通用电气公司任职。一天,他站在繁华的十字路口等待绿灯信号,当他看到红灯而正要过去时,一辆转弯的汽车呼的一声擦身而过,吓了他一身冷汗。回到宿舍,他反复琢磨,终于想到在红、绿灯中间再加上一个黄色信号灯,提醒人们注意危险。他的建议立即得到有关方面的肯定。于是红、黄、绿三色信号灯即以一个完整的指挥信号家族普及全世界陆、海、空交通领域了。任务准备中国最早的马路红绿灯,于1928年出现在上海的英租界。从最早的手牵皮带到20世纪50年代的电气控制,从采用计算机控制到现代化的电子定时监控,交通信号灯在科学化、自动化上不断地更新、发展和完善。任务准备20世纪90年代,美国局部地区开始引进带有计时器的交通信号灯,这种信号灯不仅能够指挥行人与车辆正常行驶,还能够预先告知红灯或绿灯所剩的时间,帮助人们判断何时起步、何时停车。有了这种计时器的帮助,不仅路口交通状况井然有序,还减少了因为无法预估变灯时间而造成的事故。目前这种带有计时器的交通信号灯已经遍布世界各地,我国在2000年之后也开始陆续采用带有计时器的交通信号灯。任务准备早期的交通红绿灯是在三个白炽灯泡前加上红、黄、绿三色的玻璃或塑料灯罩组成,这种交通灯亮度不高,方向性不好,现在已逐渐被淘汰,被由LED高亮度发光二极管组成的交通灯代替。LED交通信号灯任务准备任务一交通信号灯驱动电路设计工作内容及要求本任务所要完成的工作是分解出交通信号灯工作顺序和状态控制方式,完成交通信号灯驱动电路的硬件设计和软件设计。通过单片机控制外围驱动电路点亮发光二极管,模拟仿真出生活中真实的交通灯显示效果。本任务在对交通信号灯控制过程中,主要采用位操作指令,通过对相关位的置位和清零来完成基本信号灯的亮灭控制,由此使学生加深位操作指令的理解,为以后的应用打下坚实的基础。在单片机端口的控制中,主要由字节控制,即输出8位二进制数,对整个端口要通盘考虑,如在学习任务三中通过查表指令控制外部发光二极管时,采用的就是字节操作。本任务中由于接在端口上的各信号灯变化不同,采用位操作优势明显。因此,在本任务中就注意对位操作指令的应用,同时提高对任务的分析能力,抓住解决问题的关键点。任务分析根据交通灯控制系统的任务说明及本任务的工作内容及要求,通过具体的路口交通灯状态的演示分析,如图5-4所示,我们把生活中真实的交通信号灯归纳为如下6个状态。(1)东西方向绿灯亮,南北方向同时红灯亮,倒计时25s开始。此状态下,东西方向允许通行,南北方向禁止通行。(2)倒计时到5s时,东西方向绿灯闪烁,闪烁时间3s,起提示作用。南北方向红灯依然亮,禁止通行。此状态下,东西方向未进入路口标志线的车注意速度,采取必要措施。任务一交通信号灯驱动电路设计图5-4交通信号灯工作状态任务一交通信号灯驱动电路设计任务一交通信号灯驱动电路设计交通信号灯驱动电路设计思路一、根据上述的信号灯驱动电路的任务分析可知,马路东、西、南、北4个路口均有红、绿、黄灯,共12只,其中东西方向两组6只,由于这两个路口控制方式相同,所以可以串联在一起,用单片机同一端口的3个口线就可以控制了。同理,南北方向的两组6只红绿黄灯也是串联在一起,利用单片机同一端口的另3个口线进行控制。我们在此采用AT89S51单片机作为控制单元,利用它的P2端口的6个口线进行交通信号灯的控制。实训模块交通信号灯驱动电路设计由于单片机并行端口带负载能力有限,这就需要在控制端口P2与负载交通信号灯之间加装一个驱动电路,这里采用一个驱动芯片74LS05反相器,它的好处是想让哪个灯亮就在连接的端口输出高电平,这种正逻辑控制正好符合我们的思维方式和生活习惯,同时这个反相器还具有提供负载驱动电流功能,大大提高了单片机带负载能力。实训模块交通信号灯驱动电路设计交通信号灯驱动的连接二、交通信号灯控制端口P2的控制位分配见表5-3。实训模块交通信号灯驱动电路设计交通灯的布置和各位信号灯的连接实训模块交通信号灯驱动电路设计交通信号灯控制程序设计三、信号灯状态控制程序1.1〕状态控制程序设计思路由表5-2可知,交通灯总的控制状态有6种方式,即东西方向和南北方向两组交通灯有6种工作形式,表中为“1〞时对应灯点亮,为“0〞时对应灯熄灭。由于单片机的并行端口都可以进行位操作,所以我们采用位操作指令中的置位指令“SETBbit〞使某位置“1〞,点亮所接信号灯;利用位清零指令“CLRbit〞使某位清零,熄灭所接信号灯。为编程方便,把各路口的信号灯定义统一的标号,见表5-4。实训模块交通信号灯驱动电路设计实训模块交通信号灯驱动电路设计2)交通灯基本控制状态程序设计根据表5-2、表5-4以及状态控制程序设计思路,我们应容易编写出根本的状态控制程序。其中状态1、状态3、状态4、状态6控制方式根本相同,状态2和状态5由于绿灯处于闪烁状态,所以控制程序有所不同,这在程序设计中要注意区别。6种状态控制程序如下,其中状态1~状态4控制程序给出,状态5和状态6可由学生参照前面的程序补充给出。实训模块交通信号灯驱动电路设计

ORG0100H LED_G1BITP2.1;东西路口绿灯 LED_Y1BITP2.2;东西路口黄灯 LED_R1BITP2.3;东西路口红灯 LED_G2BITP2.4;南北路口绿灯 LED_Y2BITP2.5;南北路口黄灯 LED_R2BITP2.6;南北路口红灯STATE1:SETBLED_G1;状态1,东西路口绿灯亮,南北路口红灯亮……实训模块交通信号灯驱动电路设计在下面的空白处写出交通灯状态5和状态6的控制程序。实训问题实训模块交通信号灯驱动电路设计绿灯闪烁程序设计2.1)程序设计思路绿灯闪烁程序可以按前面学习任务中发光二极管“眨眼〞的控制方式进行,就是间隔一定时间,对绿灯输出端口进行定期的取反“CPLbit〞操作即可。这里把闪烁的时间间隔定为200ms,闪烁持续时间为3s。与以往延时时间控制方式不同,本任务中对时间的控制采用单片机的定时/计数器来完成,这样时间控制更准确,程序执行效率更高。实训模块交通信号灯驱动电路设计 定时器工作的根本原理其实就是给初值,让它不断加1直至定时器计数超出最大值溢出,这个初值是送到TH和TL中的。它是以加法计数的,并能从全1到全0时自动产生溢出中断请求。因此我们可以把计数器记满为零所需的计数值,即所要求的计数值设定为C,把计数初值设定为TC,可得到如下计算通式。TC=M-C式中,M为计数器模值,即最大计数值。实训模块交通信号灯驱动电路设计计数值并不是目的,目的是时间值,计数1次所用的时间为一个机器周期T,即定时器计数脉冲的周期为T,计数脉冲的周期就是单片机的机器周期。设单片机的晶振频率f=12MHz,单片机的机器周期与采用的晶振频率有关,晶振频率的倒数就是单片机的时钟周期,单片机的一个机器周期等于12个时钟周期,所以一个机器周期T=1/12MHz×12=1μs,由前面定时器的学习可知,定时器T0和T1工作在方式1时M的值为65536,所以方式1的最大定时为65.536ms。如果要定时50ms,每计数一次需要1μs,所需计数值的计算方法为实训模块交通信号灯驱动电路设计C=定时时间/机器周期=t/T=50ms/1μs=50000计数初值为TC=M-C=65536-50000=15536=3CB0H定时时间的计算方法为定时时间=〔65536-计数初值〕×机器周期因为在学习单片机的定时/计数器的使用过程中,常用数制转换进行一些简单的运算。除了运用科学计算器进行数制转换外,再向大家推荐一种实用方法,就是利用Windows操作系统中提供的计算器更加方便快捷。实训模块交通信号灯驱动电路设计Windows的科学计算器数制转换示意图从Windows操作系统中,选择“开始〞→“附件〞→“计算器〞命令翻开计算器。默认翻开方式是“标准型〞,可以通过选择“查看〞菜单切换到“科学型〞的界面。实训模块交通信号灯驱动电路设计在科学计算器界面中选择“十进制〞状态,输入上例中的计算初值15536,然后用鼠标单击计算器数制选择栏中“十六进制〞复选框,计算器就将15536转换成十六进制3CB0。由以上分析可知,绿灯间隔200ms,可是12MHz主频的单片机定时器最长定时时间是工作在方式1,最大延时为65.536ms。这里采用每次定时50ms,循环4次50ms的定时,就得到200ms的定时,可以作为交通灯的闪烁频率;再把这200ms的定时循环5次,就得到1s的定时了,也可以把50ms的定时循环20次来得到1s的定时,这样就可以作为交通灯倒计时显示时间的标准单位了。例如,绿灯闪烁3s时间,只要把这1s的定时再循环3次就可以了。实训模块交通信号灯驱动电路设计本程序采用定时器T0工作在方式1定时状态,根据定时/计数器控制方式存放器TMOD的结构形式,把初始值01H送给TMOD就完成了控制要求。前面计算出定时器定时50ms时的计数初值为3CB0H,把初值的高8位3CH送TH0存放器,低8位0B0H送TL0存放器。定时器初始化程序如下。ORG00HMOVTMOD,#01H;定时器T0工作在方式1,16位定时MOVTH0,#3CH;置T0定时初值,高8位送TH0MOVTL0,#0B0H;T0定时初值的低8位送TL0CLRTF0;清T0定时溢出标志位TF0SETBTR0;启动定时器T0实训模块交通信号灯驱动电路设计2)绿灯闪络程序设计LED_G1BITP2.1;东西路口绿灯由P2.1控制LED_Y1BITP2.2;东西路口黄灯由P2.2控制LED_R1BITP2.3;东西路口红灯由P2.3控制LED_G2BITP2.4;南北路口绿灯由P2.4控制LED_Y2BITP2.5;南北路口黄灯由P2.5控制LED_R2BITP2.6;南北路口红灯由P2.6控制ORG00H……实训模块交通信号灯驱动电路设计程序利用WAVE仿真软件进行模拟仿真,达到程序设计要求。仿真时由于计数器需要多次计数定时,就采用连续运行方式进行仿真,为了能看清程序执行中控制端口的变化,应设立合适的断点,如图5-7所示,断点设置在“CPLLED_G1”命令行上,也可以设在其他命令行上或设置多个断点。实训模块交通信号灯驱动电路设计图5-7绿灯闪烁程序仿真实训模块交通信号灯驱动电路设计任务二交通信号灯倒计时显示电路设计工作内容及要求本任务所要完成的工作是交通信号灯倒计时显示电路的硬件设计和软件设计。主要内容包括选择显示电路的器件、数据传输方式、数据接口芯片与显示器件的连接、显示程序算法的设计、1s定时程序的设计、显示程序的仿真等。本任务在对交通信号灯倒计时显示模拟时,贴近生活中的实际情况,由两位七段数码管显示两位数据表示所剩余的时间。在显示控制过程中,时间上的“十位”与“个位”分开显示的方法主要采用除法指令,学生由此拓宽了指令的应用范围,激发学生学习单片机的积极性,同时提高对任务的分析能力,抓住解决问题的关键点。任务分析根据交通灯控制系统的任务说明及本任务的工作内容及要求,把交通信号灯倒计时显示电路设计分解成如下几个部分。(1)在倒计时显示电路硬件设计中,东西和南北方向各用两个共阴极的七段数码管显示剩余时间,这样共需要4个七段数码管。(2)为减少端口的占用,同时也为了使系统简化,采用单片机的串行口P3.0和P3.1进行数据传输,这里还使用移位寄存器74LS164作为数码管的数据传送设备,4个数码管需要4个74LS164配套,把这4个移位寄存器进行串联,显示的时间数据一次性连续传送。任务二交通信号灯倒计时显示电路设计任务分析(3)显示时间的拆分是软件设计首先需要解决的问题,如东西方向路口显示“25”时,得先把它分解成“2”和“5”,然后再采用第四单元中查表的方法找到“2”和“5”的段码,最后从串行口P3.0移位输出。南北方向倒计时显示采用的方法与东西方向相同。(4)如何把数据输送到4个移位寄存器呢?还以显示25s为例,东西方向把电路分解成“2”和“5”,南北方向显示数值与东西方向相同,也分解成“2”和“5”,4个数字查表得到的段码也是四组,这四组段码一共是4×8=32位,以“2”“5”“2”“5”的排列方式从串口输出,32个移位脉冲之后,这32位数据就完整地分配给了4个移位寄存器74LS164了,数码管也就在东西和南北方向上都显示“2”和“5”了。任务二交通信号灯倒计时显示电路设计利用除法指令进行数值拆分1.除法指令:DIVAB;A/B→A〔商〕,余数→B商〔为整数〕存放在A中,余数存放在B中,且CY和溢出标志位OV清零。如果B的内容为0〔即余数为0〕,那么存放结果的A、B中的内容不定,并溢出标志位OV置1。如果〔A〕=25,〔B〕=10,执行指令DIVAB,运算结果为〔A〕=2,〔B〕=5,CY=0,OV=0。知识链接以上运算结果正是解决倒计时显示所要的结果,因为一位数码管只能显示一位数,“25〞不能在一位数码管上显示,要分成十位和个位两个数字,分别送到一个数码管上进行显示,才能到达预想的效果。拆分成两位数字之后,再利用学习任务三介绍的查找键值段码的方法,在表中找到各自对应的段码,先送“5〞再送“2〞,显示的问题就解决了。知识链接图5-7绿灯闪烁程序仿真知识链接 ORG0000H MOVR1,#24LOOP:MOVA,R1 MOVB,#10 DIVAB MOVP0,A MOVA,B MOVP1,A DECR1 CJNER1,#20,LOOP END知识链接数值拆分的其他方法2.除了利用除法指令进行数值拆分外,还可以利用其他方法得到相同的结果,如利用逻辑指令中的逻辑与指令“ANLA,#0F0H(或#0FH)”进行高4位或低4位的屏蔽,再利用累加器高低位交换指令“SWAPA”也可以完成数值拆分的功能。知识链接倒计时显示电路设计思路一、根据本任务分析和生活中真实交通信号灯的组成情况,设计出数据串行输出转换电路,电路的原理图与学习任务四中的键盘输入数码管输出显示电路根本相同,只是采用了4组移位存放器,时间显示的段码数据还是从单片机的P3.0输出送给第一个移位存放器的输入端A和B,P3.1发出脉冲每个移位存放器的CLK端。前一个移位存放器的Q7连接到下一组移位存放器的输入端A和B的连接点上。74LS164下面都接有一个显示数码管,两个为一组代表东西方向倒计时显示设备,另两个代表南北方向倒计时显示设备。实训模块交通信号灯倒计时显示电路软硬件设计倒计时数据显示电路原理图二、实训模块交通信号灯倒计时显示电路软硬件设计根据电路设计思路,设计出显示电路原理图如图5-9所示。4个移位寄存器从右到左分别编号为A、B、C、D,数据移位传送,先送给移位寄存器D,D移位寄存器的Q7(即D7)连接到C寄存器的输入端A和B上,后面电路的接法以此类推。图5-7到纪实性电视电路原理图实训模块交通信号灯倒计时显示电路软硬件设计倒计时显示电路软件设计三、根据本任务知识链接中介绍的数值拆分方法,两种拆分方法中除法指令拆分方便实用,学生易于掌握,所以本程序采用除法指令进行数值拆分,程序编写如下。实训模块交通信号灯倒计时显示电路软硬件设计1)两位倒计时数值拆分显示程序设计SECOND1EQU30H;东西路口计时存放器SECOND2EQU31H ;南北路口计时存放器DBUFEQU40H ;显示缓冲区1TEMPEQU44H ;显示缓冲区2ORG0000HMOVSECOND1,#25 ;东西路口计时显示初值25sMOVSECOND2,#25 ;南北路口计时显示初值25sMOVR3,#25 ;控制循环次数,即显示数值的个数……实训模块交通信号灯倒计时显示电路软硬件设计2)倒计时显示程序设计接上述拆分程序,东西和南北方向的时间数值都存放在DBUF缓冲区中。倒计时数值显示程序如下。SECOND1EQU30H;东西路口计时存放器SECOND2EQU31H;南北路口计时存放器DBUFEQU40H;显示缓冲区TEMPEQU44H;显示暂存区ORG0000HMOVR0,#DBUFMOVR1,#TEMP……实训模块交通信号灯倒计时显示电路软硬件设计程序调试与仿真三、实训模块交通信号灯倒计时显示电路软硬件设计把倒计时数值拆分程序和显示程序分别录入到WAVE仿真软件中,进行程序仿真调试,观察端口或寄存器的变化,是否与设计要求相同。在仿真过程中,为了便于观察,可以把数据直接送到单片机的四个并行端口,这样可以方便调试,程序调试达到设计要求时,再把原来的存储地址或寄存器更换回来。任务三交通灯控制系统调试工作内容及要求本任务所要完成的工作是进行交通灯控制系统软硬件联合调试,实现交通灯控制系统的设计要求。主要内容包括:根据前面任务完成的硬件电路设计情况,进行系统整体电路的连接;交通灯控制系统软件整体设计及调试;程序下载到单片机并进行软硬件联合调试。通过以上任务的实施,最后使交通灯控制系统能完全模拟生活中真实交通控制信号灯的工作状态,达到设计要求。学生在完成整个任务的过程中,逐步提高理论知识和实践能力。通过拓宽单片机的应用范围,激发学生学习单片机的积极性,同时提高分析问题和解决问题的能力。任务分析根据交通灯控制系统的任务说明及本任务的工作内容及要求,把交通灯控制系统设计分解成如下几个部分。(1)根据前面任务完成各电路的设计,进行交通灯控制系统硬件电路的连接测试。(2)交通灯控制系统整体程序的设计与仿真调试。(3)下载程序,完成交通灯控制系统的软硬件联合调试,完成系统的设计,达到设计要求。任务三交通灯控制系统调试交通灯控制系统线路连接一、交通灯控制系统的电路图如图5-10所示,按照电路图进行硬件连接。连接电路时应注意以下几点。〔1〕P3.0接最左侧移位存放器74LS164的输入端A和B〔1和2脚〕;后面三个移位存放器的输入端〔A和B〕分别接前一个移位存放器的Q7〔标号为D7、C7、B7〕。〔2〕P3.1与四个移位存放器的CLK〔8脚〕并联在一起。〔3〕P2.1~P2.6接反相器74LS05的6个输入端,74LS05的对应输出端接各路口的发光二极管的阴极,二极管的阳极接+5V电源。实训模块交通灯控制系统线路连接与软硬件联合调试图5-10交通灯控制系统电路图实训模块交通灯控制系统线路连接与软硬件联合调试交通灯控制系统整体软件设计二、前面我们把任务分解开来,每个分解的任务所需要的程序也都已经编写出来了。当时在编写时,我们只是考虑一个单独任务所需要的程序,程序编写中没有参加相关任务的协调程序。其实在整个系统中各任务是相互关联的,有些控制是结合其他任务一起进行的,所以在整个交通灯控制系统的软件总体

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论