Você está na página 1de 5

UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA

FACULTAD DE SISTEMAS Y TELECOMUNICACIONES


CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES

PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

CARRERA CICLO CODIGO NOMBRE DE LA ASIGNATURA


Electronica y 2019-1 Microprocesadores
Telecomunicaciones

Lección Fila 02

1 OBJETIVOS

 Familiarizarse con el manejo de los temporizadores T0 y T1 del


microcontrolador AT89C52 y su programación en lenguaje ensamblador.

2 FUNDAMENTO TEORICO

3 PROCEDIMIENTO
3.1 EQUIPO
EQUIPO NECESARIO MATERIAL DE APOYO
 _______________________________  _______________________
 ________________________________  ________________________
 _______________________________  _______________________
 _
 _
3.2 DESARROLLO DE LA PRACTICA
El programa T0.ASM usa T0 en modo 1. Cada vez que T0 desborda genera una
interrupción. El programa principal se mantiene en un lazo infinito
implementando el parpadeo de P2.0. La subrutina de servicio rota el puerto P1.
Edite T0.ASM, ensamble, corra y verifique velocidad del parpadeo de pin P2.0.

NOTA: Use la fórmula T=1us(256-N) donde N es el valor de recarga del timer de 8 bits. En
modo 1 la fórmula es T=1us(65536-N), timer de 16 bits. Fórmulas válidas si XTAL=12MHz.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES

PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

DESARROLLO

TIMER0 EN MODO 1: Con su desborde genera interrupcion


R1 U1
R2 8 17
P1.7 P3.7/RD
R3 7 16
330R P1.6 P3.6/WR
R4 6 15
330R P1.5 P3.5/T1
R5 5 14
330R P1.4 P3.4/T0
R6 4 13
330R P1.3 P3.3/INT1
R7 3 12
330R P1.2 P3.2/INT0
R8 2 11
330R P1.1/T2EX P3.1/TXD
1 10
330R P1.0/T2 P3.0/RXD
330R
28
P2.7/A15
27
P2.6/A14
31 26
EA P2.5/A13
30 25
ALE P2.4/A12
D8 D7 D6 D5 D4 D3 D2 D1 29
PSEN P2.3/A11
24
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN 23
P2.2/A10
22 R9
P2.1/A9
21
P2.0/A8
330R
9 32
RST P0.7/AD7
33
P0.6/AD6
P0.5/AD5
34 D9
35 LED-GREEN
P0.4/AD4
18 36
XTAL2 P0.3/AD3
37
P0.2/AD2
38
P0.1/AD1
19 39
XTAL1 P0.0/AD0

CON CADA INTERRUPCION ROTA PUERTO P1 AT89C52


Parpadea en lazo infinito

;************************************************************************
;* PROGRAMACION DE TIMER T0.
;*NOMBRE DEL PROGRAMA: T0.ASM
;*DESCRIPCION: El timer0 opera en MODO 1. El programa PRINCIPAL permanece en un
;*lazo infinito parpadeando P2.0. Con cada desborde de T0 se genera una interrupción.
;*La subrutina de servicio TMR0_ISR desplaza un logico"0" a la derecha en P1.
;*El vector de interrupción asociado con el timer T0 es la localidad 00BH en
;*la memoria de programa.
;*MICC AT89S52
;*XTAL=12 MHZ
;************************************************************************

;DECLARACION DE VARIABLES

;STACK

DSEG AT 030H
INIC_STACK: DS 02FH

;VECTOR RESET
CSEG AT 0
JMP XRST ; Vector RST

;VECTOR DE INTERRUPCION DE TIMER T0.


ORG 00BH
JMP TIM0_ISR ; Salta a subrutina TIM0_ISR

ORG 100H
XRST: MOV SP, #INIC_STACK ; Define puntero de pila
MOV TMOD, #01H ; Selecciona TIMER0 MODO 1
MOV TH0, #63H ;PARA 20 HZ TH1:TL1=63C0H
MOV TL0, #0C0H
MOV A, #0FFH
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES

PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

MOV P1, #0FFH


SETB TR0 ; Habilita TMR0
MOV IE, #082H ; Habilita su interrupcion
CLR C
CLR P2.0 ;P2.0 salida

LOOP1: LCALL FLIP


SJMP LOOP1 ; Lazo infinito PARPADEA P2.0

