1.特殊功能寄存器的操作注意事项
在操作特殊功能寄存器时,要注意其他各位的影响。
例如,TMOD定时器的操作。
它控制定时器0和定时器1,高四位控制定时器1,低四位控制定时器0。当我们用字节操作其内容时,一次赋值就是改变其八位的全部内容,。此时,若定时器0在另一个函数中应用,经过次操作就改变了定时器0的内容,是不允许的。所以,最好用位操作的方式。
例:
字节操作:TMOD = 0x01; 改为:
位操作: TMOD |= 0x01;TMOD &= 0xfd;
2.定时器定时的计算:
要定时NS,那么,
NS = T * (NT / TSOC)
NS:N秒,NT:是几T的单片机,例如51是12T的,那么NT = 12;TSOC:单片机的时钟,例如12MHz = 12000000
例如:定时器1,方式1,定时0.02S,那么请计算TMOD的初值。
解答:
以知:定时时间 = 0.02,NT = 12,TSOC = 12000000,求T
T =( 12000000 * 0.02 ) / 12
= 20000
所以,TMOD的初值为65536 - 20000 = 45536 = 0xB1E0