Beruflich Dokumente
Kultur Dokumente
c,8 * T .
INTRODUCCION En el laboratorio de fisiologa Humanq se realizan muchas pruebas que involucran parmetros, generalmente de tipo cardiopdmonares.
Una de las prueba que se realiza es la que involucra un fenmeno conocido, como Arritmia respiratoria.
la medicin de diversos
Durante el desarrollo de la prueba se utilizaba un metrnomo. El cual es un aparato que, medianteun mecanismo de relojera, hace mover una varilla en forma de pndulo invertido, con un contrapeso que puede deslizarse a lo largo de ella y colocarse frenteal nmero que se desee de una escala verticalfija en el aparato. Sirve para medir el tiempo, el sonido que produceel @ndulo, que oscila en el metrnomo al ponerlo en movimiento, indica de manera exacta la medicin del tiempo.El intervalo de tiempo seleccionableenun metrnomo comn variadesde 40 hasta
208 ciclodminuto. Con ayuda de este metrnomo se le peda al paciente que controlara su frecuencia respiratoria.
Lo cual resultaba dificil la mayora de las veces para el paciente, no logrando sincronizar su frecuencia
respiratoria conla frecuencia seleccionada enel metrnomo. Se propuso el desarrollo de un metrnomo digital, que ayudara mas fcilmente a sincronizar al paciente a una frecuencia requerida, para lo cual se p r o p usar una barra de 60 leds, colocados en forma vertical y continua, con lo que se propone, que esta barra de leds, funcione en ciclos de encendido-apagado, logrando que el paciente
e d controlada con ayuda deun siguiera este estimulovisual, para sincronizar su respiracin, esta barra de leds s
METODOS
Debido a los requerimientos mencionados anteriormente, el instrumento (Metrnomo digital), se desarrollo en dos mdulos, un modulo consisti6 enel desarrollo del sistema mnimobasado en el microcontrolador COP878OCJ, y el otro modulo consisti enla barra de 60 leds. Descripcin del instrumento Metrnomo digital, el metrnomo digital genera un tren de pulsos, cuya frecuencia puede ser seleccionada. Este tren de pulsos entra a la barra de leds, generando ciclos de encendido-apagado.Para lograr este trende pulsos se utiliza la funcin timer del microcontrolador COP878OCJ. Se dispone de un teclado para seleccionarla frecuencia
I
<
3
i
Teclado
Despliegue
Mcrmntrolador COPSOS7CJ
1
>
Barra de leds
una pantalla de 4 displays de7 segmentos. (Ver diagrama a bloques del instrumento).
El modulo del sistema mnimo esta basado en el COP878OCJ que cuenta conlas siguientes caractersticas: El COP878OCJ esun miembro de la familia de microcontroladores de8 bits "COPS", de National Semiconductor. El dispositivo usado esta disponible enuna versin DIP de 40 patas borrable mediante W. Este microcontrolador de bajocosto, es una microcomputadoracompleta,conteniendotodoslossistemasde reloj, lgica de interrupcin, memoria Epromy R a m , y puertos YO necesarios para el control de funciones dedicadas. Otras de sus caractersticas generales son; Memorias internas Eprom de 4KBytes, y Ram de 128Bytes. Velocidad de reloj de lMHz hasta D C . Contiene 6 puertos YO (Bidireccionales) de un Byte de ancho, y ademas cuenta con otras patas de funciones especiales; Vcc, GND, RESET, y para entradas de Reloj CKO, y CM. Los dispositivos perif&icos que se conectaron al microcontrolador, fueronun teclado de 12 botones enun arreglo matricial de 3 *4, y un sistema de visualizacin que consisti en 4 displays7 de segmentos denodo comn. El modulo de la barra de leds se realizo medianteun arreglo en cascada de 15 circuitos74LS194, que son registros de corrimiento bidireccionales de 4 bits, 60 leds, y una pequea lgica de control para manejar los registros de commiento. Descripcin del modulo del sistema mnimo Como se ha mencionadoanteriormente, el sistemamnimoesta
COPS78OCJ, se selecciono este microcontrolador, debido a su costo y a la ventaja de que este microcontrolador contiene internamente todos los dispositivos necesarios. Esto comparndolo con los microcontroladores que utilizan en la UAM-1, como son el 68HC11 de Motorola, y el 80188 de Intel.
Para trabajar con el COF%78OCJ, se adcpri la Unidad de evaluacin y programacin C O R , esta unidad esta
conformada con los siguientes elementos: Una tarjeta EPU-COPS, un cable para conectar la tarjeta al puerto serial
de la PC, una fuentede poder para alimentar la tarjeta, 3 disquetes conteniendo el
manuales de referencia. El material empleado enla realizacin del sistema mnimo h e el siguiente: SEMICONDUCTORES U1 - microcontrolador, COPS78OCJ. U2 - 74LS1264 buffers de 3 estados.
U3 - 74LS04, inversores.
s o -
para la tarjeta, y
D l - 1N914, diodo de silicio. DISP1-DISE - ODR-2044 display doblesde 7 segmentos de nodo comn. RESISTENCIAS (Resistencias f i j a s a 1/4 Watt,y 5% tolerancia) R 1 - 47000-0hm.
M-R5 - 180-0hm.
R6-RS - 1OOO-Ohm. R9 - 1 megaOlyn.
CAPACITORES
c1-0.1 M F , poliestet.
C2-C3 - 82 pF, ~ e r m i ~ a .
Tablilla perforada para wire grap,bases para wire grap, alambre wire grap. Seanexael
basado en el
COP878OCJ").Comopuedeobservarseen
adicionarcircuitosexternoscomo,memorias,lgica
conexi6n al microcontrolador se realizo de la manera siguiente: Se conecto la circuiteria de reloj del sistema, a las entradas CKI, G7KKO (patas7 y 8 del COP878OCJ). Se conecto el circuito de reset a la entrada RESET (pata 34 COP878OCJ). Se conecto el puerto L a la parte de visualizacin, losdos displays dobles (puertoL, LO-L7, patas de la 17 a la 24 del COP8780CJ). Se conecto el circuito74LS126A al puerto C, este parte se encarga de la seleccin del display que se va a encender (puerto C, CO-C3, patas 39, 40, 1, 2 del COP878OCJ). Se conectaron al teclado
los puertos D e I, el puerto D se encarga de escanear el teclado, el puerto I se utiliza para retorno (puerto D,
DO-D7, patas de la 25 a la 32, y puerto I, 10-17, patas de la 9 a la 17, del COP8780C.l). y el puerto G se conecto con circuitos inversores implementadoscomoW e r s , 74LS04 (puerto G, GO-G3, patas 35 y 38, del COP878OCJ
utilizo para la sefial de reloj CLOCK (pata 38 G3TTIO): y para la interrupcin va hardware se utilizo INT (pata
El modulo de la barra de leds, esta basada en 15 circuitos de corrimiento direccional(74LS194A), que controlan
60 leds, estabarra de leds es controlada por el modulo del sistema mnimo,se necesitan 4 sefIalespara controlar a
la barra de leds. Esta seiiales son: CLOCK; Esta seal nos da el tren de pulsos para encender los leds, dependiendo de la frecuencia de la sem, esa
s e d la velocidadde encendido apagadode los leds.
CLEAR; Esta s e w nos limpia todos los registros de los circuitos de corrimiento.
requieren dos seales diferentes SO y S 1, con una sola seal nos basta ya que S 1 es la negacin deSO.
I N T ; Esta sefal nos da la interrupcin del microcontrolador,se conectacon los leds60 y 1
microcontrolador, sabe que hacer ya que el led 6 0 , indicara que toda la barra esta encendida, y se procederaa realizar un corrimiento hacia la izquierda para apagar los leds, para lo cual se modifica SO/Sl, el led 1 indicaria~ que se apagaron todos los leds,y se debe iniciar un corrimiento hacia la derecha, para volver a encender los leds se modifica SOQl. El material que fue empleado en la barra de leds fue el siguiente:
SEMICONDUCTORES U1 - U1 5 - 74LS194, Registros universales bidireccionalesde 4 bits. U16 - U18 - U19- 74LS04, Inversores. U20 74LS126A, buffers de 3 estados.
L1 - L60 -1eds standar de alta luminosidad, rojos.
Tablilla perforada para wire grap, bases para wire gap, alambre wire grap.
Se anew el diagrama de la barra de leds (ver diagrama "Modulo de la barra de leds"). En el diagrama puede observarse,laconexindeloscircuitos de corrimiento bidireccional (74LS194), se conectanen cascada, para permitir un corrimiento serial hacia la izquierda o hacia la derechg por lo que se observa que las patas de las entradas en paralelo 3 - 6, no se utilizan ,las salidas 12 - 15, si se utilizan para conectar los leds, no se colocaron
resistencias de carga en los leds, por,que se ha ledo que este tipo de aplicacin no es necesario colocar
una
resistencia de carga para limitar la corriente del led Como se puede ver se necesitaron 15 circuitos de corrimiento
74LS194, y para poder controlarlos, se necesitan 4 seales externas, para poder manejarlos se hizo un manejo de
o hacialaizquierda,
74LS194.
Estas sefialesde control se generan en el sistema mnimoy se designaron como,CLOCK, CLEAR, y SO/S l .
Estas seales de control se conectan aun 74LS04, configurado como 3 buffers para esto se conectaron las patas 2 y 3, 6 y 9, 12 y 1 1 , esto para conectar 2 inversores en serie y lograr una mayor comente de salida. l a
CLOCK se conecto a la pata 1 del 74LS04 y se tomo la salida pata 4, para conectarla a la
pata 1 1 , CP del
74LS194. La sefal CLEAR se conecto a la pata 13 del 74LS04 y se tomo la salida de la pata 10, para conectarla a
la pata 1, M R del 74LS194. La sefal SO/S1 se conecto a la pata 5 del 74LS04 y se tomaron las salidas, SO pata 8,
y S 1 pata 6, que se conectaron a las patas 9, SO y 10, S 1 del 74LS194, se observa que S1 es la negacin de SO, por
eso solo se genera una seal SOB1 en el sistema mnimpy se usa un inversor para tener las dos seilales SO y S1
I
para el74LS194.
Se observa que se tienen 3 circuitos 74LS04, conectados de la misma forma (como se describi anteriormente), y
cada uno de estos controla 5 a circuitos 74LS194, esto se hizo para evitar problemas de cada de seilal, al tomar la
seial de salida directamente del sistema mnimo y conectarla 15 a circuitos los 74LS 194.
Se observa que la n i c a seal queva del la barra de leds al sistema mnimo es la de INT. Esta seal se toma de los leds 60 y 1, estas seales se metieron a 2 M e r s , 74LS04 cortocircuitando las patas 2 y 3, y 11 y 12, se toma la entrada a led 60 y se conecto a pata 13 del 74LS04, la salida pata 10 se conecto a la entrada del M e r de 3 estados, 74LS126, este M e r su s e a l de habilitacin pata 10 se conecto con la seal SO, la salida delM e r va conectada conla pata de INT del COP878OCJ. El led 1 se conecto ala pata 1 del 74LS04, y la salida se tomo de la pata 4, esta se conecto a la entrada del M e r de 3 estados, pata 12 del 74LS126, la seal de habilitacin del buffeE pata 13 se conecto con la seal S1, y la salida delM e r pata 11 se conecto tambin a la seal INT,pata 35 del
COp8780CJ.
11 '
I/
7a
-2 P
c1
'S
Desarrollo del programa en ensamblador El desarrollo delsoftware en ensamblador delCOP8780CJ se implement de la siguiente forma:
1.- Asignacin de las 12 teclas de ControI:
O a 9 - Representan los dgitos.
3 .- Despliegue de mensajes:
iii) "FrEC"; Este mensaje nos indica que podemos introducir el valorde la frecuencia deseada.
iv)
"
La frecuencia seleccionada solo puede tomar un valor entre 1 y 120, La frecuencia que se introduce nos indica el
nmero de veces en un segundo, que se realiza un ciclo de encendido apagado de la barra de leds. UM vez que se selecciono la frecuencia se presiona la tecla E, (Enter) y se empieza a generar el tren de
pulsos en el sistema
mnimoqueva a controlar a la barra deleds. Si se presiona la tecla C (Clear), se limpia la barra deleds (se
.................................................................................
.*********I**C*****a**Crr*C*******~************************~*******~*****~***********
P R O G M EN LENGUAJE E N S M L A D O R PARA ELMETRONOE40 DIGITAL, SE UTILIZO **** EL A W O P PARA ENSAMBLAR EL PROGRAMA, EL LNCOP PARA LIGARLO Y SE **** OBTUVIERON PROGRAMASCON EXTENSION .COF Y .HEX, LA PRIMERA SIRVIO PARA **** PARA EMULAR Y COMPROBAR EL PROGRAMA LA Y SEGUNDA SIRVIO PARA QUEMAR * * * * . * * * * EPROMS. LAS ****
.************~*~*********~***************************~*************~*~**********~ .................................................................................
Y
;ESTE PROGRAMA GENERA UN TREN DE PULSOS, SEL,ECCIONABLE MEDIANTE UN TECLADO ;VISUALIZADA LA FRECUENCIA EN DISPLAYS DE I SEGMENTOS DE ANODO COMUN. .TITLE DISPLAYLED'BATA TABLE' .CHIP 880 .SECT MAIN,ROM,ABS=O
. *************.*****~**********~******************
;
................................................
PORTLD PORTLC PORTLP PORTGD PORTGC PORTGP PORTIP PORTCD PORTCC PORTCP PORTDD TMRLO TMRHI TAULO TAUHI
CNTRL
= =
=
= = = = =
=
= = =
=
= = = =
PSW
;REGISTRO DATOS PTO. L ;REGISTRO DE CONFIGURACION PTO. I , OD2 ;PINS DE ENTRADA DE P T O . L OD4 ;REGISTRO DE DATOS PTO. G OD5 ;REGISTRO DE CONFIGURACION PTO. G OD6 ;PINS DE ENTRADA DE P T O . G OD7 ;PINS DE ENTRADA DE PTO. I OD8 ;REGISTRO DE DATOS PTO. C OD9 ;REGISTRO DE CONFIGURACION T O .C QDA ;PINS DE.ENTRAIlA PTO. C ODC ;REGISTRO DE DATOS PTO. D OEA ;REGISTRO DEL BYTE LOW DEL TIMER OEB ;REGISTRO DEL BYTE UPPER DEL TIMER OEC ;REGISTRO DEL AUTOLOAD TIMER BYTE LOW OED ;REGISTRO DEL AUTOLOAD TIMER BYTE UPPER OEE ;REGISTRO DE CONTROL CNTRL OEF ;REGISTRODEL PSW OD1
OD0
.................................................................
*CONSTANTES Y LOCALIDADES DE RAM USADAS COMO REGISTRO AUXILIARES*
.................................................................
DIVLOW DIWPP
=
=
soBi%% = o 0 2
DISOR DIGIT2 BCD? DIGIT1 BCDl DIGITO BCDO JOKER CNTRG CNTR7
AUX
= 003
=
O00 001
030
032
= 031
=
=
= =
=
033 O34
035 OF0 OF1 OF2 OF3 OF4 OF5 OF6 OF^ OF8
VALIDO =
=
=
LETRA DIGI
= = =
=
nrm
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
........................................
*INICIALIZACION START:
LD C O U M J N T ,
x000
.........................................
; ; ; ; ; ; ;
i
DE
PUERTOS
PARAMETROS*
LD PORTGC, #QUE LD PORTGD, #O00 LD DIVLOW, # O 4 4 LD DIWPP, %O35 L D DIGI, it002 LD DIGIT2, #OFF LD DIGIT1, #OFF
LD VALIDO, # O 0 0 LD SP, # 0 6 E
LD CNTRL, #OAO LD PSW, #O00 IQ TMRLO, # O 0 0 LD TMRHL, #a00 LD TAULO, #O00 LD TAUHI, #O00 LD B, # O 4 0 LD [Btl, # O 2 6 LD [ B t l , # O 4 7 LD [B+l, #O06 LD I B + I#, 0 2 F LD [ E + ] , # O 7 9 LD [ B + ] , # 0 3 F LD [ B + l#, O 7 9 LD [ B + l , # O 3 7 LD [ B t l# , O46 LD LB+], #O06 LD [ s t ] # , 02F [ L B D l, #OOE LD X , # O 3 0
.-
. \
;PUNTERO PARA CARGAR MENSAJES 10H LA LETRA ? ;CARGO EN DLRECCION DF, RAM ;CARGO EN DIRECCIUN DE: R4M 11H LA LETRA L LETRA E ;CARGO EN DIRECCION DE RAM 1 2 H LA ;CARGO EN DIRECCION DE RAM 1 3 H LA LETRA P ;CARGO EN DIRECCION. DE: RAM 1 4 H LA LETRA 1 ;CARGO EN DIRECCION DE RAM 1 5 U LA LETRA ;CARGO EN DIRECCION DE RAM 16H LA LETRA 1 ;CARGO EN DIRECCION DE RAM 1 7 H LA LETRA ;CARGO EN DIRECCION DE RAM 1 8 H LA LETRA C ;CARGO EN DIRECCION DE RAM 1% LA LETRA G ;CARGO EN DIRECCION DE: RAM 1AH LA LETRA r ;CARGO E N DIRECCION DE: RAM lJ3H LA LETRA F ;CARGO EN X POINTER DIRECCION DE D I G I T 2
**C**********************C*
* C U E R PP OR I N C I P A L
...............................
DEL PROGRAMA*
MAIN :
#O40 ; I N I C I O DE DIRECCION DE MENSAJES PARA VER "rEL?* LD LETRA, O JP SC R;I SO U A N B A LR TO U TO IN PC AI O N LD LETRA # ,O 4; 4 INICIO DE DIRECCION DE MENSAJES- PARA VER "-1-1" O JP SC R;I SO U A N B A LR TO UTINA OPCION LD LETRA, #O48 ; I N I C I O DE DIRECCION DE MENSAJES PARA VER "FrEC" J S RO P C I O N ;SALTO A SUBRUTINA OPCION JSR KEYSCAN ;SUBRUTINA -KEYSCAN PAPACAPTURARINFORMACIONDELTECLADO I F B I T I , AUX O E ;SE PRESIONO TECLA C J P CHECO ;SALTOA CHECO VUELTA: JSR DISPLAY ;SUBRUTINA DE DESPLIEGUE DE SELECCION JSR KEYSCA ;SALTO A KEYSCA IFBIT 7, AUX O E ;SE PRESIONO TECLA C J P CHECO ;SALTOA CHECO JP W E L T A ; S A L T OAW E L T A CHECO: I F B I T 6, AUX ;SE PRESIONO ENTER J P ENTRO ;SALTO A ENTRO T E S T : R B I T TRUN, CNTRL ;DETENGO TIMER J S R CLEAR ;SUBRUTINA DE I N C I A L I Z A C I N DE PARAMETROS CLEAR RC ACARREO ;BORRO JMP;SALTO MAIN A FBAIN ENTRO: X A, BCD2 #O00 IFEQ A, J P TEST X A, BCD2 J S R ENTER SUBRUTINA ;SALTO A ENTER I F BV 7 IT A , LIDO ; J P TEST SBIT o, PSW SBIT l . PSW R B I T 2 , CNTRL ; LD PORTGD, # O 0 6 S B I T TRUN, CNTRL ;INICIA TIMER RC ;BORRO ACARREO JMP W EW ;L SE T AA L LT TA O
x************************************************
EN PANTALLA*
.................................................
OPCION:
LD CNTR6, #OFF LD CNTR7, #O06 LD EORTCC, #O0 LD PORTLC, #O00 LD PORTCD, #O0 LD PORTLD, #OFF INIMEN: LD A, LETRA 6 X A, LD A, [B+]
T.n
PORTCn.
;CUENTA PAFG'. TIEMPO DE DESPLIEGUE DE M E N S A J 6 ; H A B I L I T OP T 0 . L COMO ENTRADA ; H A B I L I T OP T 0 . C COMO ENTRADS ;NO SACO DATOS POR PTO. C ;NO SACO DATOS POR P'I'O. L ;CARGO EN B P Q I N T E R EL CODLGO DEL.MENSAJE ;INTEACAMBIO CONTENIDO DE A CON B POINTER ;CARGO ACUMULADOR CON CONTENIDO DE B POINTER
:COMANnO PARA HAAT1,TTAR nTSPT,AY
#O1
LD A, [B+l LD PORTCD, # O 0 LD PORTLD, #OFF LD PORTCD, #O2 X A, PORTLD LD A, [Btl LD PORTCD, #O0 LD PORTLD, #OFF LD PORTCD, # O 4 X A, PORTLD LD A, L B 1 LD PORTCD, # O 0 LD PORTLD, #OFF LD PORTCD, #O8 X A, FQRTLD LD PORTCD, # O 0 LD PORTLD, #OFF DRSZ CNTR6 JHP INIMEN DRSZ CNTRI JMP INIMEN RET
; ;
;CARGO ACUMULADOR COhl CONTENIDO DE B POINTER ;DEJO DE SACAR DATOEOR PTO. C ;DEJO DE SACAR DATOPOR P M . L ;COMANDO PARA HABILITAR 2 LED ;DATO DEL DIPLAY 2 ;CARGO ACUMULADOR CON CONTENIDO DE B POINTER ; DEJO DE SACAR DATO fOR ?TO. C ;DEJO DE SACAR DATO EOR PTO. L ;COMANDO PARA HABILITAR3 LEI) ;DATO DEL DIPLAY 3 ;CARGO ACUMULADOR COM CONTENIDO DE B POINTER ;DEJO DE SACAR DATO E I O R PTO. C ;DEJO DE SACAR DATO POR PTO- L ;COMANDO PARA HABILITAR 4 LED ;DATO DEL DISPLAY 4 ;DEJO DE SACAR DATOE O R PTO. C L ;DEJO DE SACAR DATO POR PTO. ;SALTO A I M I U D ;RETORNO A MAIN
. .........................................................
.
*SUBRUTINA- KEYSCAN PARA DETECTAR SI SE OERIMIO UMA TECLA* *SE GUARDA ELCODIGO Y POSTERIORMENTE SE DECODIFICA EN * * KEYS SUBRUTINA *
.........................................................
;BORRO ACARREO ;DATO PARA HABILITAR 2 DISPLAY ;SACO DATO
I?
KEYSCAN : RC AGAIN z LD PORTCD, # O 2 LD PORTLD, #02C NOP LD PORTCD, #O0 LD PORTLD, #OFF LD B r #DIGIT0 LD [Bl, #O08 JMP SCAN *VECTOR DE
;DESABILITO DISPLAY ;APAGO DISPLAY DE DIGIT0 ;CARGO EN B POINTER DIRECCION E:N DIRECCION DE B POINTER ;CARGO EL VALOR 08H ;ESTE VALOR ES PARA ESCANEAR ULTIMO RENGLON CONTROLA EL CORRIMIENTO DELA BARRA DE LEDs*
....................................................................
INTERRUPCION
;
......................................................................
IFBIT 5, PSW JP TMRINT I F B I T 3, P S W JP EXTINT SBIT O, PSW SBIT TRUN, CNTRL ; RETSK THRINT: RBIT 5, PSW SBIT TRUN, CNTRL ;VECTOR DE INTERRUPCTON, LA INTERRUPCION SE REALIZA RETI ;VIA HARDWARE, ESTO ES SE ACTIVA, MEDIANTE EL ENCENDIDO EXTINT : IFBIT 2, PORTGD ;DEL LED 60 (ESTANDO APAGADO ELLED 60). Y MEDIANTEEL JP BAJO ;APAGADO DEL LED 1 (ESTANDO LED 1.ENCENDIDO). JP s u m ;AL INZCIARSE INTERRUPCIOW, SE EVALUA LA CONDICION DEL BAJO : RBIT 2, PORTGD ;DATO S O / S l , PARA CAMBIAR ESTE VALOR PARA CAMBIAR LA RBIT 3 , PSW ;DIRECCION DEL CORRIMIENTO DE LA BARRADE LEDS. , CNTRL SBIT 2 SBIT TRUN, CNTRL ; RETI sum: S I T 2, POATGD W I T 3, PSW RBIT 2, CNTRL ; SBIT TRUN, CNTRL RET1
.........................
*CONTINUA
SCAN :
.........................
RUTINA
KEYSCAN*
;BORRO ACARREO ;CARGO A CON VALOR DE B POTNTER ;SACO VALOR DE A POR PTO.D ;ESPERA
; ESPERR
NOP NOP
;ESPERA ;ESPERA
PORTTP
T,n
A.
: C A R G O VAT,OR
nF. P T O .
T F,N A
IBI
X Av fB1
X A, COUNT IFBIT O, COUNT JP AGAIN JP SCAN DECOD: AND A, #O07 X A, ILINE LD A, [BI AND A, #OOF SWAP A ADD A, ILIME XOR A+ #OFF AND A, #07F JSR KEYS
;CARGOA CON EL V A W R DE B POINTER ;ROTO A DERECHA VALOR DE A VALOR PARA ESCANEAR ;OTRO RENGLON ;GUARDO VALOR DE A EN B ;GUARDO VALOR DE A EN REGISTRO COUNT O UNO, SE TERMINO DE ESCANEAR RENGLONES ;ES EL BIT ;SI SE TERMINO DE ESCANEAR SALTO A AGAIN ;NO SE TERMIMU DE ESCANEARSALTO A SCAN ;ENMASCARO 3 LSB DE E'TO. I ;GUARDO EN ILINE VALOR DE I ;CARGO EN A VALORDE B POINTER ;ENMASCARO 4 LSB DE A ;INTERCAMBIO 4 LSB POR 4 MSB ; S W A CON ILINE ;COMPLEMETO A1 DE A ;ENMASCARO BITS PONGO O ABIT 7 ;SALTO A KEYS ; PONGO ACARREO ;RETORNO A MAIN PARA DESPLEGAR EN DISPLAY VALOR DE TECLADO* SELECCIONADO *
sc
RET *SUBRUTINA
..............................................................
*
DISPLAY
************X********************~******X*******~*****~*******
DISPLAY: CLR A X A, DIGI IFGT A, #O00 JP GUARDO JP VEO GUARDO: IF l $ C JP VEO X A, DIGI X A, AUX X A, [X+] CLR A X A, BCD X A, [X+] LD CNTRG, #OFF LD CNTR7, # O 0 1 VEO: X .A, DIGI VEA: LD PORTCD, #O0 LD PORTLD, #OFF LD A, #OFF X 7A., DIGITO LD PORTCD, #O1 X A, PORTLD NOP LD PORTCD, # O 0 X A, PORTLD LD PORTLD, #OFF X A, DIGITO LD A, #OFF. X A, DIGITl LD PORTCD, #O2 X A, PORTLD NOP LD PORTCD, # O 0 X A, PORTLD LD PORTLD, #OFF X A, DIGITl LD A, #OFF X A , DIGIT2 LD PORTCD, # O 4 X A, PORTLD NOP LD PORTCD, # O 0
X A.
;LIMPIO A ;INTERCAMBIO A POR DIG1 ;ES IGUAL A OH DIGI ;RUTINA PARA GUARDAR DATOS ;RUTINA PARA VER DATOS DE GUARDO ;NO HAY ACARREO ;SE TIENE TECLA ;VUELVO A GUARDAR EN DIGI SU VALOR ;INTERCAMBIO CONTENIDO DE AUX CON ;INTERCAMBIO A CON X ;LIMPIO A ;INTERCAN310 A POR BCD ;INTERCAMBIO VALOR BCD EN X
;GUARDO DE NUEVO VALOR DIG1 ;NO SACO DATOS POR PTO, C ;NO SACO DATOS POR P'IO. L ;LIMPIO A ;INTERCAMBIO CONTENIDO DE A DIGITO CON ; C @ " J D O P A M HABILITAR DISPLAY1 ;DATO DEL DIPLAY 1 ;ESPERA ;NO SACO DATO DE PTO. L ;INTERCAMBIO DATO DISPLAY1 CON A ;NO SACO DATO DE PTO. C ;VUELVO A GUARDAR EN DIGITO ;LIMPIO A ;INTERCAMBIO CONTENIDO DE A CON DIGITl ;COMANDO PARA HABILITAR DISPLAY 2 ;DATO DEL DIPLAY 2 ;ESPERA ;NO SACO DATO DE PTO. L ;INTERCAMBIO DATO DISPLAY1 CONA ;NO SACO DATO DE PTO. C ;VUELVO A GUARDAR EN DIGITI ;LIMPIO A ;INTERCAMBIO CONTENIDO DE A CON DIGIT2 ;COMANDO PARA HABILITAR DISPLAY 3 ;DATO DEL DIPLAY 1 ;ESPERA ;NO SACO DATO DE PTO. L
: T N T E R C A M R T O n A T O n T S P T . A Y 1 CON A
PORTT,n
"
1_11_"_
....
RC MAIN
CARRY ;RESET
.
;
...................................................
. ...................................................
;BORRO ACKRREO ;CARGO ACON VALOR DE B POINTER ;SACO VALORDE A POR PTO. D ;ESFERA ;ESPERA ;ESPERA ;ESPERA ;CARGO VALOR DE PTO. I EN A ;ENMASCARO 3 LSB DE ETO. I ;SE HA PRESIOBADO ALGUNA TECLA ;NO SE PRESIONO SALTO A NEXDIG ;Si SE PRESIQNO SALTO A DECOD
NEXDG: LD A, [B] RRC A A, [Bl X A, COUNT I FBIT O, COUNT JP ADIOS JP SCANN ADIOS: RC RET DECO: AND A, #O07 X A, ILINE LD A, [Bl AND A, #OOF SWAP A ADD A, ILINE XQR & #OFF AND A, #07F JSR KEYS CLR A X A, DIGI DEC A X A, DIGI
X
POINTER ;CARGO A CON EL VALORB DE ;ROTO A DERECHA VALOR DE A VALOR PARA ESCANEAR ;OTRO REWGLON ;GUARDO VALORDE A Eh B ;GUARDO VALOR DE EN A REGISTRO COUNT ;ES EL BIT O UNO, SE TERMINO DE ESCANEAR RENGLONES ;SI SE TERMINO DE ESCANEAR SALTO A ADIOS ;NO SE TERMINO DE ESCWEAR SALTO A SCAN ;BORRO ACARREO ;RETORNO A MAIN ;ENMASCARO 3 LSB DE PTO. I ;GUARDO EN ILLNE VALOR DE.1 DE B POINTER ;CARGO EN A VALOR ;ENMASCARO 4 LSB DE P. ;INTERCAMBIO 4 LSB PORMSB 4 ;SUMO A CON ILINE ;COMPLEMETO A 1 DE A ;ENMASCARO BITS PONGO A O BIT 7 ;SALTO A KEYS ;LINPIO A ;INTERCAMBIO A POR DIGI ; DECREMENT0 A ;VUELVO A GUARDAR DIGI ;PONGO ACARREO ;RETORNO A MAIN
sc
RET
.
;
..................................................................
*SUBRUTINA PARA FUNCIOld TECLA CLEAR, LIMPIO E INCIALI~O REGISTROS*
..................................................................
PORTGD,
CLEAR : LD LD LD LD LD LD LD LD LD
b D DIGI,
#O00 #O02
#O00 #O00
$000
i.n
itn35
#O44
; ; ;
LD AUX, #O00 LD B, # O 4 0 ;PUNTERO PARA CARGAR MENSAJES LD X, #O30 ;CARGO EN X POINTER DI.RECCION DE DIGIT2 RET SUBRUTINA ;RETORNO DE
...........................................................
*SUBRUTINA PARA FUNCION TECLA ENTER, GENERA TREN DE PULSOS*
...........................................................
;BORRO
ENTER: RC
LD CNTRG, #OFF LD CNTRl, bolA
ACARREO
LOOP : DRSZ CNTR6 JP LOOP DRSZ CNTR7 JP LOOP CLR A IFBIT 7, DIGIT0 JP OTROS JP XCIEN OTROS : IFBIT 3 , DIGIT1 JMP XUNO JMP XDIEZ XCIEN: RC CLR A X A, BCD2 IFGT A, # 1 JMP ALFIN X A, BCD2 LD A, #O64 X A, BCD2 CLR A X A, BCDl JSR MULTIlO X A, BCDl JSR SUMA J P FINAL XDIEZ : X A, BCD2 JSR MULTIlO X A, BCD2 JSR SUMA JP FINAL XUNO: JSR sum FINAL : CLR A x A+ llLSOB IFGT A, #I20 JP ALFIN X A, DISOR JSR FDV168 CLR A X A, DIVUPP X A, TAUHI X A, DIVLOW TAULO X LD AUX, #O00 RET ALFINz SBIT 7 , VALIDO RET
;SALTO A SUBRUTINA DE DIVISION ;LIMPIO A ;INTERCAMBIO APOR D I W P P ;GUARDO EN AUTO R E L O A 0 UPPER ;INTERCAMBIO A POR DIVLOW ;GUARDO EN AUTO RELOADLob3 ;RETORNO A CHECQ
*****************
*****************
SUMA:
CLR A X A, BCD2 A D D A, B c D l ADD A, BCDG X A, DISOR RET
*SUBRUTINASUMA*
;8
2 NUMEROS DE
*******************
*SUBRUTINA MULTI10*
*******************
IFEQ A, #O08 JMP SUM8 I E A, Q #O03 m SLIM7 IFEQ A, #O06 JMP SUM6 IFEq A, # O 0 5 JME SUM5 IFEQ A, #O04 JMP SUM4 IFEQ A . , #O83 JMP SUM3 IFEQ A, #O02 JMP SUM2 JMP SUM1 SUM9: LD A , 605A RET SUM8: LD A, #O50 RET sw71 LD A, ti046 RET SUM6 : LD A, #03C RET s t 1 1 4 5.c LD A, #O32 RET SUM4 : LD A, #O28 RET S U M 3 1 LD A, #01
RET
UN
DIGITO(1-9)
FDV168 :
**********.**x**********
*SUBRUTINA DE DIVISION*
.......................
sc
SUBC A, [B] IFNC JP FD168T FLU 68R.: LD B, #2 X A, [El LD B, #O SBIT O, [B] DRSZ CNTR7 JP FD168L RET FD168T: DRSZ CNTR7 JP FD168S RET FD168B: SUBC A, [Bl JP FD168R *SUBRUTINA
CNTR7 CON 16 ;CARGO B ELNTER CON 3 ;CARGO VALORO EN 5 ;CARGO B CON O ;BORRO ACARREO ;CARGO A CON UALOR B ;SUMO CON ACARREO A CON B ;INTERCAMBIO A CON B ;CARGO A CONVALOR B ;S W O CON ACARREQA COW B ;INTERCAMBIO A CON B ;CARGO A CON VALORB ;SUMO CON ACARREO A CON B ;INTERCAM%IO ACON B ;CARGO A CONB ;SI HAY ACARREO ;SALTO A FD168B ;PONGO ACARREO ;SUSTRAIGO CON ACARREO A CON B :SI NO ACARREO ;SALTO A FD168T ;CARGO B POINT333 CON 2 ;INTERCAMBIO A POR B ;CARGO B CONO ;PONGO BIT O DE B :SALTO A FD168L ;RETORNO A ENTER ;SALTO AFDlBAS ;RETORNO A ENTER ;SUSTRAIGO CON ACARREO ;SALTO A FD168R
;CARGO
A BCON
.........................................................
.........................................................
KF,YS :
KEYS
PARA
DECODIFICAR
VALOR
DE
TECLA
OPRIMIDA*
.= 053A
. A m R
.ADDR R .ADDR R .ADDR R .ADDR R .ADD5 R .ADDR R .ADDR R .ADDR R .ADDR R .ADDR R .ADDB R .AmR R .ADDR R .ADDR R .ADDR R .ADDR R .ADDR R ADDR R .ADDR R .ADDR R .ADDR R .ADDR R .ADDR R .ADDR R .ADDR R .ADDR K e y 6 .ADDR R .ADDR K E Y 5 .ADDR KEY4 .ADOR R .ADDR R .ADQ R .ADDR R .ADDR R .AWR R .ADDR R .ADDR R .ADOR R .ADDR R .ADDR R .ADDR R .ADDR K E Y 3 .ADDR R .ADDR KEY2 ADDR K E Y 1 .ADDR R .AWR R .ADDR R .ADDR R .AWR R .AlJUR R .ADDR R .ADD5 R .ADDR R .ADDR R ADDR.R .ADMI U .ADDR KEYE .ADDR R . A m KEY0 .ADDR KEYC
KEY9 : LD AUX,
LD BCD,
RET
R:
#O18 #O09
RET
KEY 8 :
;RETORNO #O00 #O08 #O78 ;GUARDO EN AUX VALOR DE TECLA ;GUARDO EN BCD VALOR 8 ;RETORNO
;GUBRDO EN AUX VALOR DE TECLA :GIIARnO F.N R C n VAT,OR 7
LD AUX,
LD BCD,
RET
KEY7 : LD AUX,
T.n
Am.
#on7
LD BCD, RET KEY5 : LD AUX, LD BCD, RET KEY 4 : LD AUX, LD BCD, RET KEY 3 : LD AUX, LD BCD, RET KEY 2 : LD AUX, LD BCD, RET KEY 1 : LD AUX, LD BCD, RET KEY E : L D AUX, RET KEY O : LD AUX, LD BCD, RET KEYC: LD AUX, RET
#O06
#O12 #O05
;GUARDO EN BCD VALOR 6 :RETORNO ;GUARDO EN AUX VALOR DE TECLA ;GUARDO EN BCD VALOR 5 ;RETORNO ; G U A R W EN AUX VALOR DE TECLA ;GUARDO EN BCD VALOR 4 ;RETORNO ;GUARDO EN AUX VALOR DE TECLA ;GUARDO EN BCD VALOR 3 ;RETORNO ;GUARDO EN AUX VALOR DE TECLA ;GUARDO EN BCD VALOR 2 ;RETORNO ;GUARDO E N AUX VALOR QE TECLA ;GUARDO EN BCD VALOR 1 ;RETORNO ;GUARDO EN AUX ;RETORNO VALOR DE TECLA
#O19 #O04
#O30 #O03
#O24 #O02
#O79 #O01
# O O
#O40 #O00
;GUARDO EN AUX VALOR DE TECLA ;GUARDO EN BCD VALOR O ;RETORNO ;GUARDO EN AUX VALOR DE TECLA ;RETORNO
#O80
.END START
RESULTADOS
El metrnomo digital cumple con los requisitos originalmente planteacEos, como ayuda
cardiopulmonares, ya que los pacientes pueden seguir mas ficilmente el estimulo visual de la barra de leds, que el del metrnomo mecnico, obtenindose a s un control mas adecuado de la frecuencia respiratoria. Ya se ha aplicado el instrumento a mas de 50 sujetos, con la finalidad de estudiar la arritmia respiratoria, para esto se registran simultneamente la frecuencia cardiaca
un
coinciden en la frecuencia, siendo este fenmeno llamado arritmia respiratoria.Se anexa la grfica.
50.
I
-400 O
" "
200
400
600
O O
"
. .
"
O. 5
I I/
I
150.
"
1O 0
80
60
100-
4c 2 c
50
O 200
400
Ticnipo
600
0.2
H z .
0.4
0.6
BIBLIOGRAFIA
1 .- NATIONAL SEMICONDUCTOR. "COPSDatabook". 1994.
4.- MOTOROLA. "FAST and LS TTL Data". 1992. 5.- NTE. "7th Technical guide and cross reference". 1995.
edicin 1994.