DIVISION DE CBI - 148.206.53.231

of 38 /38
UNIVERSIDAD AUTONOMA METROPOLITANA UNIDAD IZTAPALAPA DIVISION DE CBI LICENCLA TURA EN ELECTRONICA EN COMPUTACION REPORTE DE PROYECTO DE INGENIEIUA I Y II : SISTEMA DE DESARROLLO IMPLEMENTADO CON EL MICROCONTROLADOR MC68HCl lA8 Enero de 1999 ALUMNO: ANTONIO ESCAMILLA MONCADA MATRICULA : 91321089 ASESOR: M.EN C. AGUSTIN SUAREZ FERNANDEZ JEFE DEL AREA DE INGENIERIA BIOMEDICA UAM-I

Embed Size (px)

Transcript of DIVISION DE CBI - 148.206.53.231

DIVISION DE CBI
REPORTE DE PROYECTO DE INGENIEIUA I Y II :
SISTEMA DE DESARROLLO IMPLEMENTADO CON EL MICROCONTROLADOR MC68HCl lA8
Enero de 1999
MATRICULA : 91321089
ASESOR: M.EN C. AGUSTIN SUAREZ FERNANDEZ JEFE DEL AREA DE INGENIERIA BIOMEDICA UAM-I
INTRODUCCION
Los sistemas basados en microprocesadores, a los cuales puede llamarse Microcomputadoras, han evolucionado y a los que están en un solo integrado se les llama Microcontroladores (MCU) (Unidad Micro Controladora). Por lo tanto tienen al menos además del micro, memorias y dispositivos de entrada - salida, pero pueden tener algunos otros elementos como temporizadores, convertidores etc.
El MCU 68HC11 es uno de los MCU más poderosos en 8 bits, este integrado fabricado por Motorola con tecnología de alta densidad Metal Oxido Semiconductor Complementaria, tiene como cerebro un Microprocesador 6800 mejorado, los códigos de operación son los mismos, por lo que un programa hecho para un 6800 corre sin ningún cambio en un HC11, sin embargo tiene mas registros e instrucciones, puede estar en un modo de espera (Stanby) en que consume muy poca energía. Todas las versiones cuentan con memorias RAM, ROM y EEPROM, algunas versiones tienen EPROM los tamaños de las memorias dependen de la versión de que se trate. El HCl l tiene 5 puertos paralelos, similares a Pias, pero con algunas ventajas sobre éstos 2 puertos serie uno síncrono y otro asíncrono, ésta hecho para operar con la norma RS232C. Cuenta con un temporizador muy poderoso, que puede hacer operaciones de entrada salida, acumular pulsos tiempo, este solo bloque de maneja 20 registros. Tiene un convertidor analógico-digital, de 4 entradas que opera a buena velocidad y no requiere de ningún elemento de muestre0 y retención. Una característica importante es el gran número de interrupciones con que puede operar y que son 18 para todos los bloques, contando con una interrupción de tiempo real. Tiene 4 tipos de Reset siendo uno de ellos generado por fallas de programación al no detectar códigos de operación legales que viene, a ser un automonitoreo. Cabe destacar que en el puerto C se pueden tener multiplexados los buses de datos y de direcciones.
El voltaje de alimentación se aplica en las terminales VDD Las terminales V ~ F H y V ~ F L llevan el voltaje de alimentación del sudsistema Conv. Anaiógico a digital y el voltaje entre ellas debe ser entre 2.5 y 5V.
y Vss, debe ser de 5V.
XTAL y EXTAL sirven para conectar el cristal que determina la frecuencia de operación del sistema, que es la frecuencia del cristal entre 4, se observa que XTAL ya en la dirección de salida y EXTAL en la de entrada, esto es porque también puede aplicarse una señal de reloj directamente mas que la de un cristal y esto tendrá que hacerse sólo por EXTAL. E lleva la señal del reloj fase 2 a otros elementos conectados al HCll que lo requieran (habilitación). RESETJRQ y XIRQ son terminales de interrupciones externas al HC 11, las tres actúan en bajo, por RESET puede haber una salida indicando que no se encuentran códigos legales, en IRQ también se puede aplicar un voltaje para programar memorias EEPROM , en XIRQ se puede aplicar el voltaje para programar memorias EPROM.
Las terminales MODA y MODB, en una de sus funciones operan juntas para seleccionar el modo de operación del sistema por circuiteria, se tienen 4 posibilidades, para los modos llamados DE UN SOLO CHIP, BOOTSTRAP, EXPANDIDO y DE PRUEBA. El sistema lee estas terminales cuando se aplica reset iniciando en el modo en que indiquen, después de RESET tienen otra función, LiR carga el registro de instrucción que indica cuando se ejecuta una instrucción y que esta pensada para correr programas por pasos y V ~ T B Y que es para dar alimentación a la RAM y que esta no pierda sus información cuando no este presente VDD. Las líneas PA0 a PA7 son terminales de E/S del puerto paralelo A y también trabajan para el sudsistema temporizador , PA0 a PA2 son sólo de entrada ,PA3 a PA6 son sólo de salida y PA7 es bidireccional (en algunas versiones del HCll también PA3 es bidireccional).
PBO a PB7 son terminales de SALIDA del puerto paralelo B, aunque en el modo expandido llevan la parte alta del bus de direcciones. PCO a PC7 son terminales del puerto paralelo C, bidireccionales, aunque en el modo expandido llevan multiplexados el BUS DE DATOS con la parte alta del BUS DE DIRECCIONES. STRA y STRB son terminales de control de los puertos paralelos B y C llamadas líneas strobo, pero en el modo expandido son la R/W lecturdescritura y AS strobo de dirección que permiten mandar al exterior la orden de lectura / escritura y demultiplexar los buses de datos y direcciones. PDO a PD5 son terminales bidireccionales del puerto paralelo D, pero también llevan toda la información de datos y control de los puertos serie, SPI ( interfaz periférica serie) y SCI (interfaz de comunicación serie), el sincrono y el asincrono. PEO a PE7 son terminales de ENTRADA del puerto paralelo E y también llevan la entrada al convertidor analógico digital (las versiones de 48 terminales, doble en linea omiten las líneas de PE4 a PE7)
' LA UNIDAD DE PROCESO CENTRAL.
Compara da con un microprocesador 6800, como características sobresalientes se pueden mencionar: un segundo registro de índice Y de 16 bits, instrucciones nuevas de manipulación de bits muy poderosas, instrucciones de multiplicación y división, el manejo de los 2 acumuladores de 8 bits al mismo tiempo en el llamado doble acumulador de 16 bits D, instrucciones que mandan al sistema a un estado de espera con my bajo consumo de potencia.
MODELO DE PROGRAMACIÓN DEL M68HCll
7 0 7 O
I ACUMULADORA AC-ADOR B I ACUMULADOR D
REGISTROS DEL CPU ACUMULADORESA y B Los acumuladores son registros de propósito general, A y B son de 8 bits llamado doble acumulador D, con B siempre ocupando los 8 bits bajos y A los 8 bits altos, ahí se hacen las operaciones aritméticas y se obtienen los resultados de cálculos o manipulación de datos. REGISTROS INDICE X y Y. Los registros índice son de 16 bits, utilizados como referencia al formar una dirección, donde el valor del índice es sumado a un desbalance ( offset ) de 8 bits para crear una dirección efectiva, aunque también se pueden usar como contadores o como registros de almacenamiento temporal. El registro y se usa igual que el X, pero las instrucciones que lo usan tienen un byte extra en el código de máquina, llamado prebyte y un ciclo extra de tiempo de ejecución.
APUNTADOR DE LA PILA SP El SP registro de 16 bits, contiene la dirección de la pila donde se guardará el siguiente dato al mandarse apilar, al llevar un byte a la pila, después de ser guardado, el SP sé decrementa una localidad de mem0ria.M sacar un dato, primero SP incrementa una localidad y después se toma el dato.
EL CONTADOR DE PROGRAM4 PC
El PC de 16 bits también, es realmente un contador ascendente, que contiene la dirección de la siguiente instrucción a ser ejecutada.
REGISTRO DE CODIGO DE CONDICION 7 6 5 4 3 2 1 0 CCR
I S X H I N Z V C I
S: STOP X: MASCARA DEINTX H: ACARREO MEDIO I : UASCARA DE INT I N: NEGATIVO Z: ZERO V SOBREFLUJO C: A CARñEO/PRESTAMO
El CCR tiene 8 bits (llamados banderas) que indican los resultados de la Última instrucción ejecutada que afecta a cada bit, continuación se explica cada bit. C: acarreo/prestamo, este bit es fijado a 1 logico, si hubo un acarreo en la unidad aritmética y lógica (ALU) durante la última operación aritmética; un prestamo si fue una operación de resta. V: sobreflujo, este bit es fijado a 1 logico, si hubo un sobreflujo aritmético como un resultado de la operación. Z: cero, este bit es fijado a 1 lógico, si el resultado de la última operación aritmética, lógica o de manipulación de datos fue negativo. N: negativo, este bit es llevado a 1 logico, si el resultado de la Última operación aritmética, lógica o de manipulación de datos fue negativo. I: mascara de interrupción, este bit es fijado a 1 logico, por circuitería o por programa, para deshabilitar todas las fuentes de interrupción enmascarables. H: acarreo medio, este bit es llevado a 1 logico, cuando ocurre un acrreo entre los bits 3 y 4 de la &U durante una instrucción. X: máscara de interrupción X, este bit es fijado a 1 lógico, solamente por circuitería (Reeset o XIRQ) y es limpiado solamente por programación (TAP o RTI ). S: deshabilitar STOP (STOP es una instrucción), este bit es llevado a 1 lógico, para deshabiltar STOP.Se considera a STOP como una instrucción NOP, cuando el bit S es 1 lógico.
MODOS DE DIRECCIONAMIENTO
El CPU tiene 6 modos de direccionamiento: Inherente, Inmediato, Directo, Extendido, Indexado y Relativo. (Igual que el 68000).
MODO DE DIRECCIONAMIENTO INHERENTE O EAPLICITO
En este modo de direccionamiento, el código de operación tiene toda la información, las instrucciones son de un byte, sólo en el caso de pebyte son 2. Una instrucción particularmente importante es STOP, ya que tiene implicaciones de programación y de circuitena, como hay peligro al ejecutarla si no se conocen sus consecuencias, el bit S en el CCR debe habilitarla.Si S es 1 1ogico.Stop es deshabilitada y operará igual que la instrucción NOP, con S en O lógico STOP causa que paren todos los relojes del sistema, para irse a un modo de mínimo consumo de potencia (llamado Stanby) donde todos los registros del CPU permanecen invariables y las terminales de E/S también permanecen no afectadas.
Para salir de STOP se requiere aplicar alguna de las interrupciones RESET, XIRQ o RQ y se hace buscando el código de operación de la instrucción que sigue a STOP. MODO DE DIRECCIONMENTO INMEDIA TO En este modo el operando ( u 0perandos)es el argumento, es decir que después del código de operación inmediatamente sigue un número y no una dirección, el número de operandos iguala al número de bytes del registro. MODO DE DIRECCIONAMIENTO EXTENDIDO En este modo se da una dirección completa en 2 operandos mas el código de operación que será de un byte o 2 cuando tenga prebyte ;La dirección en lenguaje de máquina tendrá primero byte alto, después byte bajo. MODO DE DIRECCIONAMENTO INDEXXDO En este modo se puede operar con el registro de índice X o Y, la localidad de memoria de interés M se forma sumándole al registro de índice (16 bits) un desbalance de 8 bits que se da en la instrucción misma, este byte no tiene signo, por lo que M sólo puede ser una dirección hasta una página después del índice.
MODO DE DIRECCIONAMIENTO RELATIVO
Se usa para instrucciones de ramificación (brincos).Si se cumple la condición del brinco, el número de localidades que se brincan es dado por él operando en la instrucción, esta instrucción afecta al PC sumándole el desbalance (offset) CUANDO TERMINA DE EJECUTARSE LA INSTRUCCION, cuando no se cumple la condición no se brinca y en ese caso, se ejecuta la siguiente instrucción.
MEMORIAS INTERNAS
Este MCU tiene memorias RAM,ROM,EEPROM y la memoria principal puede ser ROM,EPROM o EEPROM según la versión de que sé trqte, aunque la memoria RAM es reubicable a continuación se muestra el mapa de memoria más común.
MAPA DE MEMORIA DE LA VERSION DE MCU E9
$0000
RAM 512 BYTES SOIFF $1 O00 $1 03F REGISTROS 64 BYTES $B600
EEPROM 512 BYTES
ROM 192 BYTES VECTORES DE INTERRUPCION DESDE $ BFCO JBFFF $0000
MEMORIA 12K VECTORES DE INTERR UPCION DESDE $FFCO PRINCIPAL
SFFFF
Los registros de memoria que se muestran en el mapa de memoria son RAM a excepción del último byte que es EEPROM, estos permiten todo el control sobre el MCU y pueden ser reubicados dentro del mapa, así como a memoria RAM. El registro encargado de esto es el llamado INiT, se ubica normalmente en la dirección $103D y es el que controla la ubicación en el mapa de memoria de propósito especial y sólo puede
escribirse dentro de los primeros 64 ciclos de reloj después de un RESET, pasando a ser un registro de sólo lectura.
RAMO REG3 O O
O RESET: O
Los números mostrados abajo del REG indican su posición por omisión después del RESET. Los 4 bits del nibble alto representan a su vez al nibble mas alto de los 4 que indican una dirección de la RAM en el mapa, y el nibble bajo representa a los 4 bits del nibble alto de la dirección de los registros (en RAM él nibble mas alto es OH , en REG el nibble alto es 1~ ).Por lo que 1 reubicación del mapa de memoria solo puede hacerse de 4K localidades en 4K localidades; si al reubircarse los REG quedan traslapados con alguna memoria tienen prioridad y son los que prevalecen.La RAM tiene prioridad sobre la ROM y cualquier memoria interna tiene prioridad sobre una externa, si al expander el sistema se bicamal una memoria puede no Ser habilitada, sino ubicar una de mayor prioridad.
O O PTCON BPRT3 BPTR2 BPTRl BPTRO O O 1 1 1 1 1
REGISTRO DE CONFIGURACI~N DEL SISTM (CONFIG,
Este registro es el Único EEPROM y sólo tienen significado los 4 bits de menos peso en el.
EEON : Habilita la EEPROM en el integrado. O EEPROM deshabilita. 1 EEPROM habilitada. ROMON : Habilita la ROM interna en el integrado O ROM deshabilita. 1 ROM habilitada. NOCOP deshablita el sistema COP (computadora operando apropiadamente). O 1 COP es una protección, especialmente para la EEPROM, que manda un RESET si en un tiempo determinado no se encuentra ningún código legal. NOSEC Deshabilita el modo de seguridad. O Habilita el modo de seguridad. 1 Deshabilita el modo de seguridad. El modo de seguridad no permite el acceso a los buses del sistema, si se sale del modo de seguridad antes borra las memorias RAM y EEPROM, si es posible la principal, está pensada para evitar la piratería de la programación, cuando el autor no desea que se conozca.
Habilita el modo de seguridad Deshabilita el modo el sistema COP
MEMORA EEPROM
Esta memoria además de habilitarse en el registro CONFIG, para ser escrita debe primero desprotegerse, pues tiene el registro BPROT que impide se escriba en bloques de la memoria en forma inadvertida, a continuación se miestran los bits del registro:
Los bloques que protegen se muestran en la tabla siguiente:
BIT BPRTO BPRT I
BLOQUE PROTEGIDO TAMAÑO (BYTES) $B600 - $B61F 32 %B620 - %B65F 64
BPRT2 BPRT3
El bit PTCON protege el registro CONFIG, para cambiar éste, además de desprotegerse debe aplicarse RESET para cambiar la configuración, ya que quien controla al MCU son los cerrojos y no directamente la EEPROM, durante el RESET se transfiere la información de la EEPROM a los cerroos.
El registro PPROG es el que controla la operación de la EEPROM.
$B660 - $B6DF 128 $B6EO - $B7FF 288
ODD EVEN O BYTE RESET: O O O O
Los bits ODD y EVEN sólo se pueden usar en modo de prueba, no se explicaran.
ROW ERASE EELAT EEPGM O O O O
BYTE O
ROW BORRADO O EN MASA
Note que borrar es un caso especial de grabar (se graba en todas las localidades FF). El tiempo que debe estar presente el voltae de programación es función de la frecuencia a la que
opere el relo del sistema, operando a 2 M H Z se recomienda 10 mseg, a 1 MHZ 20mseg. Si el sistema está operando a una frecuencia menor a IMHZ, llevarlo a esa frecuencia por medio del bit CSEL (seleciona reloj) en el registro OPTION.
1 O 1
INTERRUPCIONES Y MODOS DE OPERACION
ADPU CSEL IRQE DLY CME O O O 1 O
Este MCU tiene gran capacidad de interrupciones,ya que incluye 18 fuentes de interrupción pero 2 1 vectores de interrupción (el manual no considera al RESET como una interrupción). Se tienen 3 interrupciones por terminales físicas del MCU,las cuales interrumpen directamente al MCU, son llamadas igual que las terminales RESET, XIRQ, e IRQ, una interruoción de software SWI y las demas llegan por uno de los subsistemas.RESET es la de mayor prioridad, XIRQ es “casi no enmascarable” y es la que sigue en orden de prioridad, continua IRQ que ya es enmascarable y despues siguen las demás.
CRl CRO O O O
RESET
CR1
O O 1 1
Existen 4 tipos de RESET, el externo, que requiere se ponga la terminal en bajo,el RESET de encendido, que actua cuando se detecta un voltaje de alimentación menor al normal, el RESET de falla del COP (Computadora Operando Propiamente),que actúa cuando en determinado tiempo no se detecta un código de operación legal y el RESET de falla del monitor del reloj del COP, que entra al fallar el reloj del sistema.
CRO EIS E=2 MHZ
O 1 16.384 mS 1 4 65.536 mS O 16 262.14 mS 1 64 1.049 s
DIVIDIDO POR
Los RESET externo y el de encendido comparten el vector de interrupción por lo que pueden ser considerados como uno sólo, el sistema mantiene la terminal en bajo 4 ciclos de reloj y luego la libera cuando es RESET de encendido, por lo que el MCU lee despues de 4 ciclos y determina de cual RESET se trata.
RESET no guarda registros en la pila y por lo tanto no permite regresar al programa interrumpido, a diferencia de todas las demás interrupciones.
El RESET del COP es un vigilante del software del sistema que emplea un temporizador para actuar en forma períodica y que puede ser deshabilitado por medio del bit NOCOP del registro CONFIG, el tiempo en el que se debe detectar un cógigo legal depende de los registros CR1, CRO del registro OPTION.
OPTION
PERIODOS DEL COP PARA E = 2 MHZ
Los bits CRO, CR1, DLY e IRQE solo pueden ser escritos durante los primeros 64 ciclos de reloj después de RESET ( en los modos normales) y como se ve RESET fija un tiempo de 16.384 mS para detectar un código legal.
Para inicializar el temporizador del COP se tiene el registro COPRST , en el cual se debe seguir una secuencia de 2 pasos, escribir 55 y despues escribir AA, siempre en ese orden.
El RESET del monitor del reloj entra cuando se detecta la ausencia del reloj E por mas de un cierto período de tiempo,comprendido entre 5 y 100 micro segundos dependiendo de los parametros a procesar.Para un reloj E de 200 KHZ o mas no debe haber causa de falla y para un reloj de 10 KHZ o menos siempre se causará la falla, lo que significa que sistemas con reloj E abajo de 200 KHZ no deben de usar la función de monitor del reloj.Este monitor es usado como un respaldo del sistema COP ,siendo que el sistema COP requiere que un reloj funcione, no detectará fallas si el reloj a su vez falla.
Este RESET se habilita con el bit CME del registro OPTION que se puede escribir en cualquier tiempo.
ENTRADAS MODO MODB MODA
CAPTURADO EN RESET SMOD MDA
Cuando entra RESET, ademas que el vector de interrupción manda a ejecutarse un programa de servicio, suceden otras cosas que no dependen del programa, razón por la que el manual no lo considera interrupción ya que por circuiteria se dan otros efectos, uno de los más importantes es determinar el modo de operación del sistema.
Con RESET se lee el estado de 2 terminales externas llamadas MODA y MODB, que determinan 4 modos posibles de operación llamados
1 O I UNSOLO CHIP
* MODO DE UN SOLO CHIP * MODO MLJLTIPLEXADO EXPANDIDO * MODO ESPECIAL BOOTSTRAP * MODO ESPECIAL DE PRUEBA
prioridad ) Con esta información además escribe los bits SMOD y MDA del registro HPRIO ( alta
O O
MODOS DE OPERACION
O O I BOOTSTRAP 1 O O 1 MODO DE PRUEBA 1 1
De manera que el usuario fija las terminales externas en alto o bajo,según el modo de operación deseado, al aplicar RESET se va a ese modo, el bit MDA copia la terminal MODB.Despues de RESET las terminales externas MODB y MODA tienen otro significado.
Los bits SMOD y MDA solo pueden cambiarse por programa en los modos especiales y son de sólo lectura en los modos normales.Notar que si se cambia de modo por programa, al aplicar RESET se regresa al modo original. En el modo de un solo chip se cuenta con los puertos paralelos PB y PC. En el modo multiplexado expandido se pierden estos puertos y en esas terminales se tienen multiplexados los buses de datos y direcciones del sistema, en PB la parte alta del bus de direcciones y en PC multiplexados bus de datos y parte baja del bus de direcciones El modo Bootstrap es modo especial en que se pueden escribir registros en cualquier tiempo y que en los modos n o d e s sólo se pueden escribir bajo condiciones especiales, en este modo se habilita una memoria ROM entre las localidades $BF40 y $ BFFF , que contiene un programa de arranque del sistema (boot) quedando los vectores de interrupción en esta ROM y no en la principal, como en los modos normales; el bit MOOT del registro HPRIO dice cuando está habilitada esta ROM.
HPRIO
I RBOOT I SMOD I MDA I IRV I PSEL3 I PSEL2 I PSELl 1 PSELO 1
RBOOT sólo tiene significado cuando SMOD es alto, de otro modo es cero y no puede ser escrito.Se fija en UNO despues de RESET solo en el modo Bootstrap. IRV visibilidad de lectura interna, es un bit que difiere en el MC68HCllE9 de otras versiones del HCl1, en esta versión IRV sólo se puede escribir si SMOD = 1. Si IRV es CERO la visibilidad de los buses internos es bloqueada, si es UNO las lecturas internas son visibles en el bus externo.
El modo de prueba especial, recomienda el fabricante que no lo emplee el usuario, se emplea al programar en la fabrica.
Es una interrupción CASI NO ENMASCARABLE, las interrupciones no enmascarables ( NMI) se disehrón para atender situaciones de emergencia, ya que no preguntan por ninguna bandera para poder entrar, sin embargo un interruptor rebotando puede ocasionar que la interrupcion se interrumpa a si misma, retrasando el programa de servicio de la interrupción, para evitar esto el HC 11 tiene una variación de las no enmascarables en XIRQ, quien está impedida de entrar por la bandera X del CCR, que es una bandera de sólo lectura para el programador ya que la fija la propia interrupción XIRQ al entrar y con ello impedir que se intrrumpa a si misma;la Únicas otra manera de fijar X = 1 es con RESET,lo que impide que se interrumpa al MCU mientra no están dadas las condiciones iniciales adecuadas y que fija RESET, al salir de RESET o de la rutina de servicio de XIRQ, X regresa a CERO permitiendo que entre XIRQ al aplicar un voltaje bajo en la terminal externa llamada tambien XRQ.
INTERRUPCION DE SOFTWARE (SWI)
Es en realidad una instrucción que hace algo similar a una interrupcion y por lo tanto tomó ese nombre, tiene su propio vector de interrupción que lleva al programa de servicio de SWI, dado que las interrupciones permiten que se termine de ejecutar la instrucción corriente, permiten que se ejecute SWI, que entonces se comporta como interrupción prioritaria.
INTERRUPCION POR CODIGO DE OPERACION ILEGAL
Como no todos los códigos de operacion son posibles, un circuito de detección de código de operación ilegal esta presente.Cuando un código ilegal se detecta, una interrupción es demandada al vector de código de operación ilegal, este vector nunca debe ser dejado sin inicializar pues podría llenar la pila con reiterativas demandas de interrupción con un código incorrecto.
El mecanismo puede ser usado para crear instrucciones de proposito especial, ya que cuando un código determinado es encontrado, la rutina de servicio de la interrupción puede usarse para ejecutar una tarea especial, cambiando la dirección de retorno de la interrupcion que normalmente apunta al códtgo ilegal.
INTERRUPCIONES ENMASCARABLES
Existen 15 interrupciones además de las ya mencionadas, todas tienen en común el estar prohibidas poe el bit Y del CCR (que enmascara la interrupción ), una de ellas entra por la terminal IRQ en bajo y las demás tienen algún otro bit que las enmascara además de 1. El mecanismo es como sigue: primeramente preguntan si no las prohibe alguna máscara ( como 1 ), si las prohibe ejecutan la siguiente instrucción y la demanda se pierde. Si pueden entrar guardan los registros de interés en la pila, siempre en el mismo orden para poder regresar al programa que fue interrumpido con retorno de interrupción (RTI ), independientemente de la interrupción de que se trate, despues fijan la bandera 1 = 1 para impedir otra interrupción no prioritaria, a continuación buscan el vector de interrupción en ROM, de ahí cargan el contador de programa PC y ejecutan la instrucción corriente, como cualquier otra instrucción y que ya es de la rutina de servicio.
ORDEN EN QUE LAS INTERRUPCIONES GUARDAN REGISTROS EN LA PILA
SP-7 a c B
DIRECCION VECTOR FFD6,D7 FFD8,D9 FFDA,DB FFDC,DD FFDE,DF FFE0,E 1 FFE2,E3 FFE4,E5 FFE6,E7 FFE8,E9 FFEA,EB FFEC,ED FFEE,EF FFF0,Fl FFF2,F3 FFF4,F5 FFF6,F7 FFF8,F9 FFFA.Fl3 FFFE,FF
FUENTE DE INTERRUPCION
TñANSICION DE ENTRADA DEL PA SOBREFLUJO DEL PA
SOBREFLUJO DEL TEMPORIZADOR TOC5 TOC4 TOC3 TOC2 TOC 1 TIC3 TIC2 TIC 1
INTERRUPCION DE TIEMPO REAL IRQ (DEMANDA DE INTERRUPCION)
mQ SWI
RESET DEL COP RESET DEL MONITOR DEL RELOJ RESET (EXT. Y DE ENCENDIDO)
LA ENMASCARA
1,OCSI I,OC41 I,OC3I I,OC2I 1,OClI &IC31 &IC21 1,IC 11 1,RTII
I, * X
NOCOP CME
SCI INTEWAZ DE COMUNICACION SERIE SPI INTERFAZ PERIFERICA SERIE PA ACUMULADOR DE PULSOS TOC COMPARACION DE SALIDA DEL TEMPORIZADOR TIC CAPTURA DE ENTRADA DEL TEMPORIZADOR
* IRQ además de permitir las interrupciones externas tambien es por donde llegan las interrupciones que vienen del puerto paralelo PC, donde es enmascarada por STAI. Otras se refiere a quela interfaz de comunicación ser; SCI puede ser enmascarada por: RIE,ILIE,TIE y TCLE.
Todas las interrupciones que dependen de la bandera 1,para ser atendidas, tienen un orden de prioridad, pero de ellas la de mayor prioridad se programa en el registro de alta prioridad HPRIO, con los 4 bits de menos peso, a continuación se muestra una tabla.
PSELS O O O O O O O O 1 1 1 1 1 1 1
TABLA DE PRIORIDAD DE LAS INTERRUPCIONES
PSELZ O O O O 1 1 1 1 O O O O 1 1 1
PSELl O O 1
SOBREFLUJO DEL PA TRANSICION DE ENTRADA DEL PA
TRANSFERENCIA COMPLETA DEL PA SCI
RESERVADO (IRQ POR OMISION) IRQ
1 O
O l i l 1
O 1 1 O
1 TIC2 O TIC3 1 TOC 1 O TOC2
RESET los bits de selección de prioridad (PSEL) quedan en O 1 O 1 que asigna a IRQ la mayor prioridad, el orden de prioridad es sobre la tabla desde O 10 1 creciendo la númeracion hasta 1 1 1 1, sigue O000 y continua hasta 0100, es decir, mayor prioridad IRQ,luego interrupción de tiempo real,la que tiene menor prioridad de todas es SCI.
CONVERTIDOR ANALOGICO -DIGITAL
El sistema convertidor AID del HCl 1 emplea la técnica de aproximaciones sucesivas para la conversión, pero con la peculiaridad de una redistribución de carga toda capacitiva, que hace innecesario tener un circuito de muestre0 y retención a la entrada del convertidor, como es normal en los convertidores usuales.
El convertidor es de 8 canales de 8 bits con resolución de +I- % bit menos significativo (LSB).
TERMINALES DEL CONVERTIDOR A/D
Las entradas del convertidor son las 8 líneas del puerto E. Se deben aplicar voltajes de referencia alto y bajo en las terminales VrH y VrL, tal que la diferencia entre ellas esté comprendida entre 2.5 y 5 V, el convertidor es radiométrico asignado FF al voltaje VrH y O0 a VrL; si la diferencia VrH - VrL = 5V la resolución será 51255 V, es decir 19 mV, si la diferencia disminuye se tendrá mejor resolución, pero nunca menor a 2.51255 V .
En caso de aplicarse un voltaje a convertir mayor a VrH actúa un diodo zener y el resultado lo dará como VrH, pero valores menores a Vrl PUEDEN DAÑAR el convertidor (poner un circuito de protección, por ejemplo un diodo que recorte los voltajes negativos).
P R O G R M CION DEL CONVERTIDOR ANALOGICO-DIGITAL Esencialmente 2 registros son los que controlan el convertidor OPTION y ADCTL
OPTION
Con el bit ADPU se habilita el conv. A/D, cuando este bit se limpia se deshabilita la potencia del conv. CSEL seleción de reloj, en cero se opera el conv. con el reloj del sistema, en uno el conv. opera con un oscilador independiente de 1 MHZ.Cuando el sistema trabaa a una frecuencia menor a 750 KHZ. es necesario habilitar CSEL.
O O O O O O O
ADCTL
O O 1 PE 1 O 1 O PE2 O 1 1 PE3 1 O O PE4 1 O 1 PE5 1 1 O PE6 1 1 1 PE7
En el registro de control A/D, ADCTL , se programan las caracteristicas de la conversión y se puede leer la Única bandera de este subsistema ( CCF), los registros en que los resultados quedan guardados son 4 y se llaman REGISTROS DE RESULTADOS 1,2,3 y 4 (ADRl,ADR2,ADR3 y ADR4) y son registros de 8 bits.
MüLT permite programar 1 o 4 señales a convertir.
MULT = O significa sólo un canal de entrada a convertir, aunque los 4 registros de resultados se llenan, todos tienen información referente al único canal habilitado, para 4 diferentes tiempos, ya que en hacerse una conversión se emplean 32 ciclos de reloj.
MüLT = 1 indica entradas múltples ( 4 ), en este caso los registros de resultados se llenan con los 4 resultados de las 4 entradas a convertir.
SCAN determina si se llenan los registros de resultados y se para el proceso o se continúan barriendo las entradas, actualizando los regiistros de resultados continuamente.
SCAN = O es cuando se hacen 4 conversiones solamente.
SCAN = lse continúan haciendo conversiones aunque los registros de resultados estén llenos.
CCF significa bandera de conversión completa y es un bit que se va a 1 lógico cuando se llenan los 4 registros de resultados, sin importar lo que valgan SCAN Ó MULT, antes de eso es O , en caso de que SCAN = 1 se continúan actualizando los registros de resultados aunque CCF = 1. Estabandera se borra al escribir en el registro ADCTL.
Los 4 bits CA, CB, CC y CD permiten programar cuales terminales del puerto E son las entradas del convertidor, esto da 16 posibilidades, pero 8 estan reservadas, cuando CD = 1 se tienen los 8 casos reservados, cuando MULT = 1 , CC = O selecciona loas 4 terminales primeras como las 4 entradas (PEO-PE3) y con CC = 1 selecciona las 4 Últimas terminales como las entradas (PE4- PE7)independientemente de lo que valgan CB y CA, para cuando MüLT = O se muestra la tabla siguiente para seleccionar la entrada requerida:
CD I CC I CB I C A I TERMINALDEENTRADA I DEL CONVERTIDOR
0 1 0 1 0 1 0 1 PEO
REGISTRO DE RESULTADOS EMPLEADO
CANALES ASIGNADOS CON MULT = O
TEMPORIRAZOR
O O O 1 1 O
Todo el subsistema Temporizador opera con el puerto A, que tiene siempre 3 líneas como entradas (PA0 - PA2), 3 líneas como salidas (PA4 - PA6), una bidireccional PA7 y PA3 en algunas versiones de HC 11 es bidireccional y en otras es de salida, (en el MC68HC 11E9 es bidireccional, en el MC68HC 11Al es salida ). En adelante nos referiremos en el caso en que PA3 es bidireccional.
DIVIDIDO POR EL FACTOR
1 4 8
CONTADOR TEMPORIUDOR TCNT
La base del subsistema es un contador de carrera libre de 16 bits o registro CONTADOR TEMPORIZADOR,localizado en $100E y $100F, que es manejado por el reloj E del MCU y que con respecto a éste tiene un factor de preescala que puede ser de 1,4,8 o 16, es un registro que por RESET parte de $0000 (da una vuelta) lo indica con una bandera de sobreflujo y se puede programar para que demande interrumpir al CPU, Útilizando los siguientes registros:
TFLG2
El bit TOF representa una bandera que indica cuando ha ocurrido un sobreflujo del TCNT.
TMSK2
Estos bits pueden leerse en cualquier tiempo, pero solo pueden escribirse durante los primeros 64 ciclos de reloj, después de RESET, en los modos normales. Junto con el contador pueden hacerse operaciones de entrada y de salida que a continuación se describen:
CAPTURA DE ENTRADA
En las operaciones de entrada se detecta una transición por una terminal de entrada y se captura en un registro la cuenta que en ese momento tiene el contador, se puede programar para que las transiciones activas sean las positivas,las negativas o cualquiera de ellas, el tiempo queda almacenado en registros llamados de captura de entrada del temporizador (TIC).
PA3 puede ser línea de entrada o de salida, con ella se tienen 4 posibles entradas y 4 registros de captura de entrada (TICl,TIC2,TIC3 y T1405) que son registros de 16 bits (para poder copiar al contador ). Programar las entradas se hace en el registro TCTL2.
lEDG4B IEDG4A IEDGlB IEDGlA IEDGLB lEDG2A IEDG3B IEDG3A I
Se tienen 2 bits para cada entrada, es decir 4 posibilidades, que son:
OMx O O 1 1
EDGxB I EDGxA I CONFIGURACION O O Entrada deshabilitada I
OLx SALIDA O Línea desconectada del TCNT 1 Tren de pulsos O Salida en O lógico 1 Salida en 1 lógico
Captura en transiciones positivas Captura en transiciones negativas Captura en cualquier transicion
Por RESET son llevados a cero todos los bits.El orden de la númeracion correspondiente con la numeración de las terminal en el puerto (4,1,2 y 3). Cada vez que hay una transición activa, además de capturase el tiempo del contador temporizador en un registro TIC, una bandera indica que ocurrio,en el registro TFLGl
TFLGl
IOClF I OC2F I OC3F I OC4F I I405F I IClF I IC2F 1 IC3F I
Para borrar las banderas, aquí como en todo el subsistema temporixador, se tiene que escribir 1
Un 1 en IClFJC2F o IC3F indica que ocurrió una transición activa en la entrada IC1 (I'M), en el bit que ya tiene un 1 indicando una bandera.
IC2 (PAL) o IC3 (PAO); I405F indica transición activa en PA3 cuando opera como entrada. Además de las banderas pueden operar con interrupciones, que se programan en TMSK 1.
TMSKl
I OClI I OC2I I OC3I I OC4I I I4051 I IC11 I IC21 I IC31 I Con un 1 en ICxI cuando un bit ICxF es llevado a uno, una interrupción de hardware es
demandada, que podrá ser servida si la bandera Y del CCR lo permite; I4051 se comparará como IC41 si PA3 está como entrada.
COMPARACION DE SALIDA
Las operaciones de salida se llaman comparaciones porque se realizan cuando se igualan el contador temporizador (TCNT) con alguno de los registros de 16 bits llamados comparación de salida del temporizador (TOC), puede haber salida por 5 terminales del puerto A (PA7 a PA3) y que se llaman comparación de salida 1,2,3,4 y 5 (OCl,OC2,0C3,OC4 y OC5) relacionadas con los 5 registros TOC correspondientes (TOC l,TOC2,TOC3,TOC4 y TOC5). La terminal PA3 puede ser programada como IC4 en vez de OC5.
Las salidas de OC2 a OC5 (solo se excluye OC 1) se pueden programar con el registro de control 1 del temporizador (TCTLl) que se muestra a continuación: TCTLl
OM2 I OL2 I OM3 1 OL3 I OM4 I OL4 I OM5 I OL5 I
Ejemplo.Si OM2=1, OL2=1 y TOC2 tiene $0100, cuando TCNT alcance el valor $0100 la salida OC2 será 1 lógico, independientemente de lo que tuviera.
Cuando la salida es un tren de pulsos, inicialmente sale lo contrario de lo que tenga la terminal como salida. COMPARA CION DE SALIDA CON TOCl
mismo tiempo, las que se programan, pero sólo puede dar como salida 1 o O lógico (tren de pulsos no).
salida al igualarse el tiempo del TCNT y el de TOC 1.
La comparación de salida 1 del temporizador (TOC1) puede dar salida a las 5 terminales al
En el registro OCIM, máscara de comparación de salida 1, se programa cuales líneas darán
OCIM
OCID
Cuando una salida no se programa con el registro OCIM el dato en el bit correspondiente de OCID ya no tiene ningún significado.Una salida puede estar programada al mismo tiempo con TOCl y con algún otro registro TOC, pero tiene mayor prioridad la programada con TOCI, por lo que saldrá ésta.
Cuando se da una salida hay una bandera que lo indica en el registro TFLGl, que se mostró en captura de entrada y donde el bit 3 puede ser una bandera que indique captura de entrada 4 o bien comparación de salida 5. Además pueden programarse que actúen interrupciones cada vez que hay una comparación de salida, escribiendo UNOS en el registro TMSK1, tambien ya visto, un 1 en OCxI demanda una interrupción cuando se tiene salida por la terminal x.
DESCRIPCION DEL SISTEMA
El sistema digital esta basado en un Microntrolador Motorola MC68HCllA1, el cual opera en modo expandido, teniendo el sistema en conjunto las siguientes caracteristicas y10 capacidades: - 16 KBY7ES DE MEMORA RAM EXPANDIBLE HASTA 48 KBYTES
- 512 BYTES DE MEMORLA EEPROM - TECLADO ALFANUMERICO DE 64 TECLAS - DISPLAY DE CRISTAL LCD DE 2 LINEAS DE 16 CARACTERES CADA UNA
- 8 KBYTES DE MEMORL4 EPROM
- 8 DISPLAYS DE 7 SEGMENTOS - INTERFACE DE COMUNICACION DIRECTA RS-232 CON PC - GENERACION DE 8 TONOS AUDIBLES A USTABLES CON CONTROL DE VOLUMEN - TERMINAL DE CONEXION PAR4 CONVETIDOR ANALOGICO -DIGITAL - VELOCIDAD DE OPERACION DE 2 MHZ - ALIMENTACION UNICA DE +5K
MEMORIA
MEMORIA MEMORIA LIBRE
LA MEMORIA SE DIRECCIONA
DOSE AS1 8 BANCOS DE 8KBYTES CADA UNO, PARA EL MANEJO DE LOS PERIFERICOS ES SLMILAR
MEDIANTE UN DEC. 3 A 8 , TENIEN-
$9FFF $A000
$FFFF
28 FF STOP 30 FF BARRA 38
Para la Implernentacion del teclado se emplea un c.i. 8279-5 a casi su maxima capacidad debido a que se manejan 64 teclas y 8 displays de 7 segmentos como se indica en el diagrama del sistema,a continuación se muestran las tablas de codigo para el teclado para el caso de minusdas y mayusculas, los codigos de desplegado son en base al LCD AND 491, es decir se emplea este para el desplegado de los caracteres del teclado.
e 21 t 22 u 23 o 24 - 25 + 26 73 66 68 6B 3A 3D s 29 f 2A h 2B k 2C : 2D = 2E FF 78 76 6E 2 c 2F
31 x 32 v 33 n 34 , 35 I 36 7A 63 62 6D 2E FF z 39 c 3A b 3B m 3C . 3D ESC 3E
TABLA DE TECLADO CON CNTRL = X, SHIFT = O (minusculas)
SLO
SLl
SL2
SL3
SL4
SL5
SL6
1F FF F3 27 FF F2 2F 40
37 FF F1 3F
TT: TECLA XX: OFFSET DE ALMACENAJE EN MEMORIA
CARACTERES DEL LCD AND491
TABLA DE TECLADO CON CNTRL = X, SHIFT = 1 (mayusculas)
SL4
RLl
23 # 41 24 $ 49 57 W 51 41 A 59 45 E 61 53 S 69 FF
71 5A z 79
RL2
25 Yo 42 26 & 4A 52 R 52 44 D 5A 54 T 62 46 F 6A 58 X 72 43 C 7A
4B 4 c
53 I 54
55 4F
RL5
50 P 55 4 c L 5D 2D - 65 5B
6D 3 c < 75 3E > 7D
7F 46 IEst 47 I 7E FF
4E 2A * 56 5D
5E 2B + 66 3D = 6E 3F ? 76 FF ESC 7E
F7 4F 10 return 57 ED
5F FF F6 67 FF F5 6F 40
77 FF F4 7F
TT: TECLA O FüNCION XX: OFFSET DE ALMACENAJE EN MEMORIA
CARACTERES DEL LCD AND491
SLO-SL7, RLO-RL7 : TERMINALES DEL CTO. DEL SISTEMA
A CONTINUACION SE PRESENTA LA PROGRAMACION BASICA PARA ARRANCAR EL SISTEMA LO QUE INCLUYE RUTINAS DE INICIALIZACION DE CTOS. INTEGRADOS, ATENCION A INTERRUPCION EXTERNA ETC. :
O000
O000
O000
O000 O000 O000 O000 O000 O000 O000 O000
SYS68D.ASM Assembled with IASM 03/22/1999 10:21 1 2 3 * PROGRAMA DE INICIALIZACION DE SISTEMA
4 MC68HCll"
5 INI-RAM1 EQU $4005 ; -> $5FFF INICIO DE LA RAM1 EXTERNA
EXTERNA
INTERNA
6 I N 1 - W EQU $6000 ; -> $7FFF INICIO DE LA RAM2
7 INI-RAMI EQU $0000 ; -> $FF INICIO DE LA RAM
8 WAKEl.JP EQU $FFFE ; DIR. DE ARRANQUE DEL MICRO. 9 STACK EQU $5ECO ; TOPE DE PILA 10 SI EQU 1 11 NO EQU O 12 TER EQU $81 ;TERMINADOR DE CADENA 13 TM-RAM EQU $lFFF 14 LIM-ERRORAM EQU $6 15 PTO-SONIDO EQU $2020
16
O000 O000 O000 O000 O000 O000 O000 O000 O000 O000
O000 O000 O000 O000 O000 0000 O000 O000
O000 O000
O000 O000
18 DD8279 19 DC8279 20 PSETMODEKEY-LEFT 2 1 PSETMODEKEY-RIGHT 22 PPROGCLK 23 PRDFIFO 24 PWRDIS 25 PWRDISX 26 PCLDIS 27 HDISP
28 * AND491 *
29 DCLCD 30 DRDBUSY 31 DWRLCD 32 DRDLCD 33 PFUNSET 34 PDISON 35 PMODESET 36 PCLLCD
EQU $2000 EQU $2001 EQU $02 EQU $12 EQU $34 EQU $40 EQU $90 EQU $80 EQU $Cl EQU $A0
; O POSICION DEL DISPLAY
EQU $2010 EQU $2011 EQU $2012 EQU $2013 EQU $38 EQU $OF EQU $06 EQU $01
37 * VECTORES DE INTERRUPCION *
40 * VARIABLES
42 VCNTL EQU $0006 43 VSHIFT EQU $0008
44 *illiiilillliillilllllllílllillillllllilllillllillilillllllllililllillililllilliliillííllííllllllllllilillillllllllllllfiiliiilllllliillii* 5000 45 ORG%5000
5000 00003 107 50 DB $00,$00,$3 1,$07,$5C,$55,$5C,$OO,TER 5C555COO 81
51 HOLA: 5009 0000763F 52 DB $OO,$OO,$76,$3F,$OE,$77,$OO,$OO,TER
OE770000 81
53 54 * LETREROS LCD 55 TABLA-HEX:
5012 30313233 56 DB '0123456789ABCDEF',TER 34353637 3 83 94 142 43444546 81
57 CHKLCD: 5023 50525545 58 DB 'PRUEBA DE LCD',TER
424 12044 45204C43 448 1
59 MEMRAM: 5031 52414D3A 60 DB'RAM: A',TER
20202020 20204 120 81
4255454E 2045 5 3 54 4 1444F2D 81
63 MEMMAL: 504F 202D2A2D 64 DB ' -*- DA',$EE,'ADA -*- ',TER
20444 1EE 4 1444 120 2D2A2D20 81
65 MEM-XMAL: 5060 4449523A 66 DB 'DIR: DA',$EE,'ADA',TER
20202020 20204441 EE4 1444 1 81
67 MEMLIME: 5071 204D5543 68 DB ' MUCHOS ERRORES ',TER
484F5320 4552524F 52455320 81
69 CHKMEM: 5082 20434845 70 DB ' CHEKEO DE RAM: ',TER
4B454F20 44452052 414D3A20 81
20455854 45524E4 1 202D2A2D 81
73 POSOUND3: 50A4 20434845 74 DB ' CHEKEO DE TONOS',TER
4B454F20 44452054 4F4E4F53 81
542E204E 4F2E3A20 20202020 81
77 POSOuNDl: 50C6 414A5553 78 DB 'AJUSTE DE TONOS ',TER
54452044 4520544F 4E4F5320 81
777AOOOO 000000
00000000 000000
50F8 0081 84 DB$OO,TER
86 * TABLA DE TECLADO
87 TABLA-TECLADO: ;CNTL=O SHIFT=O MINUSCULAS 50FA 3 1333537 88 DB $3 1,$33,$35,$37,$39,$~~,$7F,$~~,$32,$34,$36,$38
,$30,$FF,$7E,$FF 39FF7FFF 32343638 30FF7EFF
69702AFF
512A FFFF7876
;ChTL=O SHIFT=I MYUSCULAS 93 DB $2 1323 ,$25,$27,$29,$FF,$7F,$FF,$22,$24,$26,$28
,$5E,$FF,$7E,$FF
96 DB $FF,$FF,$58,$56,$4E,$3C,$3F,$40,$FF,$5A,$43,$42 ,$4D,$3E,$FF,$FF
97 *lllllll///lllllllllllllllllllllllllllllllllllfllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll~
4005 98 ORG INI-RAM1 ; PROGRAMA PRINCIPAL
4005 [O31 8E5ECO 4008 [O31 CElOOO 400B [O71 1C3920 400E [O21 867E 4010 [O31 97EE 4012 [O31 CESFOO 4015 [O41 DFEF 4017 [O61 BD41F3 401A [O61 BD42AO 401D [O21 OE
401E [O61 BD4082 4021 [O61 BD4258 4024 [O61 BD424D 4027 [O31 CE6000 402A [O61 BD40A8 402D [O61 BD4032 4030 [O31 20EC
99 LDS#STACK 100 LDX #$lo00 101 BSET $39,X,$20 102 LDAA#$7E 103 STAA$OOEE 104 LDX #$5F00 105 STX$OOEF 106 JSR PG8279 107 JSR PGLCD 108 CLI 109 A: ;JSR CHEK-DIS ;CHEKEO OPCIONAL 110 JSR CHK-TONOS 1 11 JSR CHEK-LCD 1 1 2 1 JSR CHEK-DIS 113 LDX #$6000 114 JSR CHK-RAM-EXT 115 JSR AJUSTE-TONOS 116 BRAA
1 1 7 *lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll*
118 AJUSTE-TONOS: ;RUTINA PARA AJUSTAR LOS TONOS
4032 [O31 CE50C6 4035 [O21 8680 4037 [O61 BD4314 403A [O21 86CO 403C [O31 CE50B5 403F [O61 BD43 14 4042 [O21 8601 4044 [O21 C601 4046 [O31 CE5012 4049 [O31 3A '404A [O31 37 404B [O61 BD4334 404E [O21 C60F 4050 [O41 F72010 4053 [O61 BD4334 4056 [O21 C6CD 4058 [O41 F72010 405B [O61 BD4334 405E [O41 E600 4060 (041 F72012 4063 [O41 33 4064 [O61 BD41E6 4067 [O41 B72020 406A [O21 49 406B [14] 3E 406C [O61 BD41E6 406F [O21 5C 4070 [O21 C109 4072 [O31 26D2 4074 [O21 8600 4076 [O41 B72020 4079 [O61 BD4334 407C [O21 8601 407E [O41 B72010 4081 [O51 39
~
ABX PSHB JSR BUSY LDAB #PDISON STAB DCLCD JSR BUSY LDAB #$CD ;position de desplegado STAB DCLCD JSR BUSY LDAB 0,X STAB DWRLCD PULB JSR DELAY STAA PTO-SONIDO ROLA WAI JSR DELAY INCB CMPB #$O9 BNE OP LDAA #$O0 STAA PTO-SONIDO JSR BUSY LDAA #PCLLCD STAA DCLCD RTS
1 5 4 *lllíllllllllllllllllllllllllllllíllllllllllllllllllllllllllllllllllíllíllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll*
155 CHK-TONOS: ;RUTINA PARA ELCHEKEO DE TONOS
4082 [O31 CE50A4 4085 [O21 8680 4087 [O61 BD4314 408A [O21 8601 408C [O21 C601 408E [O41 B72020 4091 [O21 49 4092 [O61 BD41E6 4095 [O21 5C 4096 [O21 C109 4098 [O31 26F4 409A [O21 8600
156 LDX #POSOUND3 157 LDAA#$80 158 JSR MENSAJE-LCD 159 LDAA#$01 160 LDAB #$O1 161 KL: STAA PTO-SONIDO 162 ROLA 163 JSR DELAY 164 INCB 165 CMPB#$09 166 BNEKL 167 LDAA#$OO
409C [O41 B72020 168 STAA PTO-SONIDO 409F [O61 BD4334 169 JSR BUSY 40A2 [O21 8601 170 LDAA #PCLLCD 40A4 [O41 B72010 171 STAADCLCD 40A7 [O51 39 172 RTS
173 *lllllllilllllllfillllllllflllllllllllllllllllllllllllllllllllllillllliilllfllllllllfllllllfflflllfliilliilliiiiliiilliilliiiilililiiiiiii~
174 CHK-RAM-EXT: ;SE LE PASA IX DIR. INICIAL DE LA MEMORIA EXTERNA A ;DE 8192 BYTES ,RAM 6264 O SIMILARES. 175
40A8 [O51 183C 176 PSHY 40AA [O31 36 177 PSHA 40AB 1031 37 178 PSHB 40AC [O41 3C 179 PSHX 40AD [O31 CE5082 180 LDX#CHKMEM 40B0 [O21 8680 181 LDAA#$80 40B2 [O61 BD43 14 182 JSR MENSAJELCD 40B5 [O21 86CO 183 LDAA#$CO 40B7 [O31 CE5093 184 LDX#MEMEXT 40BA [O61 BD43 14 185 JSR MENSAJE-LCD 40BD [O61 BD41E6 186 JSR DELAY 40CO [O61 BD41E6 187 JSR DELAY 40C3 [O61 BD41E6 188 JSR DELAY 40C6 [O61 BD41E6 189 JSR DELAY 40C9 [O21 8680 190 LDAA#$80 40CB [O31 CE5031 191 LDX#MEMRAM 40CE [O61 BD43 14 192 JSR MENSAJELCD 40D1 [O51 38 193 PULX 40D2 [O41 3C 194 PSHX 40D3 [O21 C685 195 LDAB#$85 40D5 [O61 BD41A2 196 JSR CONVBIN-AHEX 40D8 [O31 8F 197 XGDX 40D9 [O41 C31FFF 198 ADDD#$lFFF 40DC [O31 8F 199 XGDX 40DD [O21 C68C 200 LDAE3#$8C 40DF [O61 BD41A2 20 1 JSR CONV-BIN-AHEX
40E3 [O31 CCOOOO 203 LDD#O 40E6 [O41 18CE0000 204 LDY#O ;CONTADOR 40EA [O21 8655 40EC [O41 A700 206 STAA0,X 40EE [O41 AlOO 207 CMPA0,X 40F0 [O31 2613 208 BNE W1 40F2 [O21 86AA 209 LDAA#$AA 40F4 [O41 A700 210 STAA0,X 40F6 [O41 AlOO 211 CMPA0,X 40F8 [O31 260B 212 BNEW1 40FA [O51 188ClFFF 40FE [O31 273F 214 BEQ W2 4100 [O31 08 215 INX 4101 [O41 1808 216 INY 4103 [O31 20E5 217 BRAW3 4105 [O21 C106 4107 [O31 2720 219 BEQW4 4109 [O41 3C 220 PSHX
40E2 [O51 38 202 PULX
205 W3: LDAA #$55
213 W5: CPY #TAM-RAM
2 18 W 1 : CMPB #LIM-ERRORAM ;error en dir x
410A [O21 86CO 410C [O31 CE5060 410F [O61 BD43 14 4112 [O51 38 4113 [O31 37 4114 [O21 C6C5 4116 [O61 BD41A2 4119 [O41 33 41 1A [O61 BD41E6 411D [O61 BD41E6 4120 [O61 BD41E6 4123 [O61 BD41E6 4126 [O21 5C 4127 [O31 20D1 4129 [O21 86CO 412B [O31 CE5071 412E [O61 BD4314 4131 [O61 BD41E6 4134 1061 BD41E6 4137 (061 BD41E6 413A [O61 BD41E6 413D [O31 200B 413F [O21 ClOO 4141 [O31 2607 4143 [O21 86CO 4145 (O31 CE503E 4148 [O31 2005 414A [O21 86CO 414C [O31 CE504F 414F [O61 BD43 14 4152 [O61 BD41E6 4155 [O61 BD41E6 4158 [O61 BD41E6 415B [O61 BD4334 415E [O21 8601 4160 [O41 B72010 4163 (041 33 4164 [O41 32 4165 [O61 1838 4167 [O51 39
221 LDAA#$CO 222 LDX #MEM-XMAL 223 JSR MENSAJE-LCD 224 PULX 225 PSHB 226 LDAB#$C5 227 JSR COW-BIN-AHEX 228 PULB 229 JSRDELAY 230 JSR DELAY 23 1 JSR DELAY 232 JSRDELAY 233 INCB 234 BRAW5 235 W4: LDAA #$CO ;DESPLIEGA DEMASIADOS 236 LDX#MEMLIME ;ERRORES 237 JSR MENSAJE-LCD 238 JSR DELAY 239 JSRDELAY 240 JSR DELAY 241 JSR DELAY 242 BRA W6 243 W2: CMPB #O 244 BNE W6 245 LDAA#$CO 246 LDX#MEMOK 247 BRAW11 248 W6: LDAA #$CO ;DESPLIEGA MEMORIA MAL 249 LDX#MEMMAL 250 W 1 1: JSR MENSAJE-LCD 25 1 JSR DELAY 252 JSR DELAY 253 JSR DELAY 254 JSRBUSY 255 LDAA #PCLLCD 256 STAADCLCD 257 PULB 258 PULA 259 PULY 260 RTS
;MEMORIA OK
262 CONV-HEX-ADEC:
4168 [O31 36 4169 [O31 37 416A [O41 3C 416B [O61 BD4334 416E [O21 C60F 4170 [O41 F72010 4173 [O41 8COOOO 4176 [O31 2718 4178 [O31 36 4179 [O31 8F 417A [O31 CEOOOA
;EN X SE LE PASA EL DATO A CONVERTIR
263 264 PSHB ;DESPLEGADO EN EL LCD DEL 265 PSHX ; LADO FINAL DEL DISPLAY 266 JSR BUSY 267 LDAB #PDISON 268 STABDCLCD 269 GT2:CPX #O 270 BEQGTI 271 PSHA 272 XGDX 273 LDX#$A
PSHA ;EN A SE LE PASA LA POSICION DE
417D [41] 02 417E [O41 32 417F [O61 BD4334 4182 [O41 B72010 4185 [O61 BD4334 4188 [O21 CB30 4 18A [O41 F720 12 4 18D [O21 4A 418E [O31 20E3 4190 [O61 BD4334 4193 [O41 B72010 4196 [O61 BD4334 4199 [O21 C630 419B [O41 F72012 419E [O51 38 419F [O41 33 41A0 [O41 32 41A1 [O51 39
274 IDIV 275 PULA 276 JSR BUSY 277 STAADCLCD 278 JSR BUSY 279 ADDB#$30 280 STABDWRLCD 281 DECA 282 BRAGT2 283 GT1:JSR BUSY 284 STAADCLCD 285 JSR BUSY 286 LDAB#$30 287 STABDWRLCD 288 PULX 289 PULB 290 PULA 291 RTS
2 9 2 * llllll///llllll/lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllf llllllllllllllll*
293 COW-BIN-AHEX: ;SE LE PASA EN X,EL DATO A COMBERTREN B SE
41A2 [04]3C 294 PSHX 41A3 [O31 37 295 PSHB 41A4 [O3136 296 PSHA 41A5 [O61 BD4334 41A8 [O21 860F 41AA [O41 B72010 41AD [O61 BD4334 41B0 [O41 F72010 INICIAL DE DESPLEGADO 41B3 [O31 8F 41B4 [O61 BD41BF 41B7 [O21 17 41B8 [O61 BD41BF 41BB [O41 32 41BC [O41 33 41BD [O51 38 41BE [OS] 39
;LE PASA LA POSICION INICIAL DE DESPLEGADO ;EN EL LCD
297 JSR BUSY 298 LDAA #PDISON 299 STAADCLCD 300 JSRBUSY 301 STAB DCLCD ;MANDO DIR.
302 XGDX 303 JSR CBA 304 TBA 305 JSR CBA 306 PULA 307 PULB 308 PULX 309 RTS
3 1 o *lllllfffflllllffflflllllllllllllllllffllllfllllffllllllllflfffllllllfllffllllllfllllllllllllflllllllllllllllllllffllllllllllllllffffflll~
311 CBA: ;SUBRUTINA NUCLEO DE LA RUTINA COW-BIN-AHEX
41BF [O31 37 41CO [O41 3C 41C1 [O21 16 41C2 [O21 56 41C3 [O21 56 41C4 [O21 56 41C5 [O21 56 41C6 [O21 C40F 41C8 [O31 CE5012 41CB [O31 3A 4 1 CC [O41 E600
3 12 3 13 3 14 3 15 3 16 3 17 3 18 3 19 320 321 322
PSHB PSHX TAB RORB RORB RORB RORB ANLIB #$OF LDX #TABLA-HEX ABX LDAB 0,X
;SE LE PASA DATO EN A
41CE [O61 BD4334 41D1 [O41 F72012 41D4 [O21 840F 41D6 [O21 16 41D7 [O31 CE5012 41DA [O31 3A 41DB [O41 A600 41DD [O61 BD4334 41E0 [O41 B72012 41E3 [OS] 38 41E4 [O41 33 41E5 [O51 39
323 3 24 325 326 327 328 329 330 33 1 332 333 334
JSR BUSY STAB DWRLCD ANDA #$OF TAB LDX #TABLA-HEX ABX LDAA 0,X JSR BUSY STAA DWRLCD PULX PULB RTS
3 3 5 *llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllltlllllllllltlllllllllllllllllllJllllllllllllllllllllllllllllllll*
336 DELAY: ; RETARDO TIEMPO APROX 1 SEG.
41E6 [O41 3C 41E7 [O31 CEFFFT 41EA [O21 O1 41EB [O21 O 1 41EC [O21 O 1 41ED [O21 O1 41EE [O31 09 41EF [O31 26F9 41F1 [O51 38 41F2 [O51 39
337 PSHX 338 LDX#$FFFF 339 A7: NOP 340 NOP 341 NOP 342 NOP 343 DEX 344 BNE A7 345 PULX 346 RTS
347 *llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll*
348 PG8279: ;INICIALIZACION DEL TECLADO
41F3 [O31 36 41F4 [O21 8602 41F6 [O41 B72001 41F9 [O21 8634 41FB [O41 B72001 41FE [O21 86C1 4200 [O41 B72001 4203 [O21 86A0 4205 [O41 B72001 4208 [O41 32 4209 [O51 39
349 350 351 352 353 354 355 356 357 358 359
PSHA LDAA #PSETMODEKEY-LEFT STAA DC8279 LDAA #PPROGCLK STAA DC8279 LDAA #PCLDIS STAA DC8279 LDAA #HDISP STAA DC8279 PULA RTS
3 60 *llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll~
361 LIMPIADIS: ; LIMPIA DISPLAY 8279
420A [O31 36 420B [O41 3C 420C [O21 86Cl 420E [O41 B72001 421 1 [O31 CEOlFF 4214 [O31 09 4215 [O31 26FD 42 17 [O41 B6200 1
362 PSHA 363 PSHX 364 LDAA #PCLDIS 365 STAA DC8279 366 A6: LDX #$lFF 367 A5: DEX 368 BNEA5 369 LDAA DC8279
421A [O21 8480 421C [O21 8180 421E [O31 27F1 4220 [O51 38 4221 [O41 32 4222 [O51 39
370 ANDA#$80 371 CMPA#$80 372 BEQA6 373 PULX 374 PULA 375 RTS
376 *//////////11////1///lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll*
377 CHEK-DIS: ;CHEKEO DE DISPLAY DE 7 SEGMENTOS.
4223 [O31 36 4224 [O31 37 4225 [O41 3C 4226 [O21 8605 4228 [O61 8DEO 422A [O31 CE5000 422D [O61 BD42D7 4230 [O21 C610 4232 [O61 8DB2 4234 [O21 5A 4235 [O31 26FB 4237 [O61 8DD1 4239 [O31 CE5009 423C [O61 BD42D7 423F [O21 C610 4241 [O61 8DA3 4243 [O21 5A 4244 [O31 26FB 4246 [O21 4A 4247 [O31 26DF 4249 [O51 38 42412 [O41 33 424B [O41 32 424C [O51 39
378 PSHA 379 PSHB 380 PSHX 381 LDAA#$O5 382 A8: BSRLIMPIADIS 383 LDX#TONO 384 JSR MENSAJE-DIS 385 LDAl3#$10 386 A9: BSRDELAY 387 DECB 388 BNEA9 389 BSR LIMPIADIS 390 LDX#HOLA 391 JSR MENSAJE-DIS 392 LDAB#$10 393 A10: BSR DELAY 394 DECB 395 BNEA10 396 DECA 397 BNE A8 398 PULX 399 PULB 400 PULA 401 RTS
403 CHEK-DIS1: ;RUTINA OPCIONAL, PARA CHEKAR EL DISPLAY DE 7 SEGMENTOS.
424D [O31 37 424E [O41 3C 424F [O31 CE50D7 4252 [O61 BD42FO 4255 [O51 38 4256 [O41 33 4257 [O51 39
404 PSHB 405 PSHX 406 LDX #CHKDISP 407 JSR MENSAJE-DIS-CIR 408 PULX 409 PULB 410 RTS
4 12 CHEK-LCD: ;RUTINA PARA REVTSAR EL LCD
4258 [O31 36 4259 [O31 37 42512 [O21 8681 425C [O31 CE5023
413 PSHA 414 PSHB 415 LDAA#$81 416 LDX #CHKLCD
425F [O61 BD43 14 4262 [O21 C60F 4264 [O61 BD4334 4267 [O41 F72010 426A [O21 C6CO 426C [O21 8620 426E [O61 BD4334 4271 [O41 F72010 4274 [O61 BD4334 4277 [O41 B72012 427A [O61 BD4340 427D [O21 ClCF 427F [O31 270C 4281 [O21 5C 4282 [O21 817F 4284 [O31 270B 4286 [O21 81FF 4288 [O31 270B 428A [O21 4C 428B [O31 20E1
428D [O21 C6CO 428F [O3 J 20Fl
4291 [O21 86A0 4293 [O31 20D9
4295 [O61 BD4334 4298 [O21 8601 429A [O41 B72010 429D [O41 33 429E [O41 32 429F [O51 39
417 JSR MENSAJE-LCD 418 LDAB #PDISON 4 19 JSR BUSY 420 STABDCLCD 421 LDAB #$CO 422 LDAA#$20 423 H: JSRBUSY 424 STABDCLCD 425 JSR BUSY 426 STAADWRLCD 427 JSR DELAYLCD 428 CMPB#$CF 429 BEQH1 430 INCB 431 H5: CMPA #$7F 432 BEQH2 433 CMPA#$FF 434 BEQH4 435 INCA 436 BRAH 437 438 H1: LDAB#$CO 439 BRAH5 440 441 H2: LDAA #$A0 442 BRAH 443 444 H4: JSR BUSY 445 LDAA #PCLLCD 446 STAA DCLCD 447 PULB 448 PULA 449 RTS
450 *llll~lllllllllllllllllflllllllllllllllflflllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll~
451 PGLCD: ;PROGRAMACION DEL LCD
42A0 [O31 36 42A1 [O31 37 42A2 [O21 C604 42A4 [O61 BD4340 42A7 [O61 BD4334 42AA [O21 8638 42AC [O41 B72010 42AF [O21 5A 42B0 [O31 26F2 42B2 [O61 BD4334 42B5 [O21 860F
42B7 [O41 B72010 42BA [O61 8D78 42BC [O21 8601 42BE [O41 B72010 42C1 [O61 BD4334 42C4 [O21 8606 42C6 [O41 B72010
452 PSHA 453 PSHB 454 LDAB#$O4 455 Al: JSR DELAYLCD 456 JSR BUSY 457 LDAA #PFUNSET 458 STAADCLCD 459 DECB 460 B h E A l 46 1 JSR BUSY 462 LDAA #PDISON 463 STAADCLCD 464 BSRBUSY 465 LDAA #PCLLCD 466 STAADCLCD 467 JSR BUSY 468 LDAA #PMODESET 469 STAADCLCD
42C9 [O61 BD4334 42CC [O21 C60F 42CE [O41 F72010 42D1 [O61 BD4334 42D4 [O41 33 42D5 [O41 32 42D6 [O51 39
470 JSR BUSY 471 LDAB #PDISON 472 STABDCLCD 473 JSR BUSY 474 PULB 475 PULA 476 RTS
4 7 7 * lllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll I *
478 MENSAJE-DIS: 479
42D7 [O41 3C 42D8 [O31 36 42D9 [O61 BD420A 42DC [O21 8690 42DE [O41 B72001 42E1 [O41 A600 42E3 [O21 8181 42E5 [O31 2706 42E7 [O41 B72000 42EA [O31 O 8 42EB [O31 20F4 42ED [O41 32 42EE [O51 38 42EF [O51 39
; SE LE PASA EN X LA DIR. DE LA CADENA,CON TERMINADORESCRIBE APARTIR DEL INICIO
480 PSHX ;DISPLAY DE 7 SEG. 481 PSHA 482 JSR LIMPIADIS 483 LDAA #PWRDIS 484 STAA DC8279 485 J1: LDAA 0,X 486 CMPA#TER ;TERMíNADOR 487 BEQ J 488 STAA DD8279 489 INX 490 BRAJ1 491 J: PULA 492 PULX 493 RTS
494 *llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll*
495 MENSAJE-DIS-CIR: ;SE LE PASA EN X LA DIR. DE LA CADENA A DESPLEGAR
42FO [O41 3C 496 42F1 [O31 36 497 42F2 [O61 BD420A 42F5 [O21 8612 42F7 [O41 B72001 42FA [O21 8690 42FC [O41 B72001 42FF [O41 A600 4301 [O21 8181 4303 [O31 2709 4305 [O41 B72000 4308 [O61 BD41E6 430B [O31 O 8 430C [O31 20F1 430E [O61 BD41F3 4311 [O41 32 4312 [O51 38 4313 [O51 39
PSHX ;CON TERMINADORESCRIBE DE DERECHA A IZQUIERDA EN PSHA ;FORMA CIRCULAR DEL DISPLAY DE 7 SEGMENTOS.
498 JSR LIMPIADIS 499 LDAA #PSETMODEKEY-RIGHT 500 STAA DC8279 501 LDAA#PWRDIS 502 STAA DC8279 503 Awl : LDAA 0,X 504 CMPA#TER ;TERMINADOR 505 BEQAW 506 STAA DD8279 507 JSR DELAY 508 INX 509 BñAAW1 510 AW: JSR PG8279 511 PULA 512 PULX 513 RTS
5 1 4 *llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll llllllllllllll*
515 MENSAJE-LCD:
4314 [O31 37 517 PSHB 43 15 [O61 BD4334 5 18 JSR BUSY
;SE LE PASA EN X LA DiR. DE LA CADENA CON TERM. ;SE LE PASA EN A, LA POSICION DE DESPLEGADO EN EL LCD. 516
4318 [O21 C60F 43 1A [O41 F72010 43 1D [O61 BD4334 4320 [O41 B72010 4323 [O41 E600 4325 [O21 (2181 4327 [O31 2709 4329 [O61 BD4334 432C [O41 F72012 432F [O31 O8 4330 [O31 20F1 4332 [O41 33 4333 [O51 39
5 19 LDAB #PDISON ;ENCENDIDO DEL DISPLAY 520 STABDCLCD 52 1 JSR BUSY
522 STAA DCLCD ;PROGAMA DIR. DE DESPLEGADO 523 K: LDAB0,X 524 CMPB#TER 525 BEQK1 526 JSR BUSY
528 INX 529 BRAK 530 K1:PULB 531 RTS
527 STAB DWRLCD ;ENVIA CHAR A DESPLEGAR
5 3 2 * llllllllllllllllllllllllllllllllllllllllllllllliilllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll~llll*
533 BUSY: ;PARA ELFUNCIONAMIENTO DEL LCD
4334 [O31 36 4335 [O41 B62011 4338 [O21 8480 433A [O21 8100 433C [O31 26F7 433E [O41 32 433F [O51 39
534 PSHA 535 A3: LDAADRDBUSY 536 ANDA#$80 537 CMPA#$OO 538 BNEA3 539 PULA 540 RTS
542 DELAYLCD: 543 ; RETARDO TIEMPO APROX 15 mSeg PARA EL LCD
4340 [O41 3C 4341 [O31 CE3BOO
4345 [O31 09 4346 [O31 26FC 4348 [O51 38 4349 [O51 39
4344 [O21 o1
552 CHAR-LCD:
434A [O31 37 434B [O61 8DE7 4341) [O21 C60F 434F [O41 F72010 4352 [O61 8DEO 4354 [O21 C6CC
de desplegado 4356 [O41 F72010 4359 [O61 8DD9 435B [O41 E600 435D [O41 F72012 4360 [O41 33 4361 [O51 39
;SE LE PASA EN X LA DIR. DEL CHAR A DESPLEGAR ;EN EL LCD
553 PSHB 554 BSRBUSY 555 LDAB #PDISON 556 STABDCLCD 557 BSRBUSY 558 LDAB #$CC ;8 ;position
559 STABDCLCD 560 BSRBUSY 561 LDAB0,X 562 STABDWRLCD 563 PULB 564 RTS
5F00 566 ORGASIRQ ;RUTiNA DE ATENCION A INTERRUPCION
567 568 INT-IRQ:
5FOO [O41 3C 5F01 [O31 37 5F02 [O21 C640 5F04 [O41 F72001 5F07 [O41 F62000 5FOA [O31 D704 5FOC [O21 C480 5FOE [O21 C180 5F10 [O31 2711 5F12 [O21 C600 5F14 [O31 D706 5F16 [O31 D604 5F18 [O21 C47F 5F1A [O31 CESOFA 5F1D [O31 3A 5F1E [O61 BD434A 5F21 [O31 2006 5F23 [O21 C601 5F25 [O31 D706 5F27 [O31 20ED 5F29 [O41 33 5F2A [O51 38 5F2B [12] 3B
569 PSHX 570 PSHB 571 LDAB #PRDFIFO 572 STAB DC8279 573 LDAB DD8279 574 STAB CODIGO-TECLA 575 ANDB#$80 576 CMPB#$80
578 LDAB#NO 579 STABVCNTL ;PONECNTL=O 580 B2: LDAB CODIGO-TECLA 581 ANDB #$7F ;QUITA BIT CNTL 582 LDX #TABLA-TECLADO 583 ABX 584 JSR CHAR_LCD 585 BRAB3 586 B1: LDAB #SI 587 STABVCNTL 588 BRAB2 589 B3: PULB 590 PULX 591 RTI
577 BEQ B1 ;SI CNTL = 1 -> B1
;PONE VCNTL = 1
592 *lllflflfllfllllf~fllllflllllllllllfllllllllfllllllllfllllllllllllllflllflllllllllllllllllllfllllllllllllllllllllllllllflflllllfllllfflll~
Symbol Table
A 401E Al 42A4 A10 424 1 A3 4335 A4 4344 A5 4214 A6 4211 A7 41EA A8 4228 A9 4232 AJUSTE-TONOS 4032 ASIF2Q 5F00 AW 430E A w l 42FF B1 5F23 B2 5F16 B3 5F2 9 BUSY 4334 CBA 4 1BF CHAR-LCD 434A
CHEK-DIS 4223 CHEK-DIS 1 424D CHEK-LCD 4258 CHKDISP 50D7 CHKLCD 5023 CHKMEM 5082 CHK-W-EXT 40A8 CHK-TONOS 4082 CODIGO-TECLA 0004 COW-BIN-AHEX 41A2 COW-HEX-ADEC 4168 DC8279 200 1 DCLCD 2010 DD8279 2000 DELAY 41E6 DELAYLCD 4340 DRDBUSY 201 1 DRDLCD 2013 DWRLCD 2012 GT 1 4190 GT2 4173 H 426E H1 428D H2 4291 H4 4295 H5 4282 HDISP OOAO HOLA 5009 INI-RAM1 4005 INI-RAM2 6000
INTIRQ 5F00
J 42ED J1 42E 1 K 4323 K1 4332 KL 408E LIMPIADIS 420A LIM-ERRORAM 0006 MEMEXT 5093 MEMLIME 5071 MEMMAL 504F MEMOK 503E MEMRAM 503 1 MEM-XMAL 5060 MENSAJE-DIS 42D7 MENSAJE-DIS-CIR 42F0 MENSAJELCD 43 14 NO O000 OP 4046 PCLDIS ooc 1 PCLLCD O00 1 PDISON OOOF
INI-RAMI O000
IRQVEC FFF2
PFüNSET 0038 PG8279 4 1F3 PGLCD 42AO PMODESET 0006 POSOUNDl 50C6 POSOUND2 50B5 POSOUND3 50A4 PPROGCLK 0034 PRDFLFO 0040 PSETMODEKEY-LEFT 0002 PSETMODEKEY-RIGH O0 12 PTO-SONIDO 2020 PWRDIS 0090 PWRDISX 0080 SI O00 1 STACK 5ec0 TABLA-HEX 5012 TABLA-TECLADO 50FA
TER 008 1 TONO 5000 VCNTL 0006 VSHIET 0008 w 1 4105 w11 4 14F w 2 413F w3 40EA w 4 4129 w5 40FA W6 414A WAKEUP FFFE
TAh4-RAM lFFF
14 \5
k i O n
I I l l I I t I I L I I I
BIBLIOGRA FlA
- ELECTRONICA TEORIA DE CTOS. BOYLESTAD NASHELSKY, DE. PENTICE HALL, 1987.
- MEMORY HANDBOOK INTEL 1990
- MICROCONTROLLER HANDBOOK INTEL 1985
- THE MOTOROLA MC68000 MICROPROCESSOR FAM1LY:ASSEMBLY LANGUAGE, INTERFACE DESIGN, AND SYSTEM DESIGN THOMAS L. HARMAN, LAURA LAWSON ED,.PRENTICE HALL