Red de conocimiento informático - Conocimiento informático - 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.

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

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