Materiales:
MC9S08SE4
MAX233
Cable adaptador USB-RS232
Una Tabla de Pruebas (Protoboard)
HCS08_OpenSourceBDM (Con o que se programa el micro)
A continuación el código:
;******************************************************************* ;* This stationery serves as the framework for a user application. * ;* For a more comprehensive program that demonstrates the more * ;* advanced functionality of this processor, please see the * ;* demonstration applications, located in the examples * ;* subdirectory of the "Freescale CodeWarrior for HC08" program * ;* directory. * ;******************************************************************* ; Include derivative-specific definitions INCLUDE 'derivative.inc' ; ; export symbols ; XDEF _Startup ABSENTRY _Startup ; ; variable/data section ; ORG RAMStart ; Insert your data definition here ExampleVar: DS.B 1 ; ; code section ; ORG ROMStart _Startup: LDHX #RAMEnd+1 ; initialize the stack pointer TXS CLI ; enable interrupts mainLoop: ;Powered by iGus JSR AR ;saltamos a la etiqueta AR CICLO: ;Etiqueta ciclo JSR RET ;Salta a la etiqueta RET feed_watchdog ;A limenta al perro guardian BRCLR 7,SCIS1,CICLO ;Salta a la etiqueta CICLO si el bit 7 del registro SCIS1 es cero LDA #$78 ;Carga en el registro A un nuemro 78 que en ASCII es una x STA SCID ;Guarda el valor del registro A en el registro SCID feed_watchdog BRA CICLO ;Siempre salta a la etiqueta ciclo AR: ;Etiqueta AR MOV #0,SCIBDH ;Carga un cero en este registro MOV #31,SCIBDL ;Carga un 31 decimal al registro MOV #$00,SCIC1 ;Carga un cero al registro MOV #$0C,SCIC2 ;Carga una C al registro RTS ;Regresamos del salto RET: ;Etiqueta RET LDHX #$FFF ;Carga en el registro H:X el número 0FFF RET1: ;Etiqueta RET1 feed_watchdog ;A limenta al perro guardian AIX #$01 ;Incrementa el registro X en 1 CPHX #$500 ;Compara H:X con un 500 la resta es un cero si son iguales BNE RET1 ;Salta a etiqueta RET1 si z = 0 RTS ;Regresa del salto ;************************************************************** ;* spurious - Spurious Interrupt Service Routine. * ;* (unwanted interrupt) * ;************************************************************** spurious: ; placed here so that security value NOP ; does not change all the time. RTI ;************************************************************** ;* Interrupt Vectors * ;************************************************************** ORG $FFFA DC.W spurious ; DC.W spurious ; SWI DC.W _Startup ; Reset
En la imagen de arriba se ve la IDE del CodeWarrior, primero se hace el debug en Full Chip para saber si hay errores en el código; después se hace el Debug con la selección de la imagen, HCS08 OpenSource_BDM.
Al hacer el debug aparece la ventana de simulación, le dan en el botón Start o presionan F5 para programar en circuito el microcontrolador.
Con el Hyper Termianl, si es la primera vez que lo usan aparece una ventana que pide datos de su conexión llenen los de tal manera que lo puedan cerrar y así acedan a programa, después pueden en el menú Archivo hacer una nueva conexión, les aparecerá la siguiente ventana de arriba para que le pongan icono y nombre a su conexión.
Después les pedirá a donde conectarse, pueden ver que en las dos opciones de arriba llene los datos para que me dejara usar el Hyper Terminal, como llamaremos a nuestro micro debemos saber como se llama el puerto donde conectamos el adaptador USB-RS232. Eso lo pueden saber en las opciones de window en administrar hardware donde pueden modificar los Drivers.
Después de llenar ese campo aparecerá las propiedades del puerto, la primera es la velocidad de comunicación tiene que ser la misma que programaron en la codificación al configurar los registros en la etiqueta AR.
Con esto ya tenemos configurado nuestro Hyper Terminal, para que nuestro micro nos envié datos.
Arriba pueden ver el micro que esta trabajando cuando en el simulador corremos el programa, y en el Hyper Terminal que interpreta los datos como código ASCII.
Arriba todos los materiales ya conectados para implementar el programa.
Arriba en la imagen casi no se alcanza a ver las conexiones.
Bibliografía:
http://cache.freescale.com/files/microcontrollers/doc/ref_manual/MC9S08SE8RM.pdf
http://hzsquare.blogspot.com/2011/04/hcs08-motorola-freescale-comunicacion.htm
Como conclusión pueden con este programa probar su dispositivo para ver si es que tienen un problema con su programa, cargar este en su micro y descartar problemas de Hardware. En este ejemplo no se uso la recepción de datos del puerto. Si tienen dudas de que significa la codificación y entender que hace cada comando chequen en el Manual de Rerencia de este micro-controlador los capítulos 7.5 y 12 para que puedan checar la codificación. Las conexiones son las mismas que en la pagina del link debajo del RM.
http://cache.freescale.com/files/microcontrollers/doc/ref_manual/MC9S08SE8RM.pdf
http://hzsquare.blogspot.com/2011/04/hcs08-motorola-freescale-comunicacion.htm
No hay comentarios:
Publicar un comentario