资源简介 (共57张PPT)单片机与C语言技术应用第三单元 任务23.2 定时器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延伸阅读083.2 定时器1模模式控制交通信号灯任务要求与任务分析02● 任务要求:①黑板通电后,D3绿色LED点亮(黄灯亮),延时1秒;②1秒到,D3绿色LED熄灭(黄灯灭),延时1秒;③1秒到,D3绿色LED点亮(黄灯亮),延时1秒;④LED灯效果可循环。任务要求与任务分析02● 任务分析:定时器1工作在模模式下定时输出控制。学习目标01知识储备03任务工单05任务要求与任务分析02任务实施04任务小结06知识与技能提升07延伸阅读083.2 定时器1模模式控制交通信号灯模模式的计数过程1知识储备03模模式的选择与配置234模模式下定时器1中断触发过程模模式下定时中断周期的计算03知识储备定时器1工作在模模式下,计数器从0x0000开始计数,计数值在每个定时器时钟的边沿加1,当计数值达到T1CC0时,产生比较输出,然后又从0x0000重新计数。T1CC0是一个16位的二进制数,由通道0捕获/比较的高8位寄存器T1CCOH和低8位寄存器T1CCOL共同组成。03知识储备模模式计数过程:03知识储备T1CC0L寄存器:位 位名称 复位值 操作 描述7:0 T1CC0[7:0] 0x00 R/W 定时器1通道0捕获/比较值,低位字节。位 位名称 复位值 操作 描述7:0 T1CC0[15:8] 0x00 R/W 定时器1通道0捕获/比较值,高位字节。T1CC0H寄存器:模模式的计数过程1知识储备03模模式的选择与配置234模模式下定时器1中断触发过程模模式下定时中断周期的计算03知识储备(1)配置T1CTL寄存器选择模模式计数。(2)配置T1CCTL0寄存器选择定时器1通道0为比较模式,并使能通道0中断。(3)配置IEN1寄存器的T1IE位使能定时1中断。(4)配置EA使能总中断。03知识储备T1CCTL0寄存器:位 位名称 复位值 操作 描述7 RFIRQ 0 R/W 当设置时,使用RF中断捕获,而不是常规的捕获输入6 IM 1 R/W 通道0中断屏蔽位。设置为1:通道0中断使能设置为0:通道0中断关闭03知识储备位 位名称 复位值 操作 描述5:3 CMP 000 R/W 通道0比较模式选择。当定时器的值等于在TICC0中的比较值,选择输出操作。000:设置输出;001:清除输出;010:切换输出;011:向上比较设置输出;100:向上比较清除输出;101:未使用;110:未使用;111:初始化输出引脚,该位保持不变03知识储备位 位名称 复位值 操作 描述2 MODE 0 R/W 模式选择,选择定时器1通道0捕获或者比较模式。0:捕获模式;1:比较模式1:0 CAP 00 R/W 通道0捕获模式选择。00:未捕获;01:上升沿捕获;10:下降沿捕获;11:上升/下降沿捕获03知识储备本任务设置定时器1工作在模模式下进行计数且定时器标记输出时钟信号经过1分频得到定时器时钟。本任务定时器1在模模式下工作的具体配置代码如下:1.T1CTL = 0x01; //定时器时钟分频系数为1并选择模模式2.T1CCTL0 |=0x04; //配置通道0为比较模式,复位后默认通道0中断使能3.T1IE=1; //使能定时器1中断4.EA=1; //使能总中断03知识储备T1CCTL0寄存器的通道0中断使能位T1CCTL0.IM复位默认值为1,即默认使能通道0中断,不需要进行配置。模模式的计数过程1知识储备03模模式的选择与配置234模模式下定时器1中断触发过程模模式下定时中断周期的计算03知识储备当定时器1计数器的值为T1CC0时,将会产生比较输出,T1STAT寄存器中的定时器1通道0中断标志位CH0IF被硬件自动置1。在定时器1通道0中断使能的情况下,硬件会自动将IRCON寄存器的定时器1中断标志位T1IF置1。在定时器1中断和总中断使能的情况下,CC2530单片机检测到定时器1中断标志位T1IF为1,将会触发定时器1中断,执行定时器1中断服务函数。模模式的计数过程1知识储备03模模式的选择与配置234模模式下定时器1中断触发过程模模式下定时中断周期的计算03知识储备定时器1在模模式下,计数器从0x0000开始计数,计数到T1CC0时,将会产生比较输出。因此,计数器从0x0000开始计数,共计数T1CC0个定时器时钟信号,会触发定时器中断。整个定时中断的周期为T1CC0个定时器时钟周期,其计算公式如下:(s)03知识储备本任务的定时器时钟频率为16MHz,T1CC0的数值为32000,因此定时中断周期为:(s)03知识储备这说明本任务在执行过程中,大约每2毫秒将会触发一次定时器1中断。十进制数32000对应的16进制数为0x7d00,将高8位0x7d写入T1CCOH寄存器,低8位0x00写入T1CCOL寄存器, 其具体配置代码如下:1.T1CC0H=0x7d; //T1CC0高8位2.T1CC0L=0x00; //T1CC0低8位03知识储备模模式下,高8位寄存器T1CC0H和低8位寄存器T1CC0L组成一个16位二进制数T1CC0,其数值将会决定定时中断的周期。学习目标01知识储备03任务工单05任务要求与任务分析02任务实施04任务小结06知识与技能提升07延伸阅读083.2 定时器1模模式控制交通信号灯任务实施04● 任务实施前必须先准备好以下设备和资源:序号 设备/资源名称 数量 是否准备到位(√)1 计算机(已安装好IAR软件) 1台 2 NEWLab实训平台 1套 3 CC-Debugger 仿真器 1套 4 黑板 1块 12任务实施04打开工程编写代码3编译工程4仿真调试●打开本书配套源代码文件夹中的“定时器1模模式控制交通信号灯.ewp”工程。04任务实施12任务实施04打开工程编写代码3编译工程4仿真调试● 步骤1:头文件包含04任务实施#include ● 步骤2:I/O引脚宏定义04任务实施#define GREEN_RED P1_3 //将P1_3引脚宏定义为D5绿色LED控制引脚步骤3:全局变量定义unsigned int Count=0; //定义Count计数器为全局变量并初始化为004任务实施步骤4:编写定时器1初始化函数04任务实施(1)系统复位后默认选择内部16MHz的RC振荡器为时钟源,且系统时钟频率和定时器标记输出时钟信号频率都为16MHz;通过设置寄存器T1CTL,将定时器标记输出时钟信号经过1分频得到定时器时钟且设置定时器1工作在模模式下。(2)配置T1CCTL0寄存器选择定时器1通道0为比较模式,并使能通道0中断。(3)根据定时中断周期配置高8位寄存器T1CC0H和低8位寄存器T1CC0L。(4)使能定时器1中断。(5)使能总中断。定时器1初始化代码如下:1.void Init_Timer1(void)2.{3. T1CTL = 0x01; //定时器时钟分频系数为1并选择模模式4. T1CCTL0 |=0x04; //配置通道0为比较模式,复位后默认通道0中断使能5. T1CC0H=0x7d; //T1CC0高8位6. T1CC0L=0x00; //T1CC0低8位7. T1IE=1; //使能定时器1中断8. EA=1; //使能总中断9.}04任务实施步骤5:编写定时器1中断服务函数根据前面的初始化配置,定时器时钟频率为16MHz,在模模式下定时器1的定时中断的周期为0.002秒/次。本任务需要完成间隔1秒控制交通信号灯的亮灭,1秒所对应的定时中断次数为:说明连续500次定时中断所需要的时间为1秒。04任务实施04任务实施模模式下定时器1中断处理流程图:本任务定时器1中断服务的代码如下:1.#pragma vector=T1_VECTOR //定时器1中断向量指定2.__interrupt void T1_ISR(void)3.{4. Count++; //定时器计数加15. if(Count>=500) //判断计数器Count是否等于定时1秒所需要的中断次数6. {7. Count=0; //计数器清08. GREEN_LED=! GREEN_LED; //绿灯状态翻转9. }10.}04任务实施(1)通过宏指令“#pragma vector=T1_VECTOR”或“#pragma vector=0x4B” 将该中断函数指向定时器1中断向量,然后下一行开始写中断服务函数“__interrupt void T1_ISR(void)”;(2)全局变量Count加1;(3)将Count的值与500进行比较,当Count的值大于等于500时,表示定时1秒到,绿灯状态翻转,中断返回;当Count的值小于500时,不作任何处理直接中断返回。04任务实施步骤6:编写main主函数main函数主要完成I/O口初始化、定时器1初始化,然后进入无限循环,其具体配置代码如下:void main(void){InitIO(); //I/O口初始化Init_Timer1(); //定时器1初始化while(1); //无限循环}04任务实施04任务实施代码中应用到所学过的知识点:12任务实施04打开工程编写代码3编译工程4仿真调试对工程进行编译,观察是否提示编译成功。如果出现错误或警告,需要认真检查修改,重新编译链接,直到没有错误和警告为止。04任务实施12任务实施04打开工程编写代码3编译工程4下载代码(1)用CC-Debugger仿真器的下载线连接黑板;(2)完成代码下载;(3)黑板上电,观察D5绿色LED是否每隔1秒循环交替开关。04任务实施学习目标01知识储备03任务工单05任务要求与任务分析02任务实施04任务小结06知识与技能提升07延伸阅读083.2 定时器1模模式控制交通信号灯05任务工单(一)本次任务关键知识引导1. 定时器1工作在模模式下,计数器从( )开始计数,计数器的值在每个定时器时钟的边沿( ),当计数值达到( )时,产生( ),然后又从( )重新计数。2. T1CC0是一个( )位的二进制数,由( )捕获/比较高8位寄存器( )和低8位寄存器( )共同组成。3. 当定时器1工作在模模式下产生比较输出时,( )寄存器中的定时器1通道0中断标志( )被( )自动置( );在定时器1( )中断使能的情况下,硬件会自动将( )寄存器的定时器1中断标志( )置( )。在( )中断和( )使能的情况下,CC2530单片机检测到定时器1中断标志( )为1,将会触发定时器1中断,执行定时器1中断服务函数。任务工单05各组选派代表分析本组任务实施经验;01添加标题请参照评价标准完成自评;02完成对其他小组的评价。03互评经验分享自评评价方式 可采用自评、互评、老师评价等方式 说明 主要评价学生在项目学习过程中的操作技能、理论知识、学习态度、课堂表现、学习能力等。 序号 评价内容 评价标准 分值 得分1 知识运用(20%) 掌握相关理论知识,完成本次任务关键知识的作答准确率(20分) 20分2 专业技能(40%) 工程编译通过,D5绿色LED的工作状态切换正常。(40分) 40分工程编译通过,D5绿色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延伸阅读083.2 定时器1模模式控制交通信号灯任务小结06学习目标01知识储备03任务工单05任务要求与任务分析02任务实施04任务小结06知识与技能提升07延伸练习083.2 定时器1模模式控制交通信号灯任务拓展07动动脑请思考下,相比于自由运行模式,模模式的优点是什么?任务拓展07动动手请在本任务的基础上进行修改,调整红灯、绿灯、黄灯的点亮时间。学习目标01知识储备03任务工单05任务要求与任务分析02任务实施04任务小结06知识与技能提升07延伸练习083.2 定时器1模模式控制交通信号灯延伸练习08交通灯控制系统中,红、绿、黄灯共有4种状态,分别是红灯亮、绿灯亮、黄灯亮及黄灯闪烁。请在本任务代码基础上进行修改,实现“红灯亮3s——绿灯亮5s——黄灯3s——黄灯闪烁10s(亮灭的间隔为0.5s)——红灯亮3s……”具体实现方案可以在本任务代码的基础上追加黄灯闪烁状态,然后不断循环。 展开更多...... 收起↑ 资源预览