|
定時(shí)器只要在程序中執(zhí)行啟動(dòng)就能運(yùn)行起來,TR0=1;就是使定時(shí)器0運(yùn)行起來的語句。定時(shí)器0運(yùn)行起來的工作內(nèi)容就是每個(gè)機(jī)器周期加1。
什么是機(jī)器周期呢?51單片機(jī)的機(jī)器周期是晶振周期的12倍,如晶振頻率是12M,那么它的周期是12M分之一,那么機(jī)器周期就是1M分之一,一兆就是10的6次方,那么它的周期就是10的負(fù)6次方,就是一微秒。
那么定時(shí)器開始工作就是每12個(gè)晶振振蕩加一次數(shù),即每1微秒加1.
當(dāng)加到最大值的時(shí)候,再加1就變成0,然后再向上加。
只有當(dāng)把對應(yīng)的定時(shí)器中斷打開的時(shí)候,如ET0=1;就是打開定時(shí)器0的中斷,那么定時(shí)器0的溢出信號(hào)才能產(chǎn)生中斷,執(zhí)行此中斷服務(wù)程序。
你的思維有點(diǎn)混亂,定時(shí)器不是在中斷的時(shí)候才運(yùn)行,而是只要啟動(dòng)定時(shí)器就能運(yùn)行,一旦啟動(dòng),就對每個(gè)機(jī)器周期進(jìn)行計(jì)數(shù)。計(jì)到最大值后,再加1就會(huì)溢出,必須打開中斷開關(guān),才能利用溢出信號(hào)產(chǎn)生中斷。
舉個(gè)粟子,你的鬧鐘只要把電池電源開關(guān)打開,鬧鐘就會(huì)走,當(dāng)鬧鐘走到設(shè)定的指針與當(dāng)前的時(shí)鐘指針重合時(shí),鬧鐘不一定會(huì)響,只有打開了鬧鐘開關(guān),才會(huì)響起鬧鐘,提醒你。
你的意思是鬧鐘響(中斷)是使鐘表走動(dòng)的動(dòng)力?這顯示是荒謬的。 |
|