学习笔记六
一.定时器
二.实验(led闪烁)
一.定时器
功能:
定时
1. 加一计数。
2. 脉冲来自振荡器的12分频后的脉冲(Fosc/12),简单的说就是对机器周期计数。
3. 需要预设定时初值(TH、TL)。
4. 初值设置需要是补码,加一计数(补码的加,原值的减)加到溢出(原值减到0了)则发生溢出中断。
计数
1. 加一计数。
2. 需要预设计数初值(TH、TL)。
2. 脉冲来源于T0或T1引脚。
2. 上图的控制开关合上(控制=1)计数器对外部脉冲产生的下降沿开始计数
3. 知道计满,初始值变为0,产生溢出中断。
4. 计数脉冲的最高频率不可超过Fosc/24
初始化
1.’确定定时器的计数模式。
2)、确定TLx与THx之间的搭配关系。
3)、确定计数起点值。即TLx与THx的初值。
4)、是否开始计数。TRx 建议去看用户手册,从而选择适合的模式
下面的实验与定时有关就写一下C51单片机的定时计算 二、定时器计数\定时计算
一个机器周期为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 不想计算可以在STC-ISP里面找
二.实验 程序现在主函数中运行,满足中断发生的条件时,程序跳转到中断程序中运行,运行完后,再跳到主程序中运行 若一个条件满足时有多个中断均可产生,则可设置中断优先级,假设有多个患者到医院找同一个医生治疗,医生则会按照一定的标准给病人排序 进行医治 代码:
自我感觉定时器这一块有点难,特别是定时器的初始化,各个寄存器的配置那一点
|