IAP15W4K58S4单片机定时器初值计算

该程序详细介绍了如何在一款特定的MCU(如IAP15W4K58S4)上配置16位定时器T0,以实现1毫秒的延时功能。系统时钟设定为22.1184MHz,并且利用1T模式,通过设置TH0和TL0的初值来达到定时目的。定时初值计算涉及到了频率转换和十六进制的转换过程。
摘要由CSDN通过智能技术生成

IAP15W4K58S4
一共有5个16位定时器:定时器0,定时器1, 定时器2, 定时器3和定时器4。
以下程序使用ISP软件自动分配的时钟函数:

void Timer0Init(void) //1毫秒@22.1184MHz
{
AUXR |= 0x80; //定时器时钟1T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x9A; //设置定时初值
TH0 = 0xA9; //设置定时初值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
}

1、程序采用了22.1184Mhz作为系统时钟,使用T0定时器,普遍MCU采用的12分频,但本次实验使用的MCU可设成1T。

2、THO,TLO定时初值计算方法:

(THO,TLO)=65536UL -(MAIN_Fosc / 1000)。
程序系统主时钟=22.1184Mhz,定时器时钟Fosc=1T
因此MAIN Fosc=22118400/1(即22118400/1秒)

因为开设的是1ms延迟,即22118400/1000=22118.4/ms(每毫秒运行的值)
定时初值就等于65536-22118.4=43417.6
将43417.6转换成16进制= (A999.999)H.
THO (对应高位)= 0xA9H ,TLO(对应低位) =0x9AH

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值