版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机应用技术18物联网核心课程项目化实施课程任务4-1一位电子秒表4.1.1心中有数:定时计数器4.1.2定时器的结构框图4.1.3定时器的关键寄存器4.1.4定时器的寄存器配置流程项目4定时计数器应用生活中的精准定时神十三号出征倒计时
深圳飞亚达航空表定时器4.1.1心中有数:定时计数器心中有数51单片机内部有两个相互独立的定时计数器,称为T0、T1CPU定时器T1定时器T051单片机4.1.1
心中有数:定时计数器CPU定时器T18位TH1TL18位定时器T08位TH0TL08位内部机器周期T计数器外部脉冲输入端P3.4计数器外部脉冲输入端P3.5定时功能4.1.1
心中有数:定时计数器内部机器周期T计数功能计数对象的差异计数计数功能:是对外部引脚脉冲的个数进行计数。定时功能:是对内部的标准时钟进行计数。CPU定时器T1定时器T0定时4.1.1
心中有数:定时计数器同:本质都是16位加法计数,计满(最大值)溢出;异:计数对象不同。4.1.2定时器的结构框图CPUTMODTCONT0、T1: 两个16位加法计数寄存器,对应4个8位计数寄存器TMOD: 工作方式寄存器TCON: 控制寄存器4.1.2定时器的结构框图高8位TH0TL0低8位T0高8位TH1TL1
低8位T1寄存器个数?定时器/计数器的结构框图4.1.2定时器的结构框图聚焦定时功能——定时器:哪些寄存器呢?1、两个独立的()位C/T?2、两大功能?3、()法计数?4、16位最大计数值M?5、相关寄存器?SFR寄存器编程TMODTCONTH0/TL0TH1/TL1SFR字节地址BF0HACCE0HPSWD0HIPB8HP3B0HIEA8HP2A0HSBUF99HSCON98HP190HTH18DHTH08CHTL18BHTL08AHTMOD89HTCON88H定时器相关寄存器如何控制定时器?——SFR寄存器4.1.3
定时器的关键寄存器✎小组实践下面来小组协作动手实践一下吧航标灯:1s闪烁频率的航海灯光指示系统精准定时功能:定时器T0方式1实现50ms的基准定时;子函数delay500ms()实现延时500ms主函数实现D1灯每隔500ms亮,500ms灭的控制探究任务t4_0航标灯
1000ms8051P1.0LED灯深圳背仔角灯塔如何寄存器编程实现50ms基准定时呢?TMOD?TCON?TMOD:工作方式寄存器
功能选择(怎样数);工作方式选择等T0(TH0/TL0);T1(TH1/TL1)
计数(初值,从哪儿数)TCON:控制寄存器
启动控制(开始数);计满溢出查询(数完)4.1.3定时器的关键寄存器方式0最长可定时8.192ms;方式1最长可定时65.536ms;方式2最长可定时256
sTMOD(89H)寄存器格式(不可位寻址)GATE(门控位)01TR1=1启动定时器,不受INT1控制TR1=1,INT1=1共同启动定时器•
C/T(功能选择)1定时器计数器• M1M0(工作方式)T1T076543210GATEC/TM1M0GATEC/TM1M0功能工作方式M1M013位计数器方式00016位计数器方式1018位计数器,初值自动重装方式210分成两个8位计数器,仅用于T0,T1停止使用方式3114.1.3定时器的关键寄存器——TMOD0TMOD=0X01;//字节操作,设置定时器T0的工作方式1方式0最长可定时8.192ms;
方式1最长可定时65.536ms;
方式2最长可定时256
s76543210GATEC/TM1M0GATEC/TM1M001100001TMOD=0x61;十六进制数61H(01100001)赋值给TMOD寄存器1.这是一个字节操作还是位操作?2.代表什么含义呢?4.1.3定时器的关键寄存器——TMODTCON(88H)寄存器格式(可位寻址)和定时计数器无关T0、T1的启动控制与溢出标志TR0=1;//位操作,启动T0?中断系统中才使用76543210TF1TR1TF0TR0启动/停止位TR1=1或TR0=1
,启动T1或T0工作TR1=0或TR0=0,停止T1或T0工作4.1.3定时器的关键寄存器——TCON1计数溢出,硬件自动置10中断方式:硬件自动清0查询方式:软件清0while(!TF0);TF0=0;//查询TF0计满溢出标志;//如果计满溢出,将TF0软件清0TF0/TF1:T0或T1的溢出标志位,何时置1?如何清零?4.1.4
定时器的寄存器配置流程4.1.4定时器的寄存器配置流程写TMOD设置工作方式步骤一:设置工作方式①①4.1.4定时器的寄存器配置流程76543210GATEC/TM1M0GATEC/TM1M000000001步骤二:初始值设置①①写TMOD设置工作方式计算初始值并写入THx、TLx②4.1.4定时器的寄存器配置流程因为:t基准定时=T机器周期*n
X初值=
M计数最大值-n,其中n=t/T机器周期
所以:X初值=M计数最大值-
t基准定时/T机器周期=65536-50000=15536=3CB0H
因此:TH0=3CH,TL0=0B0H步骤三:启动定时器①①②写TMOD设置工作方式计算初始值并写入THx、TLx启动定时器③4.1.4定时器的寄存器配置流程中断系统中才使用76543210TF1TR1TF0TR0步骤四:查询是否溢出并清标志①①②③④数值递增被查询写TMOD设置工作方式计算初始值并写入THx、TLx启动定时器查询是否溢出?溢出标志清0否是4.1.4定时器的寄存器配置流程定时器/计数器的编程(四部曲)第一步:设置定时器的工作方式(TMOD);(一般只初始化一次,放在main函数)第二步:计算并加载初始值
到计数寄存器(THX、TLX);
X初值=M计数最大值-
t基准定时/T机器周期第三步:启动定时器(TCON中的TRX);第四步:等待查询定时器是否溢出(TCON中的TFX)。4.1.4定时器的寄存器配置流程航标灯main函数开始航标灯亮延时500ms航标灯灭延时500ms初始化航标灯初始化定时器sbitLIGHT=P1^0;…开始2设定时器初值3启动定时器初始化循环变量1初始化定时器4基准50ms到?返回航标灯delay500ms子函数YN循环10次,500ms到一位电子秒表系统设计基于定时器和静态数码管案例引入任务4-1一位电子秒表
使用数码管实现一位电子秒表• 一位数码管显示0~9秒的时间(静态数码管);• 采用定时器T1精准计时1s(查询方式实现基准定时20ms);器件选型及硬件接口设计✎小组实践下面来小组协作动手实践一下吧精准定时功能:定时器T1方式1实现20ms的基准定时;子函数delays()实现延时1s主函数实现数码管静态显示秒变量second,延时1s后,修改秒变量任务4.1一位电子秒表
计算20ms初值写入THx、TLx启动定时器查询是否溢出?溢出标志清0否是main开始数码管显示second调用delay1s延时初始化秒变量second初始化TMOD设置工作方式second=10delays开始循环50次second++second=0while(1)循环任务小结1心中有数:定时计数器(基本功能/结构)2定时器的硬件功能与结构框图(工作过程)3定时器的关键寄存器(TMOD字节配置、TCON位配置)4定时器的寄存器配置流程——四部曲(计数初值)4谢谢单片机应用技术18物联网核心课程项目化实施课程任务4-2两位数字秒表4.2.1定时器的工作方式1揭秘4.2.2定时器的工作方式2探究项目4定时计数器应用已知:一位电子秒表(静态延时1s显示)4.2.1定时器的工作方式1揭秘四部曲流程+关键寄存器定时器/计数器的编程(四部曲+关键寄存器)第一步:设置定时器的工作方式(TMOD);(一般只初始化一次,放在main函数)第二步:计算并加载初始值
到计数寄存器(THX、TLX);
X初值=M计数最大值-
t基准定时/T机器周期第三步:启动定时器(TCON中的TRX);第四步:等待查询定时器是否溢出(TCON中的TFX)。16位计数器启动控制011定时计数1.1TMOD定时功能+门控的选择4.2.1定时器的工作方式1揭秘0TRx76543210GATEC/TM1M0GATEC/TM1M0T0T1功能工作方式M1M013位计数器方式00016位计数器方式1018位计数器,初值自动重装方式210分成两个8位计数器,仅用于T0。T1停止使用方式3111.2TMOD工作方式的选择工作方式14.2.1定时器的工作方式1揭秘思考:选择工作方式的目的?16位计数器启动控制计数位数:16位最大计数值M:216=655364.2.1定时器的工作方式1揭秘工作方式决定计数最大值M2.1计算计数初值(**)工作方式计数器位数计数最大值例:计数50000的初始值方式0方式116位216=6553665536-50000方式2方式3X初值=M计数最大值-n
=M计数最大值-
t基准定时/T机器周期计数50000次,初值是多少?4.2.1定时器的工作方式1揭秘n=t基准定时/T机器周期;从任务需求确定基准定时t2.2THx、TLx写入计数初值(**)工作方式计数器位数计数最大值例:计数50000初始值THX
、TLX的写入方式0方式116位216=6553665536-50000THX=(65536-50000)/256TLX=(65536-50000)%256方式2方式34.2.1定时器的工作方式1揭秘启动TRx计数寄存器溢出TFx16位计数器启动控制011TRx
(TCON)3、TRx启动定时器4.2.1定时器的工作方式1揭秘16位计数器启动控制011TRx4、查询溢出标志TFx并处理TRx=1,定时器启动后,加1计数器开始工作!当计满后,TFx=1(硬件实现)特别注意:方式1溢出后要重新装载初始值TFx
(TCON)4.2.1定时器的工作方式1揭秘两位数字秒表设计基于定时器和动态数码管案例引入任务4-2两位数字秒表
使用动态数码管实现两位的数字秒表• 两位数码管显示00~59秒的时间(动态数码管);• 采用定时器T0精准动态刷新计时(查询方式实现基准定时1ms刷新间隔);器件选型及硬件接口设计任务4-2两位数字秒表✎小组实践下面来小组协作动手实践一下吧精准定时功能:定时器T0方式1实现1ms的基准定时;子函数delayms()实现精准定时1ms定时器四部曲编码子函数disp()实现数码管显示秒变量second(参考)main()函数初始化,调用disp()动态刷新显示,修改秒变量等逻辑处理(参考,增加T0初始化TMOD)任务4-2-1两位数字秒表计算1ms初值写入THx、TLx启动定时器查询是否溢出?溢出标志清0否是main开始数码管动态显示disp()初始化秒变量second初始化TMOD设置工作方式Second==60delayms开始second++second=0while(1)循环循环500次修改delayms()为1ms精准定时无参数函数定时器四部曲!参考:2位秒表代码段(软件延时非精准计时)定时器T0方式1实现1ms的基准定时定时器/计数器的编程(四部曲+关键寄存器)第一步:设置定时器的工作方式(TMOD);(一般只初始化一次,放在main函数)第二步:计算并加载初始值
到计数寄存器(THX、TLX);
X初值=M计数最大值-
t基准定时/T机器周期第三步:启动定时器(TCON中的TRX);第四步:等待查询定时器是否溢出(TCON中的TFX)。下面来小组协作动手实践一下吧精准定时功能:
T0方式1实现1ms基准定时;修改子函数delayms()
T0方式1,实现延时1ms子函数disp();子函数sound();main()函数初始化T0方式1,实现数码管动态刷新显示,修改秒变量24秒倒计时,时间到则beep报警任务4-2-224秒倒计时main开始数码管动态显示disp()初始化秒second=24初始化TMOD,初值写入THx、TLxsecond>0second--beep报警Sound()while(1)循环循环500次否是综合拓展按键控制的“24秒倒计时器”思路参考:
1)
上电显示24;
2)按下K1“启动”键,进入倒计时24-》23-》22-》…-》02-》01-》00(蜂鸣器响报警)
3)按下K2“清零”键,秒second清零,显示00,蜂鸣器停止。Tips:1)增加资源定义:按键等资源的端口定义sbit;
2)增加变量定义:用来标志工作状态变量flag(上电状态0,启动状态为1,清零状态为2);
3)main函数:初始化second为?,flag?,按键输入初始化;
while(1)
{按键扫描(检测+判断,根据按键记录flag工作状态变量,修改关键变量second)
;1)启动键:flag=1(倒计时状态),second=24;2)复位键:flag=2(复位状态),second归零
for循环调用disp显示,实现约1s计时;//重复500次的两位显示(约2ms*500约为1s)
根据状态flag处理:如果进入启动状态flag==1,则:正常计时且计时到蜂鸣器报警
}启动清零任务4-2-3按键控制的24秒倒计时1按键检测(去抖)2按键判断即显示处理3按键释放(可略)按键查询处理流程及代码段参考1:
任务2-3按键控制信号灯(模式1)——if位操作按键查询处理流程及代码段参考2:
任务2-4按键控制霓虹灯(模式2)——if位操作1按键检测去抖2按键判断(保存状态值flag)3按键释放(可略)4根据状态变量flag进行处理观察与思考2:按键查询处理的不灵敏?因:查询方式轮询按键,等待CPU处理解:硬件资源模块——外部中断(及时处理)观察与思考3:秒计时仍存在误差因:虽然使用定时器精准1ms,但因仍使用循环模拟1s的思路,仍存在误差解:硬件资源模块——定时器中断观察与思考1:动态显示受延时的影响?因:延时等待破坏了逐位扫描的刷新解:用显示函数disp()替代定时器延时函数4.2.2定时器的工作方式2探究四部曲流程+关键寄存器方式2:8位计数器,只有TL的8位在计数;TH保存初值。特点:溢出后会给TH一个指令,实现硬件自动重装载初值。因此,在方式2下,THx和TLx的值必须相同4.2.2定时器的工作方式2探究工作方式计数器位数计数最大值例:计数250的初始值THX
、TLX的写入方式0方式1方式28位28=256256-250THX=256-250TLX=256-250方式34.2.2定时器的工作方式2探究1、TMOD2、计算初值;写入寄存器3、启动4、查询溢出下面来小组协作动手实践一下吧修改精准定时功能:
T1方式2实现?基准定时;修改子函数delayms()
T1方式2,for实现延时1ms修改main()函数:初始化T1方式2任务4-2-4按键控制24秒倒计时
(方式2实现)启动定时器基准定时?查询是否溢出?溢出标志清0否是main开始数码管动态显示disp()初始化秒second=24初始化TMOD,初值写入THx、TLxsecond>0delayms开始循环?次second--beep报警Sound()while(1)循环循环500次否是1定时器的工作方式1揭秘
2定时器的工作方式2探究(更精准)小结工作方式计数器位数计数最大值方式013位213=8192方式116位216=65536方式2(自动重载初值)8位28=256方式38位28=256计数250的初始值8192-25065536-250256-250256-250THX
、TLX的写入THX=
(8192-250)/32
TLX=
(8192-250)%32THX=
(65536-250)/256
TLX=
(65536-250)%256THX=TLX=
256-250TLX=
256-250如何实现计数功能?任务4-0航标灯任务4-1一位电子秒表任务4-2两位数字秒表(24秒倒计时)4谢谢单片机应用技术18物联网核心课程项目化实施课程任务4-3简易计件器4.3.1定时计数器的计数功能项目4定时计数器应用案例引入任务4-3简易计件器
使用静态数码管实现简易计件器•
上电初始化显示H,初始化T1方式2的计数功能,启动T1
;•如果计满5件(K1按下5次模拟计件传感脉冲信号,输入T1计数端口),则通关显示P;•如果按下清零键K2,则重新启动计数,并且显示H清零K2K1模拟计件传感脉冲T1P3.54.3.1定时计数器的计数功能CPU定时器T18位TH1TL18位定时器T08位TH0TL08位内部机器周期T计数器外部脉冲输入端P3.4计数器外部脉冲输入端P3.5定时功能4.4.1定时计数器的计数功能内部机器周期T计数功能计数:是对外部引脚的脉冲信号(下降沿)进行计数✎小组实践下面来小组协作动手实践一下吧任务4.4简易计件器硬件连接:模拟产品计件传感器脉冲信号(K1按键)———单片机T1计数引脚?(因抖动非精准)
K2按键——单片机I/O软件控制:计数功能T1方式2计数功能,计数值n为5,计算计数初值X=M-n?软件延时delay(uinti)非精准,实现去抖即可;main()函数初始化T1方式2计数功能,初始化计数初值,启动T1;初始化静态数码管显示Hwhile(1)查询
TF1是否计满(5次)溢出,如果溢出TF1=0,则通过显示P,同时清溢出标志TF1=0;查询按键K2是否按下,如果按下K2则显示H,同时重新配置初值并启动计数;
定时器/计数器的编程(四部曲+关键寄存器)第一步:设置定时器的工作方式(TMOD);(一般只初始化一次,放在main函数)第二步:计算并加载初始值
到计数寄存器(THX、TLX);
X初值=M计数最大值-
n第三步:启动定时器(TCON中的TRX);第四步:等待查询定时器是否溢出(TCON中的TFX)。工作方式2计数011、TMOD;2、X初值=M-nM:计数的最大值;3/4、TCON(TRx,TFx)
n:计数次数8位计数器,TL的8位计数;TH保存初值;溢出后硬件自动重装载初值,THx和TLx的值必须相同1定时计数器应用四部曲小结
2定时计数器的计数功能任务小结工作方式计数器位数计数最大值方式013位213=8192方式116位216=65536方式2(自动重载初值)8位28=256方式38位28=256计数250的初始值8192-25065536-250256-250256-250THX
、TLX的写入THX=
(8192-250)/32
TLX=
(8192-250)%32THX=
(65536-250)/256
TLX=
(65536-250)%256THX=TLX=
256-250TLX=
256-2504谢谢单片机应用技术18物联网核心课程项目化实施课程任务4-4PWM可调光台灯4.4.1定时计数器的4种工作方式小结4.4.2初识PWM4.4.3直流电机的PWM控制项目4定时计数器应用案例引入任务4-4PWM可调光台灯
按键控制的PWM可调光台灯• 上电灭灯;灯亮度有三档(弱、次亮、亮),第4次按下灭灯;然后再轮回;• 采用定时器T0方式0实现精准定时2ms,输出周期T为10ms的PWM脉冲波形
1档(弱):亮2ms,灭8ms(占空比4/5);
2档(次亮):亮6ms,灭4ms(占空比2/5);
3档(亮):亮10ms,灭0ms(占空比0/5);4.4.1定时计数器的4种工作方式小结定时器/计数器的编程(四部曲+关键寄存器)第一步:设置定时器的工作方式(TMOD);(一般只初始化一次,放在main函数)第二步:计算并加载初始值
到计数寄存器(THX、TLX);
X初值=M计数最大值-
t基准定时/T机器周期第三步:启动定时器(TCON中的TRX);第四步:等待查询定时器是否溢出(TCON中的TFX)。工作方式0方式0:13位计数器,TL的低5位和TH的全部8位。特点:逻辑结构和编程方法都与方式1基本相同。16位计数器启动控制工作方式1方式2:16位计数器。特点:最大计数值65536(最大),每次溢出后需要重装计数初值工作方式2方式2:8位计数器,只有TL的8位在计数;TH保存初值。特点:溢出后会给TH一个指令,实现硬件自动重装载初值,精准高效。因此,在方式2下,THx和TLx的值必须相同工作方式3(略)方式3:只适用于T0(TL0、TH0一分为二),目前少用,了解即可特点:拆分T0为独立的两个8位定时器(TH0功能偏弱仅定时);
T1仍适用于方式0~2;但功能局限一般只用于串口波特率发生器TH0只能定时定时器/计数器四种工作方式对比1、TMOD;2、初值X=M-nM:计数的最大值;3/4、TCON(TRx,TFx) n:计数次数(t/T)工作方式计数器位数计数最大值计数250的初始值THX
、TLX的写入方式013位213=81928192-250THX=(8192-250)/32TLX=(8192-250)%32方式116位216=6553665536-250THX=(65536-250)/256TLX=(65536-250)%256方式28位28=256256-250THX=TLX=256-250方式38位28=256256-250TLX=256-250案例引入任务4-4PWM可调光台灯
按键控制的PWM可调光台灯• 上电灭灯;灯亮度有三档(弱、次亮、亮),第4次按下灭灯;然后再轮回;• 采用定时器T0方式0实现精准定时2ms,输出周期T为10ms的PWM脉冲波形
1档(弱):亮2ms,灭8ms(占空比4/5);
2档(次亮):亮6ms,灭4ms(占空比2/5);
3档(亮):亮10ms,灭0ms(占空比0/5);4.4.2初识PWM4.4.2初识PWM
脉冲宽度调制PWM(PulseWidthModulation)周期一定,占空比可调(高低电平持续时间可调)的方波脉冲信号例如:周期T为1秒的电信号,有0.25秒输出高电平脉冲,则占空比为25%。
在给定电压峰值的情况下,占空比的变化可以改变输出电压的有效值,从而影响LED亮度。4.4.2初识PWM如何输出PWM脉冲?1、人眼视觉暂留效应:50Hz以上刷新频率(否则会有闪烁感)2、PWM信号频率越高,看不到闪烁;低电平占比越大,LED越亮方法:合理的设置PWM信号周期T和占空比在周期T下,给定电压峰值,占空比的变化可以改变输出电压的有效值,从而影响LED亮度。4.4.2初识PWMT低=2ms*1T低=2ms*3T低=2ms*5任务实现任务4-4PWM可调光台灯
按键控制的PWM可调光台灯• 上电灭灯;灯亮度有三档(弱、次亮、亮),第4次按下灭灯;然后再轮回;• 采用定时器T0方式0实现精准定时2ms,输出周期T为10ms的PWM脉冲波形P0.0P1.0任务4-4PWM可调光台灯
1、实现子函数delay2ms(uint):使用T0的方式0定时功能;2、实现子函数pwm(uint):控制端口高低电平输出的时间(占空比);3、实现主函数main():初始化;按键查询(模式2),记录按键次数keyCode;
根据keyCode显示处理;4、软硬件联调4.4.3直流电机的PWM控制案例引入任务4-4-2PWM可调速风扇
按键K1:切换风扇的转动方向;按键K2:调整风扇的转速,分为三档,根据按键K2被按下的次数来循环选择风速档位。1212工作电压范围标称电压XXXXXXXXXXXXXXXXXXXX9~129~1212124.4.3直流电机的PWM控制——电机转动标称电压:12V121端接+12V,2端接地,正转正转12标称电压:12V+12V地4.4.3直流电机的PWM控制——电机转动121端接+12V,2端接地,正转1端接地,2端接+12V,反转正转12标称电压:12V地+12V反转4.4.3直流电机的PWM控制——电机转动121端接+12V,2端接地,正转1端接地,2端接+12V,反转1端和2端同时接地或+12V,不转正转12标称电压:12V+12V+12V反转不转4.4.3直流电机的PWM控制——电机转动12+5V0V电机驱动电路L298正转4.4.3直流电机的PWM控制——电机转动L298单片机电机+5V+12V。。控制逻辑供电电源负载驱动电源驱动两路电机InAInBInCInDOutAOutBOutCOutD驱动4.4.3直流电机的PWM控制——电机转动12+12V地正转电机驱动电路TC1508S任务实现任务4-4-2PWM可调速风扇
按键K1:切换风扇的转动方向;按键K2:调整风扇的转速,分为三档,根据按键K2被按下的次数来循环选择风速档位。P3.2P3.3P1.0P1.1举一反三从51单片机定时器到CC2530定时器0116位定时器定时器10216位MAC定时器为IEEE802.15.4CSAM/CA算法提供定时,并且为IEEE802.15.4MAC层提供一般的计时功能。定时器2038位定时器定时器3048位定时器有两个捕获-比较通道自由模式、向下模式、模模式、上-下模式定时器40524位定时器设定进入或退出低功耗模式PM1、PM2的周期与定时器2一起使用时,即使系统进入低功耗模式也会提供定时功能睡眠定时器举一反三:CC2530定时器结构组成有两个捕获-比较通道自由模式、向下模式、模模式、上-下模式与定时器4功能相同有5个捕获-比较通道上升沿、下降沿、任何边缘的捕获自由模式、模模式、上-下模式与定时器4功能相同01定时器功能02对任意时间间隔的输入信号的个数进行计数。一般用来对外界事件进行计数,其输入信号一般来自单片机外部开关型传感器,可用于生产线产品计数、信号数量统计和转速测量等方面。计数器功能03对规定时间间隔的输入信号的个数进行计数,当外界输入有效信号时,捕获计数器的计数值。通常用来测量外界输入脉冲的脉宽或频率,需要在外界输入信号的上升沿和下降沿进行两次捕获,通过计算两次捕获值的差值可以计算出脉宽或周期等信息。捕获功能04当计数值与需要进行比较的值相同时向CPU提出中断请求或改变I/O口输出电平等操作。一般用于控制信号输出。比较功能05对规定时间间隔的输入信号的个数进行计数,根据设定的周期和占空比从I/O口输出控制信号。一般用来控制LED灯亮度或电机转速。PWM输出功能举一反三:CC2530定时器功能对规定时间间隔的输入信号的个数进行计数,当计数值达到指定值时,说明定时时间已到。这是定时/计数器的常用功能,可用来实现延时或定时控制,其输入信号一般使用单片机内部的时钟信号。系统主时钟CLKSPD定时器标记时钟TICKSPD定时器时钟定时器计数时钟定时器时钟预分频系数PTxCTL.DIV[2:0]时钟控制命令寄存器CLKCONCMD注:定时器时钟是定时器进行每次计数的频率,它与系统主时钟直接有关。举一反三:CC2530定时器定时功能的计数对象——时钟选择运行模式,配置控制寄存器T1CTL选择运行模式根据运行模式和定时要求选择时钟、分频器、总的计数个数等相关参数。配置时钟控制命令寄存器CLKCONCMD、控制寄存器T1CTL。根据定时要求和运行模式选择工作时钟、分频器查询方式:溢出中断标志T1STAT.OVFIF=1中断方式:IRCON>0,或T1IF=1;需设置T1MIF,IEN1、IEN0等,选择查询方式或中断方式举一反三:定时器T1寄存器配置流程OVFLOVFL0x00000xFFFFT1CCnτT当前计数值与T1CCn比较,当前计数值大于T1CCn,通道n引脚输出1;当前计数值小于T1CCn,通道n引脚输出0
。举一反三:CC2530PWM输出功能举例回归聚焦基础:51单片机定时器/计数器的编程(四部曲+关键寄存器)第一步:设置定时器的工作方式(TMOD);(一般只初始化一次,放在main函数)第二步:计算并加载初始值
到计数寄存器(THX、TLX);
X初值=M计数最大值-
n第三步:启动定时器(TCON中的TRX);第四步:等待查询定时器是否溢出(TCON中的TFX)。4谢谢单片机应用技术18物联网核心课程项目化实施课程动态扫描小结(复习题库作业)任务3-1动态数码管信息牌任务3-2点阵LED广告牌任务3-3矩阵键盘控制数码管项目3显示与键盘接口进阶任务3-1动态数码管信息牌(**)3.1.1动态显示硬件接口
(P110静态特点P115-119动态特点)3.1.2“轮流坐庄”逐位动态扫描软件控制项目3显示与键盘接口进阶静态显示硬件接口段线位线段线(a~dp):每个数码管段线,独占一个8位端口(限流电阻)位线(COM):位线固定电平VCC(共阳)或GND(共阴)特点(**):输出段字型码(数组元素),编程简单8根段线要独占一个并行I/O端口亮度高,但是浪费I/O端口资源;多位动态显示硬件接口段线(a~dp):每位数码管段线共享一个8位端口位线(COM):独立,由I/O端口动态控制位线电平特点(**):位码“轮流点亮”,再输出段码(数组元素)不停扫描耗CPU,亮度低,但占用端口资源少同相总线收发器(缓冲器)实现驱动(限流电阻)
段线位线while(1){
P1=0x00;//共阴数码管关显示
P2=0XFE;//选中w1P1=0X5B;//字型码“2”
delayms(1);//延时1ms
P1=0x00;//共阴数码管关显示
P2=0XFD;//选中w2P1=0X3F;//字型码“0”
delayms(1);//延时1ms
…………
P1=0x00;//共阴数码管关显示
P2=0X7F;//选中w8P1=0X7D;//字型码“6”
delayms(1);//延时1ms}位选:选中w1数码管0xFE段选:输出相应字型码
延时位选:选中w2数码管0xFD段选:输出相应字型码延时位选:选中w8数码管0x7F段选:输出相应字型码延时…动态显示:逐位扫描顺序结构
“轮流坐庄”逐位动态扫描软件控制延时1~2ms,人眼视觉暂留效应W1W2
W3
W4W5
W6
W7
W8P2.0P2.1
P2.2
P2.3P2.4
P2.5
P2.6
P2.7•
首先,关显示,从位线输出位码,选通该位数码管;• 其次,从段线输出段码,在某位显示相应的字符(数字);• 然后,延时1~2ms,确保满足人眼的视觉暂留作用。• 最后,循环修改:修改位码,选通下一位;修改段码下标i++,为遍历下一位的段码做准备;for循环遍历重复上述三个步骤,共8次,从而将8位动态扫描一轮,即完成一屏显示while(1)重复完整的8位动态扫描过程,以便持续此屏显示循环结构1)位码移位循环2)位码数组遍历
“轮流坐庄”逐位动态扫描软件控制核心思想:逐位扫描;形式:顺序、位码移位循环、位码数组遍历
P1=0x00;//共阴数码管关显示
P2=w[i];//位码,选中某一位P1=disp[i];//字型码段码
delayms(1);//延时1ms任务3-2点阵LED指示牌3.2.1点阵LED显示器结构及引脚(P125~P126)3.2.2点阵LED的硬件接口(P120)3.2.3动态逐行扫描软件控制(P121~P122)项目3显示与键盘接口进阶少量连接:静态多个连接:动态+‘1’-‘0’
行码位移循环结构(或行码数组)动态逐行扫描软件控制顺序结构任务3-3矩阵键盘控制数码管(选)3.3.14*4矩阵键盘结构及引脚(P147)3.3.2矩阵键盘的硬件接口3.3.3逐列扫描按键控制项目3显示与键盘接口进阶定时器应用任务4-1一位电子秒表(静态数码管定时功能)任务4-2两位数字秒表(动态数码管定时功能)任务4-3简易计件器(计数功能)任务4-4PWM可调光台灯(选)项目4定时计数器应用任务4-1一位电子秒表4.1.1心中有数:定时计数器(P158)4.1.2定时器的结构框图(P159)4.1.3定时器的关键寄存器(P161)4.1.4定时器的寄存器配置流程(P164计算初值)项目4定时计数器应用计数计数功能:是对外部引脚脉冲的个数进行计数。定时功能:是对内部的标准时钟进行计数。CPU定时器T1定时器T0定时4.1.1
心中有数:定时计数器同:本质都是16位加法计数,计满溢出;异:计数对象不同。51单片机内部有两个相互独立的定时计数器,称为T0、T1CPUTMODTCONT0(TH0/TL0)、T1(TH1/TL1): 两个16位加法计数寄存器TMOD: 工作方式寄存器TCON: 控制寄存器4.1.2定时器的结构框图高8位TH0TL0低8位T0高8位TH1TL1
低8位T1聚焦关键寄存器TMOD?TCON?TMOD:工作方式寄存器
功能选择(怎样数);工作方式选择;启动方式的选择T0(TH0/TL0);T1(TH1/TL1)
计数(初值,从哪儿数)TCON:控制寄存器
启动控制(开始数);计满溢出查询(数完)4.1.3定时器的关键寄存器如何实现50ms定时呢?①①②③④数值递增被查询写TMOD设置工作方式计算初始值并写入THx、TLx启动定时器查询是否溢出?溢出标志清0否是4.1.4定时器的寄存器配置流程TMOD(89H)寄存器格式(不可位寻址)GATE(门控位)01TR1=1启动定时器,不受INT1控制TR1=1,INT1=1共同启动定时器•
C/T(功能选择)1定时器计数器• M1M0(工作方式)T1T076543210GATEC/TM1M0GATEC/TM1M0功能工作方式M1M013位计数器方式00016位计数器方式1018位计数器,初值自动重装方式210分成两个8位计数器,仅用于T0,T1停止使用方式3114.1.3定时器的关键寄存器0TMOD=0X01;//字节操作,设置定时器T0的工作方式1TCON(88H)寄存器格式(可位寻址)和定时计数器无关T0、T1的启动控制与溢出标志TR0=1//位操作,启动T0?中断系统中才使用76543210TF1TR1TF0TR0启动/停止位TR1=1或TR0=1
,启动T1或T0工作TR1=0或TR0=0,停止T1或T0工作4.1.3定时器的关键寄存器1计数溢出,硬件自动置10中断方式:硬件自动清0查询方式:软件清0while(!TF0);TF0=0;//查询TF0计满溢出标志;//如果计满溢出,将TF0软件清0TF0/TF1:T0或T1的溢出标志位,何时置1?如何清零?精准定时功能:定时器T0方式1实现50ms的基准定时;子函数delays()实现延时1smain()函数实现数码管显示秒变量second,延时1s后,修改秒变量计算50ms初值写入THx、TLx启动定时器查询是否溢出?溢出标志清0否是main开始数码管显示seconddelay1s静态延时初始化秒变量second初始化TMOD设置工作方式second=10delays开始循环20次second++second=0while(1)循环一位电子秒表(静态延时1s显示)函数模块化编程应用一位电子秒表(静态延时1s显示)函数模块化编程应用变量处理定时器配置四部曲静态显示;静态延时;任务4-2两位数字秒表4.2.1定时器的工作方式1揭秘(P162)4.2.2定时器的工作方式2探究(P163)项目4定时计数器应用定时器/计数器的编程(四部曲+关键寄存器)第一步:设置定时器的工作方式(TMOD);(一般只初始化一次,放在main函数)第二步:计算并加载初始值
到计数寄存器(THX、TLX);
X初值=M计数最大值-
t基准定时/T机器周期第三步:启动定时器(TCON中的TRX);第四步:等待查询定时器是否溢出(TCON中的TFX)。76543210GATEC/TM1M0GATEC/TM1M0T0T1功能工作方式M1M013位计数器方式00016位计数器方式1018位计数器,初值自动重装方式210分成两个8位计数器,仅用于T0。T1停止使用方式3111.2TMOD工作方式的选择工作方式14.2.1定时器的工作方式1揭秘思考:选择工作方式的目的?1.1TMOD定时功能+门控的选择16位计数器启动控制计数位数:16位最大计数值M:216=655364.2.1定时器的工作方式1揭秘工作方式决定计数最大值M2.1计算计数初值(**)工作方式计数器位数计数最大值例:计数50000的初始值方式0方式116位216=6553665536-50000方式2方式3T初值=M计数最大值-X计数次数计数50000次,初值是多少?4.2.1定时器的工作方式1揭秘(给定基准时间t的初值计算过程)X计数次数=t基准定时/T机器周期;2.2THx、TLx写入计数初值(**)工作方式计数器位数计数最大值例:计数50000初始值THX
、TLX的写入方式0方式116位216=6553665536-50000THX=(65536-50000)/256TLX=(65536-50000)%256方式2方式34.2.1定时器的工作方式1揭秘(给定基准时间t的初值计算过程)16位计数器启动控制011TRx
(TCON)3、TRx启动定时器4.2.1定时器的工作方式1揭秘16位计数器启动控制011TRx4、查询溢出标志TFx并处理TRx=1,定时器启动后,加1计数器开始工作!当计数到头后,TFx=1(硬件实现)特别注意:方式1溢出后要重新装载初始值TFx
(TCON)4.2.1定时器的工作方式1揭秘精准定时功能:定时器T0方式1实现1ms的基准定时;子函数delayms()实现精准定时1ms子函数disp()实现数码管显示秒变量secondmain()函数初始化,调用disp()动态刷新显示,修改秒变量等逻辑处理计算1ms初值写入THx、TLx启动定时器查询是否溢出?溢出标志清0否是main开始数码管动态显示disp()初始化秒变量second初始化TMOD设置工作方式Second==60delayms开始second++second=0while(1)循环循环500次2位数字秒表(动态显示,动态延时刷新)函数模块化编程应用2位数字秒表(动态显示,动态延时刷新)函数模块化编程应用工作方式2计数011、TMOD;2、X初值=M-nM:计数的最大值;3/4、TCON(TRx,TFx)
n:计数次数8位计数器,TL的8位计数;TH保存初值;溢出后硬件自动重装载初值,THx和TLx的值必须相同修改精准定时功能:
T1方式2实现250us基准定时;修改子函数delayms()
T1方式2,for实现4次实现延时1ms修改main()函数:初始化T1方式2任务4-2-4按键控制24秒倒计时(方式2实现)按键--》工作状态标志变量flag任务4-3简易计件器4.3.1定时计数器的计数功能项目4定时计数器应用CPU定时器T18位TH1TL18位定时器T08位TH0TL08位内部机器周期T计数器外部脉冲输入端P3.4计数器外部脉冲输入端P3.5定时功能4.3.1定时计数器的计数功能内部机器周期T计数功能计数:是对外部引脚的脉冲信号(下降沿)进行计数工作方式2计数011、TMOD;2、X初值=M-nM:计数的最大值;3/4、TCON(TRx,TFx)
n:计数次数8位计数器,TL的8位计数;TH保存初值;溢出后硬件自动重装载初值,THx和TLx的值必须相同任务4-4PWM可调光台灯(选)4.4.1定时计数器的4种工作方式小结(P163)4.4.2初识PWM(选)4.4.3直流电机的PWM控制(选)项目4定时计数器应用4.4.1定时计数器的4种工作方式小结工作方式0方式0:13位计数器,TL的低5位和TH的全部8位。特点:逻辑结构和编程方法都与方式1基本相同。16位计数器启动控制工作方式1方式2:16位计数器。特点:最大计数值65536(最大),每次溢出后需要重装计数初值工作方式2方式2:8位计数器,只有TL的8位在计数。特点:溢出后会给TH一个指令,实现自动重装载。因此,在方式2下,THx和TLx的值必须相同。工作方式3(略)方式3:只适用于T0特点:TL0、TH0一分为二,为独立的两个8位定时器TH0只能定时定时器/计数器四种工作方式对比1、TMOD;2、X初值=M-nM:计数的最大值;3/4、TCON(TRx,TFx)
n:计数次数工作方式计数器位数计数最大值计数250的初始值THX
、TLX的写入方式013位213=81928192-250THX=(8192-250)/32TLX=(8192-250)%32方式116位216=6553665536-250THX=(65536-250)/256TLX=(65536-250)%256方式28位28=256256-250THX=TLX=256-250方式38位28=256256-250TLX=256-2504.4.2初识PWM(可选)
脉冲宽度调制PWM(PulseWidthModulation)周期一定,占空比可调(高低电平持续时间可调)的方波脉冲信号例如:周期T为1秒的电信号,有0.25秒输出高电平脉冲,则占空比为25%。4谢谢单片机应用技术18物联网核心课程项目化实施课程动态扫描小结(复习题库作业)任务3-1动态数码管信息牌(结合定时器实训)任务3-2点阵LED广告牌任务3-3矩阵键盘控制数码管项目3显示与键盘接口进阶任务3-1动态数码管信息牌(**)3.1.1动态显示硬件接口
(P110静态特点P115-119动态特点)3.1.2“轮流坐庄”逐位动态扫描软件控制项目3显示与键盘接口进阶多位动态显示硬件接口段线(a~dp):每位数码管段线共享一个8位端口位线(COM):独立,由I/O端口动态控制位线电平特点(**):位码“轮流点亮”,再输出段码(数组元素)不停扫描耗CPU,亮度低,但占用端口资源少同相总线收发器(缓冲器)实现驱动(限流电阻)
段线位线while(1){
P1=0x00;//共阴数码管关显示
P2=0XFE;//选中w1P1=0X5B;//字型码“2”
delayms(1);//延时1ms
P1=0x00;//共阴数码管关显示
P2=0XFD;//选中w2P1=0X3F;//字型码“0”
delayms(1);//延时1ms
…………
P1=0x00;//共阴数码管关显示
P2=0X7F;//选中w8P1=0X7D;//字型码“6”
delayms(1);//延时1ms}位选:选中w1数码管0xFE段选:输出相应字型码
延时位选:选中w2数码管0xFD段选:输出相应字型码延时位选:选中w8数码管0x7F段选:输出相应字型码延时…动态显示:逐位扫描顺序结构
“轮流坐庄”逐位动态扫描软件控制延时1~2ms,人眼视觉暂留效应W1W2
W3
W4W5
W6
W7
W8P2.0P2.1
P2.2
P2.3P2.4
P2.5
P2.6
P2.7•
首先,关显示,从位线输出位码,选通该位数码管;• 其次,从段线输出段码,在某位显示相应的字符(数字);• 然后,延时1~2ms,确保满足人眼的视觉暂留作用。• 最后,循环修改:修改位码,选通下一位;修改段码下标i++,为遍历下一位的段码做准备;for循环遍历重复上述三个步骤,共8次,从而将8位动态扫描一轮,即完成一屏显示while(1)重复完整的8位动态扫描过程,以便持续此屏显示循环结构1)位码移位循环2)位码数组遍历
“轮流坐庄”逐位动态扫描软件控制核心思想:逐位扫描;形式:顺序、位码移位循环、位码数组遍历
P1=0x00;//共阴数码管关显示
P2=w[i];//位码,选中某一位P1=disp[i];//字型码段码
delayms(1);//延时1ms定时器应用任务4-1一位电子秒表(静态数码管定时功能)任务4-2两位数字秒表(动态数码管定时功能)任务4-3简易计件器(计数功能)任务4-4PWM可调光台灯(选)项目4定时计数器应用任务4-1一位电子秒表4.1.1心中有数:定时计数器(P158)4.1.2定时器的结构框图(P159)4.1.3定时器的关键寄存器(P161)4.1.4定时器的寄存器配置流程(P164计算初值)项目4定时计数器应用计数计数功能:是对外部引脚脉冲的个数进行计数。定时功能:是对内部的标准时钟进行计数。CPU定时器T1定时器T0定时4.1.1
心中有数:定时计数器同:本质都是16位加法计数,计满溢出;异:计数对象不同。51单片机内部有两个相互独立的定时计数器,称为T0、T1CPUTMODTCONT0(TH0/TL0)、T1(TH1/TL1): 两个16位加法计数寄存器TMOD: 工作方式寄存器TCON: 控制寄存器4.1.2定时器的结构框图高8位TH0TL0低8位T0高8位TH1TL1
低8位T1聚焦关键寄存器TMOD?TCON?TMOD:工作方式寄存器
功能选择(怎样数);工作方式选择;启动方式的选择T0(TH0/TL0);T1(TH1/TL1)
计数(初值,从哪儿数)TCON:控制寄存器
启动控制(开始数);计满溢出查询(数完)4.1.3定时器的关键寄存器如何实现50ms定时呢?①①②③④数值递增被查询写TMOD设置工作方式计算初始值并写入THx、TLx启动定时器查询是否溢出?溢出标志清0否是4.1.4定时器的寄存器配置流程TMOD(89H)寄存器格式(不可位寻址)GATE(门控位)01TR1=1启动定时器,不受INT1控制TR1=1,INT1=1共同启动定时器•
C/T(功能选择)1定时器计数器• M1M0(工作方式)T1T076543210GATEC/TM1M0GATEC/TM1M0功能工作方式M1M013位计数器方式00016位计数器方式1018位计数器,初值自动重装方式210分成两个8位计数器,仅用于T0,T1停止使用方式3114.1.3定时器的关键寄存器0TMOD=0X01;//字节操作,设置定时器T0的工作方式1TCON(88H)寄存器格式(可位寻址)和定时计数器无关T0、T1的启动控制与溢出标志TR0=1//位操作,启动T0?中断系统中才使用76543210TF1TR1TF0TR0启动/停止位TR1=1或TR0=1
,启动T1或T0工作TR1=0或TR0=0,停止T1或T0工作4.1.3定时器的关键寄存器1计数溢出,硬件自动置10中断方式:硬件自动清0查询方式:软件清0while(!TF0);TF0=0;//查询TF0计满溢出标志;//如果计满溢出,将TF0软件清0TF0/TF1:T0或T1的溢出标志位,何时置1?如何清零?精准定时功能:定时器T0方式1实现50ms的基准定时;子函数delays()实现延时1sm
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026航空班主任面试题及答案
- 2026杰瑞面试题及答案
- 2026秋新教科版科学四年级上册教学课件:第二单元 第6课 胃和小肠里的消化 含多个微课视频
- 2026秋新教科版科学五年级上册教学课件:第一单元 第2课 怎样放得更大 有多个微课视频
- 江西省赣州市南康区2025-2026学年七年级下学期期末考试语文试题(含答案)
- 2025-2026学年北京市西城区初二(下)期末考试数学试卷(含答案)
- 人机协同下的证券服务效率提升
- 2026年甘肃省武威市凉州区高坝镇人民政府招聘专业化管理大学生村文书考试模拟试题及答案详解
- 2026年黑龙江省七台河市住房和城乡建设局人员招聘笔试备考题库及答案详解
- 人工智能算力优化策略研究
- cnas文件考试试题及答案
- DZ/T 0132-1994钻孔压水试验规程
- 幕墙安全管理制度
- 中医康复中的适宜技术选择试题及答案
- DB37T 1342-2021 平原水库工程设计规范
- 2024低温阀门深冷处理规范
- 广西燃气安全检查标准 DBJ T45-1472-2023(2023年7月1日实施)
- 外聘电工合同范本
- 临床肺泡出血综合征CT影像表现
- JTS-252-2015水运工程施工监理规范
- 肝囊肿学习课件
评论
0/150
提交评论