声明:【51单片机学习过程记录】全是我自己学习、实践所记录的过程,我只是菜鸟,所有论点和观点仅代表我个人,不能确定是这个技术的真理。我的目的是学习和有可能成为可以向别人分享的经验,因此有错误我会虚心接受,并认真改正。
1 由数据手册可知,89c52rc单片机有六个中断,分别为 外部中断0 外部中断1定时计数器0 定时计数器1定时计数器2 以及串口中断,一共六个。
2 如何理解继而操作定时器0?
A大概了解:定时器,其实就是单片机的机器周期计数器,工作原理就是 当给计数器设定初始值并开启后,定时计数器会自动计算,到达设定的时间后会产生中断。(当然,更详细还是需要专门查看定时计数器去深入了解)
B操作:需要参考另外一个文档,上图,是来自另一个文档, programmer's guide。即程序员指南和指令表,暂且这样翻译,(另外,因为51和52中的中断,不同处是 51没有 定时计数器2,其他操作都相同)
查阅中断INTERRUPTS,对于使用中断有上述三点:1设置 IE(中断使能寄存器)中的EA(全部使能)位为1; 2在IE 寄存器中设置相应中断的使能位 3 在相应的中断矢量地址开启中断服务程序
[IE寄存器]
“使用中断需要执行的三步”中提及的寄存器IE,中断使能寄存器,可以位寻址。然后可以看到每一位的作用是什么,对于每一位,设置1 则为使能,设置 0则为相反,不使能。因为这文讲使用的是定时计数器0即T0,那么对于这个IE寄存器,使能位则是 EA 和 ET0 ,其他为则先全部设置为0。
[IP寄存器]
在IE寄存器后,programmer's guide继续给出其他与操作中断相关的寄存器。
从上图可以看到,内部中断优先级从高到低是:外部中断0---定时计算器0---外部中断1---定时计数器1---串口中断
IP,是中断优先级寄存器,可位寻址,当IP寄存器中指定位设置为1时,该中断为更高级。 例如,将PX1设置为1时,其他设置为0时,则外部中断1的为最高级,当没有外部中断1产生,则其他中断按照中断优先级去执行中断。
中断因为优先级可以嵌套执行,就是说,当低级的中断执行中,产生更高级的中断时,cpu会先执行更高级的中断,处理完更高级的中断服务后再接着处理原来低级的中断。
因为,此文只说明使用开启一个中断(定时计数器0),所以这个IP寄存器就不设置了。
[TCON寄存器]
TCON,定时计数器控制寄存器,其他的略过,只是T0有关的,在TCON寄存器中,TF0是定时器0的溢出标志,它的溢出标识和清楚都是由硬件自动操作;还有就是 TR0 ,定时计数器0 的运行控制位,用于开启和关闭 定时计数器0 ,它的设置和清除由 软件 完成,即由代码去控制。
因为有标识 BIT ADDRESSABLE 都表示 可位寻址 ,所以代码中可以直接对 寄存器 的指定位 进行操作, 那么其他没有用到的位可以忽略。
[TMOD寄存器]
再有,就是上图所示的TMOD 定时计数器模式控制寄存器(注意,TMOD是不可以位寻址,就是说不可以单独对寄存器中的指定位进行设置)。
8位寄存器,高4位设置 定时计数器1 低4位设置 定时计数器0。
根据描述,由 软件 控制定时计数器,设置 GATE位 为0;
C/T 为0时,为定时功能,加1计数器对内部时钟的脉冲 f 进行计数,每来一个脉冲,计数器加1,直到计时器TFX溢出;
C/T为1时,为计数功能,加1计数器对来自输入引脚T0和应交T1的外信号脉冲进行计数,每来一个脉冲,计数器加1,直到计时器TFX溢出。
因为此文使用定时功能,所以C/T设置为0。
然后 M1 M0就是设置定时器模式。即有M1M0为 0 时是13位的定时计数器。。。
除了上述的可以对T0 或者T1 选择作为TIMER或者是COUNTER 和相应的内部控制和外部控制外,文中还提及同时使用T0和T1,就是将TMOD中相应的值 或,
例如 60H or 09H 就是69H,TMOD中的60H表示设置T1为内部控制的COUNTER,T0为外部控制的TIMER。
3对于了解和操作 定时计数器0 操作前理解过程 的总结:
要使用 定时计数器0(定时功能)软件上(即代码)需要对
IE (可位寻址,EA 位 ET0位)
IP (可位寻址,看实际应用来配置)
TCON (可位寻址,TF0位由硬件控制 TR0位)
TMOD (不可位寻址,对整个寄存器进行配置)
上述几个寄存器进行配置。
PS:往后需要提及的在下一文 程序代码 中进行讲述。
上一篇:51单片机的中断和定时(全面)
下一篇:51 单片机 时间/计数器中断
推荐阅读最新更新时间:2024-11-04 03:23
设计资源 培训 开发板 精华推荐
- 96多功能仪表
- NSI45060JDT4G可调电流LED串并联CCR的典型应用
- TWR-LCD-RGB: 带RGB接口的塔式系统图形LCD模块
- 使用 ROHM Semiconductor 的 BD49E52G-TR 的参考设计
- ADR530B 3V 输出高精度并联模式电压基准的典型应用
- LF25ABDT-TR 2.5V低压灯泡典型应用
- AM3G-2415SZ 15V 3 瓦直流转直流转换器的典型应用
- 物联控制|室外_物联网控制器V1.0
- 10MB/s 多协议芯片组支持 Net1 和 Net2 标准,使用 LTC1543 控制器可选 DTE/DCE 端口和 DB-25 连接器
- 使用 ROHM Semiconductor 的 BD46485 的参考设计