6、要求定时⼀计数器T1工作于方式1,定时20ms,由软件启动。设系统时钟频率12MHz,编写初始化程序段。

2024-12-20 21:29:33
推荐回答(1个)
回答1:

你好 这样说吧,在12M时钟下,1个机器周期就是1微秒,一个机器周期计数器加1,20ms=20000微秒,就得计2万次,51的计数器是16位的,最高计数值为65536(FFFF),那么初值就是20000=65536-45536(B1E0),将B1赋定时器高8位,E0赋定时器低8位。这样到65536定时器溢出的时候正好2万次20ms。
程序:汇编
main:
.........
MOV TH0,#0B1H
MOV TL0,#0E0H
MOV TMOD,#10H ;值定时器1,方式1.
SETB EA ;开总中断
SETB ET0 ;开定时器中断
SETB TR0;;启动定时器
.........
T0_INT: ;;定时器中断程序
CLR TR0;关闭定时器
MOV TH0,#0B1H;重新赋值
MOV TL0,#0E0H
........ 在中断中完成的功能
SETB TR0;;重新启动定时器
RETI;中断返回
...........;其他程序
END;结束