汇编定时器小问题

来源:百度知道 编辑:UC知道 时间:2024/06/13 21:25:24
要求是12M的晶振定时10ms
START:
.
.
MOV TH,#0D8H
MOV TL,#0F0H

问一下 #0D8H,#0F0H是怎么算出来的

16位计数器时,A=2^16-T*f/12=2^16-(10*10^3)*12/12=55536=0D8F0H,高8位是0D8H,低8位是0F0H。

用定时器方式1算出来的.

MOV TH,#0D8H
MOV TL,#0F0H
是错的.

MOV TH0,#0D8H
MOV TL0,#0F0H(定时器0)

MOV TH1,#0D8H
MOV TL1,#0F0H (定时器1)

这个很好算的,12M的时针周期,那么机器周期就是1微秒,10MS,需要计数则是10000/1=10000,2的16方,也就是65536,需要写入初值是65536-10000=55536,化成十六进制则是D8F0H,所以计数的高位写0D8H,低位写0F0H,知道前面为什么要加0吧,因为十六进制第一个是字母的话,前面加0。