Red de conocimientos turísticos - Conocimientos sobre calendario chino - Por favor escriba un programa para microcomputadora de un solo chip, C51

Por favor escriba un programa para microcomputadora de un solo chip, C51

Capítulo 1 Introducción

1. Respuesta: La llegada de la primera computadora digital electrónica ENIAC marcó la llegada de la era de las computadoras. En comparación con las computadoras modernas, ENIAC tiene muchas deficiencias, pero su aparición marcó el comienzo de una nueva era de la informática y la tecnología y tuvo un enorme impacto en la producción y el estilo de vida humanos.

2. Respuesta: Consta de unidad aritmética, controlador, memoria, dispositivo de entrada y dispositivo de salida. La unidad aritmética y el controlador se denominan colectivamente CPU.

3. Respuesta: Una microcomputadora consta de un microprocesador, memoria y circuitos de interfaz de E/S. Cada parte está conectada a través del bus de direcciones (AB), el bus de datos (DB) y el bus de control (CB).

4. Respuesta: Un microprocesador integra una calculadora y un controlador (es decir, una CPU); mientras que una microcomputadora incluye un microprocesador, memoria y circuitos de interfaz de E/S.

5. Respuesta: Un microprocesador, una memoria y un circuito de interfaz de E/S están integrados en un chip de circuito integrado para formar una microcomputadora de un solo chip, es decir, una microcomputadora de un solo chip. Las principales características del microcontrolador son: alto rendimiento y confiabilidad del control; tamaño pequeño, precio bajo, fácil de producir y buena relación rendimiento-precio; .

6. Respuesta: Las microcomputadoras tienen tres formas de aplicación: computadora de placa múltiple (computadora de sistema), computadora de placa única y computadora de chip único.

Las computadoras multiplaca se utilizan generalmente para procesamiento de negocios y cálculos científicos en la oficina o en el hogar, y son computadoras de uso general.

Las computadoras de placa única tienen dispositivos de E/S simples, pocos recursos de software y son incómodos de usar. Al principio, se usaba principalmente para enseñar principios de microcomputadoras y sistemas simples de medición y control, pero ahora rara vez se usa.

Microcomputadora de un solo chip, la microcomputadora de un solo chip es de tamaño pequeño, de bajo precio y de alta confiabilidad. Su extraordinaria forma de aplicación integrada tiene ventajas únicas para satisfacer las necesidades de las aplicaciones integradas. En la actualidad, la tecnología de aplicación de microcontroladores se ha convertido en el medio técnico más utilizado para el diseño de sistemas de aplicaciones electrónicas.

7. Respuesta: Años de práctica de aplicaciones han demostrado que el sistema 80C51 tiene una estructura de sistema razonable y una tecnología madura. Por lo tanto, muchos fabricantes de chips de microcontroladores se han dedicado a mejorar las funciones integrales de los productos de microcontroladores 80C51, formando así el estatus de producto principal de 80C51. Los principales productos compatibles con 80C51 lanzados en los últimos años son: la serie de microcontroladores AT89 lanzada por ATMEL que incorpora Flash. tecnología de memoria; series 80C51 y 80C552 de microcontroladores de alto rendimiento lanzadas por Philips; series W78C51 y W77C51 de microcontroladores de alta velocidad y bajo costo lanzadas por Winbond; series ADμC8xx de microcontroladores ADC de alta precisión lanzadas por ADI; microcontroladores de bajo voltaje y alta velocidad lanzados por LG; el microcontrolador DS89C420 de alta velocidad (50MIPS) lanzado por Maxim Company; el microcontrolador SOC de alta velocidad serie C8051F lanzado por Cygnal Company, etc.

8. Respuesta: Análisis de requisitos del sistema, diseño de soluciones de hardware, programación de software, depuración de simulación y operación real.

9. Respuesta: Tecnología de programación en el sistema (ISP), tecnología de programación en la aplicación (IAP).

Capítulo 2 Estructura y principio de 80C51

1 Respuesta: Funcionalmente se divide en tipo básico y tipo mejorado

La tecnología se divide en proceso HMOS y CHMOS; proceso;

La configuración de la memoria del programa en el chip incluye ROM de máscara, EPROM y Flash, y no hay memoria de programa en el chip.

