单片机技术及应用 项目4 单片机数码管显示器(任务7)学习课件.ppt

单片机技术及应用 项目4 单片机数码管显示器(任务7)学习课件.ppt

项目四单片机数码管显示器任务目标●巩固和加深理解已学过的指令和编程方法;●领会任务中新出现的指令;●领会中断、键盘处理、数码管动态显示及定时器/计数器的综合应用方法。任务7带时间显示交通灯任务描述交管部门定制了某十字路口的交通灯。具体要求如下:(1)南北红灯亮时东西向绿灯亮,南北绿灯亮时东西向红灯亮;(2)红、绿灯切换时红灯继续亮,绿灯先转黄灯,一定时间后黄灯转红灯,红灯转绿灯;(3)初始缺省状态设置:南北红,东西绿方式。红灯亮的缺省值为15秒,绿灯亮的缺省值为12秒,黄灯亮的缺省值为3秒;(4)有正常显示和设置时间两种工作模式;(5)有两个操作按键,一个键具有设置及选位功能,另一个键可以调整大小;(6)不断按设置及选位功能键,则进行“数位6→数位5→数位2→数位1→正常显示→数位6→数位5……”状态循环,其中“数位6→数位5→数位2→数位1”状态,即进入设置时间模式;(7)在设置时间模式,“数位6、数位5”表示绿灯时间,“数位2、数位1”表示黄灯时间(红灯时间=绿灯时间+黄灯时间≤99秒),对数码管从左到右逐位选位,被选中的位进行闪烁,这时按大小调整键即可改变该位数值大小,不断按大小调整键,该位数值从小到大循环改变;(8)正常显示模式格式:东西--南北。东西用“数位6、数位5”表示,南北用“数位2、数位1”表示,--表示中间两位数位4、数位3不亮。任务7带时间显示交通灯任务知识本任务新出现的指令减1指令DECdirect;direct←(direct)–1该指令是把直接地址单元direct中的内容减1,结果存到direct中。如已知(28H)=23H,执行指令DEC28H后,(28H)=22H。任务7带时间显示交通灯任务实施一、硬件电路制作带时间显示交通灯的硬件电路包括中央控制板、LED交通灯电路板及数码管显示板三部分。单片机中央控制板可采用项目二制作的电路板,LED交通灯电路可采用项目三中制作的电路板,数码管显示电路板在本项目任务1中已制作完成。需要将三块电路板用排线相连,这里选取中央控制板的JP0、JP2、JP5与数码管显示电路板的JP0、JP1、JP2相连,中央控制板的JP1、JP3、JP6和LED交通灯电路板的JP0、JP1、JP2相连,如图4-7-1所示。任务7带时间显示交通灯任务实施图4-7-1带时间显示交通灯的硬件电路组成任务7带时间显示交通灯任务实施二、软件编写(一)画出程序流程图本带时间显示交通灯要进行红、绿、黄灯的时间显示,采用AT89S51的定时器/计数器来定时,这里选取定时器T0,允许中断,工作在方式1。与上两个任务相似,程序包括主程序、子程序和中断服务程序。主程序包括程序初始化、数码管动态显示和键盘检测及处理三部分,如图4-7-2(a)所示,其中→间为数码管动态显示部分,细化为图4-7-2(b),→间为S1键程序处理部分,细化为图4-7-2(c),→间为S2键程序处理部分,细化为图4-7-2(d)。子程序包括动态显示用的1ms延时子程序和按键去抖用的10ms延时子程序,可参照前述任务。这里主要介绍主程序和中断服务程序的编写思路。任务7带时间显示交通灯任务实施1.程序初始化如图4-7-2(a)所示,程序初始化包括以下部分:(1)中断入口设置:本任务用定时器T0,所以其中断入口地址为000BH,从此开始的3个单元(000BH~000DH)放入无条件跳转指令LJMPT0INT,转到T0中断处理程序。T0中断处理程序放置在主程序及子程序之后。(2)交通灯初始缺省状态设置。包括三个内容:a.红、绿、黄灯时长缺省值设置:本任务的交通灯是带时间显示的,时间也是可调的,但在开机复位后是工作在缺省状态的,只有调整时间后才运行在新的时间上,所以必须进行缺省设置。本任务红、绿、黄灯时长的缺省设置是:红灯15秒,绿灯12秒,黄灯3秒,注意红灯时长=绿灯时长+黄灯时长。b.交通灯缺省状态标志设置:本交通灯工作过程有4种工作状态,即南北红灯,东西绿灯;南北红灯,东西黄灯;东西红灯,南北绿灯;东西红灯,南北黄灯,那复位后工作在哪个状态呢?必须进行缺省设置。这里对4种工作状态进行了编号,即00H、01H、10H、11H,用1个RAM单元EWSNLAB(40H)来存储,如表4-7-1所示。缺省状态(EWSNLAB)=00H,即南北红灯,东西绿灯。任务7带时间显示交通灯任务实施表4-7-1交通灯的4种工作状态任务7带时间显示交通灯EWSNLAB(40H)交通灯工作

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档