一、几个周期详解
-
时钟周期:时序中最小单位
1/时钟源频率
11.0592M=1/11059200秒 -
机器周期:单片机完成一个操作的最短时间,但是主要针对汇编而言,汇编下每一个机器周期都是每条语句的整数倍,而c语句时间不确定,c51统一标准一个周期为12个时钟周期也就是12/11059200
-
定时器计数周期:统一标准为机器周期12/11059200
二、定时器计数\定时计算
一个机器周期为12x1/晶振(假如晶振为11.0592M)那么一个定时器加一的的时间为12x1/11059200=1.09us,假如定时50ms那么50000us/1.09us=45872则65536—45872=15536就是初值为高8位的值
写程序可以不用
计算初值的公式方法适用方式一:
TH0=(65536-N)/256
TL0=(65536-N)%256
万能计算:
N(需要计数个数)=总定时时间/指令周期(机器周期)然后将 总值—N再换成16进制高2位为TH0低2位TL0
三、中断服务程序写法
起处理作用所以无返回值
void 函数名()interrupt 中断号
{
服务程序
}
记:中断号
- INT0 0
- T0 1
- INT1 2
- T1 3
- TI/RI 4
- T2 5
定时器一启动就会一直执行定时中断功能