2 Respuesta: Utilizando la estructura de Harvard, está diseñado físicamente en dos espacios independientes: memoria de programa y memoria de datos; la memoria de programa en el chip del microcontrolador básico 80C51 es de 4 KB y el rango de direcciones es 0000H-. 0FFFH, utilizada para almacenar programas o constantes; la memoria de datos en el chip es de 128 bytes de RAM, con un rango de direcciones de 00H-7FH, utilizada para almacenar resultados intermedios de operaciones, datos temporales y buffers de datos; además, hay 21 SFR; en 80H-FFH.

3. Respuesta: Cuando se utilizan como puertos de E/S de uso general, P0, P1, P2 y P3 son todos puertos casi bidireccionales.

P0 se puede utilizar como bus de dirección/datos, que en este momento es un verdadero puerto bidireccional; el puerto P2 se puede utilizar como los 8 bits superiores de la línea de dirección. El puerto P3 es de doble función; puerto, y cada línea de puerto también tiene una segunda función diferente.

Además, el puerto P0 puede manejar 8 cargas TTL, mientras que otros puertos solo pueden manejar 4 cargas TTL.

4. Respuesta: Los ciclos de la máquina son 2 μs, 1,085 μs y 1 μs respectivamente.

5. Respuesta: Después del reinicio, el contenido de la PC es 0000H, el contenido del puerto P0~P3 es FFH, el contenido del SP es 07H, el contenido del SBUF es incierto, los bits válidos de IP, IE y PCON son 0, y el estado de los restantes Los registros de funciones especiales son 00H. Uno de los métodos de reinicio es el reinicio al encender y el otro es un reinicio que es válido tanto al encender como al presionar la tecla.

6. Respuesta: Los pines del 80C51 son los terminales de selección para acceder a la memoria del programa dentro y fuera del chip. El acceso a la memoria de datos dentro y fuera del chip requiere instrucciones diferentes para distinguirlas.

7. Respuesta: CY: llevar y tomar prestadas banderas. CY=1 cuando hay un acarreo o préstamo, de lo contrario CY=0;

AC: bandera auxiliar de acarreo y préstamo (carry o préstamo entre el nibble alto y el nibble bajo);

AC p>

F0: bit de bandera de usuario, definido por el usuario;

RS1, RS0: bit de selección del grupo de registro de trabajo actual;

OV: bit de bandera de desbordamiento. OV=1 cuando hay desbordamiento, de lo contrario OV=0;

P: indicador de paridad. P=1 cuando el resultado de la operación almacenado en ACC tiene un número impar de unos, de lo contrario P=0.

8. Respuesta: La selección del grupo de registros de trabajo actual está determinada por RS1 y RS0 del registro de palabra de estado del programa PSW en el registro de función especial.

9. Respuesta: RST/VPD: pin de entrada de señal de reinicio/pin de entrada de alimentación en espera; ALE/: pestillo de dirección que permite pin de salida de señal/pin de entrada de pulso de programación/VPP: pin de selección de memoria interna y externa/programación EPROM en chip (o FlashROM); pin de entrada de voltaje: pin de salida de señal estroboscópica de memoria de programa externo.

10. Respuesta: 0000H: Dirección de entrada de reinicio de MCU; 0003H: Dirección de entrada del programa de servicio de interrupción para interrupción externa 0; 000BH: Dirección de entrada del programa de servicio de interrupción de desbordamiento 001BH: Temporización/ Dirección de entrada del programa de servicio de interrupción de desbordamiento del contador 0; Dirección de entrada de rutina de servicio de interrupción de desbordamiento del contador 1; dirección de entrada de rutina de servicio de interrupción de puerto serie;

Capítulo 3 Sistema de mando 80C51

1. Respuesta: El tiempo de ejecución es corto. Hay 64 instrucciones en 1 ciclo de máquina, 45 instrucciones en 2 ciclos de máquina y solo 2 instrucciones en 4 ciclos de máquina (es decir, instrucciones de multiplicación y división);

Los bytes de codificación de instrucciones son pocos. Hay 49 instrucciones de un solo byte, 45 instrucciones de doble byte y solo 17 instrucciones de tres bytes;

Hay instrucciones de operación con muchos bits. Esta es una garantía importante para las características de control del microcontrolador 80C51.

2. Respuesta: Hay siete modos de direccionamiento para el microcontrolador 80C51. A saber: direccionamiento de registro, direccionamiento directo, direccionamiento indirecto de registro, direccionamiento inmediato, registro de dirección base más direccionamiento de índice de registro índice, direccionamiento relativo y direccionamiento de bits.

Los registros y espacios de almacenamiento correspondientes a estos modos de direccionamiento se muestran en la siguiente tabla.

Número de serie Modo de direccionamiento Registro o espacio de almacenamiento

