单片机定时计数器理解问题。。

来源:百度知道 编辑:UC知道 时间:2024/06/23 04:43:46
例1、选择T1方式0用于定时,在P1.1输出周期为1ms方波,晶振fosc=6MHz。解:根据题意,只要使P1.1每隔500us取反一次即可得到1ms的方波,因而T1的定时时间为500us,因定时时间不长,取方式0即可。则M1 M0=0;因是定时器方式,所以C/T=0;在此用软件启动T1,所以GATE=0。T0不用,方式字可任意设置,只要不使其进入方式3即可,一般取0,故TMOD=00H。系统复位后TMOD为0,可不对TMOD重新清0。下面计算500us定时T1初始值: 机器周期T=12/fosc=12/(6×106)Hz=2μs

设初值为X,则:1013-X)×2×10-6s=500×10-6s X=7942D=1111100000110B=1F06H

因为在作13位计数器用时,TL1的高3位未用,应填写0,TH1占用高8位,所以X的实际填写应为:

X=111100000000110B=F806H

结果:TH1=F8H,TL1=06H
其中“
因为在作13位计数器用时,TL1的高3位未用,应填写0,TH1占用高8位。。。。”这段很不理解,书上也没提过,初学者,不懂啊。。赐教!!
设初值为X,则后面应该是M。

既然使用13位的模式0这么麻烦,干嘛不使用16位的模式1呢?我在用的时候都会避开模式0。

晕,1F06H=1111100000110B,前面是5个1好不好,这样的话取低5位,TL1=00110B;高八位TH1=11111000B,也就是TH1=F8H,TL1=06H了