51定时器100Us
时间: 2023-11-19 11:04:12 浏览: 181
51定时时钟
根据您提供的引用内容,51定时器的计数器是16位的,可以通过设置定时器的预分频系数和重载值来实现不同的定时时间。以100us为例,可以按照以下步骤进行设置:
1.选择定时器模式,将定时器TCON寄存器中的bit6和bit7设置为1,表示使用定时器模式1。
2.设置定时器的预分频系数,将定时器的预分频系数设置为12,即将定时器TCON寄存器中的bit0~bit3设置为1100b,这样定时器的时钟频率就为12MHz/12=1MHz。
3.设置定时器的重载值,由于定时器是16位的,所以可以设置的最大重载值为65535,因此可以将定时器的重载值设置为1,即将定时器TH0和TL0寄存器的值都设置为65535-100+1=65436(100us对应的计数值)。
4.启动定时器,将定时器TCON寄存器中的bit4设置为1,表示启动定时器。
5.在定时器中断服务程序中处理定时器溢出事件,当定时器溢出时,定时器的计数值会清零,并触发定时器中断,可以在定时器中断服务程序中进行相应的处理。
下面是示例代码:
```assembly
ORG 0H
MOV TMOD, #01H ; 设置定时器模式1
MOV TH0, #0FEH ; 设置定时器重载值为65436
MOV TL0, #0D4H
SETB TR0 ; 启动定时器
SETB EA ; 开启总中断
SETB ET0 ; 开启定时器中断
LOOP:
SJMP LOOP ; 主循环
ORG 0BH
CLR TF0 ; 清除定时器中断标志
; 在这里处理定时器中断事件
RETI
```
阅读全文