1 Direccionamiento de registros Registros R0~R7, A, AB, DPTR y C (acumulador booleano)

2 Directo direccionamiento de RAM en chip inferior a 128 bytes, SFR

3 Registrar direccionamiento indirecto de RAM en chip (@R0, @R1, SP)

RAM fuera de chip (@R0, @ R1, @DPTR)

4 ROM de direccionamiento inmediato

5 ROM de direccionamiento indexado (@A+DPTR, @A+PC)

6 ROM de direccionamiento relativo (+127~- 128 bytes del valor actual de la PC)

Direccionamiento de 7 bits Bits direccionables (bits de unidades RAM20H~2FH internas y bits de algunos SFR)

3 . Respuesta: Métodos de direccionamiento directo y de direccionamiento por bits.

4. Respuesta: Direccionamiento directo, registro de direccionamiento indirecto y métodos de direccionamiento de bits.

5. Respuesta: Registre el direccionamiento indirecto.

6. Respuesta: Direccionamiento inmediato, direccionamiento indexado y direccionamiento relativo.

7. Respuesta: Las instrucciones booleanas configuradas en el sistema de instrucciones del microcontrolador, el espacio de direcciones de bits en la memoria y las operaciones de bits en la CPU constituyen el sistema de funciones booleanas en el chip, que puede realizar procesamiento booleano en variables de bits, como configuración y borrado. , complemento, transferencia de prueba y operaciones lógicas "Y", "O" y otras. Al implementar operaciones de bits, el indicador de acarreo Cy en el indicador de estado del programa (PSW) se toma prestado como "acumulador" para las operaciones de bits.

8. Registrar el modo de direccionamiento indirecto.

9. (1) MOV A, #88H----------------74H, 88H

(2) MOV R3, 50H--------- -------ABH,50H

(3) MOV P1, #55H----------75H,90H,55H

(4) AÑADIR A, @R1---------------------27H

(5) SETB 12H---------- - ----------D2H,12H

10. Respuesta:

(1) MOV A,R0

MOV R1,A

(2) MOV R2,60H

(3 )MOV DPTR,#1000H

MOVX A,@DPTR

MOV 60H,A

(4)MOV DPTR,#1000H

MOVX A,@DPTR

MOV R2,A

(5)MOV DPTR,#1000H

MOVX A,@DPTR

MOV DPTR, #2000H

MOVX @DPTR, A

11. Respuesta: (R1) = 7FH

(A) = 60H

(30H) = 08H

(40H) = 60H

12. Respuesta: (1) (A) = 2CH

(2) (40H) = 0CH

(3) (A) = 22H, (CY) = 1, (AC) =1, (OV)=0

(4) (A)=8EH

(5) (20H)=0EH, P=1

( 6) (A)=EFH, (20)=08H

13. Respuesta: (A)=3BH, (R0)=40H, (40H)=00H, (41H)=3BH, (42H)=3BH.

14. Respuesta: (1) SETB ACC.0

(2) ANL A,#0FH

(3)ANL A,#87H

15. Respuesta: MOV 2FH, 20H

MOV 2EH, 21H

MOV 2DH, 22H

16. Respuesta: CLR CY

MOV 30H, #7FH

MOV 31H, #4DH

MOV R0, #31H

MOV A, @R0

SUBB A, #4E

MOV @R0, A; guarda el resultado de la resta de bytes bajos

DEC R0

MOV A, @R0

SUBB A, #2BH

MOV @R0, A; guarda el resultado de la resta de bytes altos

17. Respuesta: MOV A, R2

ANL A, #0F0H

ORL R1, A

18. Respuesta: MOV A, 20H

MOV B, 21H

MUL AB

MOV R3, A

MOV R2, Bp>

19. Respuesta: (CY)=1, (P1)=10111011B, (P3)=00111100B

Capítulo 4 Programación en lenguaje ensamblador del 80C51

1. Respuesta: El lenguaje ensamblador tiene una estructura compacta y flexible, y el programa de destino compilado es muy eficiente. Tiene las ventajas de ocupar menos espacio de almacenamiento, una velocidad de ejecución rápida y un sólido rendimiento en tiempo real. Es un lenguaje orientado a máquina, que es directo y conveniente para la operación del hardware de microcontroladores, y es útil para que los principiantes comprendan la estructura de los microcontroladores.

Sin embargo, en comparación con los lenguajes de alto nivel, tiene poca portabilidad, programación compleja y altos requisitos básicos para los programadores.

2. Respuesta: 1. Análisis de tareas

