你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

单片机定时器赋初值的方法解析

[复制链接]
gaosmile 发布时间:2020-4-3 13:32

在学习单片机的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法。8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下:

       

        最大值为100,我们只需要38,怎么办呢,由于是递加的,我们只需要在62时开始计时就可以了。

        以proteus仿真为例简单讲解定时器赋初值

        单片机定时器赋初值的方法解析

        用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。

        这里使用16位的定时器,那单片机定时器0的最大计数就是65536.晶振为12M,那单片机的一个机器周期就是1us,定时器 0工作在方式1时最大定时65.536ms。

        定时器的定时时间T = (65536-X),单位是us;

        定时器初值X = 65536-T;

        假设定时时间T=10ms=10000us,

        那定时器初值X=65536-10000=55536us,也就是定时器0从55536开始递加到65536就是10ms,所以55536就是定时器的初值,55536转化为十六进制为0Xd8f0,所以定时器的初值为:

        TH0 = 0XD8;

        THL = 0XF0;

       

        用虚拟示波器抓到的波形如下:

        o4YBAF6FmVuARcXpAAC3SDSg6zo175.jpg

        o4YBAF6FmVuAISgLAACDJjfXOIM362.jpg

       


收藏 评论0 发布时间:2020-4-3 13:32

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版