任务3.4 交通灯控制系统(课件)-《单片机技术与应用》同步教学(电子工业版)

2024-07-11
| 22页
| 115人阅读
| 4人下载
普通

内容正文:

项目3 交通灯控制系统 任务3.4 交通灯控制系统 明确任务 十字路的交通灯控制属于典型的单片机时间控制系统,那么怎么能方便地实现长时间的精确定时控制?可以利用AT89S51单片机提供的内部定时/计数器来完成。 工作任务:设计制作时间精准的交通灯控制系统,利用AT89S51单片机内部定时/计数器进行时间查询式控制,设计硬件电路及软件编程编译下载调试。 1 定时方法比较 硬件定时:有硬件电路完成;修改电路中元件的参数改变定时时间,不够灵活、方便; 软件定时:编循环程序,时间精确;占用CPU; 可编程定时器定时:对系统时钟脉冲记数,灵活、方便。 一、AT89S51单片机定时器/计数器的结构原理 知识链接 有两个16位可编程定时器/计数器,简称为定时器0(T0) 和定时器1(T1)。加1计数器。 2 AT89S51单片机定时器/计数器的结构 3定时/计数器工作原理 本质就是一个加1计数器,根据信号源的不同分为定时器和计数器。 定时器,信号源机器周期(振荡周期12分频)。 单击此处编辑母版文本样式 第二级 第三级 第四级 第五级 计数器,外部信号输入引脚P3.4和P3.5,脉冲的下降沿将触发计数。因检测一个由1至0的跳变需要两个机器周期,故外部信号的最高计数频率为时钟频率的二十四分之一。 单击此处编辑母版文本样式 第二级 第三级 第四级 第五级 4 定时器/计数器的控制 工作方式寄存器TMOD:设置T0、T1的工作方式 GATE:门控位 GATE=0:软件启动定时器,即用指令使TCON中的TR1(TR0)置1即可启动定时器1(定时器0)。 GATE=1:软件和硬件共同启动定时器,即用指令使TCON中的TR1(TR0)置1时,还需外部中断INT0(INT1)引脚输入高电平时才能启动定时器1(定时器0)。 M1 M0 工作方式 功能描述 0 0 方式0 13位定时/计数器 0 1 方式1 16位定时/计数器 1 0 方式2 自动重装初值的8位定时/计数器 1 1 方式3 定时器0:分为两个独立的8位计数器 定时器1:无中断的计数器 C/T:定时计数功能选择位 C/T=0时,为定时器方式。 C/T=1时,为计数器方式。 M1、M0:方式选择位 定时器控制寄存器TCON TFi:定时器溢出标志位。当定时器计满溢出时,由硬件自动使TFi置1,并申请中断。 TRi:定时器启停控制位。 GATE=0时,用软件使TR1置1即启动定时器1,若用软件使TR1清0则停止定时器1。 GATE=1时,用软件使TR1置1的同时外部中断INT1的引脚输入高电平才能启动定时器1。 IEi:外部中断0、1请求标志位。 ITi:外部中断0、1触发方式选择位。 5 工作方式 方式0:定时器/计数器是一个由TH0中的8位和TL0中的低5位组成的13位加1计数器 方式1:定时器/计数器是一个由TH0中的8位和TL0中的8位组成的16位加1计数器。 方式2:定时器/计数器是一个能自动装入初值的8位加1计数器,TH0中的8位用于存放定时初值或计数初值,TL0中的8位用于加1计数器。 方式3:定时器0分为两个独立的8位加1计数器TH0和TL0。 1.定时器/计数器的初始化步骤 (1) 确定定时器/计数器的工作方式,并写入TMOD。 (2) 预置定时初值或计数初值,根据定时时间或计数次数,计算定时初值或计数初值,并写入TH0、TL0或TH1、TL1。 (3) 根据需要开放定时器/计数器的中断,给IE中的相关位赋值。 (4) 启动定时器/计数器,给TCON中的TR1或TR0置1。 二、编程技巧 设晶振频率为12MHz,选择T0定时10ms,只依靠定时器软件控制完成定时,设置相关寄存器。 步骤①根据已知条件,晶振频率为12MHz,则机器周期为1us,定时10ms即10000us,工作方式中只有方式1能达到一次性溢出计时10ms的要求。因只靠软件控制定时,所以GATE门信号应为0。TMOD高4位控制T1可全部为0。 TMOD=0X01; //T0,工作方式1,定时模式,软件控制 步骤③T0溢出可以采用查询和中断两种方式进行。采用查询方式不需要设置中断,故此步骤可以省略,中断方式设置参照项目四。 步骤④启动定时器运行,即将TCON中的TR0置位。 TR0=1;//启动T0 步骤②计算初始值,由于机器周期为1us,所以需要计数10000次才能计时10ms。初始值为65536-10000=55536。将55536转换为十六进制55536=0XD8F0,将高字节赋给TH0,低字节赋给TL0. TH0=0XD8; //赋值高位 TL0=0XF0; //赋值低位 CPU查询方式又称为软件查询方式,需要用户进行编程处理。 2定时器溢出处理 检测到溢出标志位有效时,首先进行标志位清零处理,为下次计时做准备,然后对计数值进行重新赋值,之后再进行其他程序处理。 if(TF0==1) //查询判读标志位 { TF0=0; //清除标志位,为下次查询做准备 TH0=0XD8; //赋值高位 TL0=0XF0; //赋值低位 ----- //其他处理程序 } 三、硬件电路图 四、软件设计与编程 (1)利用定时器数码管静态显示0-9,间隔1s 如果采用12MHz晶振,那定时最大时间为65.536ms。所以需要采用间接方式实现。如采用50ms*20方式。 while(!TF0); //等待计时50ms TF0=0; TH0=0x3C; TL0=0xB0; //置初值,准备下次定时 count++; if(count>20) //1s时间到 { count=0; //准备下个1s sec++; if(sec>9) sec=0; } 单击此处编辑母版文本样式 第二级 第三级 第四级 第五级 (2)设计交通控制软件控制系统。要求绿灯亮30s,红灯35s,黄灯5s。 时间仅计时两个方向。 十字路口两个方向的红绿灯共12个。因同一个方向的红绿灯工作情况完全一样,所以相当于控制6个不同工作状态的,仅需要单片机的6个端口。 数码管的控制,因需要4个数码管,所以这里采用IO扩展方式进行,减少对单片机端口的需求。164应用参照任务2. 任务实施 1.学生分组,制定方案。 2.查阅资料,设计电路原理图,列出元件清单。 3.准备元件及工具,搭接电路。 4.注意安全。 评价总结 1.学生根据自己实施情况填写任务实施评价单。 2.组间互评,提出问题,解决问题。 3.回收元件及工具,清洁实施现场,6S标准。 4.知识整理总结。 T0(P3.4) T1(P3.5) (P3.2) (P3.3) 启动 工作方式 启动 工 作 方式 溢出 溢出 中断 (8AH) (8CH) (8BH) (8DH) TL0 TH0 TMOD(89H) TCON(88H) TL1 TH1 CPU 中断 INT0(P3.2) GATE TR0 T0(P3.4) C/� EMBED Equation.DSMT4 ���=1 C/� EMBED Equation.DSMT4 ���=0 ≥1 & 1 TF0 TL0 (8位) TH0 (8位) 12分频 振荡器 中断 INT0(P3.2) GATE TR0 T0(P3.4) C/� EMBED Equation.DSMT4 ���=1 C/� EMBED Equation.DSMT4 ���=0 ≥1 & 1 TF0 TL0 (8位) TH0 (8位) 12分频 振荡器 中断 INT0(P3.2) GATE TR0 T0(P3.4) C/� EMBED Equation.DSMT4 ���=1 C/� EMBED Equation.DSMT4 ���=0 ≥1 & 1 TF0 TL0 (5位) TH0 (8位) 12分频 振荡器 中断 INT0(P3.2) GATE TR0 T0(P3.4) C/� EMBED Equation.DSMT4 ���=1 C/� EMBED Equation.DSMT4 ���=0 ≥1 & 1 TF0 TL0 (8位) TH0 (8位) 12分频 振荡器 重新装入 中断 INT0(P3.2) GATE TR0 T0(P3.4) C/� EMBED Equation.DSMT4 ���=1 C/� EMBED Equation.DSMT4 ���=0 ≥1 & 1 TF0 TH0 (8位) TL0 (8位) 12分频 振荡器 TR1 12分频 振荡器 中断 TF1 中断 INT0(P3.2) GATE TR0 T0(P3.4) C/� EMBED Equation.DSMT4 ���=1 C/� EMBED Equation.DSMT4 ���=0 ≥1 & 1 TF0 TH0 (8位) TL0 (8位) 12分频 振荡器 $$

资源预览图

任务3.4 交通灯控制系统(课件)-《单片机技术与应用》同步教学(电子工业版)
1
任务3.4 交通灯控制系统(课件)-《单片机技术与应用》同步教学(电子工业版)
2
任务3.4 交通灯控制系统(课件)-《单片机技术与应用》同步教学(电子工业版)
3
任务3.4 交通灯控制系统(课件)-《单片机技术与应用》同步教学(电子工业版)
4
任务3.4 交通灯控制系统(课件)-《单片机技术与应用》同步教学(电子工业版)
5
任务3.4 交通灯控制系统(课件)-《单片机技术与应用》同步教学(电子工业版)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。