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