GUIA DE PRACTICAS BASICAS CON MICROCONTROLADOR MOTOROLA MC68HC908JK3

 

DANILO A. GARCIA H.

dagh_2001@007mundo.com

 

 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 fuente


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.

 

 archivo fuente



HOME

 


1