En primer lugar, es necesario realizar un análisis en profundidad de los objetivos de diseño del sistema de aplicación del microcontrolador y aclarar las tareas de diseño del sistema: requisitos funcionales e indicadores técnicos. Luego investigue el entorno operativo del sistema. Esta es la base y condición para la programación del sistema de aplicaciones.

2. Diseño de algoritmos

Después del análisis de la tarea y la investigación ambiental, los requisitos funcionales y los indicadores técnicos que se han aclarado se pueden describir utilizando métodos (o modelos) matemáticos y luego un resultado real. Los requisitos del sistema se traducen en algoritmos que son procesados ​​por la computadora. Y analizar y comparar varios algoritmos y realizar una optimización razonable.

3. Descripción del proceso

La construcción general del programa. Primero, se debe determinar la estructura del programa y la forma de los datos, la asignación de recursos, el cálculo de parámetros, etc. Luego, de acuerdo con el proceso de ejecución del programa, planifique la secuencia lógica de ejecución del programa y utilice símbolos gráficos para dibujar el flujo del programa en el plano. Las funciones de una aplicación generalmente se pueden dividir en varias partes y se utiliza un diagrama de flujo para conectar orgánicamente las distintas partes con determinadas funciones.

Los diagramas de flujo se pueden dividir en diagramas de flujo generales y diagramas de flujo parciales. El diagrama de flujo general se centra en reflejar la estructura lógica del programa y las interrelaciones entre los módulos del programa; el diagrama de flujo parcial refleja los detalles de implementación específicos de los módulos del programa.

3. Respuesta: Programa secuencial: un programa sin ramas y sin estructura de bucle. El flujo de ejecución se basa en el orden en que las instrucciones se almacenan en la memoria;

Programa de rama: el orden de ejecución del programa se puede cambiar. ;

Programa de bucle: un programa que se ejecuta repetidamente de acuerdo con una determinada regla de control. Controla una parte de las instrucciones que se ejecutarán varias veces para completar una gran cantidad de tareas de procesamiento con un programa corto.

4. Respuesta: Usar acumulador o registro;

Usar memoria;

Usar pila.

5. Respuesta: Las pseudoinstrucciones son comandos de ensamblaje que el ensamblador puede reconocer y proporcionar cierto control sobre el proceso de ensamblaje.

Las pseudoinstrucciones comúnmente utilizadas incluyen:

ORG, cuya función es indicar al ensamblador la dirección inicial del siguiente segmento de programa o segmento de datos

END, cuya función es finalizar; el ensamblaje;

DB, la función es comenzar desde la unidad de dirección especificada por la etiqueta y definir datos de bytes en la memoria del programa

DW, la función es comenzar desde la unidad de dirección especificada por la etiqueta y definir datos de bytes en la memoria del programa Definir espacio de datos de palabras en

EQU, la función es definir el valor de una expresión o un símbolo de ensamblaje específico como un símbolo específico; nombre;

BIT, la función es convertir el bit. La dirección se asigna al nombre del símbolo especificado.

6. Respuesta: El procedimiento es el siguiente:

ORG 0000H

MOV R0,#21H

MOV R1,#23H

MOV A ,@R0

AÑADIR A,@R1

MOV 25H,A

DEC R0

DEC R1

MOV A ,@R0

ADDC A,@R1

MOV 24H,A

SJMP $

END

7. Respuesta: ORG 0000H

MOV DPTR,#1000H

MOV R0,#30H

MOV R7,#32

BUCLE:MOVX A,@DPTR

MOV @R0,A

INC R0

INC DPTR

DJNZ R7,LOOP

RET

8. Respuesta: ORG 0000H

MOV A,R1

AÑADIR A,R7

MOV 61H,A

MOV A,R0

ADDC A,R6

MOV 60H,A

SJMP $

END

9. Respuesta: Tiempo de retardo: 2?s*{[1+((1+2*252)*246)+2]+2}=0,247486 segundos (incluidos 2 ciclos de máquina de instrucciones de llamada)

10. Respuesta: ORG 0000H

BIG DATA 2FH

UN DATO 2AH

DOS DATOS 2BH

INICIO:MOV R7,#7;Comparar Tiempos

MOV R0,#30H

BUCLE:MOV A,@R0

MOV UNO,A

INC R0

MOV TWO,@R0

CLR C

SUBB A,@R0

JC NEXT ;UNO es más pequeño, DOS es más grande y continúa ser mayor que el siguiente par Número

