這是時鐘程式裡的部分程式
MOV 36H,#20 ;中斷次數計數器置初值
MOV 20H,#0 ;20H=0---CLK_RUN, 1---H_CH, 2--M_CH, 3---S_CH
CLR 08H ;08H=0,顯示。08H=1,熄滅
MOV TMOD,#00000001B ;設定T0為定時器工作方式1
MOV TH0,#3CH ;定時器置初值
MOV TL0,#0B0H ;
SETB EA ;CPU開中斷
SETB ET0 ;T0開中斷
SETB TR0 ;T0起動執行
51有5 箇中斷,EA為總中斷,SETB EA就是開總中斷。
SETB ET0 ,開定時器T0中斷
SETB TR0 ,T0啟動,開始計數
TR0是T0計數執行控制位,=1時,允許T0計數。=0,禁止計數。這裡SETB TR0,開始計數,溢位時,由於總中斷和定時器T0中斷都 開了,所以產生中斷。如果2 箇中斷沒開,即使啟動了TR0,計數器溢位時,也不產生中斷。
這是時鐘程式裡的部分程式
MOV 36H,#20 ;中斷次數計數器置初值
MOV 20H,#0 ;20H=0---CLK_RUN, 1---H_CH, 2--M_CH, 3---S_CH
CLR 08H ;08H=0,顯示。08H=1,熄滅
MOV TMOD,#00000001B ;設定T0為定時器工作方式1
MOV TH0,#3CH ;定時器置初值
MOV TL0,#0B0H ;
SETB EA ;CPU開中斷
SETB ET0 ;T0開中斷
SETB TR0 ;T0起動執行
51有5 箇中斷,EA為總中斷,SETB EA就是開總中斷。
SETB ET0 ,開定時器T0中斷
SETB TR0 ,T0啟動,開始計數
TR0是T0計數執行控制位,=1時,允許T0計數。=0,禁止計數。這裡SETB TR0,開始計數,溢位時,由於總中斷和定時器T0中斷都 開了,所以產生中斷。如果2 箇中斷沒開,即使啟動了TR0,計數器溢位時,也不產生中斷。