osciloscopio virtual148.206.53.84/tesiuami/uam5706.pdf · la misma fimci6n en el dominio de la...

56
UNIVERSIDAD AUTONOMA METROPOLITANA REPORTE DEL PROYECTO TERMINAL DE INGENIERIA ELECTRONICA / OSCILOSCOPIO VIRTUAL Asesor: Maestro en Ciencias -tin Sutkez Fernhdez 4hIlm0: Artemio Mendoza Garcia

Upload: trinhque

Post on 06-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD AUTONOMA METROPOLITANA

REPORTE DEL PROYECTO TERMINAL DE INGENIERIA

ELECTRONICA

/ OSCILOSCOPIO VIRTUAL

Asesor: Maestro en Ciencias -tin Sutkez Fernhdez 4hIlm0: Artemio Mendoza Garcia

Yroyecro ae lngenierla elecwon1ca A I T ~ O menaoza w c l a

TABLADE CONTEMDO

1 . o m r n m nm nnnv-nmn CI I V W O U J L . L ~ J S ~ L ~ L I V . ...................................................................................................................... 1

1 . 1 Problema a resolv er .................................................................................................................................... 2 1.2 Posibles Soluciones ................................................................................................................................... 2 1.3 Solucion Seleccionada ............................................................................................................................... 3

2 . INTRODUCCION TEORICA .......................................................................................................................... 4 2.1 Procesamiento de las &al ......................................................................................................................... 4

3 . DESARROLLO DEL lZ3"A DE ADQUSIICION .................................................................................. 10 3.1 DcscripciCIIldelHardware ....................................................................................................................... 10 3.2 Descripcih del Softvpare ........................................................................................................................ 11 3.3 Funcionamiento. ....................................................................................................................................... 12

4 . CONCLUSIONES ........................................................................................................................................... 16 4.1 Ventajas de la solucibn propuesta ........................................................................................................... 16 4 .2 Desventajas de la solucibn propuesta ..................................................................................................... 16

5. Ap.IcEs.. .................................................................................................................................................. 17 5.1 bendice A Diagrama del sistemaminimo ........................................................................................... 17

5.3 Aphdice C . Rutina Convertidor AnalbgicoflDigital .............................................................................. 41

6 . BIBL;[OGF¿AFTA ............................................................................................................................................. 5 5

5.2 ApCndice B . Sistema Monitor ................................................................................................................. 18

5.4 ApCndice D . Programa Graficador .......................................................................................................... 49

1

UNIVERSIDAD AUTONOMAMETROPOLlTANA

Yroyecto de mgeruena elecwomca ~hermo Menaoza t i a rc~a

1. OBJETIVOS DEL PROYECTO.

Una situaci6n my comh~ entre la comunidad universitaria es la insuficiencia de equipo para cubrir las necesidades de las prhticas de laboratorio. La creciente demanda de recursos en el laboratorio de electr6nica, y el niunero reducido de estos, deteriora la calidad de la educacibn de los alumnos. La realidad de la universidad impide la compra de equipo en el corto plazo. Ante tal problema es necesario generar canales alternos para suplir estas carencias.

Dentro de los equipos del laboratorio de electrbnica uno de los m& utilizados es el osciloscopio. La utilidad de esta herramienta es indiscutible, ya que nos permite observar el comportamienteo de cualquier sefíal en el tiempo. Sin embargo, para observar la misma fimci6n en el dominio de la fi-ecuencia el osciloscopio es inutil. Es necesario emplear un analizador de espectros. Esta es una característica muy deseada en el k e a de comunicaciones.

Ambos equipos, el osciloscopio y el analizador de espectros, tienen M costo alto para el estudiante promedio, por lo cual es prdrcticamente imposible que sean adqumdos por ellos.

Algunas posibles alternativas para resolver el problema son:

Construccibn del equipo. Esta podria ser una soluci6n viable ya que los alumnos cuentan con la capacidad tecnica necesaria para realizar dicha tarea El problema principal radica en poder obtener el apoyo econ6mico y la inhestructura necesaria para poder emprender el esfuerzo.

Compra de tarjetas PC para adquisicibn de sefiales. Es una opci6n bastante m b &il y econ6mica que la anterior. El ímico problema a resolver es la constmccibn del software paramosbar las seiiales en una computadora y para realizar el procesamiento digital de las mismas.

Construcci6n de tarjetas PC para la adquisici6n de seflales. Todavfamb econbmico que comprar taqetas resulta la construcci6n de ellas. Inclusive pueden ser utilizados prototipos experimentales para poder resolver el problema En este caso s i p siendo necesaria la elaboraci6n de un software como intexfkce de usuario.

2

Yroyecto be q e r u e n a electronlca Atterm0 Mendota ciarcia

Cada una de las posibles soluciones anteriores representa una gama de ventajas y desventajas que tienen que ~ e r evaluadas para escoger aquella que ma la idbnea a la situacih actual.

De las opciones planteadas en el p d o anterior, la tercera representa la soiuci6n seleccionada para resolver la problematica debido a que permite manejar un minixno de inversi6n y es posible realizarla con los recursos con que actualmente cuenta la universidad.

AdemBs, debido a el bajo costo de la misma, es posible realizar el proyecto de manera independiente por parte de los alumnos, posibilitando a estos el contar con un sistema razonablemente eficiente para ser utilizado en prQLcticas y proyectos posteriores.

3 ~~~~

UNIVERSIDAD AUTONOMAMJZTROPOLITANA

2. INTRODUCCION TEORICA.

Las sefiales anal6gicas que se pueden obtener normalmente procedentes de transductores presentan un dominio temporal y un margen de valores continuos (figurala). Esta misma sefíal muestreada, tal como se puede observar en la figura 1 b, es de valores continuos, pero el dominio temporal es discreto, o sea, en el tiempo ( tk+l -td, el valor de la sefíal es constante. La figura 2.1. IC muestra la misma sefíal digitalizada, la cual presenta un dominio temporal y un margen de valores discretos; a610 pueden tomar valores que se encuentran ama distancia entre ellos igual am(vi+l - ~i)~tn=f,2, 3, ..

2.1.1. a) Send malbgicaprocedente de

T

t

un transductor.

7 Figura 2.1.1. b) La mima seflal muestreada

4

UNIvERglDAD AUTONOMAMETROPOL,ITANA

I 7

prsUrr 2.1.1. e) Lamisma seaal digitalizada

tk tk+i t p%iw 2.1.1. a) Inapulsos de muestreo.

Larelacibn entre las tres seflales anteriores puede representarse segh el diagrama de la figura 2.1.2. La seflal anal6gica contínua, e(t), mediaante un muestreador ¿$ se convierte en uaa seaal muestresda e(t) =e(t). &, la cual a su vez se transforma en una set“ digitalizada mediante un convertidor and6gico-digital.

e*(t) = e(t) . ST = e(t) . 5: S(t-k) bs

5

UNIVERSIDAD AUTONO~METROPOLJTANA

yroyecto de mgemena electrocuca ~~o Menaoza tiarcta

Qpra 2.1.2. Diagrama del proceso de muestreo. En cada uno de los procesos que suE-e la sefial analbgica, se pierde infoxmaci6n

debido a la discretizacibn que se realiza; se puede reducir el error en la seflal muestreada haciendo el periodo de muestreo suficientemente pequeflo, pero este queda limitado por la anchura de banda del muestreador real, o sea por el tiempo mhimo necesario para muestrear correctamente la sefíal.

El andisis de Fourier de una sdal analbgica (descomposici6n en series de Fourier si Bsta es peri6dica o la integral de Fourier en caso contrario) indica la composici6n espectral de dicha seflal. Los coeficientes de las series de senos y cosenos dan infiormaci6n respecto a la amplitud y la h e de cada 16-ecuencia