MOV @R0,ONE; UNO se coloca en la parte posterior (intercambio)

DEC R0

MOV @R0,TWO ; DOS se coloca al frente

>

INC R0 ;

NEXT:DJNZ R7,LOOP

MOV BIG,37H

SJMP $

FIN

11. Respuesta: Sólo se necesitan 2 bytes para convertir un número binario de un solo byte en un código BCD comprimido; luego, el código BCD comprimido se divide y se almacena en 3 unidades.

org 0

MOV 52H,#0

MOV 51H,#0

MOV 50H,#0

MOV A,#0FDh

LCALL DCDTH

SJMP $

DCDTH:MOV R7,#8

MOV R0,A ;Almacenado temporalmente en R0

LOOP:CLR C

MOV A,R0

RLC A

MOV R0,A

MOV R1,#51H;

MOV A,@R1

ADDC A,@R1 ;

DA A ;

MOV @R1,A ;

DEC R1

MOV A,@R1

ADDC A,@R1

DA A

MOV @R1,A

DJNZ R7,LOOP

INC R1 ;50H es el resultado, R1 apunta a 51H, la unidad 51H necesita ser dividida

p>

MOV A,#00H

XCHD A,@R1

MOV 52H,A

MOV A, @R1

INTERCAMBIAR A

MOV @R1,A

RET

FIN

12. Respuesta: ORG 0

MOV R1,#5BH

MOV A,R1

ANL A,#0F0H

SWAP A

ACALL ASCII

MOV R3,A

MOV A,R1

ANL A, #0FH

ACALL ASCII

MOV R4, A

SJMP $

ASCII:PUSH ACC

CLR C

SUBB A, #0AH

POP ACC

JC LOOP

AÑADIR A, #07H

BUCLE:

AÑADIR A, #30H

RET

FIN

13. Respuesta: ORG 0000H

MOV R7,#10

MOV R0,#50H

MOV B,#10

CLR C

CLR A

BUCLE:ADDC A,@R0

INC R0

DJNZ R7,BUCLE

DIV AB

MOV 5AH,A

SJMP $

FIN

14. Respuesta: El procedimiento de implementación es el siguiente:

TEMP EQU 30H

ORG 0000H

JMP START

ORG 0100H

START:MOV SP,#5FH

MOV P0,#8CH ;Mostrar "P" en secuencia positiva

MOV P3,#0FFH ;Método de entrada

CLR CY

NOKEY:MOV A,P3

CPL A

JZ NOKEY ;pulsar sin tecla

MOV TEMP,P3 ;con tecla Presione

CALL D10ms

MOV A,P3

CJNE A,TEMP,NOKEY;Rebote

MOV R2,# 0 ;Restablecer contador de números de clave

MOV A,TEMP

LP:RRC A

JNC DONE

INC R2

SJMP LP

HECHO:MOV A,R2

MOV DPTR,#CODE_P0

MOVC A,@A+DPTR

MOV P0,A

JMP NOKEY

D10ms:MOV R5,#10 ;10MS

D1ms:MOV R4,#249

DL:NOP

NOP

DJNZ R4,DL

DJNZ R5,D1ms

RET

CODE_P0 :

DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H

DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH

FIN

Capítulo 5 Sistema de interrupción 80C51 y temporizador/contador

1 Respuesta: 5 fuentes de interrupción, a saber, interrupción externa, interrupción de desbordamiento T0 y T1 e interrupción del puerto serie. .

El indicador de interrupción externa activado por nivel es consistente con la señal del pin; el hardware restablece automáticamente la interrupción externa activada por flanco después de responder a la interrupción.

T0 y T1 se restablecen automáticamente por hardware cuando la CPU responde a una interrupción.

RI y TI se configuran mediante hardware. Debe restablecerse mediante software.

Además, todos los bits de bandera que pueden generar interrupciones se pueden configurar o restablecer mediante software.

Dirección de entrada de cada interrupción: -0003H, T0-000BH, -0013H, T1-001BH, RI y TI-0023H.

2. Respuesta: Conecte las 3 señales de interrupción mediante cables de resistencia.

ORG 0000H

LJMP PRINCIPAL

ORG 00013H

LJMP ZDFZ

ORG 0040H

PRINCIPAL: SETB EA

SETB EX1

SJMP $

0RG 0200H

ZDFZ:PUSH PSW

EMPUJAR ACC

JB P1.0,DV0

JB P1.1,DV1

JB P1.2,DV2

INRET :POP ACC

POP PSW

RETI

ORG 2000H

DV0:------------