;**************************************************************************
;SUBRUTINA PARPADEA P2.0
FLIP: CPL P2.0 ;complementa P2.0
LCALL DELAY
RET
;**************************************************************************
;SUBRUTINE DELAY 0.20 SEGUNDOS
DELAY:
MOV R2,#20 ;RETARDO=0.20 SEGUNDOS
F02: MOV R1,#50 ;
F01: MOV R0,#100
DJNZ R0,$
DJNZ R1,F01
DJNZ R2,F02
RET
;**********************************************************************
;*SUBRUTINA DE SERVICIO DE INTERRUPCION DE T0.

TIM0_ISR: RRC A ; Rota registro A a traves de bandera CY


MOV P1, A ; Contenido de A se transfiere a P1
MOV TH0, #63H ; RECARGA T1 PARA 20 HZ TH1:TL1=63C0H
MOV TL0, #0C0H
RETI ; Regresa a lazo infinito parpadea P2.0
;*************************************************************************
END ; Fin del programa fuente
****************************************************

RESPONDER:
Preguntas (4p)
Simulación (3p)
Programación (8p)

1) Programación de T0 en modo “SPLIT”(SPLIT.ASM). Cuando el TIMER0 se


configura en modo “Split”, es decir en MODO 3, se convierte en dos
temporizadores de 8 bits independientes: TL0 y TL1. Los bits de control
de TL0 son los mismos de T0, y los bits de control de TL1 son los mismos
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES

PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

de T1 y pueden funcionar simultáneamente con reloj interno. Así mismo


el vector de interrupción de TL0 es 000BH y el de TL1 es 001BH.
TEMPORIZADOR T0 OPERA EN MODO SPLIT (modo 3)

USAR INTERRUPCIONES

P2.7

P2.6

P2.5

P2.4

P2.3

P2.2

P2.1

P2.0
U1
39
P0.0/AD0 XTAL1
19 R9 R10 R11 R12 R13 R14 R15 R16
38 330R 330R 330R 330R 330R 330R 330R 330R
P0.1/AD1
37
P0.2/AD2
36 18
P0.3/AD3 XTAL2
35
P0.4/AD4
34
33
P0.5/AD5
P0.6/AD6
TL1 CONTROLA CONTADOR BINARIO
32 9
P0.7/AD7 RST
D9 D10 D11 D12 D13 D14 D15 D16
P2.0 21 LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
LED-YELLOW
P2.0/A8
P2.1 22
P2.1/A9
P2.2 23
P2.2/A10
P2.3 24 29
P2.3/A11 PSEN
P2.4 25 30
P2.4/A12 ALE
P2.5 26 31
P2.5/A13 EA
P2.6 27
P2.6/A14
P2.7 28
P2.7/A15
10 1
R1
11
P3.0/RXD P1.0/T2
2
R2
P3.1/TXD P1.1/T2EX R3
330R
12 3 R4
330R
P3.2/INT0 P1.2
13 4 R5
330R
P3.3/INT1 P1.3
14 5 R6
330R
P3.4/T0 P1.4
15 6 R7
330R
P3.5/T1 P1.5
16 7 R8
330R
P3.6/WR P1.6
17 8 330R
P3.7/RD P1.7
330R
AT89C52

D1 D2 D3 D4 D5 D6 D7 D8
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN
LED-GREEN

TL0 CONTROLA ROTACION EN P1

Su tarea consiste en diseñar un programa SPLIT.ASM tal que con cada


interrupción de TL0 rote un “0” en el puerto P1, y con cada
interrupción de TL1 incremente un contador binario de 8 bits en el
puerto P2. Ambos contadores parten con valor cero. Para bajar la
velocidad por un factor 256 use un par de registros del banco 0 que se
decrementan hasta cero antes de rotar y antes de incrementar el
contador binario respectivamente. Su programa principal es un lazo
infinito mudo. Diseñe con AT89C52 y XTAL=12 MHz.
UNIVERSIDAD ESTATAL PENINSULA DE SANTA ELENA
FACULTAD DE SISTEMAS Y TELECOMUNICACIONES
CARRERA DE ELECTRÓNICA Y TELECOMUNICACIONES

PRACTICA DE MICROPROCESADORES
DOCENTE: Msc. Elsy Villamar G.

2) En proyecto: si el temporizador TL0 arranca con valor 0, ¿en qué tiempo


genera la interrupción? [2P]

TtimerTL0=1usx(256-N)
TtimerTL0=1usx(256-0)=0.256ms

3) En proyecto: si el temporizador TL1 arranca con valor 0, y además se


implementa un escalador de valor 256, ¿con qué rapidez avanza el
contador binario en puerto P2?[2p]
TtimerTL1=1usx(256-N)
TtimerTL1=1usx(256-0)=0.256ms

T=256ms
Total=T + TtimerTL1=256ms+0.256ms=256.26ms

Você também pode gostar