El teorema de Nyquist o del muestre0 expressa el limite iaferior de la velocidad de muestreo, conocida la msxima componente hcuencial de la seflal de enfrada, como la correspondienteal doble de dicha fiecuencia Esta fiecuencia, denominada a menudo 6-ecuencia de Nyquist, es la mínima con la que puede llegarse a reconstruir la setral inicial de entrada.

2.13. Error de solapamiento en el muestreo.

6

UNIVERSIDAD AUTONO~METROPOLJTANA

La figura 2.1.3 muestra el error de solapamiento producido d muestrear las dos seflales senoidales de hcuenciae fl j 2 , con un periodo de muestre0 Tm, superior al periodo de muestro mhimo, T, 3/2.1/$2 =1/2f2. En los sietemas reales suele escogerse una fiecuencia de muestreo (especificada en muchos casos como la correspondiente a la frecuencia a la cual el sistema puede muestrear el dato, realizar la conversi6n y preparar el sistema para realizar una nueva conversi4n) de un valor comprendido entre 5 y 10 veces superior a lamhima componente fiecuencial significativa de la sefid de entrada

En el caso de que el sistema de adquisici6n no admita una fbqwncia de muestre0 suficientemente alta diente a una seflal anal6gica de entrada que presenta elevadas componentes frecuenciales (en muchos casos debidas al ruido superpuesto a la sefial anal6gica) debe recurrirse a la realizacih de un filtrado previo de dicha seflal antes de introducirla en el mueetreador, el cual, aunque no elimina totalmente el ruido de al- fkecuencias, los puede atenuar suficientemente para que no afecten al resultado de la conversibn.

En muchos casos es conveniente la realizacibn de un filtrado digital de la sefid digitalizada una vez introducida en el microcomputador.

Si se considera un filtro de paso bajo RC tal como el de la figura 2.1.4a, la ecuaci6n diferencial que io describe es:

dvn + v , o = vim dt RC RC

la Eransformada de Laplace de esta ecuacibn es:

si se considera una entrada escalbn en el tiempo t = O

rm soluci6n es:

vo(t) = (1 - e t RC)

Mediante la transformada Z puede obtenerse la configuraci6n digital equivalente a la ecuaci6n anterior:

7

proyecto ae mgetllena elecmnlca -0 MenOOZB W c l a

Vo(z) = kK:(z) + tnVo(z) . z -I en donde

L a circuitería para esta ecmi6n sed tal como la de la figura 2.1.4b en donde K es un m o r y z -' es un retardo unitario. Tanto las operaciones de suma y multiplicaci6n como el retardo unitario pueden efectuarse fiIcilmente mediante la adecuada circuiteria i/o programa en M microcomputador.

La figura 2.1.4 c muestra la respuesta temporal de los dos filtros fiente a la entrada de un escal6n unitario tomando como padmetro a=0.25; en este caso, el valor de k+.33; m4.8. substituyendo estos valores en las ecuaciones de los filtros, puede observarse la aproximacibn entre las dos curvas de respuesta, mostrandose la equivalencia entre el circuito anal6gico y la codlguraci6n digital.

R

I

mv, z -'

r -

c z -l VI kv, v, 2 -l

V O

8

UNWFRSDAD AUTONOMAMETROPOLSTANA

1.0 -

0.5 .

f T = 0.25 RC

I I I I I l I l l 1 1 2 3 4 5 6 7 8 9 1 0

b

nT

Figura 2.1.4. a) Filtro de paso bajo analbgico; b) Filtro de paso bajo digital; c ) respuesta temporal de los dos filtros

9

moyecto ae lngenlena e l e c v m c a m o M ~ ~ C I O Z ~ -cia

3. DESARROLLO DEL SiSTEMA DE ADQUSIICION.

El proyecto fi& implamentado con el uso conjunto de una PC de procesador x86 m comunicaci6n serial con un sistema minimo basado en el procesador de Motorola 68HC11.

La desicibn del procesador 68HC11 como base del sistema mínimo se debid a las grandes prestaciones que este brinda.

0 512 Bytes de RAM 0 512 Bytes de EEPROM o Interface de comunicaci6n serial o Puertos de dquisici6n de datos anal6gicos (convertidor A/D)

De hecho, el sistema minim0 fi& disefíado de tal manera que constituya una base experimental para otros proyectos iüturos: posee un teclado hexadecimal y display de cuatro dfgitos y un software monitor que gestiona los recursos disponibles. Este monitor es una especie de sistema operativo bbico; permite al usuario introducir programas desde el teclado y despds ejecutarlos libremente, pudiendo introducir puntos de parada (checkpoints) para m depuraci6n, observando el contenido en cualquier registro o localidad de memoria por medio del display. Gracias a estas características el desarrollo del programa converttidor analbgico/digital pudo ser interactive. En el anexo A se incluye el diagrama del sistema &o, y en el anexo B tanto el programa monitor como el programa convertidor aaalbgico/digital.

Los pasos que se ejecutan para obtener la s&al en la computadorapmonal son los siguientes:

i. La s&d de entrada es adquirida por medio d e l puerto E d e l 68HCll.

ii. Se guradan las primeras 256 palabras en la memoria RAM del procesador.

iii.Por medio de la Interdace de commaicacih serial los datos son leidos desde la PC.

iv.La PC grQfica cada uno de los puntos adquiridos, los c d e s estsn signdo desplegados casi en tiempo real.

v. La gr4fica puede ser c o m d a o apundida para observar un mayor número de datos u observar mejor un periodo corto de tiempo.

vi. Puede ser generudo m egpedro mficarenda de la sefial muestreada 10

UNIVERXDAD AUTONOMAMETROPOLITANA

Despues de adquiridos los datos, es posible manipularlos comprimiendo o extendiendo la gcafica por medio de los controles en el panel. T m b i h es posible obtener un espectro en firecumcia de los datos graficados previamente.

La figura 3.1.1. Mwstram diagrama e s q u d i c o de el osciloscopio virtual.

S e a l analbgica Tarjeta de Adquieicion

Figura 3.1.1. Esquema del osciloscopio virtual.

Los programas desarrollados para la PC fueron construidos en TURBO Ctt, mientras que el procesador 68HCll fi16 programado en m lengwje ensamblador nativo. Para obtener los espectro en fi-ecuencia se emple6 el algoritmo de transformada *ida de Fourier.

Los programas que se utilizaron *on los siguientes:

1. MONITOR Como se mencion6 anteriormente, se desarrollo un sistema operativo para

el sistema 68HCl1, el cual lo convierte en un verdade~o prototipo experimental, ya que permite el desarrollo y depwibn de nuevos programas.

2. CONVERTIDOR

trasmitirlos a la PC. Encargado de realizar la adquisicihn de datos desde el 68HCll y

3. GRAF'ICADOR

infonnaci6n para el usuario final. Residente en la PC es el responsable de hacer el manejo gr&fko de la

11

UN~VERSIDAD AUTONOMAMETROPOLITANA

rroyecto ae lngenletra elecvonlca ~nezlllo menaoza ciarcla

El listado completo de los programas MONlToR (Ensamblador Motorola), CONVERTIDOR (Ensamblador Motorola) y GRAFICADOR (Turbo Ctt) se incluye en el anexo B, al final de este reporte.

La utilizaci6n de esta herramienta es sumamente faCi1 e intuitiva La presentaci6n es similar a un oscilosc6pio real, con la diferencia que los controles aparecen m& simples de lo que normalmente son en un osciloscopio real:

Salir. Devuelve el control al sistema operativo.

e Gr&$cu. Comienza a graficar los datos capturados por la tarjeta microcontroladora

e Expande. Permite hacer un “acercamiento” a la grhfica

Clmprfs. Abarcaunamayor cantidad de datos en la grhflca, dando por resultado una mica “comprimida”.

e Fourier. Realiza un algoritmo de trandormada nipida de Fourier con los datos gaficados previamente .

La figura 3.3.1, muestra el aspecto del osciloscopio virtual antes de graficar cualquier dato. En su panel se pueden observar las funciones que desarrolla

12

UNIVERS~DAD ATJTONOMAMETROPOLITNA

Fim 33.1. COMPU-OSCILOSCOPIO.

En la figura 3.3.2, podemos observar el osciloscopio en la opci6n de grajca.

Fígwra 33.2. Opci6n grafica

En la figura 3.3.3, hemos capturado los datos a travez de grci$ca y ahora estan en la opci6n expande. La grafica puede ser expandida en una serie de 8 escalas de tiempo consecutivas.

13

rroyecto ae lngetllerla electromca memlo ~~enaoza ciarcla

Figura 333. Opci6n Expande

En la figura 3.3.4 se est& realizando la acci6n de compres para obtener un mayor periodo de tiempo graf~cado. Es la operaci6n contraria de expande.

Figura 33.4. Opci6n Compres.

14

UNIVERSIDAD AUTONOMA METROPOLITANA

rroyecto ae mgenlerla elecwonlca a m l o luenaoza ciarcla

T T una caracierísiica extra dei sisiema es que puede ser diiizaáo como un simuiador si introducimos una h c i h directamente en el cddigo del programa en lugar de la s d a l de entrada por el puerto serial. De esta manera podemos observar el comportamiento en fiecumcia de casi cualquier h c i 6 n matematica continua desmollada te6ricamente. Esta sefial podria ser transformada maternaticamente por un filtro digital y ser observada con el sistema hi p~drlam~s estar hablando de un simulador de filtrado digital.

Evidentemente para realizar esta labor serfa necesario ampliar l a s caracteristicas y agregar mis hciones al panel de control. Este desarrollo se deja abierto para futuros proyectos.

15

UNMZRSIDAD AU'TONO~~AMETROPOL~~AN~

proyecto ae mgenlena elecmnlca ~tzemio M~I-IUOZ~ varas

4. CONCLUSIONES.

Evidentemente la ventaja mayor que representan estos tipos de sistemas (un tanto caseros) es el bajo costo requerido para implementarlos. Representau una alternativa real para suplir las deficiencias propias en cuauto al equipo disponible en l a s universiades del país.

Ademh de lo anterior, el proyecto en si m i m o ea did8ctico: en el proceso de implementaci6n se aprenden los conc6ptos del funcionamiento de un sistema minim0 y la manera de hacerlo crecer hacia alguna aplicacibn en particular. El proyecto no solo abarca los aspbctos de Hardware de un microprocesador, sino que tambi6n involucra varios otros temas como el procesamiento digital de sefldes y el desarrollo de sistemas. Inclusive el programa MONlTOR representa un pequefío sistema operativo para el sistema Asi, con este proyecto se pretendio ejercer el oficion de la ingenieria: integrar diversas herramientas para lograr dar una solucibn practica a un problema determinado.

La mayor desventaja encontrada fu6 la presicibn de el aparato. Tambitsn es de tomar en cuenta el tiempo necesario que hay que invertir en la construccih, ya que si tenemos la necesidad de hacer uso de la herramienta en un corto plazo definitivamente no podemos contar con ella

Otra importrmte desventaja ea la bajavelocidad de muestreo, ya que esta velocidad limita el rango de kcionmiento del sistema Esta velocidad esta determinada por la impiementaci6n de los convertidores analogicos/digitales dentro del S68HC11.

Los algoritmos implementados para el sistema son factibles de ser mejorados, sobre todo en lo que respecta a el procesamiento digital. Asi mismo el rigor en la medici6n de los mismos.

16

rroyecco de lngenlena electronlca man10 rJlenaoza barcia

rroyecto ae lngenlena electronlca Arcemlo Mencloza barcia

...................................................... * * * Proyecto Terminal Ingenieria Electrdnica It * * Programa Monitor para el microcontrolador 68HC11 -Al k

* Arkmio Mendoza Garcia * **k+*********+k**+****+*+*****+******+***********k*****

* Definici6n para los valores en 7 segmentos de letras, * números y simbolos

NO EQU $3F N1 EQU $06 N2 EQU $5B N3 EQU WF N4 EQU $66 N5 EQU $6D N6 EQU $77D N7 EQU $07 N8 EQU $7F N9 EQU $6F LA EQU $77 Lb EQU $IC LC EQU $39 Ld EQU $5E LE EQU $79 LF EQU $71 LH EQU $76 LI EQU $30 U EQU $38 Ln EQU $54 Lo EQU $5C Lr EQU $50 U EQW $78 CSR EQU $80 BLANCO EQU $00 PREGUNTA EQU $5 3

* Definición para los códigos de tecla

TO EQU $D8 TI EQU $DO T2 EQU $Dl T3 EQU $DZ T4 EQU $C8 T5 EQU $C9 T6 EQU $CA 'I7 EQU $20 T8 EQU $C1 T9 EQU $C2 TA EQU $C3

18

UNIVERSIDAD AUTONOMMETROPOL~TMA

rroyecto de lngenlerla etectronlca Hrtemlo MenaOza Wrc1a

m P n T r mnn l b n.yu 9Ld

TC EQU m 3

TE EQU $DA TF EQU $D9 T F l EQU $C4

"3 EQU $04 TF4 EQU $Di: CF1 EQU $44 CF2 EQU $4C CF3 EQU $54 CF4 EQU $5C SF1 EQU $84 SF2 EQU $8C 9F3 EQU $94 SF4 EQU $9C CSF1 EQU $04 CSF2EQU $OC CSF3EQU $14 Cm4 EQU $1C

m EQ" $DE

TF2 EQU scc

* Tabla de valores num6ricos

VO EQU $00 V1 EQU $01 V2 EQU $02 V3 EQU $03 V4 EQU $04 V5 EQU $05 V6 EQU $06 V7 EQU $07 V8 EQU $08 V9 EQU $09 VA EQU $OA VB EQU $OB VC EQU $OC VD EQU %OD V E EQU $OE VF EQU $OF

* Vectores de intermpcidn y reset

* Definicibn de los valores para inicio de propma, * servicio de interrupcidn, inicio de tabla de 7 seg- * mentos, tabla cddigo, inicio de la pila y tabla de IC valor numbrico

VACIO EQU $0000 ASCEND- EQU $0000 ZNPILA EQU $OOFF INICIORAM EQU $2000

19

Yroyecro ae mgenlena elecvonlca memlo Menaoza w c l a

CODE EQU $2001 POSH EQU $2002

ACTCTRC EQU $2004 CONTEO EQU $2005 ADDH EQU $2006 ADDL EQU $2007 BYTEH EQU $2008 BYEL EQU $2009 SENTlDO EQU $200A

FINRAM EQU $3FFF INICIO EQU $EO00 INCIOROM EQU $EO00 FINROM EQU $EOOF

TABCOD EQU $ECFF TECBIN EQU $ED01 L&U?U?ESEhT EQU $ED12 IJMFUNCCTRZ, EQU $ED16 I "FUNCsFT EQU $EDlA L ; I h l l F u N C m EQU %DIE FINTABCOD EQU $EDlE TAB7 EQU $EDIF INICIOF EQU $EDOF TABVAL EQU $ED39 VALORDATOS EQU $m00

POSL EQU $2003

AUX EQU $200B

INT EQU $EOFF

* Definicidn para los valores del 8279

DATO EQU $6000 CONTROL EQU $6001 PRGESCALAR EQU $34 RAMDESPAI EQU $90 .UMLXPSA EQU $80 MODOESC EQU $00 L;EcFIFO EQU $40 DESPDATOAI EQU $96

* Tabla de c6digo de teclado

ORG TABCOD Fcb TO,Tl ,TZ1T3,T4 Fcb T5 ,T6,T7 ,T8,Ts, Fcb TATB,TC,TD,TE Fcb TF,TFl ,TF2,TF3 Fcb TF4,CFl ,CF2,CF3 Fcb CF4,SFl ,SF2,SF3 Fcb 3F4,CSFl , C m Fcb CSF3,CSF4

* Tabla de 7 segmentos

ORG TAB7

U-AD AUTONOMAMITROPO~ANA

YToyecto de lngenima electronica Artemlo Nlendoza barcia

* Tabla de valor m ¿ r i c o

ORG TABVAL Fcb V0,Vl ,V2,V3,V4 Fcb V5,V6,W,V0,V9 Fcb VA,VB,VC,VD,VE Fcb VF

* Programa principal

ORG INICIO LdSmILA Jsr CONOFTION Jtrr CONF8279 Jsr LJMPI.4 Jsr ROM Jsr RFTARDO 1 JsrCHECKROM Jsr =ARDO 1 Jsr LIMPI.4 Jsr RAM Jsr RETARDO 1 Jsr LIMPIA Jsr C H E C " Jsr RETARDO 1 Jsr LIMPLA

PRINCIPAL Jsr MONITOR Cli Wai LdaA CODE CmpA#TFl Beq 00 CmpA#TF2 Beq STORE CmpA#I'F3 Beq REG CmpA#TF4 Beq TRANS CmpA#CFl Beq EXAM Jsr LIMPIA Jrrr ERROR Jsr RETARD02 JmpPRINCZPAL

JsrDESFTE Jsr RETARDO2 JmpPRINCIPAL

GO Jsr LIMPIA

21

UNIVERSIDAD AUTONOMAMETROPOLITANA

rroyecto ae lngenlena elecu-onlca m m l o rvlenaoza ciarcla

STORE Jsr LZMPIA Jsr DESPTEC Jsr RETARDO2 Jrnp PRWCZPAL

StaA CODE JW LIMPIA Jsr REVREG Jw RETARDO 1 Jsr LIMPIA Jmp PRINCIPAL

TRANS Jsr LB4PIA Jsr DESPTEC Jsr RETAFU302 Jmp PRINCIPAL

REG LdaA WAC10

EXAM LdaA WAC10 StaA CODE Jsr LIMPIA

JW R 3 3 V " O Jsr RETARD02 Jsr LJMplA J m p PRINCIPAL

* Rutina de configuracidn del registro OPTION

CONOFTION FshA PshB Pshx PshY Mea #$3 3 Staa $1039 PulY PulX PUlB PulA Rts

Bloque de atcnci6n de intenupcidn

ORG INT Jsr LEEIEC Jsr BCODTEC R t i

Rutina de configuraci6n para el 8279

CON373279 PshA PshB Ldaa #MODOESC Staa CONTROL Ldaa#PREEscALBR staa CONTROL P U B PulA Rts

22

UNTVERSIDAD AUTONOMAMETROPOLEANA

* Rutina de despliegue de menselie ROM

ROM PshA PphB PSfix PShY MaAffRAMDE2PAI St& CONTROL Ldx #TA?37 LdaA21,X R StaADATO LdaA20,x o StaADATO LdaA19,X n StaADATO PUlY PulX P U B PulA RtS

* Rutina de despliegue de mensaje RAM

RAM PshA PshB Pshx PshY LdaA#RAMDESPAI S t a CONTROL Ldx mm7 LdaA21,X R St& DATO * MaA 10,X A StaA DATO Lda.4193 n StaA DATO Pul Y Pulx PUlB Puk Rte

* Rutina de chequeo de ROM mediante la * tecnica de CHECKSUM

CHECKROM PshA PshB PShX PShY LdaA##$oo Ldx #INICIOROM

h Cpx #FINROM

SUMA AddAg

23

proyecto cte mgenlerla electronlca m 1 0 menaoza ciarcla ~~~~

Bnc SUMA CmpA VALORDATOS Beq SAL1 Jmp SAL2

Jmp SAL3

Jmp SAL3 SAL3 Puiy

Pulx PUB PulA Rts

SAL1 JsrBIEN

SAL2 JsrMAL,

* Rutina de retardo de 2 segundos

RETARD02 PshA PshB Pshx PshY LdaA #%O8

DISMCUENTA LdX #$O0 DECRXMENTA DeX

Bnt DECREMENTA DecA Bne DBMCUENTA PulY PulX PulB PulA Rts

* Rutina de retardo de 1 segundo

RETARDO1 PshA PshB Pshx PshY MaA#%O3

DEC-A I.dX #$O0 DIShlDJUYE DeX

Bne DISMINUYE De& Bne DECCUENTA PulY Pulx PulB PulA Rts

* &tina de limpieza de displays

LIMPIA PshA PshB Pghx

F%hY Ldab#RAMDE3PM Stab CONTROL Ldaa #$O8

B b ; R I X I D O L d a b f # B ~ C O Stab DATO DecA Bne BARRTDO Pul Y PUlX PUlB Pula Rts

IC Rutina de chequeo de RAM

C H E C W PshA

c o w

SALA

SAL5

PshB Pshx Pshr Ldx # I N I C I O W LdaAHAA U J

Cba Bne S A L 4 5°K

B i g COMP Jsr BIEN

Jsr MAL Jmp SfSL5

Pulx PulB PulA Rts

cpx m

Jmp SACS

Puly

* Rutina de despliegue de mensaje de saludo

MONlTOR PshA PshB Pshx PshY LdaA#RAMDESPAI St& CONTROL LdXmAB7 Ldaa 19,x StaaDATQ n Ldaa 207 StaaDATO o Ldaa 19,x StaaDATO n Ldaa 177

UNIVELRS~DAD AUTONOMAMETROPOLRANA

rroyecto be mgemena elecuonrca mermo Menaoza ciarcla

gtaaDAT0 I Ldaa 22,x StaaDATO t Ldaa 20,x StaaDATO O Maa 21 ,x StaaDNO r PulY Pulx PulB PulA RtS

* Rutina de lectura de tecla * El c6digo de la tecla leída de la * FlFo del 8279,se &vuelve en la * localidad de memoria designada como * CODE LEETEC PshA

PehI3 PShX PshY Ldaamm Staa CONTROL Ldaa DATO StaA CODE PulY PUlX PulB PulA Rts

Rutina de búsqueda de c6digo de tecla Como entrada, se tiene el valor contenido en la localidad de memoria deaignada como CODE. Devuelve la posici6n del c6digo de tecla en la tabla TABCOD en la localidad de memoria designada como POSL y POSH

BCODTEC PshA

CICLO

PshB Pshx PshY Ldx ##TABCOD LdaA CODE CmpA 0,x Bcq SALlDA Inx Cpx ##FINT#BCOD Bne CICLO

SALIDAStXPOSH PulY PUUC

26

* Rutina de deapliegue de tecla * Como entrada, se proporciona la posicih * de la tecla en la tabla TABCOD contenida * en la localidad designada como POSH y POSL

DESPTEC PshA PShB Pshx PshY Ldx POSH Cpx #INICIOF Ege mcIoNES LdaA 3 2,x StaADATO Jmp SAL

Ble FUNCSEN

Ble FUNCCTRL

Ble FUNCSFT

Ble FuNCcTRLsFT

LdaA #RAMDEsPAI StaA CONTROL

15,Y StaADATO M A 17,x StaADATO Jmp SAL

LdaA#RAMDEsPAI StaA CONTROL

12,Y StaADATO LdaA f5,Y StaADATO U a A 1 3 , x StaA DATO Jmp SAL

MA#RAMDEmAI StaA CONTROL

5,Y 3taA DATO LdaA 15,y StaA DATO LdaA 9 3 StaADATO Jmp

FUNCIONES cpx#LIMFwNcsEN

cpx #L;enm;TNccTRL

cpx #LIMFcTNcsFT

cpx #&JMFuNc-

FUNCSEN Ldy#TAl37

m c m LdywTAB7

FUNCSFT Ldy #TAB7

27

UNNERSLDAD AUTONOMAMETROPOLITANA

rroyecto ae lngenlerla elecurlnlca m m o Menaoza ciarcla

FwNccTRLgFT LdyWTAB7 LdaA#WESPAI StaA CONTROL LdaA 12,y StaA DATO LdaA 5 ,Y StaA DATO LdaA 15,y StaA DATO LdaA 5,x St& DATO

3AC Puly PUlX PulB PulA Rt.8

* Rutina que despliega el aviso de * chequeo bien

BIEN PshA PshB PShX

PShY LdaA#F¿AMDEsFAI StaA CONTROL Ldx ##T-7 LdcA11,x b StaA DATO LdaAl7,x I StaADATO LdaAl4,x E StaA DATO LdaAl9,x n S t a DATO Puly Pulx PulB PUlA Rts

* Rutina que despliega el aviso de * chequeo mal

MAL PshA Pam P s h PShY LdaA #RAMDEsPAI StaA CONTROL Ldx #TAB7 LdaA 19,x n StaADATO LdaA10,x A S U D A T O

28

UNIVERSIDAD AUTONOMAMETROPOLJTANA

* Rutina que despliega el aviso de * Error

EBROR PshA PshB Pshx PshY LdaA#RAMDEspAI Sta C O r n O L *#TAB7 LdaA14,x E StaADATO -219 r StaA DATO M 2 1 7 r StaA RATO LdaA207 o StaA DATO MaA21,x r StaADATO PulY Pulx PUB PUlA Rts

Rutina de revisi6n de memoria Como entrada se tiene el valor almacenado en CODE. 3e hace uso de las localidades de memoria CONTEO y ACTC3'R.L para guardar el nttmero de veces que se a oprimido una tecla vdlida y para guardar momen- taneamcnte la palabra de control del 827 9

liEvMEM0 PshA PshB Pshx PshY

3taA c o m o LdaA #RAMDESPSA StaA ACT-

MCJA -#$O4

DESPCTJRSOR Jsr CURSOR Ldx POSH Cpx #INICIOF

29

UNIVERSIDAD AUTONOMAMETROPOLXTANA

Yroyecto ae mgenlerla electronlca ivtermo menaoza =cia

Blc RECIBE Jsr TECLAMAL Jmp INICIA

DESCENDENTE LdaA WACSO St& CODE Wai LdaB CODE

Beq AUTODESC CmpB #TF4 Beq MANDESC Jsr TECLAMAZ, Jmp INICIA

StaA CODE Ldx ADDH Dex 3tx ADDH Jsr DESPDIR Jsr DESPDATO Jsr RETARD02 LdaB CODE CmpB ##TFl

Jmp AUTODESC

C q B m

AIJTODmC LdaA #VACIO

Beq ESPERA

RECIBE LdaB CODE CmpB #TFl Beq SALlGYMEWO Jm DESPTEC Jsr DIREC Dec CONTEO Beq MUESDATO Inc A" LdaB ffVACIO St& CODE Jmp DESPCURSOR

h/luEsDATO Jerr DESPDATO mElw MaA WACIO

StaA CODE Wai LdaB CODE CmpB ffT F l Beq SALREVMEMO CmpB m Beq DESCENDENTE CmpB #"F3 Beq AUTOASC CmpB #IT4 Beq MANASC Jsr TECLAMAI, Jmp INICIA

MANDEZC Ldx ADDH Dex Stx ADDH Jsr DESPDlR

rroyecto de mgenlena efectronlca rutemlo Menaoza ciarcla

Jw DEDDATG Jmp ESPEFA

A~uTOi?SC LdaA ##YACE StaA CODE Ldx ADDH Inx L ~ X ADDH Jsr DESPDIR Jsr DESPDATO Jsr RETARDO2 LdaB CODE CmpB #TF1

Jmp AUTOMC MANMC Ldx ADDH

Inx Stx ADDH Jsr DESPDIR Jsr DESPDATO Jmp ESPERA

PUlX PulB PulA Rts

Beq ESPERA

" 0 PulY

* Rutina de despliegue & cursor

CURSOR PshA PshB Pshx PshY

PROMPT Cli LdaAACTCTRL St& CONTROL LdaAKSR StaADATO Jw RETARDO1 Ld&#BLANCO StaADATO Jsr RETARDO1

CmpB WACIO Beq PROMPT Pul Y Pulx PulB PUL4 Rts

LdaB CODE

* Rutina de aviso de tecla equivocada

TECLAMAL PBhA PshB P e h x

31

UNIvEEZslDm AUTONOMAMETROPOLJTANA

rroyecto ae mgemena elecmnlca m e m o menaoza uarcla ~~

PahY Jsr WIA

Jsr ERROR Jsr RETARDO2 Jsr LIMPIA LdaA#VACIO StaA CODE PulY PulX PulB M A Rts

* Rutina que se encarga de desplegar el dato * contenido en la localidad correspondiente

DESPDATO PshA PShB PShX PshY LdaA #DESPDATOAI StaA CONTROL Ldx ADDH LdaB o x staJ3 BYrEH StaB BYEL Id& #$FO hdB BYTEH LWB LarB LsrB LsrB LdY #TAE%7

9 AbY LdaB 0,Y StaB DATO LdaB #$OF AndB BY'IEL Ldy #TAB7 AbY

St& DATO PulY Pulx PUB PulA RtS

LdaB O,Y

* Rutina encargada de desplegar la * direccibn de memoria correspondiente

DESPDIR PshA PshB Pshx PshY

StaA CONTROL Ldx ADDH XGDX StaA BYTEX StaA BYEL LdaA MFO AndA BYTEX LsrA LsrA LWA LSrA

StaB AUX Tab AbY LdaB 0,Y StaB DATO LdaB #$OF AndB BYTEL

M y #TAB7

Ldy mAB7 A b Y LdaB 0,Y StaB DATO MaB AUX StaB BYTEH StaB BYTEL LdaB #$m AndB BYTEH LsrB LWB LsrB LsrB LdY #TAB7 AbY LdaB 0,Y St& DATO LdaB #$OF AndB BYTEL Ldy -AB7 AbY Mal3 0,Y St& DATO Pul Y PuiX PulB PulA Rts

* Rutina que obtiene la direccibn de * la localidad de memoria

33

UNMWIDAD AUTONOMAMETROPOLITANA

rroyecto ae mgemena electronlca fu-temlo menaoza c iama ~ ~~

Pshx PshY M& c o m o CmpA #$O4 Beq ALTAALTA CmpA ##$O3 Beq ALTABMA CmpA ##$O2 Beq BMAALTA CmpA #$O1 Beq BATABATA

ALTAAT-TA Ldx POSH LdaA 5 8 3 LslA LslA LslA LslA StaAADDH Jmp REGRESA

LdaArnDH LdaB 5 8 3 StaB ADDH OrA ADDH StaAADDH Jmp REGRESA

BATAALTA Ldx POSH LdaB 58X LslB LSD LslB LslB StaB ADDL Jmp R E G W A

LdaB ADDL m 5 8 x StaAAUbL OF3 AIsIliL 3taB ADDL

PUlX P U B PulA xts

ALTABNA Ldx POSH

BAJABAJA Lcbr POSH

REGRESA PulY

34

rroyecto dc m g m e n a electromce Artemlo Mendoza -cia

nnnn- r..- T n m r A K I 9 A N 1 JHI' U Y W J &

~~ ~~

LdaA #$O0 StaAAUX Jsr DESPREG Ld& WAC10 StaB CODE Wai LdaB CODE CrnpB #TF1 Beq INREG CmpB #TF4 Beq CAMBIA Jsr TECLAMAL Jmp INIREG

BLOQUEREG Jsr LIMPIA LJaA#$Ol StaAAUX LdaB #VACIO StaB CODE

INICONTEWLdaA#$04 S t f A CONTE0 LdaA fCRAMDESPSA StaAACTCTRL

PONCURSOR Jar CURSOR

RJIREG

ACEPTA

Ldx POSH Cpx #INICIOF Ble ACEPTA Jsr TECLAMAL Jmp INICONTEO4 Jar CCROREG Wai LdaB CODE CmpB # T F 1 Beq SALEDREG CmpB Beq REGINT CmpB #TF3 Beq BLOQUEREG Jsr TECLp;MAL Jmp INIREG LdaB CODE

CmpB Wl'Fl Beq INREG Jsr DESPTEC Jsr DIFSc' Dec CONTEO Beq PONDATO Inc ACTCTRL LdaB WAC10 St& CODE Jmp PONCURSOR

PONDATO jsr DESPREG LdaB WACXO 3taB CODE Wai

35

UNIVERSIDAD AUTONOMAMETFLOPOLITANA

Yroyecto de mgeruerta etectrontca ~ l s ~ m l o MITI~OZB varas

LdaB CODE CmpB "F1 Beq INKEG

Beq CAMBIA Jsr TE- Jmp INTREG

CAMBIA JsrL.WIPIA Jsr MODIFREG LdaB WACTO StaB CODE Wai M& CODE CmpB # T F I Beq INIREG Jsr TECLAMAI, JmP INIREG

Pulx PulB PulA Rts

~ ~~

cmpa m 4

SALEEVREG PulY

* Rutina encargada de modificar cl * contenido del registro seleccionado

MODIFREG PshA PshF3 Pshx PshY

NIMODIFREG LdaA WAC10

DESPCSR

ADMrrE

StaA CODE LdaA #%O8 StaA c o m o LdaA #RAMDESPSA StaA ACT-

Jsr CURSOR Ldx POSH cpx mcBN Ble ADMITE Jw TECLAMp;L Jmp INIMODlFREG

Beq SALMODIFREG Jsr DESPTEC Jar BINHEX Dec CONTEO Bcq CAMl3IARXG Inc ACTCTRL LdaB #VACIO StaB CODE Jmp DESPCSR

CmpB m 1

CMIAREG- Jsr GUARDADATOBN SALMODIFREG PulY

PulX 36

UMVERSII~AD AUTONOMAMETROPOLITANA

rroyecto de ulgcnlena eh+mronlca a m l o fflenaoza tiarcla

h. .in r U 1 D

PulA Rt:

* Rutina encargada de convertir un * datQBIN HEX

BINHEX PshA PShB Pshx PtrhY LdaB CONTE0 CmpB #$O8 Beq BIT8 CmpB #$O1 Beq BIT1 Ldx POSH LdaA 5 8 3

DECBE LalA DecB Bne DECBIT Or& BYTEH StaA BYTEH Jmp SALBINHEX

MaA 5 8 3

DecB Bne DECBIT StaA BYTEH Jmp SALBINHEX

MaA 5 8 3 OraA BYTEH StaA BYTEH

BIT8 Ldx POSH

DEBIT8 LslA

BIT1 Ldx PO3H

SALBINHEX PulY PUlX PUB PdA Rts

* Rutina encargada de guardar en CCR * o en un registro interno la modificacihn * efectuada

GUAFCDADATOBItJ PshA PshB Pshx PghY LdaA AUX CmpA #$O0 Beg GUARDACCR CmpA #$O1 Beq GUARDATNT

GUARDACCR MaA AUX

37

UNIVERS~DAD AUTONOMAMETROPOLITANA

Yroyecto ae mgemerla elecuonlca mermo Menaoza varcla

TAP Jmp SALGUARDATOBDJ

LdaA AUX st& 0,x

SACGUARDATOBIN PulY Pulx Pull3 PUN Rts

~~ ~~~

(3UARDAINT Ldx ADDH

* Rutina que despliega la pregunta * para seleccionar CCR o el bloque * de registros

CCROREG PshA PshB Pshx PshY LdaA#RAMDEspAI StaA COUTROL Ldx #TAB7 LdaA123 StaADATO LdaA 1 2 3 StaADATO -213 staAnxro LdaA 2 4 3 StaADATO LdaA21Jc StaADATO LdaA 14,X StaADATO LdaA 9,X StaADATO LdaA 2 5 3 StaADATO PulY Puuc PLdB PulA RtS

c

C

R

BLANCO

R

E

G

?

* Rutina encargada de desplegar el * contenido del registro correspondiente

DESPREG PshA P S B

Pshx PshY LdaB AUX CmpB #o0 Beq C-UCCR CmpB #o1

UNIVERSIDAD AUTONOMAMETROPOUMTA

yroyecto de ingalena electromca m m l o ~enaoza m c l a

* Rutina encargada de transformar * e! datoHEXaBIN

DESPBIN PshA PshB Pshx PshY LdaA #RAMDESPAI S t a CONTROL LdaB BYTEH StaB BYTEL LdaB #$M) AndB BYTEH StaB BYTEH LdaA #$o4 LdaB #$80

VERBm BitB BYTEH Beq PONCEROH PshB LdaB #$O6 StaB DATO PUB LsrB DecA Bne VERBm Jmp BITL

LdaB #$3F St& DATO P U B LsrB DecA Bne VERBITH

An& BYTEL StaB BYTE;L LdaA #$o4 LdaB #$O8

VERBEL BitB BYTEL Beq PONCEROL PShB

PONCEROH PshB

BEL LdaB #$OF

39

proyecto ae lngenlerla electronlca m c e m 1 0 Menuoza w c l a

M& M06 3taE DATO PulB LsrB DecA Bne VE.RBlTL Jmp SALDESPBIN

LdaB #$3F St& DATO PulB LsrB DecA Bne vE3IBlTL

hlx PUB PulA

PONCEROL PshB

SALDESPBIN h l Y

m8

ORG RESET Fdb INICIO

ORG INTERRUPCION Fdb INTO

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

* * * Proyecto Ingenieria Electrbnica II

* para el microcontrolador 68HC11 -Al * Attemio Mendoza Garcia

Programa de conversi6n analbgico-digital

* ******l********h***h*******MI*******************MI******

* Definicih papa los valores en 7 segmerltoe de letras, * * numeros y sfmbolos

NO EQU $3F N1 EQU $06 N2 EQU $5B N3 EQU %4F N4 EQU $66 N5 EQU $6D N6 EQU $7D N7 EQU $07 N8 EQU $7F N9 EQU $6F LA EQU $77 Lb EQU $7C LC EQU $39 Ld EQU $SE LE EQW $79 LF EQU $71 LH EQU $76 LI EQU $30 LL EQU $38 Ln EQU $54 Lo EQU $5C Lr EQU $50 W EQU $78 CSR EQU $80 BLANCO EQU $00

* Definici6n de los valores para inicio de programa, * servicio de int.m.pcibn, inicio de tabla dc ? seg- * mentos, tabla cbdigo, ir&% de la pila y tabla de * valor numCrico,etc.

VACIO EQU $0000 INPILA EQU $OOW ADCTL EQU $1030 ADRI EQU $1031 OPTION EQU $1 039 INICIORAM EQU $2000 INCIOBLOQUECAF’ EQU $2000 FINBLOQUECAP EQU $200F

41

UNNERSIDAD ATJTONOMA”IRUPOLITANA

Yroyecro ae lngenlerla elecvonlca ~ttemlo wenaoza ciarcla

FINRAM EQU $3FFF

INICIOBUFFER EQU $2010 INICIOROM EQU $EO00 INICIO EQU $E000

AUX EQU $3FFF

TAB? EQU $EDIF INT EQU $EOFF VALORDATOS EQU $m00 FINROM E.QU SFFFF

* Definicih para los valores del 8279

DATO EQU $6000 CONTROL EQU $6001 PREESCALAR EQU $34 RAMDESPAI EQU $90 RAMDESPSA EQU $80 MODOESC EQU $00 LECFIFO EQU $40 DESPDATOAI EQU $96

Tabla de 7 segmentos

ORG TAB7 Fcb N0,Nl ,N2,N3,N4 Fcb N5 3?6,N7 ,N8,N9 Fcb LA,Lb,LC.Ld,LE Fcb LF,LH,LI,LL,h Fcb Lo,Lr,Lt,CSR Fcb BLANCO

Rutina de configuracih d e l registro OPTION

CONOPTION PshA P S h B

Pshx PshY Ldaa #%B3 Staa OPTION PulY PUlX PulB PUlA RtS

* Rutina de configuraci6n para el 8279 * Se considera entrada por la izquierda, * con autoincremento,

COW8279 PshA PShB Ldaa #MODOEX Staa CONTROL Ldaa WREESCALAR Staa CONTROL

42

UN-IWGSDAD AUTONOMAMETROPOLITANA

rroyecto ae ulgemcrla electronlca ~ l t e m l o Menaota ciarcla

Piill; PulA DC." Iu,a

* Rutina de deopliegue de menrraje ROM

ROM PshA PshB Pshx PshY LdaA#RAMDESPM StaA CONTROL Ldx mAB7 LdlLA21,X R StaADATO L$aA20,x o StaADATO LdaA19,X n StaA DATO PUlY PUlX PulB P d A Rts

* Rutina de despliegue de mensaje RAM

RAM PshA PshB Pshx PshY LdaA#RAMDESPAI StaA CONTROL Ldx#TAB7 -213 R StaA DATO LdaA103 A 3taADATO LdaA19,X n StaADATO PUlY PUlX m PulA lb

* Wna de chequeo de ROM mediante la * tCcnica de CHECKSUM

CHECKROM PshA PShB

Pshx PshY m #%O0 Ldb tmJICIOROM

43

UNNERSIDAD AUTONOMAMETROPOLITANA

rroyecto ae mgmeria electronlca ~tzemio menaoza ciama

guMA MdAOJC Inx Cpx #FINROM Bnc SUMA CmpAVALORDATOS Beq SALBIEN Jmp SALMAI,

Jmp SALROM

Jmp SALROM

PUlX PulB PulA Rts

SALBIEN Jsr BIEN

S A L M A L Jsr MAL

SALROM PulY

* Rutina de chequeo de RAM

LCE€!zCKRAM PshA PrrhB Pshx PshY LdXmaoRAM LdaA #$AA

C O W S t a A O X LdaB 0,x Cba Bne SALDEFECTO Inx cpx #.FlNwM Bls COMP Jsr BIEN Jmp SALRA;M

SALDEFECTO Jsrh4AI,

PUlX PulB PulA Rts

SAWCAM Puly

* Rutina de limpieza de displays

LIMPIA PshA PshB Pshx PghY Ldab #RAMDEWAI stab CONTROL Ldaa #$O8

BARRIDOLdab#BLANCO Stab DATO DecA Bne BARRIDO PulY

44

U N ~ ~ E R ~ I D A D AUTONOUMETROPOLITANA

m PulB FulA Rts

* Rutina que despliega el aviso de * chequeo bien

BlEN PshA PshB Pshx Pshy LdaA # W E S P A I StaA CONTROL Ldx #TAB7 - 1 1 , ~ b St&LDATO LdaA17,x I StaA DATO LdaA14,x E StaADATO LdaA 19,x n StaA DATO Puly Pulx PulB PUlA RtS

* Rutina que despliega el aviso de * chequeo mal

MAZ. PshA P S B PShX Pshy LdaA #RAMDEspAI StaA CONTROL Ldx nAF37 LdaA 19,x n StaA DATO LdaA 103 A StaA DATO LdaA 189 L StaA DATO

Pulx PulB PulA R t S

P d Y

* Rutina de limpieza para el bloque * de memoria seleccionado

CERORAM PshA

45

U-AD AUTONO~&AMETROPOLITAHA

rroyecto ae mgetuena elecwomca rutem10 rvrenaoza w c l a

PafiB Pshx PshY Ldx #INIcIoRAM LdaAWAcIO

rnx CpX #FINBLOQUECAP Bls VUELVE PulY Pulx PulB PulA Rts

VUELw w0,x

* Rutins de retardo de 2 segundos

RETARD02 PshA PshB Pshx PshY LdaA#$o4

DISMCUENTA LdX #$O0 DECREMENTA DeX

Bne DECREMEWTA DecA Bne DISMCUENTA Pul Y PUlX PUB PulA Rts

* Rutina de captura de seflal por el canal cero * Como entrada necesita la direccidn * inicial del bloque de memoria deseado * contenido en la constante INICIOBLOQUECAP; YP tambih necesita el la direccibn final con- * tenida en la conatante FINBLOQUECAP. * Como salida deposita los valores convertidos * en el bloque especificado en complemento * a 2's y con un tamdo de dos bytes,

cAPsmAL PshA PShB Pshx PehY LdX #INICIOBLOQUECAP LdaB #$O1 LdaA #S20 StaA ADm

PRUEBA LdaA ADRl Ne& StaA 0,x Inx

46

rroyecto de lngenlena electronlca memro memoza ciarcla

v.. h

l Y X StaA AUX Bita A m Bne ACARREO I t a CpX LOQ QUE CAP Fls PRUEBA Jmp SALCAPSENAL,

ACARREO LdaA #%O1 3taA ox m CpX #FINBLOQUECAP Bls PRUEBA

Pulx PulB PulA RtS

SALCAPSENAI, PulY

Rutina encargada de copiar el contenido del bloque de memoria del sistema eqecificado; a una direccibn de memoria buffer. Como entrada necesita el inicio y fii del bloque guradados como constantes en l a s etiquetas IMCIOBLOQUECPS Y FINBLOQUECAP. hi como el inicio &l bloque buffer especificado en INICIOBUFFER. Como salida la copia se deja en el buffer especi- ficado

BUFFER PshA

CICLO

PShB Pshx PshY LdX #INICIOBLOQUECAP LdY #INICIOBUFFER

0 3 StaB 0,Y m InY CpX #FINBLOQUECAP Bne CICLO PulY PulX Pull3 PulA Rts

* Vectores de interrupcih y reset

RESET EQU $FFFE INTERRUPCION EQU $FFF2

ORG RESET Fdb INICIO

47

yroyecro ae mgemena electromca "110 Nlenaoza earcia

ORG INTERRUPCION Fdb INT

III Programa principal

ORG INICIO Ms #INPILA Jar CONOF'TION Jsr CONF8279 Jsr WIA Jsr ROM Jsr RETARD02 Jsr CHECKROM Jsr RETARD02 Jsr LIMPIA Jsr RAM Jsr RETAFU302 Jsr L,IMPIA Jsr CHECKRAM Jar RETARDO2 Jsr LIMPIA JsrCERORAM

Jsr BUFFER Jmp CAPTURA m INIcIorJ

CAPTURA Jsr CAPSEN=

48

Proyecto de mgenlena electronlca &tern10 Menmza barcia

Programa para la adquisicibn de datos a travez d e l puerto serie y desplegar estos en forma de una &fica

Artemio Mendoza Garcia */

#include cdus.h> #include <gaphics.h> #include <rrtdio.h> #include <conio.h> #include <math.h> #include <stdlib.hr #include "patadah" #include "rs232.h" #include "pds.hY #include '0pciones.h'

#define APAGA O #define ITNCIENDE 1 #&fine NUM-OPT 5 #define COLOR-FONDO"JZNSATE CYAN #define COLOR-MENSATE BLUE

#define MENU O #define GRAFICAR 1 #define COMPRIMIR 2 #define EXPANDER 3 #define ESPECTRO 4

#define XSCR 500 Mefine YSCR 280

/* "" */ /* OPCIONES MENU osc ILOscoPIO */ /* "" */ char menu[][8]P{'Salir I,

"Wfica" , *Expande", "C-res", 'Fourier'};

P Coordenadas de la esquina superior izquierda de la pantalla grhiica *i

int xi,yi;

/* Variables donde tenemos los distintos valores de la escala */

49

UMVERS~DAD AUTONOMAMETROPOLJTANA

proyecto ae lngenlerla electronlca Arternlo Menaoza varcla

e m TipoaEscala{ Compl ,Comp2,Comp3,Normd,Exp1 ,ExpZ,Exp3&p4,Exp5) EscFrec; int Escala[]= (4096,2048,1024,512,256,128 $54 ,32 ,16}; char *Fret[] = { O / 1 ",V 2',V 4",V S","/ 16","/ 32"/ 64");

/* arreglo para la magnitud de la transfonnada de Fourier */

I* 1-11

* AREADE FUNCIONES * "" */ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * FUNCION OptMenu: DESPLIEGAMESU DE OPCIONES (08cILOSCOPIO) * ............................................................................ void OpfMenu(int qint y) { int i;

for (i=O;i<NUM_OPT,i++){ settextstyle @EI?AUL,T-FONT, HORIZ-DIR,O); PonCadena(x,y+i*3O,rnm[i],CYAN); setfillstyle(SOLID-F'LL,~); bar(x+60,y+i*30,~+77,y+i*30+5);

1 }/* FIN O p t M e n U */

* FUNCION Actualiza: SELECCIONALA OPCION ESCOGIDA * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . void Actualiza(int x,int y,int i,int Tipo) { s e t f i l l s t y l c ( S O ~ ~ ~ , ~ i p o ~ ~ ~ E ) ? LIGHTRXD ; WHEE); bar(x+60,pi*3O,x+77,y+i*30+5); > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * FUNCION Opcion: DEVUELVE LA OPCION SELECCIONADA * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . int Opcion (int x,int y) {

static int OptAct=O; int NoOptElegida = 1 ; char C,CBT,

while (NoOptElegida){

c = getch0;

switch(c){ case O : car= getcho;

Actualiza(x,y,OptAct,APAGA); switch(car){

50

case ENTER: NoOptElegida= O; break,

default : printf('0/ocn17);

}$* FIN CASE */ };I* m WHaE */ return (OptAct); }/* FIN OPCION *I

he&,

/*************W**+**********~*****~*****~****~******Q******~**~***~**~~~*~+*

* FUNCION PantallaOscill: DIBUJALAPANTALLADEL OSClLOSCOPIO * ................................................................................ void PmtallaOscill(void)

int i,Dx,Dy,

DX = XSCWl O ; Dy - YSCN1 o;

setlinestyle@O~D-LlNE,O,~CK~WIDTH); line(xi,yi+ 1 O*Dy-Z,xi+XSCR,yi+ 1 O*Dy-Z);

for (i-1 ;i< 1 O;i++){ setlinestyle@O'ITED-LINE,O,NORM-WIDM_WIDTH);

linc(xi+i*Dx,yi~i+i*D~~+YSCR); 1 j/* FIN P~TATLAOSC */

proyecto ae mgeluma electronlca mermo menaoza tiarcla

PantallaOscill(); setviewport(xi,yi,xi+XSCR,yi+YSCR,l);

PonCadena(O,5," Tiempo = Base",CYAN); PonCadena(ll5,5,Cad,CYAN);

PonCadena(1 80,5,0 Base = 0.05sU,CYANj; P0nCadena(320,5,~Amp = 0.5 VoltdDiv y,CYp;N); setcolor(L,IGHTRED); PonCadena(0,47," n',CYAN); PonCedena(0,50,n I",CYAN); PonCadena(0,60," f(t)",CYAN); PonCadena(O,265,' O t. ->",CYAN); s e t l i n e s t y l e ( S O L I D - ~ , O ~ O ~ - ~ ~ ; setpalettc(RED,5 I); setcolor (RED); Graf i caAr reg lo (110~~~~~os ,O ,O1XSCR,YSCRj ; setviewport(O,O,getmaxx0,getmaxy0,1); 1

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * mMCION Margen: PONE EL MAFGEN DE LA PANTALLA * ............................................................................ void Margen (ínt color,char *Cad) { int xmax,yma

setcolor(co1or); xrnax = gem@; m=- getmaxy0; rectangle (0,O ,xmax,ymax); rectangle (0,25maxymax); settextstyle ~LEX-FONT,HOFtlZ-DIR,1); PonCadena(1,l ,Cad,cotor); }

............................................................................ * FWNCION Osciloscopio: DIBUJA OSCILOSCOPIO * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . void Osciloscopio(void) { xi = getmaxx()/5,5 ; yi = getmaxyo/4;

setcolotfWHITE); setpalette(^BROW,56); s e t f i l l s t ~ l e ( S O L - ~ L ~ R O ~ ; bar3d (O,yi-2O,xi+XSCR+l O,yi+YSCR+40,10,1); PsntallaOsci110; LogoUMA(30,400,3); PonCadena(xi,yi+YSCR+ 1 5,'COMPU-OSCILOSCOPIOy ,YELLOW); 1

52

yroyecto de lngeruena electronlca ~1fem10 ~lendoza w c l a

.............................................................................. * FUkXION Mensaje: ABRE UNAVENTANA Y ESCRlBE I33 MENSAJE * ++c********i+i******~**~******~*~*******~***~******~*******~+~********~****/

{ void Menaaje(int xi,int yi,int xf,int yf,char *Cad)

void *Vent;

Vent = AbreVentana(xi,yi,xf,yf,COLOR-FONDO”l?,NS~); PonCadena(xi+l O,yi+@f-yi)/2,Cad,COLOR”E,NSATE); CierraVentma(xi,yi,Vvent>; }

............................................................................ * FUNCION SimulaOsciloscopio: SIMULA OSCILOSCOPIO * ***+****+*******+**+***********************~********************+***+***+*+/ void SimulaOsciIoscopio(void) { int op-1;

cleardeviceo; EscFrec -Normal; Osciloscopioo,

while (op != op - Opcion(30,yi+50); switch (op){

case ESPECTRO

case GRAFICAR

: for(;;>{ Analizado@; if (kbhia) break,

1 Osciloscopioo; cLptMenu(3 O,yi+5 O); fQ*,;l{

Grafica~cala[EscFrec],Frec~cFrecl); if (kbhito) break, 1 break;

case COMPRIMIR ; if &scFr&Compl) --EscFrec;

break, Grafica@scala[EscFrec],Frec[EscFrec~;

case EXPANDER : if &cFrec<Exp5) ++EscFrec; Gr~fica(Escala[EscFrec],Fi-ec[EscFrec]);

break, }P SWJTCH */

}/* WHlLE */ cleardeviceo;

Yroyecro ae mgenlena aectromca mermo Menaoza w c l a

void Inicializa(void) { int controlador, modo;

~ ~ ~~~

bioscom(0,163,0);

controlador = DETEm, modo - O ; initgraph(&controlador,&modo,Yc:video~); s e t t ~ t y l e ( s M A U _ F O N T , H ~ ~ - ~ ~ I ) ; 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . * FWNCION Analizador: REATJZALATRANSFORMADADEFOURIER * . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Analizador(void) {

// CalculaFFT(6,64,A,transformada); outport(Ox3 19,OxOl); cleardevice(); GraficaReal@ansformada,65,1 O,] 00,600,300); outport(ox3 19,OXm);

1

.................................................................................. * FUNCION PRINCIPAZ, * ************************************************************************~J

void main(int argqchar *arp[]) {

Inicializao; Presentaciono; SimulaOsciloscopioO; restorecrtmodeo;

54

yroyecto ae mgenlma elecvonlca m e m ~ o wmtoza cjarcla

6. BIBLIOGRAFIA.

Brigham, E.O., “The fast Fouerier Trandon”, F’rentice Hall, kc. , 1974.

KERNIGHAN, 1991.

Kernighan, W. BRIAN, Ritchie, M. Dennis, “The C progrmming language” Prentice Hall, Inc., 1991.

MOTOROLA, 1W.

(a) MOTOROLA “MC68HCllE9, Programming reference Guide”, 1989. (b)

e PUBLICACIONES MARCOMBO.

Series: Mundo Electrhico. “Interconexi6n de perif6ricos a Microprocesadores”, 1984.

UNIVERSIDAD AUTONOMAMETROPOLITANA