JMP INRET

ORG 2100H

DV1:------------

JMP INRET p>

ORG 2200H

DV2:------------

JMP INRET

3 Respuesta: ¿Cuándo? IT0= Cuando 0, es el modo de activación por nivel. En el modo de activación de nivel, la CPU muestrea el nivel del pin en S5P2 de cada ciclo de la máquina. Cuando la muestra alcanza un nivel bajo, configura IE0 = 1 para solicitar una interrupción de la CPU; cuando la muestra alcanza un nivel alto, se borra; IE0 a 0. En el modo de activación por nivel, el indicador IE0 no se puede borrar automáticamente cuando la CPU responde a una interrupción.

En el modo de activación de nivel, el nivel bajo efectivo de la fuente de interrupción externa debe mantenerse hasta que se responda a la solicitud; de lo contrario, se perderá el nivel bajo efectivo de la interrupción antes de que finalice el servicio de interrupción; source Debe eliminarse; de ​​lo contrario, la interrupción se generará nuevamente después de que regrese la interrupción. Este método es adecuado para situaciones en las que la entrada de interrupción externa es de nivel bajo y la fuente de solicitud de interrupción externa se puede borrar en la rutina del servicio de interrupción.

Cuando IT0=1, es el modo de disparo por flanco. En el modo de disparo por flanco, la CPU muestrea el nivel del pin en S5P2 de cada ciclo de la máquina si detecta que el pin cambia del nivel alto al nivel bajo en dos ciclos de la máquina consecutivos, es decir, el primer ciclo muestrea =1, cuando =0. se muestrea en el segundo ciclo, establezca IE0 = 1 y genere una solicitud de interrupción. En el modo de activación por flanco, cuando la CPU responde a una interrupción, el hardware puede borrar automáticamente el indicador IE0.

En el modo de activación por flanco, en dos muestreos consecutivos, si la entrada de interrupción externa se muestrea primero para que tenga un nivel alto y luego se muestrea para que tenga un nivel bajo en el siguiente ciclo, se bloqueará una interrupción en IE0 o IE1. Si la CPU no puede responder temporalmente, el indicador de solicitud de interrupción no se perderá y no se borrará hasta que la CPU responda a la interrupción. Además, para garantizar que el flanco descendente pueda muestrearse de manera confiable, el ancho de pulso negativo en los pines y debe mantenerse durante al menos un ciclo de la máquina (1 microsegundo si la frecuencia del oscilador de cristal es de 12 MHz). El modo de disparo por flanco es adecuado para solicitudes de interrupción externas ingresadas en forma de pulsos negativos.

4. Respuesta: El cronómetro/contador es esencialmente un contador más-1.

Diferencia: Cuando se configura en modo temporizador, el contador incremental cuenta el ciclo interno de la máquina (1 ciclo de la máquina es igual a 12 ciclos de oscilación, es decir, la frecuencia de conteo es 1/12 de la frecuencia del oscilador de cristal) .

El valor de conteo multiplicado por el ciclo de la máquina es el tiempo de sincronización. Cuando se configura en modo contador, el pulso de conteo de eventos externos ingresa al contador desde el pin T0 o T1. Los niveles de pines T0 y T1 se muestrean durante S5P2 de cada ciclo de la máquina. Cuando se muestrea una entrada de nivel alto en un ciclo determinado y se muestrea un nivel bajo en el siguiente ciclo, el contador se incrementa en 1 y el valor de recuento actualizado se carga en el contador durante S3P1 del siguiente ciclo de la máquina.

Puntos similares: funcionan según el mismo principio. Todos tienen 4 modos de trabajo, que se configuran mediante M1M0 en TMOD, a saber,

Modo 0: contador de 13 bits;

p >

Modo 1: contador de 16 bits;

Modo 2: contador de 8 bits con función de recarga automática del valor inicial;

Modo 3: T0 se divide en dos Contador independiente de 8 bits, T1 deja de funcionar.

5. Respuesta: El contador de 13 bits en modo 0 consta de los 5 bits inferiores de TL0 (los 3 bits superiores no se utilizan) y los 8 bits de TH0. Cuando los 5 bits inferiores de TL0 se desbordan, se transportan a TH0. Cuando TH0 se desborda, se establece el indicador TF0 en TCON y se emite una solicitud de interrupción a la CPU.

La fórmula para calcular el valor de conteo inicial es:

, TH0, como los 8 bits superiores, forma un contador de 16 bits más 1. La relación entre el número de conteo y el valor de conteo inicial es:

