简答题
某单片机系统,时钟频率为12MHz,定时/计数器T0用于20ms定时,T1用于100次计数,两者要求重复工作。编写达到上述要求的程序。
正确答案
T.0用作20ms定时,故N0=20ms/1μs=20000
X.0=M-N=65536-20000=45535=B1E0H
T.1的计数值为100,所以X=65536-100=65436=FF9CH
为使俩部件同时工作,将T0设为查询方式,T0设为中断方式。
M.OV TMOD, #15H; T0定时,方式1;T1计数,方式1
M.OV TH0,#0B1H; 写入T0定时器初值
M.OV TL0,#0E0H; MOV TH1,#0FFH; 写入T1计数器初值
M.OV TL1,#09CH;
M.OV SP, #60H; 设置堆栈
O.RG 001BH
A.JMP T1INT
S.ETB TR0; 启动T0
S.ETB TR1; 启动T1
L.OOP: JBC TF0,$; 查询定时器溢出标志
M.OV TH0,#0B1H;
M.OV TL0,#0E0H
C.LR P1.0; 设定时输出为P10
S.ETB P1.0
E.ND
T.1INT: MOV TH1,#0FFH; 写入T1计数器初值
M.OV TL1,#09CH;
R.ETI