完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
定时器介绍和定时器0定时1ms
1. 定时/计数器的概念 . 2. 定时/计数器的模式 16位手动重装模式1 即定时时间到,重新为TL0,TH0赋值 3. 任务:定时1ms 3.1 细谈原理 由下方定时器工作图,可总结出涉及的寄存器控制位: 注: 图中INT0仅仅是单片机INT0的脚,定时器运用与外部中断INT0无关,仅仅是引脚重合 除了打开应打开的位,手动重装定时1ms还需在定时器T0的中断服务函数给TL0,TH0赋初值 外部晶振执行时间0.4us,1ms即是产生2500个脉冲 TL0,TH0共16位,最大值65535 故应赋初值=65536-2500=63036 则TH0=0xf6;TL0=0x3c 每个脉冲来时+1,当定时器值到65536时溢出,向CPU申请中断 3.2 代码实现过程: 3.2.1 定时器0设置并申请中断
使用按位与操作,仅b7位写0,其余位写1
至此,定时器0已经可以向CPU申请中断 3.2.2 CPU处理中断 有些单片机只有1个中断号,要判断是串口中断,还是定时器中断,则需要判断中断标志位 定时器T0的中断服务函数 void Timer0_Rountine(void) interrupt 1 本次测试是手动重装,需要在函数里重装初值 另 测试1 测试2 测试3 定时器0模式1非自动重装 不重装初值,定时器从0开始计数,计到65536溢出清0,申请中断,定时器再从0开始计数 测试4 16位自动重装 省去重装初值时间,则精准1ms定时 手动重装赋初值,定时时间不精确,有误差 注:STC-ISP软件内置定时器计算器 可根据相应要求选择自动计算给出设置值 |
|
|
|
只有小组成员才能发言,加入小组>>
3310 浏览 9 评论
2991 浏览 16 评论
3492 浏览 1 评论
9057 浏览 16 评论
4086 浏览 18 评论
1176浏览 3评论
604浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
597浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2334浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1895浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:45 , Processed in 1.339602 second(s), Total 81, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号