X=216-N

El método 2 es un método de conteo de 8 bits que recarga automáticamente el valor inicial. TH0 es un registro de valor inicial de 8 bits. Cuando TL0 está lleno y se desborda, el hardware configura TF0 en 1, envía una solicitud de interrupción a la CPU y envía automáticamente el valor de recuento inicial en TH0 a TL0. TL0 reinicia el conteo de 1 a partir del valor inicial. El ciclo comienza una y otra vez hasta TR0=0. La relación entre el número de conteo y el valor de conteo inicial es:

X=28-N

El modo 3 solo se aplica al temporizador/contador T0 cuando el temporizador T1 está en modo 3. , equivale a TR1 =0, deja de contar. En el modo 3, T0 se divide en dos contadores independientes de 8 bits TL0 y TH0 utiliza todos los bits de control de T0. Cuando el recuento de TL0 se desborda, el hardware establece TF0 en 1 y emite una solicitud de interrupción a la CPU. TH0 está fijo en el modo de temporización (no puede realizar un conteo externo) y toma prestados los bits de control TR1 y TF1 de T1. Por lo tanto, el inicio y la parada de TH0 están controlados por TR1, y el desbordamiento de TH0 activará TF1.

6 Respuesta: El valor de GATE en TMOD es diferente: GATE es 0 cuando está completamente determinado por TR1 y TR0 es 1 cuando está completamente controlado por los niveles alto y bajo.

7. Respuesta: Cuando T0 se utiliza como modo 3, T1 puede funcionar en los modos 0, 1 y 2. La apertura de T1 es controlada por TR1, es decir, cuando TR1=1, T1 comienza a funcionar, cuando TR1=0 o cuando el temporizador/contador funciona en modo 3, T1 deja de funcionar;

8. Respuesta: Utilice el método de cronometrar 20 ms y luego contar 1 o 49 veces.

a. Cuando T0 funciona en modo de temporización 1, se configura la palabra de control TMOD:

M1M0=01, GATE=0, C/ =0, la palabra de control del modo preferido es. 01H;

b. Calcule el valor de conteo inicial X:

El oscilador de cristal es de 12 MHz, por lo que el período de la máquina Tcy es 1.

N=t/ Tcy=20×10-3/1×10-6=20000

X=216-N=65536-20000=45536=4E20H

Es decir, se deben enviar 4EH a TH1 y 20H a TL1.

c. El programa de implementación es el siguiente:

ORG 0000H

AJMP MAIN ; /p>

MAIN:MOV TMOD,#01H ;Supongamos que T1 funciona en modo 2

MOV TH0,# 4EH ;Carga el valor inicial del recuento de ciclos

MOV TL0, #20H ;Por primera vez Valor de conteo

LP0:SETB P1.0

ACALL NT0

CLR P1.0

MOV R7,#49; cuenta 49 veces

LP1:ACALL NT0

DJNZ R7,LP1

AJMP LP0

NT0:MOV TH0 ,# 4EH

MOV TL0,#20H

SETB TR0

JNB TF0,$

CLR TR0

CLR TF0

RET

END

9. Respuesta: Utilice T0 para implementar

a. , la configuración de la palabra de control TMOD:

p>

M1M0=01, GATE=0, C/ =0, la palabra de control de modo disponible es 01H;

b Calcule el recuento inicial. valor X:

El oscilador de cristal es de 12 MHz, por lo que el período de la máquina Tcy es 1. 1/1000=1×10-3

N=t/ Tcy=0.5×10-3/1×10-6=500

X=216-N=65536- 500=65036=FE0CH

Es decir, FEH debe enviarse a TH0 y 0CH debe enviarse a TL0.

c. El programa de implementación es el siguiente:

ORG 0000H

AJMP MAIN ; Saltar al programa principal

ORG 000BH ; Dirección de entrada de interrupción T0

LJMP DVT0

ORG 0030H

MAIN:MOV TMOD,#01H; Supongamos que T0 funciona en modo 2

MOV TH0 ,# 0FEH ;Cargar valor de conteo de ciclo inicial

MOV TL0,#0CH ;Primer valor de conteo

SETB ET0 ;T0 abrir interrupción

SETB EA ; CPU Activar interrupción

SETB TR0 ;Iniciar T0

SJMP $ ;Esperar interrupción

DVT0:CPL P1.1

MOV TH0,# 0FEH

MOV TL0,# 0CH

SETB TR0

RETI

FIN

10. Respuesta: a, cuando T1 funciona en el modo de conteo 2, la configuración de la palabra de control TMOD:

