单片机定时器(考小题大题).ppt

上传人:max****ui 文档编号:8390107 上传时间:2020-03-28 格式:PPT 页数:38 大小:559.50KB
返回 下载 相关 举报
单片机定时器(考小题大题).ppt_第1页
第1页 / 共38页
单片机定时器(考小题大题).ppt_第2页
第2页 / 共38页
单片机定时器(考小题大题).ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
定时器 计数器及其应用 2 定时器 计数器及其应用 定时器 计数器的应用场合 定时或延时控制 对外部事件的检测 计数等 MCS 51系列8031 8051单片机有两个16位定时器 计数器 即T0和T1 8032 8052单片机有3个16位定时器 计数器 即T0 T1和T2 3 定时器 计数器及其应用 所谓计数器就是对外部输入脉冲的计数 所谓定时器也是对脉冲进行计数完成的 计数的是51单片机内部产生的标准脉冲 通过计数脉冲个数实现定时 所以 定时器和计数器本质上是一致的 在以后的叙述中将定时器 计数器笼统称为定时器 4 定时器 计数器及其应用 5 定时器的结构及工作原理 6 定时器的结构及工作原理 组成 两个16位的定时器T0和T1 以及他们的工作方式寄存器TMOD和控制寄存器TCON等组成 内部通过总线与CPU相连 定时器T0和T1各由两个8位特殊功能寄存器TH0 TL0 TH1 TL1构成 工作方式寄存器TMOD 用于设置定时器的工作模式和工作方式 控制寄存器TCON 用于启动和停止定时器的计数 并控制定时器的状态 单片机复位时 两个寄存器的所有位都被清0 8051定时器内部结构框图 7 定时器的结构及工作原理 两个可编程的定时器 计数器T1 T0 每个定时器内部结构实际上就是一个可编程的加法计数器 由编程来设置它工作在定时状态还是计数状态 两种工作模式 1 计数器工作模式就是对外部事件进行计数 计数脉冲来自相应的外部输入引脚T0 P3 4 或T1 P3 5 当输入信号发生由1至0的负跳变 下降沿 时 计数器 TH0 TL0或TH1 TL1 的值增1 2 定时器工作模式也是通过计数实现的 计数脉冲来自内部时钟脉冲 每个机器周期计数值增1 每个机器周期 12个振荡周期 因此计数频率为振荡频率的1 12 所以定时时间 计数值 机器周期 8 定时器的结构及工作原理 当控制信号定时器工作在定时方式 加1计数器对脉冲f进行计数 每来一个脉冲 计数器加1 直到计时器计满溢出 因为 即一个计数脉冲的周期就是一个机器周期 计数器计数的是机器周期脉冲个数 从而实现定时 当控制信号定时器工作在计数方式 加1计数器对来自输入引脚T0 P3 4 和T1 P3 5 的外信号脉冲进行计数 每来一个脉冲 计数器加1 直到计时器计满溢出 9 控制信号K可以控制计数器的 启动 和 停止 10 振荡周期 时钟周期 机器周期和指令周期 11 定时器的结构及工作原理 在每个机器周期的S5P2期间采样检测引脚输入电平 若前一个机器周期采样值为 1 后一个机器周期采样值为 0 则计数器加1 新的计数值在检测到输入引脚电平发生 1 到 0 的负跳变 下降沿 后 于下一个机器周期的S3P1期间装入计数器中 由于CPU需要两个机器周期来识别一个 1 到 0 的跳变信号 所以最高的计数频率为振荡周期的1 24 12 定时器的结构及工作原理 定时 计数器对输入信号的要求外部计数脉冲的最高频率为系统振荡器频率的1 24 例如选用12MHz频率的晶体 则可输入500KHz的外部脉冲 输入信号的高 低电平至少要分别保持一个机器周期 如图所示 图中Tcy为机器周期 13 可编程定时器的工作方式 启动 停止 溢出标志 计数器等都是可编程的 通过设置寄存器TMOD TCON TH0 TL0 TH1和TL1实现 当设置了定时器的工作方式并启动定时器工作后 定时器就按被设定好的工作方式独立工作 不再占用CPU 只有在计数器计满溢出时才向CPU申请中断 占用CPU 由此可见 定时器是单片机中工作效率高且应用灵活的部件 定时器的结构及工作原理 14 定时器 计数器及其应用 定时器的TMOD和TCON寄存器 15 定时器的TMOD和TCON寄存器 8051单片机定时器主要有几个特殊功能寄存器组成 TMOD TCON TH0 TL0 TH1 TL1 TMOD 设置定时器的工作方式 TCON 控制定时器的启动和停止 TH0和TL0 存放定时器T0的初值或计数结果 TH0存放高8位 TL0存放低8位 TH1和TL1 存放定时器T1的初值或计数结果 TH1存放高8位 TL1存放低8位 16 工作方式控制寄存器TMOD 8位分为两组 高4位控制T1 低4位控制T0 1 GATE 门控位0 以TRX X 0 1 来启动定时器 计数器运行 1 用外中断引脚 INT0 或INT1 上的高电平和TRX来启动定时器 计数器运行 2 M1 M0 工作方式选择位M1M0工作方式00方式0 13位定时器 计数器 01方式1 16位定时器 计数器 10方式2 8位常数自动重新装载11方式3 仅适用于T0 T0分成两个8位计数器 T1停止计数 3 C T 计数器模式和定时器模式选择位0 定时器模式 1 计数器模式 4 TMOD无位地址 不能位寻址 5 复位时 TMOD所有位均为 0 17 低4位与外部中断有关 高4位的功能如下 1 TF1 TF0 计数溢出标志位定时器T0或T1计数溢出时 由硬件自动将此位置 1 TFx可以由程序查询 也是定时中断的请求源 2 TR1 TR0 计数运行控制位TRx 1 启动定时器 计数器工作TRx 0 停止定时器 计数器工作 控制寄存器TCON 18 19 定时 计数器的初始化 51单片机的定时器 计数器是可编程的 但在进行定时或计数之前要对程序进行初始化 具体步骤如下 1 对TMOD赋值 以确定定时器的工作模式 2 置定时 计数器初值 直接将初值写入寄存器的TH0 TL0或TH1 TL1 3 根据需要 对IE置初值 开放定时器中断 4 对TCON寄存器中的TR0或TR1置位 启动定时 计数器 置位以后 计数器即按规定的工作模式和初值进行计数或开始定时 20 定时 计数器的初始化 初值计算 设计数器的最大值为M 则置入的初值X为 计数方式 X M 计数值定时方式 由 M X T 定时值 得X M 定时值 TT为计数周期 是单片机的机器周期 模式0 M为213 模式1 M为216 模式2和3 M为28 例如 机器周期为1 s时 若工作在模式0 则最大定时值为 213 1 s 8 192ms若工作在模式1 则最大定时值为 216 1 s 65 536ms 21 定时器 计数器及其应用 定时器的工作方式 22 定时器T0有4种工作方式 即 方式0 方式1 方式2 方式3 定时器T1有3种工作方式 即 方式0 方式1 方式2 定时器的工作方式 23 方式0M1 M0设置为00 为13位计数器 以T1为例 其框图如下 定时器的工作方式 方式0 计数脉冲输入 加1计数器 24 定时器的工作方式 方式0 在这种方式下 16位寄存器TH1和TL1只用13位 由TH1的8位和TL1的低5位组成 TL1的高3位不定 当TL1的低5位计数溢出时 向TH1进位 而TH1计数溢出时 则向中断标志位TF1进位 即硬件将TF1置1 并请求中断 可通过查询TF1是否置 1 或考察中断是否发生来判定定时器T1的操作完成与否 25 定时器的工作方式 方式0 当C T 0时 为定时工作模式 开关接到振荡器的12分频器输出上 计数器对机器周期脉冲计数 其定时时间为 213 初值 振荡周期 12例如 若晶振频率为12MHz 则最长的定时时间为 213 0 1 12 12us 8 191ms当C T 1时 为计数工作模式 开关与外部引脚T1 P3 5 接通 计数器对来自外部引脚的输入脉冲计数 当外部信号发生负跳变时计数器加1 26 定时器的工作方式 方式0 GATE控制定时器Tx T1或T0 的条件 1 当GATE 0时 或门 输出恒为1 与门 的输出信号K由TRx决定 即此时K TRx 定时器不受INTx输入电平的影响 由TRx直接控制定时器的启动和停止 TRx 1 计数启动 TRx 0 计数停止 2 当GATE 1时 与门 的输出信号K由INTx输入电平和TRx位的状态一起决定 即此时K TRx INTx 当且仅当TRx 1且INTx 1 高电平 时 计数启动 否则 计数停止 返回 27 方式1M1 M0 01 为16位的计数器 除位数外 其他与方式0相同 其定时时间为 216 初值 振荡周期 12例如 若晶振频率为12MHz 则最长的定时时间为 216 0 1 12 12us 65 536ms 定时器的工作方式 方式1 28 方式2M1 M0 10 为自动恢复初值的8位计数器 等效框图如下 TLx作为8位计数器 THx作为重置初值的缓冲器 定时器的工作方式 方式2 THx作为常数缓冲器 当TLx计数溢出时 在置 1 溢出标志TFx的同时 还自动的将THx中的初值送至TLx 使TLx从初值开始重新计数 定时器 计数器的方式2工作过程如图 x 0 1 29 优点 方式0和方式1用于循环重复定时或计数时 在每次计数器挤满溢出后 计数器复0 若要进行新一轮的计数 就得重新装入计数初值 这样一来不仅造成编程麻烦 而且影响定时精度 而方式2具有初值自动装入的功能 避免了这个缺点 可实现精确的定时 缺点 只有8位计数器 定时时间短 计数范围小 其定时时间为 28 初值 振荡周期 12若晶振频率为12MHz 则最长的定时时间为 28 0 1 12 12us 0 256ms 定时器的工作方式 方式2 方式2工作过程图 x 0 1 30 定时器 计数器及其应用 定时器的编程和应用 31 定时器的编程和应用 编程说明51单片机的定时器是可编程的 但在进行定时或计数之前要对程序进行初始化 具体步骤如下 1 确定工作方式字 对TMOD寄存器正确赋值 2 确定定时初值 计算初值 直接将初值写入寄存器的TH0 TL0或TH1 TL1 初值计算 设计数器的最大值为M 则置入的初值X为 计数方式 X M 计数值定时方式 由 M X T 定时值 得X M 定时值 TT为计数周期 是单片机的机器周期 模式0M为213 模式1M为216 模式2和3M为28 3 根据需要 对IE置初值 开放定时器中断 4 启动定时 计数器 对TCON寄存器中的TR0或TR1置位 置位以后 计数器即按规定的工作模式和初值进行计数或开始定时 32 定时器的编程和应用 例1要在P1 0上输出一个周期为2ms的方波 假设系统振荡频率采用12MHz 利用T0方式0产生1ms的定时方波的周期用T0来确定 让T0每隔1ms计数溢出1次 即TF0 1 查询到TF0 1则CPU对P1 0取反 即要使P1 0每隔1ms取反一次 33 定时器的编程和应用 第一步 确定工作方式字方式0 13位 最长可定时8 192ms 方式1 16位 最长可定时65 536ms 方式2 8位 最长可定时256 s T0为方式0 M1M0 00定时工作状态 C T 0GATE 0 不受INT0控制 T1不用全部取 0 值 故TMOD 00H 34 定时器的编程和应用 第二步 计算1ms定时的初值X设初值为X 则有 213 X 12 10 6 1 12 1 10 3可求得 X 8192 1000 7192X化为16进制 即X 1C18H 1 1100 0001 1000B 所以 T0的初值为 TH0 E0HTL0 18H 35 例2将 例1 中的输出方波周期改为1秒 分析 周期为1s的方波要求500ms的定时 1 T0工作方式的确定因定时时间较长 采用哪一种工作方式 由各种工作方式的特性 可计算出 方式0 13位 最长可定时8 192ms 方式1 16位 最长可定时65 536ms 方式2 8位 最长可定时256 s 所以采用定时器定时加软件计数的方法来实现延长定时 选方式1 定时50ms 软件计数10次 50ms 10 500ms 所以 TMOD 01H 定时器的编程和应用 以上各方式都不满足要求 36 2 计算计数初值因为 216 X 12 10 6 1 12 50 10 3所以 X 15536 3CB0H因此 TH0 3CH TL0 B0H 3 10次计数的实现设计一个软件计数器 初始值设为10 每隔50ms定时时间到 产生溢出标志TF0 程序查询到TF0 1 则软件计数器减1 这样减到0时就获得了500ms的定时 定时器的编程和应用 37 以上的定时程序中 程序都要重置计时器初值 这样从定时器溢出发出溢出标志 到重装完定时器初值 在开始计数 之间总会有一段时间间隔 使定时时间增加了若干微秒 造成定时不够精确 为了减小这种定时误差 单片机中设置了工作方式2 自动重装初值 则可避免上述因素 省去程序中重装初值的指令 实现精确定时 但是工作方式2的缺点是只有8位计数器 定时时间受到很大限制 定时器的编程和应用 38 例3利用T0方式2产生250us的定时 在P1 0引脚上输出周期为500us的方波 要求精确定时 设系统振荡为12MHz 1 工作方式选择实现精确定时 采用方式2 对于12MHz晶振 方式2的最大计数时间为28 256us 所以可实现250us的精确定时 故 设置TMOD 02H 2 计算初值设初值为X 则 28 X 12 10 6 1 12 250 10 6X 28 250 6 06H 3 程序设计采用查询TF0的状态来控制P1 0的输出 定时器的编程和应用
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!