Se sabe que fosc=6MHz, intente escribir un programa, use T0 para trabajar en modo 3, de modo que P1.0 y P1.1 produzcan ondas cuadradas de 400 μs y 1 ms respectivamente.
Respuesta: ① Cuando el modo de temporizador T0 es 3, se divide en dos contadores independientes de 8 bits TH0 y TL0. El valor de tiempo inicial debe calcularse por separado. El tiempo de 1 ms excederá el valor de conteo máximo de. El contador de 8 bits se puede programar en 0,5 ms × 2.
Valor inicial TL0=28-400μs/2μs=256-200=56=38H
Valor inicial TH0=28-500μs/2μs=256-250=6
②TMOD=00000011B
③El programa es el siguiente:
ORG 0000H; restablecer dirección
UMP STAT; p> ORG 000BH ;Dirección de entrada de interrupción T0
LJMP IT0 ;Transferir a la rutina de servicio de interrupción T0
ORG 001BH ;Dirección de entrada de interrupción T1 (tomada prestada por TH0)
LJMP IT1 ;Transferir a la rutina de servicio de interrupción T1
ORG 1000H ;Primera dirección del programa de inicialización
STAT:CLR P1.0 ;Nivel bajo de salida P1.0
CLR P1 .1 ;P1.1 emite nivel bajo
MOV TMOD,#03H ;Establece el modo 3 del temporizador T0
MOV TL0,#38H ;Establece el valor inicial de TL0, temporización 400μs
MOV TH0,#06H ;Establece el valor inicial de TH0, temporizado 500μs
MOV IP,#00001010B ;Establece T0 y T1 como alta prioridad
SETB TR0; T0 inicia
SETB P1.0; genera un nivel alto
SETB TR1; inicia T1 (tomado prestado por TH0)
SETB P1.1; nivel Plano
SETB F0 ;Establecer indicador de 1 ms
MOV IE,#10001010B ;T0, T1 abierto
LJMP MAIN ;Vaya al programa principal y espere la interrupción
ORG 2000H ;Primera dirección de la subrutina de servicio de interrupción T0
IT0:MOV TL0,#38H ;Restablecer valor inicial de TL0 400μs
CPL P1.0 ;Forma de onda de salida inversión
RET1;Retorno de interrupción
ORG 2100H;Primera dirección de subrutina de servicio de interrupción T1
IT1:MOV TH0,#06H;Restablecer valor inicial TH0 500μs p>
CPL F0; el indicador de 1 ms está invertido
JNB F0,IT01; no hay indicador de 1 ms, retroceda
El indicador CPL P1.1 está presente, invierta la salida forma de onda
IT01:RETI; retorno de interrupción