M1M0=10, GATE=0, C/ =1, la palabra de control del modo preferido es 60H;

T1 funciona En el modo de temporización 1, la palabra de control TMOD está configurada:

M1M0=01, GATE=0, C/ =0, la palabra de control del modo preferido es 10H

<; p>b. Calcule el valor inicial X:

Cuando el tiempo es de 10 ms:

El oscilador de cristal es de 12 MHz, por lo que el ciclo de la máquina Tcy es 1.

N=t/ Tcy=10×10-3/1×10-6=10000

X=216-N=65536-10000=55536=D8F0H

Es decir, D8H debe enviarse a TH1 y F0H debe enviarse a TL1.

Al contar 100:

N=100

X=28-N=256-100=156=9CH

c. El programa de implementación es el siguiente:

ORG 0000H

AJMP MAIN ; Saltar al programa principal

ORG 001BH Dirección de entrada de interrupción T1

LJMP DVT1

ORG 0030H

MAIN:MOV TMOD,#60H ;T1 funciona en modo de conteo 2

MOV TH1,#9CH ;Carga el inicial valor de conteo

MOV TL1,#9CH ;

CLR P1.7

SETB ET1 ;T1 interrupción abierta

SETB EA ;CPU abrir interrupción

SETB TR1 ;Iniciar T1

SJMP $ ;Esperar interrupción

DVT1:SETB P1.7

CLR ET1

CLR TR1

MOV TMOD,#10H ;T1 funciona en modo de temporización 1

MOV TH1,#0D8H ;carga valor inicial

MOV TL1, #0F0H

SETB TR1

JNB TF1,$ ;Espera de consulta 10ms

CLR TF1

CLR TR1

CLR P1.7

MOV TMOD,#60H ;T1 funciona en modo de conteo 2

MOV TH1,#9CH ;carga valor inicial

MOV TL1, #9CH ;

SETB ET1 ;T1 inicio interrupción

SETB TR1 ;Inicio T1

RETI

FIN

11. Respuesta: Utilice un tiempo de 20 ms y cuente 50 veces para lograr un tiempo de 1 segundo. Prepare una subrutina con un retraso de 1 segundo y llámela desde el programa principal.

a. Cuando T0 funciona en modo de temporización 1, se configura la palabra de control TMOD:

M1M0=01, GATE=0, C/ =0, la palabra de control del modo preferido es. 01H;

b. Calcule el valor de conteo inicial X:

El oscilador de cristal es de 12 MHz, por lo que el período de la máquina Tcy es 1.

N=t/ Tcy=20×10-3/1×10-6=20000

X=216-N=65536-20000=45536=4E20H

Es decir, se deben enviar 4EH a TH1 y 20H a TL1.

c. El programa de implementación es el siguiente:

ORG 0000H

AJMP MAIN ; /p>

PRINCIPAL:CLR CY

MOV A,#01H

LP0:MOV P1,A

LLAMADA D1SEC

RL A

AJMP LP0

D1SEC:MOV R7,#50 Cuenta 50 veces

MOV TMOD,#01H

DL; :MOV TH0 ,#4EH

MOV TL0,#20H

SETB TR0

JNB TF0,$

CLR TR0

CLR TF0

DJNZ R7,DL

RET

END

Capítulo 6 Puerto serie 80C51

< pag >1. Respuesta: Cuatro modos de trabajo, definidos por SM0 y SM1 en SCON:

Modo 0: modo de entrada y salida de registro de desplazamiento síncrono, utilizado principalmente para expandir puertos de entrada o salida paralelos, con una velocidad de baudios fija.

Modo 1: Puerto de comunicación asíncrono de datos de 10 bits, velocidad de baudios variable.

Modo 2: Puerto de comunicación asíncrono de datos de 11 bits, velocidad de baudios fija.

Modo 3: Puerto de comunicación asíncrono de datos de 11 bits, velocidad de baudios variable.

2. Respuesta: interfaz RS-232C, interfaz RS-422A, interfaz RS-485

3. Respuesta: La distancia máxima está relacionada con la velocidad de transmisión y las características eléctricas de la línea de transmisión. Cuando la línea de transmisión utiliza pares trenzados blindados no balanceados con capacitancia de 50 PF cada 0,3 m (aproximadamente 1 pie), la distancia de transmisión disminuye a medida que aumenta la velocidad de transmisión. Cuando la velocidad en baudios supera los 1000 bps, la distancia máxima de transmisión disminuirá rápidamente.