GUIA DE PRACTICAS BASICAS
CON MICROCONTROLADOR
MOTOROLA MC68HC908JK3
DANILO A. GARCIA H.
Septiembre-2001
Construcción
del programa en lenguaje ensamblador, ensamble, pasos para la simulación y
depuración
Programa
WINIDE Es el entorno de desarrollo que bajo Microsoft
Windows permite realizar la edición, ensamble, corrección de errores de
sintaxis, simulación y depuración de las aplicaciones que deseamos crear.
Para
su acceso se debe:
a. ir al menú INICIO
de Windows
b. buscar el grupo de
programas: ICS08JLZ Development Kit
c. Hacer click en el programa denominado WINIDE
A continuación debe crearse el "programa fuente"
utilizando el editor de textos y luego salvándolo en el disco con un nombre
alusivo a lo que hace dicho programa, preferiblemente, con la extensión de
archivo .ASM y en la misma carpeta
del entorno WINIDE (por lo general: c:\pemicro\ics08jlz)
utilizando la siguiente forma:
Línea
de programa en lenguaje ensamblador
Campo
1: |
Campo
2: |
Campo
3: |
Campo
4: |
[etiqueta] |
[instrucción] |
[argumento(s)] |
[;comentarios] |
en donde:
etiqueta es una cadena de caracteres
que representa la dirección de memoria de la línea de programa asignada por el
programa ensamblador o un símbolo previamente definido
instrucción
palabra o mnemónico perteneciente al conjunto de
instrucciones del microcontrolador
argumento(s)
operando(s) correspondiente a la instrucción utilizada
comentarios son ayudas utilizadas como
información o referencia para identificar las partes del programa y recordar
acerca de lo que se pretende con éste
"Los
campos enunciados pueden llegar a ser opcionales, debido a ello, una línea de
programa no necesariamente debe incluirlos a todos".
Una
vez creado y almacenado en disco el programa fuente, este debe ensamblarse
utilizando el icono para ese fin (Ver recuadro), cada vez que sea reportado un
error, debe leerse, interpretarse y corregirse, así realizar este paso hasta
que sean corregidos todos los errores (sí existieron).
El
siguiente paso es realizar la simulación
(solo en el PC) o la simulación en
circuito (en la tarjeta) para correr paso a paso el programa y detectar
posibles errores de tipo lógico, al simulador o simulador en circuito se accede
por medio de los iconos correspondientes (Ver recuadro), cualquier error
detectado debe corregirse en el programa fuente y repetir los pasos anteriores.
Nota: La
simulación en circuito o solo en el software no es en tiempo real y depende de
aspectos como la velocidad del PC y del tipo de tarjeta utilizada (class
III es la suministrada) y su cristal oscilador.
El
último paso en una aplicación (aunque no en todas) es realizar el descargue
(vaciado) del programa al microcontrolador utilizando para ello otra de las
aplicaciones de P&E y a la cual se accesa también desde el icono
correspondiente Ver recuadro.
Nota:
Cuando se
utilicen las aplicaciones correspondientes a los iconos 2, 3 ó 4 debe hacerse
uno a uno ya que cada una de estas utiliza el puerto serial para la conexión a
la tarjeta y la una bloquea a la otra.
EJERCICIO DE INTRODUCCION
Interpretar
del diagrama de flujo y del programa fuente la funcionalidad del mismo, corre
sobre el kit de desarrollo directamente sin ningun Hardware adicional:
*********************************************************
*
PRÁCTICA INICIAL DE
INTRODUCCION
*
*
INTERMITENTE.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 1T
;CONSTANTES PARA RETARDOS(cambiar según necesidad)
K2 EQU
1T
K3 EQU
1T
ORG
RAM
REG1
RMB 1
;CONTADOR DEL DELAY1
REG2
RMB 1
;CONTADOR DEL DELAY2
REG3
RMB 1
;CONTADOR DEL DELAY3
;***********************************************************************
;
PROGRAMA PRINCIPAL
ORG FLASH
;DEFINE DIRECCIÓN PARA UBICACION DEL CODIGO SGTE.
INICIO:
RSP
CLRA
BSET COPD,CONFIG1
BSET 7,DDRD
LOOP:
BCLR 7,PTD
BSR DELAY3
;prueba de retardo (verificar # de ciclos)
BSET 7,PTD
BSR DELAY3
;prueba de retardo (verificar # de ciclos)
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
;***********************************************************************
DELAY3:
;RETARDO TOTAL DE 5*K3*K2*K1+17*K2*K3+17*K3+12
MOV #K3,REG3 ;4 CICLOS
LOOP3: BSR
DELAY2 ;K3*DELAY2
DBNZ
REG3,LOOP3 ;5*K3 CICLOS
RTS
;4 CICLOS
;***********************************************************************
ORG RESETVEC
;AQUI SE UBICA EN EL VECTOR DE RESET
DW INICIO
; LA DIRECCION DE
INICIO DEL PROGRAMA
ARCHIVO " JL3REGS.INC "
Este
archivo es suministrado con el programa de desarrollo WINIDE:
; 68HC908JL3, 68HC908JK3, 68HC908JK1 Equates
PTA EQU
$0000 ; Ports and data
direction
PORTA
EQU $0000
PTB
EQU $0001
PORTB
EQU $0001
PTD
EQU $0003
PORTD
EQU $0003
DDRA
EQU $0004
DDRB EQU
$0005
DDRD EQU
$0007
PDCR EQU
$000A
PTAUE EQU $000D
INTKBSR EQU $001A
; IRQ & Keyboard
KBSCR EQU $001A
INTKBIER EQU $001B
KBIER EQU $001B
INTSCR EQU $001D
CONFIG1 EQU $001F
; System configuration register
CONFIG2 EQU $001E
; System configuration register
TSC EQU
$0020 ; Timer
TCNTH EQU $0021
TCNTL EQU $0022
TMODH EQU $0023
TMODL EQU $0024
TSC0 EQU
$0025
TCH0H EQU $0026
TCH0L EQU $0027
TSC1 EQU
$0028
TCH1H EQU $0029
TCH1L EQU $002A
ADSCR
EQU $003C ; ADC
Converter
ADR
EQU $003D
ADCLK
EQU $003E
BSR
EQU $FE00 ; SIM Module
RSR EQU
$FE01
BFCR EQU
$FE03
FLCR EQU
$FE08 ; Flash control
FLSPR EQU $FE09
FLTCR EQU $FE0A
BRKH EQU $FE0C ;
Break control
BRKL
EQU $FE0D
BSCR
EQU $FE0E
INT1 EQU
$FE04 ; Interrupt Status
INT2 EQU
$FE05
INT3 EQU
$FE06
COPCTL EQU $FFFF
; COP control register
;(C)opywrite P&E Microcomputer Systems, 1999
; You may use this code freely as long as this copyright notice
;
is included.