C51單片機(jī)程序編寫注意事項(xiàng)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
1.特殊功能寄存器的操作注意事項(xiàng)
在操作特殊功能寄存器時(shí),要注意其他各位的影響。
例如,TMOD定時(shí)器的操作。
它控制定時(shí)器0和定時(shí)器1,高四位控制定時(shí)器1,低四位控制定時(shí)器0。當(dāng)我們用字節(jié)操作其內(nèi)容時(shí),一次賦值就是改變其八位的全部?jī)?nèi)容,。此時(shí),若定時(shí)器0在另一個(gè)函數(shù)中應(yīng)用,經(jīng)過(guò)次操作就改變了定時(shí)器0的內(nèi)容,是不允許的。所以,最好用位操作的方式。
例:
字節(jié)操作:TMOD = 0x01; 改為:
位操作: TMOD |= 0x01;TMOD &= 0xfd;
2.定時(shí)器定時(shí)的計(jì)算:
要定時(shí)NS,那么,
NS = T * (NT / TSOC)
NS:N秒,NT:是幾T的單片機(jī),例如51是12T的,那么NT = 12;TSOC:?jiǎn)纹瑱C(jī)的時(shí)鐘,例如12MHz = 12000000
例如:定時(shí)器1,方式1,定時(shí)0.02S,那么請(qǐng)計(jì)算TMOD的初值。
解答:
以知:定時(shí)時(shí)間 = 0.02,NT = 12,TSOC = 12000000,求T
T =( 12000000 * 0.02 ) / 12
= 20000
所以,TMOD的初值為65536 - 20000 = 45536 = 0xB1E0