推荐星级:
- 1
- 2
- 3
- 4
- 5
单片机c51教程--精确定时1秒钟闪灯
资料介绍
文档为单片机c51教程--精确定时1秒钟闪灯总结文档,是一份不错的参考资料,感兴趣的可以下载看看,,,,,,,,,,,,,,
部分文件列表
文件名 | 大小 |
单片机c51教程--精确定时1秒钟闪灯.pdf | 65K |
部分页面预览
(完整内容请下载后查看)第 7 课,精确定时 1 秒钟闪灯
这一课,我们将学习如何精确定时 1 秒钟闪灯。上节介绍过,要精确定时,必须使用
自装载方式。这里我们使用 T2 定时器,让它工作在 16bit 自动装载方式,这时,有另一
个
位置专门装着 16 位预装载值,T2 溢出时,预装载值立即被置入。这就保证了精确定时。
但是,即使是 16 位定时器,最长的溢出时间也就几十毫秒,要定时一秒,就需要一个
变量来保存溢出的次数,积累到了多少次之后,才执行一次操作。这样就可以累加到 1 秒
或
者更长的时间才做一次操作了。
T2 定时器有个特殊的地方,它进入中断后,需要自己清除溢出标记,而 51 的其他定时
器是自动清除的。请参考 51 单片机相关书籍。
如果使用 T2 定时器实现 1 秒精确定时?
下面我们就来计算:
仿真器的晶振是 11.0892MHZ,每秒钟可以执行 921600 个机器周期。而 T2 每次溢出
最多 65536 个机器周期。我们尽量应该让溢出中断的次数最少,这样对主程序的干扰也就
最
小。
选择每秒中断 24 次 ,每次溢出 921600/24 个机器周期,超出 65536,无效。
选择每秒中断 30 次 ,每次溢出 921600/30 个机器周期
选择每秒中断 32 次 ,每次溢出 921600/32 个机器周期
选择每秒中断 36 次 ,每次溢出 921600/36 个机器周期
选择每秒中断 40 次 ,每次溢出 921600/40 个机器周期
从上面可以看到我们可以选择方式有很多,但是最佳的是每秒中断 15 次,每次溢出
921600/15 个机器周期。也就是赋定时器 T2 初值 65536-921600/15,换成十六进制就是
从上面的计算也可以看出晶振 11.0292MHz 的好处,它可以整除的倍数多,要准确定时
非常方便。更常见的应用是在串口波特率上,使用 11.0592MHZ 可以输出最多准确的标准
波
特率。
我们在定时器服务函数里,设置了一个静态变量 t,静态变量的值在进入函数时是不会
被初始化的,而是保持上次的值。它用来计数定时器的溢出次数,也就是 T2 中断函数进
入的次数,每溢出 15 次,就控制一次 LED 的反转显示。这时的时间就正好是 1 秒,而
且是精确的 1 秒!只与晶振的精度有关。
请编译,进入仿真,全速运行。可以看到,LED 在亮一秒,灭一秒,不断循环闪烁。
这种精确定时,可以用在时钟的计算、显示上。
作业:
1.改为保持 1 秒闪烁的同时,让 P11 灯每 10 秒钟闪烁一次。
2.改为保持 1 秒闪烁的同时,让 P11 灯亮 1 秒停 5 秒不断循环。
相关下载
- 华为模块电源管理设计指导-(V100R001_02 Chi...
- 华为LGA模块PCB设计指导_V2.0_20150126.pdf
- HUAWEI Module USB Interface Descriptor Gui...
- HUAWEI ME909s-821 LTE LGA模块硬件指南V100R...
- HUAWEI ME909s-821 LTE LGA Module Acceptanc...
- HUAWEI 30 mm x 30 mm LGA Module Hardware M...
- HUAWEI 30 mm x 30 mm LGA Module Developmen...
- Altium_Designer_规则设置三例.pdf
- STM32F407产品技术培训-DSP库及其例程
- STM32F407产品技术培训-2.浮点单元.pdf
全部评论(1)
2020-05-15 09:17:08十三诸侯
谢谢分享