3.3 定时器1正 倒计数模式控制交通信号灯 课件(共53张PPT)-《单片机技术与C语言基础 》同步教学(电子工业版)

资源下载
  1. 二一教育资源

3.3 定时器1正 倒计数模式控制交通信号灯 课件(共53张PPT)-《单片机技术与C语言基础 》同步教学(电子工业版)

资源简介

(共53张PPT)
单片机与C语言技术应用
第三单元 任务3
3.3 定时器1正/倒计数模式控制交通信号灯
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
学习目标
01
掌握定时器1在自由运行模式、模模式、正/倒计数模式下的计数过程;
掌握定时器1在自由运行模式、模模式、正/倒计数模式下相关寄存器的设置方法;
掌握定时器1在自由运行模式、模模式、正/倒计数模式下的中断触发过程;
学习目标
01
掌握定时器1在自由运行模式、模模式、正/倒计数模式下的定时中断周期计算;
掌握定时器1在自由运行模式、模模式、正/倒计数模式下控制交通信号灯的开关。
学习目标
01
能对定时器1在自由运行模式、模模式、正/倒计数模式下相关寄存器进行设置;
能对定时器1在自由运行模式、模模式、正/倒计数模式下的中断使能进行配置;
能根据定时长短在自由运行模式、模模式、正/倒计数模式下计算定时中断的次数;
能使用定时器1在自由运行模式、模模式、正/倒计数模式下控制交通信号灯的开关;
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
3.3 定时器1正/倒计数模式控制交通信号灯
任务要求与任务分析
02
● 任务要求:
①黑板通电后,D6红色LED点亮(红灯亮),延时1秒;
②1秒到,D6红色LED熄灭(红灯灭),延时1秒;
③1秒到,D6红色LED点亮(红灯亮),延时1秒;
④LED灯效果可循环。
任务要求与任务分析
02
● 任务分析:
定时器1工作在正/倒计数模式下定时输出控制。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
3.3 定时器1正/倒计数模式控制交通信号灯
正/倒计数模式的计数过程
1
知识储备
03
正/倒计数模式的选择与配置
2
3
4
正/倒计数模式下定时器1中断触发过程
正/倒计数模式下定时中断周期的计算
03
知识储备
定时器1工作在正/倒计数模式下,计数器从0x0000开始计数,计数值在每个定时器时钟的边沿加1,即为正计数。
当计数值达到T1CC0时,产生比较输出,然后计数器从T1CC0开始计数,计数值在每个定时器时钟的边沿减1,即为倒计数。
当计数器的值与0x0000相等时,自动溢出,计数器又从0x0000开始计数,继续下一次循环。
T1CC0是一个16位的二进制数,由通道0捕获/比较的高8位寄存器T1CCOH和低8位寄存器T1CCOL共同组成。
03
知识储备
正计数/倒计数模式:
正/倒计数模式的计数过程
1
知识储备
03
正/倒计数模式的选择与配置
2
3
4
正/倒计数模式下定时器1中断触发过程
正/倒计数模式下定时中断周期的计算
03
知识储备
(1)配置T1CTL寄存器选择正/倒计数模式计数。
(2)配置TIMIF寄存器的OVFIM位使能定时器1溢出中断。
(3)配置IEN1寄存器的T1IE位使能定时1中断。
(4)配置EA使能总中断。
03
知识储备
本任务设置定时器1工作在正/倒计数模式下进行计数且定时器标记输出频率经过1分频得到定时器时钟。本任务定时器1在正/倒计数模式下工作的具体配置代码如下:
1.T1CTL = 0x03; //定时器时钟分频系数为1并选择正/倒计数模式
2.T1IE=1; //使能定时器1中断
3.EA=1; //使能总中断
03
知识储备
正/倒计数模式下不能配置T1CCTL0寄存器选择通道0比较输出,否则在通道0中断和定时器1溢出中断都使能的情况下,在正/倒计数过程中的比较输出和溢出两个时刻都将触发定时器1中断。
正/倒计数模式的计数过程
1
知识储备
03
正/倒计数模式的选择与配置
2
3
4
正/倒计数模式下定时器1中断触发过程
正/倒计数模式下定时中断周期的计算
03
知识储备
在正/倒计数模式下,当定时器1计数器从0x0000开始正计数至T1CC0时,然后又倒计数至0x000时,产生自动溢出,T1STAT寄存器中的计数器溢出中断标志OVFIF被硬件自动置1。
在定时器1溢出中断使能的情况下,硬件会自动将IRCON寄存器的定时器1中断标志T1IF置1。
在定时器1中断和总中断使能的情况下,CC2530单片机检测到定时器1中断标志T1IF为1,将会触发定时器1中断,执行定时器1中断服务函数。
正/倒计数模式的计数过程
1
知识储备
03
正/倒计数模式的选择与配置
2
3
4
正/倒计数模式下定时器1中断触发过程
正/倒计数模式下定时中断周期的计算
03
知识储备
定时器1在正/倒计数模式下,计数器从0x0000开始正计数至T1CC0又倒计数至0x0000,共计数(2* T1CC0)个定时器时钟信号,并触发定时器中断。整个定时中断的周期为(2* T1CC0)个定时器时钟周期,其计算公式如下:
(s)
03
知识储备
本任务的定时器时钟频率为16MHz,T1CC0的数值为32000,因此定时中断周期为:
(s)
03
知识储备
这说明本任务在执行过程中,每0.004秒将会触发一次定时器中断。十进制数32000对应的16进制数为0x7d00,将高8位0x7d写入T1CCOH寄存器,低8位0x00写入T1CCOL寄存器, 具体配置代码如下:
1.T1CC0H=0x7d; //T1CC0高8位
2.T1CC0L=0x00; //T1CC0低8位
03
知识储备
在定时器时钟、T1CC0H、T1CC0L均一样的情况下,正/倒计数模式的定时中断周期是模模式定时中断周期的两倍。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
3.3 定时器1正/倒计数模式控制交通信号灯
任务实施
04
● 任务实施前必须先准备好以下设备和资源:
序号 设备/资源名称 数量 是否准备到位(√)
1 计算机(已安装好IAR软件) 1台
2 NEWLab实训平台 1套
3 CC-Debugger 仿真器 1套
4 黑板 1块
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
●打开本书配套源代码文件夹中的“定时器1正/倒计数模式控制交通信号灯.ewp”工程。
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
● 步骤1:头文件包含
04
任务实施
#include
● 步骤2:I/O引脚宏定义
04
任务实施
1.#define YELLOW_LED1 P1_0 //将P1_0引脚宏定义为D3绿色LED控制引脚
2.#define YELLOW_LED2 P1_1 //将P1_1引脚宏定义为D4绿色LED控制引脚
步骤3:全局变量定义
unsigned int Count=0; //定义Count计数器为全局变量并初始化为0
04
任务实施
步骤4:编写定时器1初始化函数
04
任务实施
(1)系统复位后默认选择内部16MHz的RC振荡器为时钟源,且系统时钟频率和定时器标记输出时钟频率都为16MHz;通过设置寄存器T1CTL,将定时器标记输出时钟信号经过1分频得到定时器时钟且设置定时器1工作在正/倒模式下。
(2)根据定时中断周期配置高8位寄存器T1CC0H和低8位寄存器T1CC0L。
(3)使能定时器1中断。
(4)使能总中断。
定时器1初始化代码如下:
1.void Init_Timer1(void)
2.{
3. T1CTL = 0x03; //定时器时钟分频系数为1并选择正/倒计数模式
4. T1CC0H=0x7d; //T1CC0高8位
5. T1CC0L=0x00; //T1CC0低8位
6. T1IE=1; //使能定时器1中断
7. EA=1; //使能总中断
8.}
04
任务实施
步骤5:编写定时器1中断服务函数
根据前面的初始化配置,定时器时钟频率为16MHz,在正/倒计数模式下定时器1的定时中断的周期为0.004秒/次。本任务需要完成间隔1秒控制交通信号灯的亮灭,1秒所对应的定时中断次数为:
说明连续250次定时中断所需要的时间等于1秒。
04
任务实施
04
任务实施
正/倒计数模式下定时器1中断处理流程图下定时器1中断处理流程图:
本任务定时器1中断服务的代码如下:
#pragma vector=T1_VECTOR //定时器1中断向量指定
__interrupt void T1_ISR(void)
{
Count++; //定时器计数加1
if(Count>=250) //判断计数器Count是否等于定时1秒所需要的中断次数
{
Count=0; //计数器清0
YELLOW_LED1=! YELLOW_LED1; //黄灯状态翻转
YELLOW_LED2=! YELLOW_LED2; //黄灯状态翻转
}
}
04
任务实施
(1)通过宏指令“#pragma vector=T1_VECTOR”或“#pragma vector=0x4B” 将该中断函数指向定时器1中断向量,然后下一行开始写中断服务函数“__interrupt void T1_ISR(void)”;
(2)全局变量Count加1;
(3)将Count的值与250进行比较,当Count的值大于等于250时,表示定时1秒到,黄灯状态翻转,中断返回;当Count的值小于250时,不作任何处理直接中断返回。
04
任务实施
步骤6:编写main主函数
main函数主要完成I/O口初始化、定时器1初始化,然后进入无限循环,其具体配置代码如下:
void main(void)
{
InitIO(); //I/O口初始化
Init_Timer1(); //定时器1初始化
while(1); //无限循环
}
04
任务实施
04
任务实施
代码中应用到所学过的知识点:
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
对工程进行编译,观察是否提示编译成功。如果出现错误或警告,需要认真检查修改,重新编译链接,直到没有错误和警告为止。
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
下载代码
(1)用CC-Debugger仿真器的下载线连接黑板;
(2)完成代码下载;
(3)黑板上电,观察D3绿色LED和D4红色LED是否每隔1秒循环交替开关。
04
任务实施
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
3.3 定时器1正/倒计数模式控制交通信号灯
05
任务工单
(一)本次任务关键知识引导
1. 定时器1工作在正/倒计数模式下,计数器从( )开始计数,计数器的值在每个定时器时钟的边沿加1,即为( );当计数值达到( )时,产生比较输出,然后计数器从( )开始计数,计数器的值在每个定时器时钟的边沿( ),即为( );当计数器的值与( )相等时,自动溢出,计数器又从( )开始计数,继续下一次循环。
2. 本任务选择正/倒计数模式并将定时器的分频系数设置为1,需要将T1CTL寄存器设置为( )。
3. 在正/倒计数模式下,当产生自动溢出时,( )寄存器中的计数器溢出中断标志( )被硬件自动置1;在( )中断使能的情况下,硬件会自动将IRCON寄存器的定时器1中断标志( )置1;在( )和( )使能的情况下,CC2530单片机检测到定时器1中断标志T1IF为1,将会触发定时器1中断,执行定时器1( )。
4. 本任务的定时器时钟频率为16MHz,T1CC0的数值为32000,其对应的16进制数为( ),将( )写入T1CC0H,将( )写入T1CC0L,则对应的定时中断周期为( )。
任务工单
05
各组选派代表分析本组任务实施经验;
01
添加标题
请参照评价标准完成自评;
02
完成对其他小组的评价。
03
互评
经验分享
自评
评价方式 可采用自评、互评、老师评价等方式 说明 主要评价学生在项目学习过程中的操作技能、理论知识、学习态度、课堂表现、学习能力等。 序号 评价内容 评价标准 分值 得分
1 知识运用(20%) 掌握相关理论知识,完成本次任务关键知识的作答准确率(20分) 20分
2 专业技能(40%) 工程编译通过,D3和D4两颗LED的工作状态切换正常。(40分) 40分
工程编译通过,D3和D4两颗LED的工作状态异常。(30分)
完成代码的输入,工程没有编译通过。(15分)
建立工程错误,或者部分输入代码。(5分)
3 核心素养(20%) 具有良好的自主学习、分析解决问题、帮助他人的能力、整个任务过程中有指导他人并解决他人问题(20分) 20分
具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)
具有主动学习并收集信息的能力,遇到问题有请教他人并得以解决(10分)
不主动学习(0分)
4 职业素养(20%) 实验完成后,设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分) 20分
实验完成后,设备无损坏、无干扰课堂秩序(15分)
无干扰课堂秩序(10分)
干扰课堂秩序(0分)
总得分
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
3.3 定时器1正/倒计数模式控制交通信号灯
任务小结
06
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸练习
08
3.3 定时器1正/倒计数模式控制交通信号灯
任务拓展
07
动动脑
请思考正/倒计数模式、自由运行模式、模模式三种工作模式的不同之处。
任务拓展
07
动动手
请在本任务的基础上进行修改,将绿、黄、红交替点亮的时间变为原来的2倍。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸练习
08
3.3 定时器1正/倒计数模式控制交通信号灯
延伸练习
08
请在本任务代码基础上进行修改,实现按键按下时处于红灯亮禁行状态,而按键松开时立刻恢复绿、黄、红灯交替点亮状态。

展开更多......

收起↑

资源预览