这样测,直接量P13是约18s翻转一次。18000 ÷ 65536 = 0.274658203125。
11059200 ÷ 12 ÷ 256 = 3600
1000 ms / 3600 = 0.2777777777777778
- #include "stc8H.h"
- #include "def.h"
-
- void TM2_Isr() interrupt 12{
- P36 = ~P36;
- }
-
- void main() {
- u8 c, t;
- u16 temp,z;
- P_SW2 |= 0x80;
-
- TM2PS = 0xFF; //设置定时器时钟预分频 定时器2时钟 = 11059200L / (0xFF+1) = 43200
- AUXR &= 0xFB; //定时器时钟12T模式 43200 / 12 = 3600
-
- // 65536 - 18s //0.274658203125 节拍
- T2L = 0x00; //设置定时初始值
- T2H = 0x00; //设置定时初始值
-
- AUXR |= 0x10; //定时器2开始计时
- INTCLKO |= T2CLKO; //P13输出
- P1M0 |= 0x08; P1M1 &= ~0x08;
- P1SR = 0xf7;
- EA = 1;
- while (1) {
- }
- }
复制代码
|