Inicio > Assembler, Digitales, Informática, Microcontroladores, Programación, Sistemas digitales, Sistemas modernos, Telecomunicaciones > PROGRAMA DE COMUNICACION SERIAL EN ASSEMBLER PARA EL MICRONTROLADOR HC908GP32

PROGRAMA DE COMUNICACION SERIAL EN ASSEMBLER PARA EL MICRONTROLADOR HC908GP32


El siguiente es un código empleado para establecer una comunicación serial entre un computador y un microcontrolador de la marca Motorola de referencia HC908GP32.

El condigo consiste en enviar caracteres desde teclado de un computador conectado por el puerto serial hasta el microcontrolador, este a su vez tiene conectado por su puerto PTB un display de 7 segmentos de la siguiente manera:

Display de 7 segmentos —————— Microcontrolador ———————PC

El microcontrolador recibe los caracteres desde el PC si son numero desde 0 hasta 9 entonces los muestra en el display de la contrario muestra la letra E indicando error.

El siguiente es el código que se debe quemar en el microcontrolador explicado paso a paso.

FLS      EQU $8000 ; se iniciará en la posición 8000 de la memoria

RST      EQU $FFFE

CONFIG1  EQU $1F

PTB      EQU $01 ;se inicia el Puerto B

DDRB     EQU $05 ;se configura el DRRB

SCDR     EQU $0018

TC       EQU $06

SCISR    EQU $0016

SCRF     EQU $05

CONT     EQU $60 ;se crea apuntador en la posición 60 de nombre CONT

DATO     EQU $61 ;se crea apuntador en la posición 61 de nombre DATO

VAR      EQU $62 ;se crea apuntador en la posición 62 de nombre VAR

SCC1     EQU $0013

SCC2     EQU $0014

SCBR     EQU $0019

ORG   FLS ;se configura como punto de partida del programa FLS

MAIN:    BSET  0,CONFIG1 ; de deshabilita el COP

;Se configura todo el sistema para establecer la comunicación

MOV   #$03,SCBR

BSET  6,SCC1

BSET  2,SCC2

BSET  3,SCC2

MOV   #$FF,DDRB ; configure todo el Puerto B como salida

INICIO:  MOV   #$00,PTB ; apaga todo el puerto

LDHX  #MSG ;carga el mensaje “INGRESE UN NUMERO”

TX:      LDA   ,X

CMP   #$FF

BEQ   PRINT

BRCLR TC,SCISR,* ; Espera que se envié un dato al micro

STA   SCDR

AIX   #$01

BRA   TX

PRINT:   BSR   DELAY

BRCLR SCRF,SCISR,*

LDA   SCDR

CMP   #$39

BGT   ERROR

CMP   #$30

BLO   ERROR

SUB   #$30

STA   DATO

LDHX  #TABLA ;carga el número correspondiente en la tabla

TXA

ADD   DATO

TAX

LDA   ,X

EOR   #$80

STA   PTB ; envía el número correspondiente al display

BSR   DELAY

BRA   INICIO

ERROR:

MOV   #$F9,PTB ; envía la letra E al display

BSR   DELAY ; va a la subrutina para esperar un tiempo

BRA   INICIO ; vuelve al inicio del programa

; genera una rutina temporizadora con la variable VAR

DELAY:   MOV   #$00,CONT

SIGA:    CLR   VAR

LAZO:    NOP

NOP

NOP

NOP

NOP

DEC   VAR

BNE   LAZO

DEC   CONT

BNE   SIGA

RTS

; envía un mensaje al computador “INGRESE UN NUMERO”

MSG:     DB    “INGRESE UN NUMERO”,$FF

TABLA:   DB    3F ;tabla de los número del 0 al 9

DB    06

DB    5B

DB    4F

DB    66

DB    6D

DB    7D

DB    07

DB    7F

DB    67

ORG   RST

DW    MAIN ; regresa al comienzo del programa

END ;termina el programa

Agradeciemientos a Monica Ovadia Cardona

Alguna duda o sugerencia por favor pongan el comentario.

Gracias.

  1. abril 30, 2009 a las 3:59 am

    quisiera informacion de el programa en assembler realizado

  2. mayo 12, 2009 a las 10:10 pm

    hi buen documento solo me preguntava, si no sabria como inducir una letra minuscula desde el nasm de assembler con un procesador 8081

  3. Henry
    junio 1, 2009 a las 10:01 pm

    BUen aporte..quisiera saber si me pueden ayudar necesito prender y apagar UN led mediante seriAL… QUE CODIGO UTILIZARIA YA SEA EN C(PREFERIBLEMENTE )O EN OTRO LENGUAJE GRACIAS

  4. shakziel
    julio 2, 2009 a las 11:43 pm

    Como utilizaría este código si lo requiero para un micro de Atmel ya sea para el ATmega8 o el ATMega16? te agradeceré la ayuda ya que lo necesito para enviar datos de manera seial. De nuevo gracias

  5. octubre 15, 2010 a las 2:25 pm

    Fantasy🙂

  6. julio 27, 2011 a las 10:50 am

    And where logic?

  7. abril 26, 2012 a las 4:40 am

    I simply couldn’t depart your web site before suggesting that I extremely enjoyed the usual info an individual provide to your guests? Is going to be back ceaselessly in order to inspect new posts

  8. juan
    junio 13, 2013 a las 3:35 pm

    como programar el puerto serial de una computadora con ensamblador y mandar la señal a un led atravez del puerto

  9. juan
    junio 13, 2013 a las 3:49 pm

    juan :
    como programar el puerto serial de una computadora con ensamblador y mandar la señal a un led atravez del puerto

    • junio 13, 2013 a las 4:30 pm

      Recuerdo que cuando hacia esos experimentos usabamos hyperterminal con algunos comandos puedes hacer eso, pero la verdad ya eso fue hace tanto que no recuerdo.

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: