You are on page 1of 38

REPORTE DE PROYECTO DE ELECTRONICA II

I

CERRADURA ELECTRONICA POR INFRARROJO CON UNA BASE DE DATOS EN EL 8031 /

MATRICULA: 87222708

PROF. ASESOR: GONZALO DUCHEN

FECHA DE ENTREGA: 11-1242
U.A.M.I.

INTRODUCCION

Durante mucho tiempo la utilización de aparatos o dispositivos de seguridad tanto en el hogar como en las empresas ha sido de vital importancia; ya que estos permiten a los usuarios de dichos dispositivos mantener guardado o en secreto documentos o cosas en general. A medida que la tecnología ha avanzado en dicho campo los dispositivos son cada vez más seguros y con una mayor capacidad de dar al usuario la eficiencia deseada.

a Con la llegada de los avances en el campo de la Computación, la seguridad, la eficiencia y l
confiabilidad del usuario de permitir el acceso a un determinado número de personas a un lugar donde se encuentren documentos o cosas de mucho interes económico, polltico o personal se ha vuelto cada vez mayor. En la actualidad existen muchos dispositivos optoelectrdnicos muy utiles para el desarrollo de dichos dispositivos, a saber: laser (de diferentes tipos),leds (infrarrojos), transistores (fototransistores),triacs,scrs,etc; los permiten enviar información de un lado a otro, o activar otro circuito a una determinada fiecuericia o simplemente abrir una cerradura Pero esto ligado a las ventajas que ofrecen el campo de la Computación lo hacen mas poderoso ya que por medio de la computadora se pueden verificar muchos mas datos que los que un circuito solo podría realizar. Gi-acias a estos avances existen hoy dfa, cerraduras por clave de un cierto número de bits o bytes, por sonidos, utilizando las huellas dactilares de la mano del hombre, etc,

PLANTEAMIENTO DEL PROYECTO

El planteamlento del proyecto estuvo basado en la necesidad de desarrollar una cerradura
electrónica por infrarrojo con una base de datos con el 8031 (microprocesador) con la finalidad de que sólo un determinado número de personas pudiera accesarla.uti1izando su número de empleado. Se suponen los siguientes parámetros: a) Proponer y constuir un transmisor que contenga la información requerida para poder accesar a la cerradura. b) La construccibn de dicho transmisor debera tener un dispositivo infrarrojo capaz de transmitir la información del empleado hacia la cerradura con una distancia de aproximadamente 1 metro. c) Proponer y construir un sistema receptor para almacenar los datos que el dispositivo de infrarrojo en este apartado detecte para ser enviados ai 8031 para su busca en una base de datas previamente instalada en el kit del 8031. d) Trabajar con una frecuencia baja de transmisión de alrededor de 2 KW

.

e) E sistema receptor deberá dar un aviso al 8031, para que este lea del dispositivo de l almacenamiento los datos recolectados e ir comparándolos número a número con la base de datos.

9 Una vez

hecha la busqueda en la base de datos si existe éste en dicha base se abrirá la

cerradura mediante la utilización de una señal que generará el 8031 y un circuito de potencia que se encargará de abrir la cerradura.
g) Terminados los pasos anteriores ( del c) al 9 ) el 8031 deberá dar un reset al sistema de

recepcibn.

con el mismo contador que direcciona la memoria como este se para un ciclo de reloj posterior al último dato recibido la cuenta quedará en loo0 (8 binario) este número con el bit más . se aseguró que el reloj del sistema (CLK SIST) de transmisión comenzará en segundo flanco de subida del reloj general (CLK GRAL) y esto fue posible gracias a la utilización de dos: flips flops tipo D (74LS74).dos contadores (74LS163 y 74LS191) donde el primero se encargó de leer la información y el otro en la etapa final de transmisión se encargó de parar el sistema justo un tiempo después del Último dato que se transmite. este registro simuló el ciclo de trabajo de transmisión y fue de ocho ciclos de reloj. b) Modulo de Recepción: este modulo esta basado en la verificación de los bits de inicio de transmisión 11 que se confirman a través de dos flips flops tipo D (74LS74).DESARROLLO EXPERIMENTAL El desarrollo experimental esta basado en dos aspectos: I Hardware ) 2)Software I Hardware: esta dividido en dos modulos: ) a) Modulo de Transmisión b) Modulo de Recepción a) Modulo de Transmisión: este modulo fue construido a base de una memoria Eprom 2732 que simuló a una memoria PAL. Para enviar la información en forma serial se utilizó un registro paralelo serie (74LS105) cuyas señales de carga en paralelo (SWLD) y transmisión serial de los datos (CLK INH) fueron controladas a través de un registro de corrimiento serie paralelo (74LS164). permitiendo esto que el sistema de transmisión comienze a trabajar en un verdadero ciclo de reloj y no con algun ruido o brinco que hubiese podido dar el reloj general (CLK GRAL). En la etapa final se encuentra otro contador (74LS191) que se encarga de parar el sistema un ciclo de reloj posterior a último bit de dato recibido. Además. una vez verificados los bits de inicio se comienzan a recibir los bits de datos que se almacenarán en una memoria RAM estática (74LS170 o 74LS89) esta a su vez esta direccionada por un contador (74LS191) que se activa bajo la señal de un registro de corrimiento (74LS164). este registro de corrimiento que representa para el sistema el ciclo de trabajo (8 ciclos de reloj) solo se activa si los bits de inicio se verifican correctamente.

0 enviará la señal hacia el circuito de potencia que abrirá la cerradura y este dura un cierto l tiempo activado (del orden de segundos).significativo invertido activará la señal de interrupción O del 8031 para indicarle que debera comenzar a leer los datos de la memoria RAM estática para compararlo con la base de datos almacenados en el mismo. A mismo tiempo se limpiará el sistema de recepción para esperar nuevamente la transmisión de bits de datos que se compararán con la base de datas del 8031. El puerto 1 tiene 8 bits y los 3 bits mas bajo leerán un paquete de datos luego el acumulador A cargará el primer paquete de 4 bits que tenga el puerto. . tomo en el acumulador el paquete y lo convierto en hexadecimal utilizando una tabla que contiene dicha transformación dependiendo de donde salte el data pointer (DFTR) del programa. 2)Software:este comprende la utilización del puerto serie del 8031 y la INTO. Cuando se verifica la comparacibn de todos los paquetes de información el P l . Cabe mencionar que la información es un total de 32 bits en paquetes de 4 bits almacenados en la memoria Eprom por cada dirección de la misma. El programa se inicia justo con la etiqueta INTER en la direccion 17D3H debido a que cuando M la I O se activa el monitor salta a dicha dirección o etiqueta para atender la interrupción O [INTD) y realizar los pasos necesarios para llevar a cabo la atención de interrupción. Una vez que el control salta a dicha dirección comienza por limpiar el registro I (registro de control de interrupciones) y luego se limpian los registros o puertos E que se utilizardn para la ejecución del programa. desde la oo00 a la 0111. ya sea por nivel o por transisibn. debido que la información es binaria y con lo que se debe comparar esta en Hex. Y además el sistema receptor de infrarrojo cuenta con un filtro pasabandas para dejar pasar todas las frecuencias imenores a 2 KHZ.

Asesor: Prof. I .Pl 17F4 E590 17F6 C4 SWAP A 17F7021837 LJM.@DPTR 17FA E .7 1707 C2A8 CLR IE. 7 .#00H 1 E 750300 71 MOV B3mOH MOV DPTRJIM9T 1 E 901 830 74 17E7 7400 MOVA.Tema: Cerradura Electr'nica por infrarrojo con una Base de Datos en el .Matricula: 87222708 .0 1709 750000 MOV BO#OOH CLR P1 17DC C290 17DE 750200 MOV B2.lW . BINHEX O BUSCA: MOMA.Autora: Sikana E. Gomab Duchen .#OOH 17E9 E500 C O W : MOVABO 17EB F590 tvloVPlA 17ED 0500 INC BO 17EF 121818 L W L CLK 17F2 7400 MOVA#OOH MVA.A V O C E T SYSTEMS 8051 CROSS-ASSEMBLEH . 8031 17D3 ORG 17D3H 17D3 C246 INTER: CLRP2. Errigo G.6 l7D5 C2A7 CLR P2.VERSION l.

6 181D 121823 LCALL PAUSA 1820 C2A6 CLR P2.COW1 1800 A3 INC DPTR 1801 0502 INC 82 1803 80E4 SJMP c o w 1805 E502 C O W 1: MOV4B2 1807 850303 CJNE A.6 1822 22 RET 1823 750400 PAUSA: MOV B4.#OOH 1826 750500 PAUSA1:MOV B5.1OM SOURCE FILE M INFRA-TXT : 17FB 0503 INC 83 17FD B50105 CJNE A.INC1 18OA 021832 LJMP ABRE 180DA3 INCl: INC DPTR 180E 0503 INC B3 181O BBO8FA CJNE R3Jir08H.VERSION 1.#CHANGE 1843 73 JIvP @tDPTR 1844 22 RET 1845 021863 CHANGE: L J M P CERO 1848 021869 LJMP UNO LJMP DOS 184B 02186F 184E 021875 LJMP TRES 1851 O21878 LjMp CUATRO 1854 021881 L M CINCO 1857021887 185A 02188D L M SEIS LJMP SIETE .7 1834 121823 LCALL PAUSA 1837 75F001 BINHEX: MOV B m 0 1 183A 95FO SUBB A. P A U W 182C D504F7 DJNZ B4.AVOCET SYSTEMS 8051 CROSSASSEMBLER .B3.Bl .PAUSAl 182F 22 RET 1830 B4 1831 DC UAT: DB 87222708 DB 89902300 1832 D2A7 ABRE: SETB P2.neOOH 1829 D505FD PAUSA2: DJNZ B 5 .INC1 1813 C203 CLR 83 1815 C202 CLR B2 1817 C200 CLR B O 1819 80CE SJMP cow 181BD2A6 CLK: SETBP2.B 183C 75F003 MOV BW3H 183F A 4 MUL AB 1840 901845 MOV DPTR.

#lH LJMP BUSCA 186C 0217FA 186F 750102 DOS: MOV Bl.#OOH L M BUSCA 1866 0217FA 1869 750101 UNO: MOVBl.1W SOURCE FILE NAME: INFMTXT 1850 021893 1860 021899 Lsvlp OCHO LYvlP NUEVE 1863 750100 CERO: MOVBl.#O2H 1872 0217FA LJMP BUSCA 1875 750103 TRES: MOV B1m 3 H 1878 0217FA LJMP BUSCA 187B 750104 CUATRO : MOV B1.AVOCET SYSTEMS 8051 CROSS-ASSEMBLEH .VERSION 1.iVMH LJMP BUSCA 187E 0217FA 1881 750105 CINCO: MOV B1.#05H 1884 0217FA LJMP BUSCA 1887 750106 SEIS: MOV 81 .#08H L M BUSCA 1896 0217FA 1899 750109 NUEVE: MOV B l m 9 H 189C 0217FA LJMP BUSCA 189F 32 O000 RET1 END .#06H LJM) BUSCA 18üA 02 17FA 1880 750107 1890 0217FA SIETE: MOV B l m 7 H L M BUSCA 1893 750108 OCHO: MOV B1.

1OM SYMBOL TABLE -- ABRE 1832 B OF OO O000 B O B1 O001 82 0002 83 0003 84 0004 B5 BINHEX BUSCA CERO o 0005 1837 17FA 1863 CHANGE 1845 CINCO 1881 CLK 1818 17E9 COW'I 1805 ClJATRO 187B DOS 186F I E O W INC1 1800 INTER 17D3 COW M4T 1830 PAUSA2 1829 NUEVE 1899 SEIS 1887 OCHO 1893 SIETE 188D Pi O090 TRES 1875 P2 OOAO UNO 1869 PAUSA 1823 PAUSA1 1826 .AVOCET SYSTEMS 8051 CROSS-BSSEMBLER SOURCE FILE NaME: INFMTXT -I- .VERSION 1.

O . ext. esta disenado para faciatar al usuario el decarroib .Permite cambiar la funcion que atiende la interrupcion externa 1.. . y 2 bits en el PSW. Garcia de Santiago 'ktor2: Gabriel So6s Oba M e d o Perez Amador . son: .Proposit0 del programa: Monitor para el kit 8031 Ambiente: Ensamblador 8051 . sob 16 bytes contiguos en su parte alta.HEX directamente en M . Se recokcaron las direcciones de atencion de interrupcion :. : A grandes rasgos. Version 2. Por otra parte.0: Se redujo la tabla de estados del automata.(c)Klaus Systems Inc. ocupando . Se soporta el uso de letreros en codigo ASCII.01 . la reinicialiracion del sistema. es sensar un sob bít (INTTEC). Se permite usar el puerto serie de ia PC para cargar bs archivos . :. bs errores al teckar ya no provocan . las principales diferencias con la version 1 . - . v Optimua el uso que hace el monitor de Rpfvlinterna. Version 3.. en la parte alta de la memoria RAM. :.Fecha de creacion: 15 feb 1989 . y ejecucion de programas. : La forma de determinar si ha ocurrido una interrupcion por teclado . Se efimino el estado de error.Fecha de ultima modificacion: 23 now 1992 * Displays entrada izquierda para evitar parpadeo Permite cambiar atencion int. Soporta el uso de Las teclas SHIFT y CiRL en el teclado. . . . .N o r l : Luis S. . 1 I I . I - .

FSC] _ I _ _ R E C : Leer puerto serie . exiio com REC > ED00 error com.. Ed6 actual Entrada Eda siguiente ED04 ED04 ~ [numl r31 e -- ED04 ED05 ED04: Lee dir 2 nibbles ~ ~ 4 1 0 4 ___---_E D 0 2 > .

-> 4 : Escribe DATO. DSPDIR4. . guiones F3 nn d . Ant(tec) ->!jig: kcion Display .0000 .nnnn. O (F3) ->4 DlRL <-O F3 O 0 F3 nn . O (F4) . DSPDIR4 F2. Formato: .-1 1 (Fl) -> 3 LEEEXT. DlRL <-O 1 (num) -> 1: RECDIR4. . I F2. ..nnnn.-O (Fl) -> 1 : DIRH <.dd 2 (F2) -> 1 : Escribe DATO. DSPDIR4.nnnn.nnnn. . . DSPDAT F2.dd 2 (num) -> 2 : RECDAT.nnnn.nnnn.nnnn. F2. 5 (num) -> 4 : RECDIR2.-' 2 LEEINT. 1(num) -> 1 : RECDIR4. lNCDIR4.> O : Ejecutar DIR4 CE P-ni-c klnaiis A s mamnria nwiarrtii. F1 Mostrar memoria externa: - . .nnnn. . 4 (num) -> 4 : RECDIR2. . DSPDAT F4 nn dd F nn dd 4 2 (num) -> 2 : RECDAT. DSPDlRi! 4 (F4) . DlRL <-O . F4 .! 4 (F3) -> 5 LEEINT. .dd F1. . 5 (F3) .dd 3 (Fl) -> 3 : iNCDIR4. DlRL <.O F4 O0 -F4 nn 4 (num) 3 4 : RECDiR2. DSPDAT . .nnnn.-3 (num) -> 1 : RECDIR4. F5 Ejecutar programa de usuario: - .-guiones : F3 Mostrar memoria interna: . INCDRR2. DSPDIRZ. LEEINT. DSPDAT 2 (F4) . F2 . . .Cambiar memoria interna: . O (F5) 1 DIRH <. DSPDAT F1 .-> 5 : INCDIR2. DSPDIR2. DSPDIR.-O (F2) 3 1: DIRH <-O. DSPDAT F2. DSPDAT - - -- -- I .O 1 (num) -3 1: RECDIR4. LEEEXT. DSPDAT F3 nn dd F3 nn .O. DSPDIRÍ!.-F5. DSPDIR4.-> 4 DIRL e.-- : ' 1 (F5) -. F4 nn -- guiones -- . DSPDIR4 F . DSPDIR4 .a> F5.O000. guiones F1.OOOO. I F1.Cambiar memoria externa: .1 (F2) -> 2 : LEEEXT.O.

Contenido de meinoi7a modificable por el .DO-D7: Ibuffers en WI lw interna con e Iu r l .l .Bit global.Contiene el codilgo die l funcion en curso a .¡ E interno ai monitor.Indic#a estado actual del sistema el (F6) 0072 0073 0074 usuario 0075 CR NL E)IRH DATO 0076 FUNCION EQU 75H EZSTllDQ EQU 76H .HEX p o puerto serie or F7' CArgA IF{ (ESC) -> E : Paro manual de cclinunicacion F7 Error IY -:> E : Si error eii comunicacion F7 Error I S -> O : Regreso automatico s:i éxito I (ESC) -> O : Regreso manualsi error E Ci 0070 0071 UIRLF CIIRkIF EQU 70H EQU 71H EQU 72H EQU 73H EQU 74H . .Parte aka de la direc:c:ion externa . para F6. .Direction interna o pítrtt? baja de la externa . . F i Cargar archivo . no modificables por software .Indica que se ha putsado una tecla .Indica que direccion es destino para F6 . . utiles ai usuario 0077 0078 0079 007A 0078 007C 0070 007E TECIA D O C)1 D2 D3 D6 I34 I35 EQU 77H EQU 78H EQU 79H EQU 7AH EQU 7BH EQU 7CH EQU 7DH EQU 7EH .Parte tiaja de la dirc:ccion fuente externa .El vabr de la ulinia tecla pulsada .Parte aü. en el PSW OOD 1 INlTEC EQU PSW.5 . uti1al usuario.a de la diremion fuente externa (F6) . condenido de b (displays o 007F D7 EQU 7FH .Bytes gklbales.Direcciones de atencion de interrupcion.. F'I ESPerA (FT) -> R : Leer .HEX en RAMerterna: - . en el PSW 00D5 FBDIEST EQU PSW.

Mostrar memoria interna .8279 EQU MlüDiL2K E Q U DINCLK.Leer programa del puerto serie y almaoenario .Restablecer sistema . O 1 O lnc x Dir Dir Dir :1001OOOOB .Ejecutar programa de usuario .Nuevas direc ciories de atencion de interrupcion en RAM externa.Direction de datos 3801H .Dirr!ci:ionl de inicio de la memoria RPM INIRPM EQiJ ?IOOOH . 002BH .Modificar memoria interna . 1 0 O inc Dir Dir Dir Dir 11001101B . ATTIMI ATEXT'I AlTMlI ArSE:Ri ATEXTO EWll 17EBH EQtl 17F3H E Q U 17DBH EQII 17E3H EQIJ 17D3H .Bit del Status: Dispiay no disponible .Coiistantes para b comunicacion serial OCi87 PCON scisambbdor EQIJ I$XH .Dirc!ccioni auxiliw ein RPM para üamar a programas de usuario 1 ?FE) . O O 1 Diu Div Div Div Div OlOOOOOOB .Registro PCON.'. O (I O Dsp Dsp Key Key Key OiOllOIOOB .Mostrar memoria externa .Direction de control iIOOOOOOOB . EQLI RDFIFO EQlJ WROINE: ECIU CLRALL E Q U 31800H .Constantces para el 8279 DAT8'2T9 EQII CiRL. no conocido par et .Timer 1 en recarga para generar baud 0020' r 4 a hrK)DTlF7 E 8 U 20H . 1 'I O CID B E BIC CFF CAI CtCiiD7 DSPUNAV EQU '7 .Dirtmior de inicio del programa monitor en R O M 3. teclas de funcion O010 OCif 1 OCll2 0013 E!X F'I F2 F:l F 4 Oí114 0015 0016 0017 F!i Ffi F7 EQU EQU EQU EQU EQU EQU EQU EQU IlH 121.Modificar memoria externa ..Copiar bloques de memoria externa .1 1411 1OH 13ii 15H 16i-i 17H .E IhICIQ EOi.Codigos para las.

y la ejecuta S M ESPERA 0036 755880 LIS10 : MOV IEJY80H . ORG INTEXT1 L M ATEXTl .#OOH .Determina accion a seguir. interrupcion externa por nivel n A A 3 C'IQQEE ANI CPnN mFFU .IniciaQa el sistema ESPERA: ACALL LEETEC .atendida por el monitor OO OB O O 0217DB OB 0013 0013 021iE3 0018 OOlB 0217EB ORO INiTMl .Espera tecla ACALL AUTOMATA .Interruption timer 1 L M ATTMl 0023 00230217F3 ORG INTSERI .Inicio del programa . alta de la memoria RPM externa.Inhihn rrrnnpinn crrial . excepto la externa 1.Interrupr:ion puerto serie LJMP ATSERI 002B 0028 75812F 002E 1136 0030 1178 0032 1 1 82 0034 SOFA ORG INICIO MOV SP.#OOH .Apaga timers. para que puedan ser manejadas .Prioridad baja para todas las interrupciones 003F 758800 MOV TCON. Las direcciones de atencion de intsrrupcion se mapean a la parte . por elprogramador.Interrupc:ion externa O L M ATEXTO QRG lNiTM0 . 0003 0003 021 7D3 ORG INTEXTO .Inicici del stack en 30H ACALL LISTO .Banco de registros O 003C 758800 MOV IP.lobits.Interrupc:ion externa 1 (teclado).#ZFH .Caracteres de control O003 0006 0004 ETX ACK EOT tüU EQU EQU EQU WH 03H 06H 04H O000 O000 012B ORG O O H OO AJMP INICIO . bps variable .Inhibe interrupciones 003953DOE7 A N L PSW.Intcrrupcion timer O LJMP ATTlMO .OM0 uuu2 MODSERF7 EQU 40H StX .#OETH .

'.í Mi\/ TECi.Apunta a la direccion de datos del 82'79 (106A EO R Ft R) O068 64CO negativas) O06D F577 006F D2Di1 0071 DO83 0073 DO82 0075 DOE0 0077 32 iM0LC.#LWLEDO ihhD kñL\+IiCiTR .Permite interrupcion 007C 30E)lFD JNB INTI'EC .#DAT8279 .A SElB INT1'EC .'. I. y la accion ..L A# 1 oIC@OGiOB .- i3iICi9 4.indica que hubo interrupcion del tecbdo RETI P O P DPH P O P DPL POP ACC :.complementa SHIFT y CTRL (activas .A. 'O'. la longitud de A M P o085 9oooar9 MüV DPTR.Iniciaha INiTEC 007A D 2 M SETB EX1 .@t:iPTR .escribe el valor presionado en TECLA . 0082 E576 O084 23 nnnn 71 AUTOWTA: MOV Et.Espera a que cambie el vabr de INlTEC 007F C24pi CLFt EX1 0081 22 HET . IS'.lESTADO RL A ji4fultiplica estado por 2 . con b cual se restablece la kgica de interrupc:iondid teclado. leyendo de su direccion de datos el codigo dl? la tecla presionada. a reahar.' * ***** * * t ** *ir 4 * i t t t 4 t t : 7bI * *>:r t * * ** * * * 4 ******* 4 * 4 * 4 * t * * * * 4 * * * * 4 + * * * * r .O .95:354 LETLISTO: DB i3i35ü 4FX2E2E t* DI3 'i'.C4.Y A. 7' 'I1. L E E T E C espera a que acuirra una interrupcion del tecbdo 0078 C2Di LEETEC: CLR IIW1'E. I. AT8279 responde a a iritsrrupcion 'del 8279.C .lee codigo del FIFO (SHFT CTRL S S S XR. '. AUTOfvIATA se encarga CIS determinar el siguiente estado. AT82791 PUSH /iCC PUSH DPL i3065 CO8 ? i PUSH DPH 13061 COEO 0063 COG 2 13067 90:)800 M3'ü DPTK. .

W4*.EDOOC W 01C8 AMP DIR4 O 841604 EDOOC: CJNE AR6..DIR4A .F6 pide direccion de . I341402 0085 B41302 EDOOD: CJNE -3.HEX OOC2 71CC O O C 4 0136 AJhW DIR2 .F5.#F7.F2.en el buffer en RPM interna A W L PONFUNC %riega numero de funcion en el MOV A.segun el vabr de F6üEST hlm\f nn MAIU OOCF E575 OODl B41609 0004 75788E 0007 300503 nnnn 7 ~ 7 9 a 3 .FUNCION CJNE A.EDOOE .Carga mensaje F .Si es F1.Si Rincion es F6 MOV D . Ei:pi!ra una 'tecla de funcion.EDOOB OW7 OlC8 AJMP DIR4 O I341502 EDOOB: CJNE AN51. .EDOOG . E300: Oü95 757300 009s 757200 MOV DIRH.#FB.OOOO.aexterna (4 nibbles) EDOOA: CJNE A#F2.DIR4A .EDOW .F4 pide direccion de O B 01F4 OD OOBF 84 1704 .Iriiciaika la direccion de memoria WIOV DlRL.mernoií.EDOOF AJMP DIR2 EDOOF: CJNE A.--' M A L L hEM4BUF .#OOH .EDOOD W OOBl C2D5 CLR FGDEST .Si es F7 salta a recibir programa A W L RECHEX AJhP LISTO EDOOG: AJMP OTRO OOC6 2109 segundo display OOC8 9000E3 OOCB 5174 OOCD 11EB DIR4: MOV DPTRflETDIR4 . todas las funciones.interna (2 itibbks) EDOOE: CJNE A.#00H O098 E!577 OO9Ci IF:!57ti N O A.Si es F3.WSEH .indica si direccion fuente o destino. y dependiendo de ella pasa al siguiente estado.Para F6 ademas indica direccion fuente 0083 OlC8 AJMP DlR4 o fM1202 w o: w memoria 0088 01F4 OOBA. O JNB F6DEST.TECLA PV W V FUNCIOW44 o 11C8 w1 009F UJ1 102 AJMP DIR4 CJNE 1 - .

con las : F i . . A.4LL DSPDlf74 .OF:FH.F6.Agrega numtiro de Xuncion en el segundo idisplay OOFEI 51!3!i AcAs.Carga mensaje 'F O0 --' OOFl 5174.#Of:H . verifica que sea igual qui: b hincioni con qire se entro a e!.i S tecla es numero.7141' IWW UNC: h'0V A.#€SIC.ETDIR2 . Psrmsint!ce en este estado mientras la tecla presionada sei#im numero..L BUF. En caso de lec4 de funcioni .i de EDOO.I menos que seta ESC:.#.9vlientras sea !numero recorre i a . y si es as¡ ejecuta la íiccioii asociada.L IlllhiW3UF . iniciaka el .MiSP .Emha buffer idisplays i OioIFC) 7571304 olio0 22 R€T MOV ESTADO$O4 . deweke O en O 1 1 7005 11 0113 51CiC: direcc ion O 1 1 5 51F8 n q + T 33 JNZ EDOlA ACAI-L fqECDIiR4 PET . t ** * * 4 ** * * * 1 * * * * 1 * * 1 * ** * * * * ** * * * * * i OOF4 9001O 1 IDIiR2. funcictnes ECIO 1 Leer dirsccion de 4 nibbles.1: O --' 0 O109 H411(1i02 sidem.F2.Dewitbe en ACC el codigo 7seg de ese Mueve a D6 respeiando elpunto decimal en O F I 22 OC FIET . Si es diferente la ignora.lSTi0 0TP:Ol: RET .Dc otro inodo la iijnora A1MF' I. Sf! 8eg.F5..AC.OCOI-I O 1 COITBFBf: O5 DI3 OCiJH.con la cual reinicializa el sistema.en el buffer cii RPM interna OOF9 1 1 1 153 W b L PONFIJNC . ACAL. L A72.OBF'H .Toma el numero de la funcion N i 1 .Písa 3 ¡eel direcimr de 4 nibbles niitnilcro OOF1 52 Iii: DlfF4 i10Ei3 Eti7!5 OiIElI 5401: UíJEf.y la miuestra en displays ii .FIJNCiON ANL.EG M L DA 6 .Pasa 51 leer ldireccion de 2 nibbles O 1O1 :3EFFFFCCi LEI'DIRZ: DB 08Eti.* *** > b* b * *f (i* 4 4 6 *ii * * * * t * * * t t 4 1.OfFH OBFH.a O'lOC O l X i OlDE 22 WIRC): CJNE A. ACC 010F 51C)i' EDOI: ACAi-L ESDIGHEX .OTRO'I $3 tecla es ESC.OI~FH. h40V DPlR.te estado. y pasa ai siguíeiite estado.

DIRL 0 1 E '857270 3 MOV DIRH.iniciaiza DATO a O y b muestra ..Codigo de instruccion L W L I'víOVX @DPTRA INC DPTR MOV A.Si es F6 y F6DEST indica que dir E O 38 :20D5 1 ECKI 1 1 O es fiueiite. N A.y pasa a leer nuevo dato 1I 3 7 K&t. LEEtIXT ~iCAií. O158 9017FB EJECUTA: h40V DPTR. DSPDA? .OOOO. cthca h instniccion de retorno al monitor.Si es F5 ejecuta el programa de ucuíario 0136 . y .#O3 .EDO 1D .2156 tlUMP EJECUTA D: .#)OH : .#OOH .-d' 0149 0lC8 AJMP DIR4 es destino 0148 757400 014E 715F 0150 757602 0153 22 0154 2109 .muestra el contenido MOV ESTADOpr(l2 .7 122D5 destina .lH .y muestra mensaje 'Fn. terminia en condiciones normales.ED6 18 .limpita la direccion 014.DIRH .#INWX &unta en R n l 4i 0159 7412 0150 F O DPTR al inicio auxiliar 0150 E573 programa 015F F O 015CA3 MOV A # 2 .L.almacena la direccion fuente O130 857371 MOV DIRLF. h x e r ~ i i i a Hamada a b direccion de inicio del programa de usuario. MOV DIRHF. regresa el sistema al estado inicial.#FS. D3 :J E O133 I341502 E 1 1 C: C.IE3 FGDEST. ECiO 1E h!OV DATO .be el contenido de RAM externa 4CALl.i 3 iH2B 7149 012D 715F 01LiF '757602 o 32 22 1 :ke el contenido be W e#ttrria d LEEtXT WAii. t>SF''>AT .Si es F6 y FGDEST indica que dir ACALI.1 757300 O144 757200 MOV DIRL#OOH SETB F6DEST . DSPDAT MOV ESTADO.pasa a ieer numero de nibbles a copiar EqJEUUTA coloca en la direccion auxiliar en RPM (INIAUX) el codigo para .EDO 1 .Si es F1 ..4DOi.FGDEST indica que siguiente dir sera 014. Si el programa de usuario .y pasa a mostrar memoria externa ..!GI 7145 ill:!2 715F 111 24 757603 1 I! 11 2 :7 2 CJN!: AfFl .c27 :Lf 841 108 13 1.#Cl2 I?ET EIDQlIF: AJW OTRO .muestra el contenido MOV ES7.Parte aíia de direccion de inicio de IirrtOVX @DPTRA .DIRH .

con la cual reiniciaba el sistema.i PCC O1 6F '7005 Olirl 71184 O1 73 715 1 F o ir5 X 1 ! A W L L DSPCRT lit3 JNZ EE)O:24 M A L RECDAT .DIRL W V &DATO M W (WPTRA O .Olí38 1217FB 1.F6. pues son sob directos P O P iJOH 01. EDOX: W U L ESDIGHEX . COO0 1M ED02B1: PUSH OOH .carga DPTR con la direccion externa MOV DPL.pone guiones en los displays de dato W V DOPOBFH 846506 019AB4141F EDOZB: CINE A.121C O1 7E 857383 0181 857282 O184 E574 0186 F O u1 a7 K) 0188 858373 018B 858272 OlSE 7579BF 0191 7578BF 0194 511F8 0196 757601 CJNE A#F2. Penrmece en este estado mientras la tecla presionada sea iin numero.i2*lt*t*+t~i)<~*****tt*t**t*tirt**itt*t***b***********~********************** .DIRL .FulNCION.DIRH . . que sea E S C .DPL MOV D i M B F H .y pasa a recibir direccion de 4 nibbles 0 nl M R F W mnnci niiinncic cin h c dienkm dp datn .#F4. .üATO .Si es F2 MOV DPH. a rneno!.Si tecla es numero devuebe O en . SI! llega de ED01 con las funciones F2.4.Otro caso indirectamente. Ol6D 51D.puede cambiar ks SFRs.DATO .Si es F4 O 19D E572 MOV A.Salva RO 01AS A872 MüV R0. INIPUX A M P LISTO .AC DO00 01AiO572 EDO2B2: INC DIRL . E n caso de tecla de funcion. Si es diferente la ignora.muesira la direccion externa MOV ESTADO $ 1 .M A674 MOV -0. 8008 1M SjMp tED02B2 0 .EDO2C .Restablece el estado inicial del sistema fllíjB 0138 . ED02: Leer dalo..CALI.Llama al programa del usuario . . si es as¡ ejecuta la accicin asociada. y paca al siguiente estado.EDO2B . observe que no O 1. verifica que sea igual a la funcion cor1 que se entro al estado.incrementa la direccion externa MOV DlRH.y b niuestra en pantalla O176 E!W7 EDO2A: tvlOV A.DIRL 019F 7005 JNZ ED0281 .escribe el dato directamente 0 .ED02D .Mientras sea numero recorre el dato .TECIA O1 78 13!57566 CJNE A. o de con la iluiicion 1.Sale si tecla no es la funcion ccmecita O178 IB4. E:ICi04 .escribe en ella el dato IlNC DPTF? . .Incrementa la direccion de RAM interna nim~ K ~ Q R F hAnV 0199 22 FIET A W L IDSPDIRS .Si la direccion interna es RO 01A1 857400 M O W OOH.DPH MOV DlRL.

.y pisa a recorrerla 0lBCE574 EDO2C: MOV &DATO . ....Carga iéi direccion desiino O1 D1 857282 MOV DPL...DIRL 0104 F O MOVX @DPTRA .recurre la díreccion externa 01E9 7579BF W V D l . En otro caso i ignora.DPH .... ED02D: AJMP OTRO tt*t.. a menos que sea ESC.DIRH ......Lee 'SUcontenido o1 c:7 A 3 INC DPTR .Si es FCi y 131 numero de bytes a copiar > O OzlBE 6011: JZ ED02C2 O 1C O 857'183 ED02C1: MOV DPH. ..DPL OlCE 857383 MOV DPH...@DPTR .......#OBFH . si es as¡ a reinicializa el sistema.Escribe (!I dato eii e&a Q1D5 A3 INC DPTR jncremenia ki direccion defdino 01D6 858373 MOV DIRH..coloca guiones en bs displays de dato OlEC 75788F MOV DO.Si tech es numero 01E7 5lDC ACALL RECDIR4 .EDO2C1 :Repite para DAlrCl bytes OlDFO136 ED02C2: AJMP LISTO 01E1 2109 ..DIRHF ... ... regresa al ED01 para captiirar k nueva direccion t de lectura...... Se k g a de E W O con las . funciones . ...#BFH OlEF 51F8 ACAiL DSPDlR4 .. Si la tech es un numero..********t*******i******i****~* .lee et contenido de mernoria externa 0200 715F A C N L DSPDAT .Ole3 757804 QlftEI 22 McbV ESTADO RET .....ED038 .......muestra la direccion externa OlFl 757601 MOV ESTADO...y la guairda O 1CB 858 270 MOV DIRLF....TECIA 01F7 841109 CJNE Aii#:l ...DPL OlDC D574E1 DJNZ DATO.Carga la direccicin fuente O1C 3 857082 MOV DPL. Permanece en este estado mientras la tech presioriada sea F1.Si tecla es F1 OlFA 7177 A W L lNCDIR4 .y lo muestra 0202 22 RET 02032109 8 ED03B: A M OTRO lp .... 01E3 51D7 EDO3: ACAiL ESDIGHW OlE5 700E JNZ ED03A .. !Se llega de ED01 con la funcion F1.*t*******t**t***t**t*******~i ED03: Mostrar memoria externa..y sialta a continuar rccibiendola # 1 OlF4 22 RET OlF5E577 EDOM: MOV A.......muestra la direccion ederna OIFE 7149 ACALL LEEEXT .....incrementa la direccion OlFC 51F8 ACALL DSPDIR4 .y la guarda 01D9 858272 MOV DlRL..DPH .. O ...DIRLF 01C6 E O MOW A.incrementa la direccion fuente 01C8 858371 MOV DIRHF.. ED04: Leer direccion de 2 nibbles.

. verifica que sea la correcta. . . .Si tecla es numero .y la muestra en pantalla entrada 020EE577 EDO4A: MOV ATECLA CJNE A. . .Sitecla es numero JNZ ED059 02244 700E . . . el sistema.y salta a recibir n u m dato RET EDOIB: AJMP OTRO A(=ALL LEEfMT . .. . .Si tecla es F3 l .ñO? . . . En otro caso la ignora. .lee s rrontmido de memoria interna ! . Si la tecla es una funcion. Permanece en este estado mientras la tecla presionada sea un numero. . . . . a menos que sea ESC. . interna. .Si tecla es F4 ke la memoria interna AWVL DSPDAT .F4.permanece recomendo la direccion A M L RECDIR2 ACALL DSPDIR2 RET .coloca guiones en el campo del dato 022E 7579BF 0231 7578BF MOV DOMBFH .muestra la direccion interna ACALL DSPDIR2 0234 7131 MOV ESTADO. . . con la cual restablece . . . . . . . interna EDO5: ACALL ESDIGHEX 0228 51D7 . . . . Se ikga de ED04 con la funcion F3. . . . . . . . . . para ejecutar la accion correspondiente y pasar al siguiente estado. . . . .y salta a seguir mostrando memoria 021D 22 RET BZIE 1192 CBB4C: o222 f51602 0225 22 0226 2109 0220 715P hfOY ESTaDO. . . . . . . . . . tecla es un numero. .muestra su contenido . : Permanece en este estado mientras la tecla presionada sea F3.# O B i . . .EDO4B . En otro caso ignora la tecla. F3. . . .Sale si tecla no es la funcion de 0210 B57513 0213 841308 921 6 7192 091%716F interna 021A 757605 CJNE A#F3.FUNCION. a menos que sea ESC.y Is rnuestra MOV ESTADO. .! A U & L RbF5AT .Wk=&€€iNT . . . . . . . . .#5 . 7 I interna 0205 5107 0207 7005 0209 7123 0208 7131 020D 22 ED04: ACALL ESDIGHEX JNZ EDO4A .Si tecla es F3 023F 0572 INC DIRL . . . . regresa a ED04 para capturar la nueva direccion .#4 . Si la . . .TECIA 023AE577 €DO'-* 023C 841309 CJNEDA E5 3.incrementa la direccion interna . . . .y saüa a recibir la nueva direccion 0236 757604 0239 22 RET MOV A. si es asi : reiniciñfiza el sistema. . ED05: Mostrar memoria interna.ED04C .recorre la direccion interna 022C 7123 A W L RECDIR2 MOV D1#OBFH . .

Prepara para leer del FIFO .@DPTR O . 024A 903801 del 8279 obtener P18279: MOV DPTR.un bsirrido de 1 OOkM = XTAL / 6 / .DSPUNAV.Parte baja de la direccion 0260 F O M O M @PIRA 026E 22 RET .Inicializamemoria de display.4 O 0260 9017E3 RAM 0263 7402 0265 F O 0266 A3 0267 7400 0269 FO 026AA3 026B 7461 MOV DPTR.Prepara para escritura en RAM de . PI8279 establece el modo de aperacion y la frecuencia de barrido del .#WROINC M W @DPTR. 0250 7490 025F F O MOV A.#üIVCLK M W @DPTR .*t******l:*******t**t**t**tti***~~**~**t*~*~***********~**t****tt~tti**t***t*t*** .desde DISPO.Divisor de la frecuencia ALE para .y lo niuestre :muestra b direccion en displays 6247 22 0248 2109 RET ED05B: AJMP OTRO .mientras el display no este 025A 7440 O 025C F W V AJRDFIFO @DPTRA .barrido codificado.Lee status del FIFO 0257 20E7FC JB ACC.T8279/256)) .#CTRL8279 .y logbca de interrupciones disponible 0256 E O P18279A: M W A. una tecla a la vez . de intermpcion externa 1 en RPM un salto a la funcion AT8279.Pl82788 .#UEXTl MOV A.kc el contcnldo de mcmorla Interna . entrada por DiSP7.0241 7131 0246 7 IBF 0243 7132 A C N L DSPDlR2 ACALL LEEINT A C A L L D6PDAT .Codigo de instruccion LJMP INC DPTR MOV A. y cokca en la direccion de atencion . controlador de teclado y displays.Parte aRa de la dircccion de AT8279 M W @DPTRA O iNC DPTR MOV APfAT8279-256*(P.A O .ü(AT82791256) . status del 0240 7434 024F F O DlVCLK 0250 7400 0252 F O 0253 74CU FIFO 0255 F O MOV A#vlODL2K MOVX @DPTR(4 MOV ApcLRALL M W @OPTRA .#2H M W @PTRf4 O .Modo: 8 displays. con autoincremento $ipunta a la atencion externa 1 en Mw o displays.Apunta a la direccion de control MOV A. .

.@DPTR O 0284 F6 0285 A3 0286 18 0287 B87'7F9 que DO-1 028A DO00 028C D D OO 028E DO82 0290 DO83 0292 DOE0 0294 22 MOV @0.#(DO-l).mientras el buffer sea mayor nnnn DnD POP OOH DC\M .o emria al 8279 i DEC RO .Guarda R del banco de registros O O PUSH O H O MOV DPiR.escrihirio .MEh4WUFl .4 .y al buffer que le corresponde CJNE RO#DO-l).#D7 ANL PSW.Lee el caracter de memoria 0283 EO MEMABUF1: M W A.- BUFADSPl : MOV 4-0 . en el buffer.BUFADSPl .#OE7H .pasa ai siguiente buffer 0247 B877FA CJNE RO.Toma el buffer en curso MOVX @PTRP. 026F 51 74 0271 5195 0273 22 .De RAM externa a RPM interna DESPILEGA: ACALL MEMeBUF AClUL BUFADSP . y enviarlo a los displays.mientras el buffer sea mayor POP POP POP POP POP RET OH O PSW DPL DPH Acc 0295 COEO 0297 C083 0299 C082 0298 CODO 029D COOO 029F 903800 8279 O W 787F BUFADSP: PUSH ACC PUSH DPH PUSH DPL PUSH PSW .#07 *unta a la direccion de datos del R al buffer mas significativo O 02A4 E6 0285 F O 02A6 18 que DO-I O M DO00 nqk.b escribe en el buffer correspondiente INC DPTR .pasa al siguiente caracter DEC RO .119XAT8279 *unta MOV R0.De RPM interna a 8279 RET 0274COEO 0276 GO83 0278 GO82 027A CODO 027C C O OO 027E 53DOE7 0281 787F externa MEMABUF: PUSH ACC PUSH DPH PUSH DPL PUSH P W .Guarda R del banco de registros O O PUSH O H O W V RO.Selecciona el banco O &unta R al buffer mas significativo O .

era tambien O . externa. . BIJFASCI A W L BUFBDSP .BUFASCIl . 02BCCOEO 02BE CODO 02CO coo0 02C2 53DOE7 02C5 787F BUFASCI: PUSH ACC PUSH PSW PUSH O H O . 02DC COEO 02DE CODO n-cn Pnnn RECDIR4: PUSH ACC PUSH PSW DIICU nnu .lr(DO-l).Siguiente display 02CD B877F7 C J N E RO.o convierte a 7seg i 02CB F6 MOV @ O R A .Toma el codigo ASCII 02C8120EF3 L W L BsCiA7S . derecho el numero contenido en 1ECLA.y remplaza al anterior 02CC 18 DEC RO .0285 5174. contenida en DlRH y DIR:L.Comherie el buffer de ASCII a 7seg ACALl. C + hn n k3n-n n . es decir. Entonces el contenido de ACC sera O H sob si su nibble mas alto O .#OFOH RET .*t*********R*************t+t****t********************a**************r********R** sustituye . RECDlR4 desplaza un nibbk a l izquierda la direccion de memoria . m . y hace O su nibble menos 0207 ES77 ESDIGHEX:W V ATECiA 0209 MFO 0208 22 ANL A. . TECLA esta en el rango OOH-OFH. S a h R del banco O O ANL PSW. por su codigo i'seg.y coloca en el nibbk extremo .Emria el buffer al display RET .#)7 &untíiaD7 02C7 E6 BUFASCil : MOV A O . BUFASCI toma el codigo ASCII de cada buffer del display y lo . ESDIGHEX toma TECLA en ACC.#OE7H .*******************4***i~t**i*~***i**t***********t******~~*~*******~* significativo.Hace O el nibbk bajo de TECLA a . . 0287 51BC 0289 5195 0288 22 DESPASCI: A W L MEMABUF .Carga el letrero .Sekcciona el banco O de regisiros MOV RO.Hasta remplazar DO 02D0 DO00 OO 02D2 D D 0 2 M DOE0 02D6 22 POP O H O POP PSW POP ACC RET .

-&unta R a ia IirWr tlqd de la direccion O DiRn .@RO . ' J ' . RECDIR2 recorre la direccion interna un nibble! a La izquierda.Toma ($1níbbb isRo tie Isidireccion alta .\ 0' 'Mi3b' CC IECLA IWIV F O. ACC H I .Toma1 e nibble i d o de ki direccion baja l 0312 F57B 0314 E572 0316 54OF 0318 7 1 A í 031A C2E7 MOV D3A 031C F57A MOV A.Estado iinat: LT OH I INC RO CJNE RO.Torna a d nb b boj0 de ibo In direccion aRa Mov M A MOV A.DIRL ANL A. 0323 COEO RE(:DiR2: PUSH ACC AACI~I 0325 n934 F.7 MOV 0 2 4 . t11 9? RECDIR4A. n ~ r k w c ? T .Tomit el nibble bajo de la direccion baja .obtiime en ACC SUIcodigo MOV A.Mieiitrais RO s DlRH P O P [)OH POP PSW POP ACC RET DSPDIR4 envia al display la direccion externa (O IRH y DIRL). XCH A.#OFOH SWAP A A W L A7SEG .4CC .REi(:DIR4A . tJY: ~ S V .y coloca el punto Iqiue io separa del dato 031E 5195 A W L BUFAüSlP .DIRL ANL A.@RO .#OFH ACAlL A7SEG CLR ACC.#OFH ACA.#IDIRH+1).@RO . para . OH -1.K-77 ~niw -Fciarln iniriíal. introducir la tecla presionada en elnibble menas significativo.02E2 53UOfZ7 02E5 E571 02E7 7872 02E9 02E9 02E9 C6 02EA e4 02E8 D6 02EC C6 02ED 08 02EE B874F8 02Fl DO00 02F3 DODO 02F5 DOE0 02F7 22 . ~ E J -S e ' ~ c c .. 13': t*L St'JW 8 4 OT LH XCHD /4. 02F8 COEO 02FA E573 02FC 54FO 02FE C4 02FF 7 1 N 0301 F57R papa ~ 6 7 % DSPDIR4: PUSH ACC .DIRH ANL W F O H SWAP A A W L A7SEG MOV D5A 7 segmentos 0305 5 4 O F 0307 71AF 0309 F57C 0308 E572 030D s4FO 030F C4 0310 71AF wv A .#DiRi.1 A7SEG .Estado nicial.XCH A. O ~ M A N L A.

I ~ . LEEEMT k e el contenido de la rnenioria externa.#OFOH SWAP A ACPLL A7SEG MO'J D4pI .DIRL MOVX A.#FOH SWAP A ACALL A7SEG t.Toma elnitibk bajo de la direccion 033E 54OF 0340 71AF 0342 F57B 033C E572 MO'J A.#FH ACIAL A7SEG I l V D3A vo ACbLL BUFAOSP POP ACC RET 0544 5195 0346 DOE0 0348 22 .c A 0363 54F0 0365 C4 0366 71AF DI 0361 E574 .033? COEO 0333 E572 0335 54FO 0337 C4 DSPCIIR2: PUSH ACC MOV A.obtiene en ACC su codigo 7 segmentos .y lo guarid8aen DATO POP DPL POP DPH POP ACC 0358 DO82 035A DO83 035C DOE0 035E 22 RET 035FCOEO DSPDAT: PUSH ACC NloV A..m\i n. 0349 0349COEO LEEEXT: PUSH ACC 034B C083 PUSH DPH 034D C082 034F 857383 0352857282 0355 E O 0356 F574 PUSH DPL MOV DPH.DIRH N u n t DPlR a la direccion externa MOV DPL.DIRL ANL A.DATO ANL A.Lee elcolntenido MüY DATOA .DIRL ANL A.@DPTR .obtiene ciu codigo 7seg y guarda en buffer nqco C E .Torna e1byte alto de DATO .Torna el nibble alto de la direccion O338 7 1 N 033A F57C .

Estado final: LT I ACC: 0391 22 f POP RET Acc .1 nnTn &tRíi -I en nl rldn inr(irodamnnto .3rlCSf LJ?~.KOE7H .Envia buffers al display ACP4.lee el contenido directamente SJMP LEEINT2 0390 CODO 039F COO0 03A1 53DOE7 LEEINT1: PUSH PSW PUSH O H O . Note que no pueden leerse ks SFRs (Registros de Funcion . 0377COEü INCDIR4 incrementa la direccion exiema (4 nibbles de longitud) INCDIR4. O L SWAP A L O ORL ATECiA . 0392COEO 0394 E572 0396 7005 0398 850074 039B 8OUF LEEINT: PUSH ACC MOV A.DIRL &unta a la direccion interna hWii/ o w A872 nqnc ~a1i.Selecciona banco O de registros MOV R0.~F 7iAf' buffer 3 0 Q370 F57t OS72 'j 'I 95 .y.y entonces incrementa el byte alto INCDIR4A: POP ACC RET 0379 0572 0378 E572 037D 7002 037F 0573 0351 DOEO 0383 22 0384 COEO RECDAT: PUSH aCC 0386 E574 0388 %OF 03aA c4 0388 4577 0386 0380 F574 038F DOEO MOV &&TO .Si la direccion interna es RO del banco O MOV DATO . PUSH ACC INC DIRL .si el byte bajo es cero hubo desborde INC DIRH .DIRL JNZ lNCDlR4A .Toma el byte bajo de DATO . indirecto.#OItt PCPLL .4?!:€-G bA0V D O / \ . que sob pueden direccionarse directamente. LEEINT lee el contenido de memoria interna.De otro modo salva RO NUL PSW. Especial).OOH ..rn A M P.üOFH . LT MOV DATO6 .*tt***i*~C*****+t*********************~~***i******i******+******~***** .L BlJFNISP POP ACC: RET 0371 UOEü 0376 22 :.DIRL JNZ LEElNTl .l?r'.Incrementa byte bajo MOV A.obtiene su codígo 7seg y guarda en . r .Estado inicial: HL ANL A. usando direccionamiento . ~ 5 . : A: : w\J'n.

. E DB 1000111OB . . . RECHEX lee un programa por el puerto sene. . . Lee NUMDAT (numero de datos).3 DB 100llOOlB . .b DB 1100011OB .***********++-it***. A7SEG recibe f r i ACC un numero. . . . .en activo negativo 03BC C O 03BD F9 03BE PA 03BF B O 03CO 99 03C1 92 03C2 82 03C3 F8 03C4 80 03C5 98 03C6 88 03C7 83 03C8 C6 03C9 A l 03CA 86 03CB 8E 1 TABL7SEG: DB 1lOOOOOOB DB 11111001B . . . .'O . . y devuelve en ACC su codigo Iseg. . Lee O H STX (inicio de transmision) O 2. . l .O H saRa a (8. . . 3. .6 DB 11111OOOB . .5 DB 1000001OB . si NUMDAT =. I 3 9 I . O W COS3 0381 C082 0383 9003BC 03136 93 codigo A7SEG: PUSH DPH PUSH I3PL MOV DPTR.8 DB 10011OOOB .******b********C**********************i. . Lee DEXH y DEXL. 4. . . Salta a (3. . por b que no sle usan interrupciones para Timer 1o . . . . . .gfedcba . direccion de inicio en RAM externa 5. . Envia EOT (fin acordado) . .) O .Apunta DPTR al inicio de la tabla MOVC A.) 8. Note que IE=80H. .. . . Emia PARIDAD 7. . . . Lee ETX (fin de transmisiori) 9. .*************************~*********~* .9 DB 10001OOOB $4 DB 10000011B .@A+DPTR .C DB lOlOOOOlB .#TABL7SE(. . . . . .4 DB 100100108 . y lo guarda en RPM 1.usa ACC como offset para leer el 03B7 DO82 03B9 DO83 0388 22 03BC POP DPL POP DPH RET . Emia ACK (de acuerdo} . . .F . . .7 DB ioooooooe . . . Lee N W A T caracteres y los aknacsna 6. iniciaba PARIDAD. para e puerto serie. . . .d DB 100001106 . 1 DB 101001OOB . .2 DB 1011OOOOB .

088ti PCSERI: ACAiL RECCAR: . E M a ACK ACALL ENVCAR 040F 900440 0412 516F MOV D T .O H O A W L RECCAR .#(256-TI:1I~~) Carga PH1 para baud rate deseado SETEI TR1 &rarii:a Timix1 FviOV PCON.OUH.UMT 10 bits. F7.O'?8H. baud rate por 03E3 D29C ir3Efi B2faP 03E7 9101 SETB REN SET8 TI A C N L PCSERI .1F MOV 7"1.ia!ma a reixpcion serial 03F1 758900 03F4 DO01 03F6 DO00 03F8 22 WYtt CnÍt M v TMOD.0300 9 0 0 3 ~ 9 03D3 526F 03D5 758920 03D8 75EPF3 O308 D28E 03DD 758780 03EO 759840 Timer1 fm!J T\lOD.Iiidica recepcion 0414 7800 PCSER12: MOV RO.#MOCi 7 .Lee IüEXti y DEXL.iW'H.ESPerA' 03FD 8 C W 8 8 DB 08CH.Paridad <.ERROIRX O408 7406 040D 917E MOV A W K .NUMDAT 041E 915D 0420 F583 .iW)OH o POP 01H POP OOH RET CLK Till 03F9 8E788692 LETF7ESP: D6 08EH.#OOH .T¡rm!rl en recarga 1.#STX.PCSERll 041B 8016 SJMP FlNTX $3O fin de tirancmision 0 041D F9 PCSERll: MOV R 1 A A W L RECCAR MOV DPHA .CUElNTA e.#SOH tlolrk baud rate lviOW SCON~#vlOD!:.Esperia O O H xO 0401 915D 0403 B4003A CJNE WOH.Let! IriUhG)AT 0416 915D 04 18 B40002 CJNE A.Espera STX 0406 915D A W L RECCAR 0408 B40235 CJNE A.Indica i/m irma transmitir .!?3 l ACALL RECCM hjin\i nm LI . y carga DPTR O422 9l5D I l 31 E1.#OOH.Haibitita rt!cepc:ion .ü8i5H.092H .L.ERRORX . l T 7 R P R# F C G E ACALL DESPLEGA .EIíF7 .

W .nilision RET .ERRORXí .0C6H .'7'.Inhibe interrupciori I EIXX PARIDAD ' izar liar par car paritcar car car par+i:air 0471 C2AA ni79 r e 7 7 .Regresa a cerrar el puerto sene ERRORX: MOV DPTR.$ .'r' 045DC2D1 M5F D M 0464 lODlOA RECCAR: CLR INTíEC SET8 EX1 . 045972726F72 DB t'.Si tech.O426 9l5W caracteres 0428 FO M Z QA3 842A DSF-A 042C ES 042D F4 042E O4 042F 917E 0431 80E1 AEU . XCH A.OAFH. iiiale y RIx-0 JBC INTlEC.Si caracter listo.Permite interrupcion idel 1 ci::laado 0461 109805 RECCAR2: JBC RI.RECCAR3 .RO XCH A.088H 0455 46372045 LETF'IERR: DB F1.SBUF .y la transmite SJMP PCSfiR12 .Espera tecla CJNE A.Si NüMClAl' == i3 f!spe!ra ETX 0435 B40308 CJNE A#ETX.EO'T M40 900455 0443 5ie5 0445 1178 0447 E577 0449 B4lOF9 044c 22 .'r'.Emria EOT ACALL ENVCAR JNB TI.obtiene su c omplenierto a 2 INC A ACALL ENV!C.ERRORX M3A 917E 0438 7404 043C 3099FD 043F 22 .' .Deotro moda perrnalneoe en espera SJMP RECCAR2 0469 C2BA M6B E599 046D C8 M6E 28 046F C8 0470 22 RECCAR1: CLR EX1 MOV A.L OESPASCI ERRORXI: K X L LEETEC MOV AYTECLA .RECCARl .RO RET I I I .RO ADD A.090H.Repiti! mientras NütvR1'1' I=: tvlov 0 0433 915D FINTX: A W L A(E:CCAR .Espera lque tennine la tran:.0F8HyOFFH.#ETF7ERR AW4í. ' 'F7 Error' 'E. sale I IN'TTEC<-O : 0467 80FS .mientras no sleii f 3 C RET 044D 8EF8FFC6 LETF7CRG: DB 08EH.'o'.Mensaje de c r r w MOV A.ñiESC.Torna la sunla de F W ? IDN) CPL A . 'F7 ~ W U g A ' 0451 88AF9088 DB 088H.

TABASCII como index y A como POP DPL OEFB DO32 OEFD DO83 POP DPH OEFF 22 RET OO FO .OFOH.OC8H.OCEH.QM-(256+13) ASCLA'IS: PUSH DPH PUSH DPL MQV DPTR.083H.09CH.089H.OB3H.WUH.OCOH OF4C C'IC8C8CO $50 OF50 nCKn rlPOQAT07 nn nnru nanu n s u n w u .OA3H FO DB OA3H.OA3H OF20 FF79DüA3 DB 092H.082H OF44 Al868E82 DB 089H.***ii*****i*****ti***ti***i*****ttf~*******~*i*~i*~*ti****~~*~**i******* .#iAMSCII M O W A.@A+DPTR .OA7H OF18 F8FlB3A7 DB OE7H.OA?iH OF04 A3A3A3A3 DB 09CH.OBOH DB OCOH.OFIH.M7E3099FD ENVCAR: JNB TI.08EH.O".0B7H OF38 8098B7B7 DB OA7H.OBFH.OC6H OF40 848883C6 DB QA1 H.OB9H OF28 C6F089B9 DB 07FH.OC9H OF1O B3A7FOC9 Di3 098H.09CH.OFSH OF2C 7FBF7FF9 30 OF30 .00 O O FFA3A383 TABASCII: DB OFFH.WH.WH.Envia el caractcr CLR TI .079H.ODDH.OBFH.20 OF20 DB OFFH.OC8H.OFDH OF24 929282FD DB OC6H.o 1 OF1O DB OB3H.092H.40 OF40 DB 0&4H.OF1H.OF9H.OB7H.Espera listo para transmitir O481 F599 0483 C299 0485 22 MOV SBUFA .O82HA.OFOH.$ .07FH.ü88H.098HrOB7H.Indica trarismitiendo RET .086H.OCSH. ASCIA7S deweiue en A el codigo 7seg de un caracter ASCII dado en A.ODCH .082H.OE3H OF I E7BFDCE3 C . OEF3 OEF3C083 OEF5 COS2 OEF7 9 O O OFO offset OEFA 93 ORG INiF?.WH.OSBH OF4S89F0F18B DB OC7H.OA3H OFOC 98CEC8A3 .WIl OF30 COFWBO OB 099H.OB3H.OFOH OF14 9892A3FO DB OF8H.OFSH OF34 099282F8 DB 080H.OA7H.092H.O83H OF08 9C9C9C83 OB 098H.WH OF3C A76763AC .092H.OF9H.

09CH.co DB OSFH.FO DB OB6H.OABH.Ii.OB91-4 .BFIi .083H.OIV'H.i31.Ls\3H .OBC)H .90 DB 086H.WQtl.OBDH..(IFCH.OA3H.OAFH.OC8H .OEEH.OABli.OADH DB OADH.OB?H DB 09CH.08CH.OEI3H.oAM DB OAí H.OBBH .OBI'H.0'3i2 DB 087H.O9C~H.088H .OCOH.087H DB OA3H.OBBH DB 08FH.OBSH.'O 8EH A0 DB 088H.OA3H.090 ti DB OSBH.OBDH.O.O84.08E:Ii.OE2H.Ofr3H.OAFH.O.OE3H.OCFH.OBFH.OFEIH .O~~H.OF9H DB OB9H.OB3H .O~.O E DB 088H.OFFH .OfOH $0 DB 09AH.O96H DB OCEH.OCOH.OF60 OF60 FD8883A7 OF64 Al 848E90 OF68 8BFBF18B OF6C F9A%ABA3 OF70 OF70 8C98AF92 OF74 87E3E3E3 OF78 8991A4C6 OF7C F9FOFW OF80 OF80 9AE28488 OF84 8888889A OF88 848484FA OF8C FAFA8888 OF90 OF90 868080A2 OF94 A2A2E2E2 OF98 91A2E2As OF9C C7998C8E OFAO OFAO 88EEA2E2 O & aaabaC9C F OFA8 ASDEFCAD OFAC ADCFA7B3 OFBO OFBOCOCOCOF9 OFB4B98989BB OFBSBBBSF9BB OFBC BDBDBDBB OFCO OFCO 9FBDBB8F OFC4 BFB98F8F OFC8 9FAFBDBB OFCC 8FBFBOBD OFDO OFDO BDBBBB9F OFM 9FcsFAFB9 OFD8 B9BDAFCO OFDC 9CCOCOA3 OFEO OFEO 8883CEAB OFE4 8WE387 OFE8 A3CocSBA1 OFEC A3A388C8 OFFO OFFO B6BlB496 OFF4 CEFlBFB? OFFS 9C9C9CE 1 OFFC D W A 3 F F -60 DB OFüH.(EPU'H DB OA2H.iJE2H DB O#üi.~Ffd-l DB OFAH.OF fEH.OF9H.1 73 H DB 08CH.OCOH.OFAH.3H DB 089H.ODEH.OBEIti .(i88H .08OH.H DB OFSH.OEl H DB ODCH.Of3DH.Ofi2H.OB9H.099H .OE3H.OCOH.09CH.OB9H.OBIH.OFl H.BO DB OCOH.OB9H DB OB9H.C@FH DB 09FH.OBDH.OBBtí.08FH DB OBFH.CLC:(IH DB OF9H.W?H.WH.OA2H.OA4H.OBBH.ikABH DB 086H.O~~H.OAFH.OS4H.OCOH.OA3H .a8tI.O9CH DB WiSH.OCEH.OE:IH QPdiH DB OC7H.O': 1 H O 3 E.O&PH DB 084H.OBBH DB OBDH.088H.CIBBH DB OBBH.DO DB OBDH.OBOH.080H.O".091M.Olil)lY DB 088H.OCOH DB OSCH.OFOH.088H .OE2H DB 09lH.09&H.OBDH .084H.09FH DB 09FH.023H.0$8ti.OB1 H.O:a8H.OAlH DB OA3H.

O000 END ----SYMBOL TABLE ---- DlRL 0072 A7SEG O W PCSER12 0414 ACC OE OO DIRLF 0070 PCSER13 0426 ACK 0006 UWCLK 0034 PI8279 02444 ASC147S OEF3 DPH 0083 Pl8279A 0256 AT1279 0061 DPL 0082 PONFUNC OOEB ATEXTO 17D3 DSPDAT 035F PSW OD OO ATEXTl 17E3 DSPDIR2 O331 RDFIFO O040 ATSERI 17F3 DSPDIR4 02F8 RECCAR 045D A i T M 'I 7DB DSPUNAV 0007 RECCARI 0469 ATTIM1 17EB ED00 0095 RECCAR2 0461 AUTOMATA 0082 EDOOA OOA4 RECCAR3 0471 BUFADSP 0295 EDOOB OOA9 RECDAT 0384 BUFADSP1 O W EDOOC O W 03AC RECDIH2 0323 BUFASCJ 02BC EDOOD 00B5 RECDIR4 02DC BUFASCI1 02C7 EDOOE 008A RECDIR4A 02E9 CLRALL OOCD EDOOF OOBF RECHEX 03CC CTRi8279 3801 EDOOG OOC6 044D REN 009C D O O078 ED01 010F RI 0098 D1 0079 EDOlA 0118 SBUF O099 02 007A EOOlB 0128 SCON 0098 D3 O078 EDOIC O133 0081 D4 007C EDOlD 0138 STX ED034 01F5 EDO3B ED04 ED04A ED04B 0203 0205 020E 0226 021E 0228 INICIO 002B I N l M 1000 INTEXTO 0003 INTEXT1 O013 INTSERI 0023 INTTEC OODI INiTIMO 000B INlTItví1 O018 EDO4C ED05 ED054 0 2 s EDOSB 0248 IP 0088 EJECUTA O1 56 EWVCAR 047E EOT 0004 LEEEXT 0349 LEEINT 0392 LEEINT1 039D LEEINT2 LEETEC 0078 LETütR2 O101 LETDIR4 00E3 LETF7CRG LETF7ERR 0455 LETF7ESP 03F9 LETLISTO 0059 LISTO 0036 SP ERRORX O440 ERRORXl 0445 ESC O010 ESDiGHEX 02D7 ESPERA 0030 ESTADO 0076 ETX EX1 F1 F2 0003 O W 0011 0012 MEIuIw3UF 0274 0002 .

06 0070 EOOIE 014B F3 OOi3 MWUFI o m lA84SClI OF00 D6 TABLISEG 03BC 07 007F TABLEDO O089 DAT8279 3800 TCON 0088 DATO O074 OO OD DESPASCI 0285 TECíA 0077 DESPLEGA 026F TH1 008D TDN W E EDOlF ED02 0154 016D F4 F5 F6 0014 0015 0016 MODL2K O000 MODSERF7 0040 MODTlF7 0020 OTRO OTRO1 P O P2 P3 0109 OlOE O080 OA OO ED024 0176 lIDO2B Ol9A F6DEST 0005 F7 FINTX 0017 ED0281 OlA6 ED02B2 O l A E ED02C O1BC 0433 DIR2 OOF4 TI 0099 DIR4 OOC8 TMOD O089 DIR4A OODD TRI 008E DlRH 0073 WROINC O090 DlRHF 0071 FUNCtON 0075 ED02C1 OlCO ED02C2 OlDF EDO2D ED03 OlEl OlE3 IE OOA8 0080 PCON 0087 lNCDIR4 0377 INCDIR4A 0381 PCSERI 0402 I N W X 17FB PCSERII 041D .

O p ! O I Y Q 7 O a IA. O D K a 0: O OL c.I_- O c. O a z o VI z o C( H O o w H ' I U1 Z o w E a W c p ! o o I J 3 i3 o __-_ I__L_ ~ -..-. LL 2 U a a a Z U u.--- I .---.

_-_.T ----------T C" I I I r l I I I I I k 8 J I t . :O N LL 3 N VC 3 8- u H u 6 ci 3 H c UI W w 3 .

m 5 I i I T O i - f w r i I ]-INDO -4 ama t I 4 7 a p I Y - t i i i .