PRACTICA # 1
PUERTOS DE
ENTRADA Y SALIDA,
LEDS Y
PULSADOR,
RETARDO POR
PROGRAMA
Nota: Esta práctica ha sido pensada para ensamblarse sobre la tarjeta de desarrollo del kit JK3 y por eso en el Plano del circuito puede que sean omitidos algunos componentes
En
esta primera práctica , se pretende realizar el encendido intermitente de dos
LED's colocados en los pines: bit 6 y 7 del puerto D, dependiendo del estado (1 o 0) que se lea del pulsador
normalmente abierto que es colocado en el pin: bit 5 del puerto B
(el "jumper" IN J2 de la
tarjeta del kit). Los tiempos de encendido y apagado se obtienen a partir de
retardos por programa.
·
Realizar la edición,
ensamble, simulación y depuración del programa
·
Comprobar el correcto
funcionamiento del programa y el Hardware de la tarjeta
·
Programación de pines de
salida y pin de entrada
·
Escritura de puertos
·
Lectura de puertos
·
Cálculo de retardo por programa
Procedimiento:
·
Realizar la edición y
ensamble del programa tal como se describió en la sección anterior
·
Ensamblar y verificar el
Hardware de acuerdo al plano de la práctica
·
Interpretar de acuerdo al
diagrama de flujo el listado del programa fuente
·
Realizar la simulación en
circuito modificando las constantes de los retardos para evitar demoras
inherentes a la simulación (recordar que no es simulación en tiempo real).
·
Programar el microcontrolador
con el correspondiente archivo de extensión .S19
(practica#1.s19) devolviendo a su valor original las constantes de los
retardos.
Propuesta:
Se
propone modificar el programa de tal manera que inicialmente sea el LED1 el
intermitente, al ser oprimido el pulsador una vez, ahora el LED2 es el
intermitente, cuando sea oprimido de nuevo el pulsador, retorna la intermitencia
al LED1 y así sucesivamente en un ciclo infinito!.
LISTADO
DE LA PRÁCTICA # 1
*********************************************************
*
PRÁCTICA # 1, LEDS Y PULSADOR
*
*
PRACTICA#1.ASM
*
*
*
*
"Curso Microcontroladores Motorola" *
*
Danilo Andrés García Hansen
*
*
dagh_2001@007mundo.com
*
*********************************************************
$include
'JL3REGS.INC'
RAM
EQU $0080 ;inicio de la RAM
FLASH
EQU $EC00 ;inicio de la FLASH
RESETVEC
EQU $FFFE ;Vector
de RESET
COPD
EQU 0
K1
EQU 255T
;CONSTANTES PARA RETARDO DE 200mS
K2
EQU 194T
ORG RAM
REG1
RMB 1
;CONTADOR DEL DELAY1
REG2
RMB 1
;CONTADOR DEL DELAY2
;*********************************************************
;
PROGRAMA PRINCIPAL
ORG FLASH
;DEFINE DIRECCIÓN PARA UBICACION DEL CODIGO SGTE.
INICIO:
RSP
CLRA
BSET COPD,CONFIG1
BSET 7,DDRD
;PUERTOD,7 COMO SALIDA
BSET 6,DDRD
;PUERTOD,6 COMO SALIDA
LOOP:
BCLR 7,PTD ;APAGA
LED2
BCLR 6,PTD ;APAGA
LED1
BSR
DELAY2 ;RETARDO 200
mS
BRSET 5,PTB,LED_1
;EVALUA BIT 5 DEL PUERTO B Y SALTA
LED_2:
BSET 7,PTD ;ENCIENDE
LED2
BRA
COMUN
LED_1:
BSET
6,PTD ;ENCIENDE
LED1
COMUN:
BSR DELAY2 ;RETARDO 200
mS
BRA LOOP
;*********************************************************
DELAY1:
;RETARDO TOTAL DE K1*5+12
MOV #K1,REG1 ;4 CICLOS
LOOP1: DBNZ
REG1,LOOP1 ;5*K1 CICLOS
RTS
;4 CICLOS
;*********************************************************
DELAY2:
;RETARDO TOTAL DE 5*K2*K1+17*K2+12
MOV #K2,REG2 ;4 CICLOS
LOOP2: BSR
DELAY1 ;K2*DELAY1
DBNZ REG2,LOOP2 ;5*K2 CICLOS
RTS
;4 CICLOS
;*********************************************************
ORG RESETVEC
; AQUI SE UBICA EN EL VECTOR DE RESET
DW INICIO
; LA DIRECCION DE INICIO DEL PROGRAMA