IC解密知識:應用定時器中斷實例

來源:IC解密工程師講解一個應用定時器中斷的實例
現(xiàn)要求編制一段程序,使P1.0端口線上輸出周期為2ms的方波脈沖。設單片機晶振頻率
Fosc=6MHZ.
1、方法:利用定時器T0作1ms定時,達到定時值后引起中斷,在中斷服務程序中,使P1.0的狀態(tài)取一次反,并再次定時1ms。
2、定時初值:機器周期MC=12/fosc=2us。所以定時lms所需的機器周期個數(shù)為500D,亦即0lF4H。設T0為工作方式1(16位方式),則定時初值是(01F4H)求補=FEOCH
START: MOV TMOD,#01H ;T0為定時器狀態(tài),工作方式1
  MOV TL0,#0CH ;T0的低位定時初值
  MOV TH0,#0FEH ;T0的高位定時初值
  MOV TCON,#10H ;打開T0
  SETB ET0 ;1ET0,即允許T0中斷
  SETB EA ;1EA,即充許全局中斷
  AJMP $ ;動態(tài)暫存
000BH: AJMP IST0 ;轉(zhuǎn)入T0中斷服務程序入口地址IST0
IST0: MOV TL0,#0CH ;重置定時器初值
  MOV TH0,#0FEH ;重置定時器初值
  CPL P1.0 ;P1.0取反
  RET1 ;中斷返回