试题详情
简答题某单片机系统,时钟频率为12MHz,定时/计数器T0用于20ms定时,T1用于100次计数,两者要求重复工作。利用定时/计数器T0、T1编写延时2S的程序。
  • 延时2s,可以将T0设置成方式1,输出周期为200毫秒的等宽脉冲,设该信号由P1.0输出。再由T1进行计数,将P1.0输出连接道T1输入。则T1的计数值为100,工作方式选方式1;TO高低电平各持续100毫秒,若晶振频率为6MHz,则机器周期为2微秒,故其计数值应为:
    N.100ms/2μs=50000
    T.O采用方式1进行计数,则 X=M-N=65536-50000=15536=0C350H
    T.1采用方式1进行计数,则 X=M-N=65536-100=65436=0FF9CH
    方式字:GATE1=0,C/T1=1,M11=0,M10=1,GATE0=0,C/T0=0,M01=0,M00=1
    故为:051H
    程序编写如下:
    M.OV TMOD, #051H;  设置T0工作方式,定时,方式1
    M.OV TH0,#0C3H;  写入T0计数器初值
    M.OV TL0,#050H; MOV TL1,#09CH;  写入T1计数值
    M.OV    TH1,#0FFH   SETB TR0;  启动T0
    L.OOP: JBC  TF0,$;   查询定时器溢出标志
    M.OV TH0,#0C3H;
    M.OV TL0,#050H
    C.PL  P1.0
    S.JMP LOOP;
    J.BC  TF1,$ CPL
    P.1,1;  输出2S信号
    M.OV TL0,#050H;
    M.OV TL1,#09CH;  写入T1计数值
    S.JMP LOOP
    E.ND
  • 关注下方微信公众号,在线模考后查看

热门试题