=
0x8a--允许外部中断1和定时器t0中断,tr0=1--定时器t0启动,晶振频率为11.0592mhz;
2.tzd()为定时器t0中断服务子程序,当定时器t0溢出时,进入tzd(),th0
=
0xfe--寄存器th0重置为254,tl0
=
0x33--寄存器tl0重置为51,
每进入一次定时器t0中断,ct就加1,ct++==speed--当ct的值加到speed时,执行tim=1和ct=0。
不是单片机题目里的TMOD,而是单片机的内部专用寄存器TMOD的设置,它是定时器的工作模式设置寄存器,用它来设置定时器T0,T1的工作模式。以最常用的定时器模式(还有一种计数器模式)为例
高四位 用来设置定时器T1的,低四位用来设置定时器T0的。
定时器有四种工作方式,分别为0,1,2,3
T0方式几,低四位就是几,T1方式几,高四位就是几。
例:T0设置为方式1,则TMOD=0x01,即01H
T1设置为方式2,则TMOD=0x20,即02H
如果T1,T0同时使用,就同时设置,T1方式2,T0方式1,则TMOD=0x21,即21H。
你说的00H,是不用设置的,因为默认的就是00H。
TMOD=0x01,表示T1是方式0,,T0是方式1;TMOD=0x10表示T1是方式1,T0是方式0。即高半字节是T1的模式,低半字节是T0的模式,这与编程语言无关,只和芯片硬件有关。按你的要求,TMOD应该是0x10.
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)