1. y 2 n

Anuncio
Universidad Aut6noma
Metropallitana
Un.iáad Izitapalapa
Divisí6n
CB 11
Ingenieria Ela!ctrbnka en
Cornputlaci6n.
Informe de Proyecto
Terminal
1.y 2 n
Digitalización de sefiales
Y
operacion de las mismas
con un sistema mínimo.
Profr. Victor Trillez Arrieta
Ahrnno8.
~ u iká11.ez
s
Montaña.
Fernando VAllez Montañez.
Alberto Hernáiidez Olvera.
Periodo de Realizacibn
Enero-96 Septiernbre-96
Indice.
Objetivo Realizado
Introducción
-3
Objetivo del Proyecto
-4-
Fases deX Proyecto
Sistema Minim0
4-
Armado del Sistema
M[krocanlolador HCZl
-7-
Conatxibn de Die~pPayy Teclado
-10-
Menus y Comandos
Sistema de ComunicacXbn
Interfase de comurticacibn aisfncrona
RSmZ3242
- 21
u
Programa de Control del Sistema
Sistema de Conversión A/r,
-33..
Resuhdos y Recomendacianee
u34m
Programa de control de la Corxrputadora
-35-
Bibliografia
1491
"3"
.1;
iI"
m
a
LCD S W R P LMIGISIC
I
I
OBJETIVO
REALIZADO.
I
I.
Ill objetivo del proyecto terminal uno y dlos, el cuál s ~ icompleto a satisfacciónt
fire el de utilirjar un sisterrm mínimo bamdo en el microcontrolador motorola
MMHCll. Dicho sistema ~ h u l ouna nlemoría de tipo EPROMt adernas de
poder utilizarse para la transmisión y recepción de sefiales entre el sistema y
una computadora personal por media del puerto serial de La misma.
Introdulcción.
Za idea de utilizar un sustituto de una niemoria WROM vino de un problem
muy corntin entre los alumnos de C X , pertenecientes a las carreras de
Ingenieria Electr6nica en Computación P Ingenieria Biani-dica de la Unidad
libpalapa de la UAM. Este probllenm es el prcxeso de grabar las memorias
EPROM en el laboratorio de grabado,, el cual (t-B una parte vital de los
laboratorios de Sistemas Digitalest perch que se ha convertido en una grave
d i k l t a d para poder llevar a cabo su realizacith, debido a deficiencias serias en
el equipo que se encuentra disponible actualmente.
E2 laboratorio de grabado no es irn laboratorio que haya sido quipado para
llevar a cabo 4sta función, sino que es simplemente una adaptación de una
pequeña ‘seccibn dentro del laboratorio die uso común.
Esta sección unicamente dispone de 2 rnáquinas equipadaas con dispositivolls
para llevar a cabo el grabado de memorias. De tistas dos rinicas computadoras
disponibles en toda la universidad, una se encuentra fuera de servicio la mayor
parte del tiempo de duración del trimeshe Io que equivale a su no existencia .
Esto limita el equipo disponible para grabar a nninir~rnenteiina (1)computadora
equipada para prestar servicios a un promedio de 80 alumnos que requieren
una utilizacibn continira de la misma durante el tiempo de duracih del
trimestre lectivo.
Esta mhquina restante es por lo tanto insuficiente para atender las demandas de
los alumnos de Sisbmas T)1@tales, aun ciiando alpnos de llns lilumnob:
disponen de grabadores propios.
-2-
Introducción.
i.il problem puede nuinejarse de la siguiente fornm:
El alumno lleva un programa que ha sido desarrollado en lenguaje ensambladar
para SIJ sistema mínimo a grabar en una IIIE'KOM, tardandosic' aproximriamente
una hora en poder grab~rsu memoria que Iruarri funcionar el siskm, debido a la
excesiva riemanda por el equipo.
llna vex pubado el pr(r,grarna FE ixistala en c.1 t+iistclrrra rxhixrtci y M! prmth,
debida a que generialmente existen errores en el propama se rwjuic?ren sesiones
adicionales con el grabador de memorias, lo que aMde otro problema que es el
tie los erp i p s tit? luorracic:, tit! txwriorias.
Chlamente existen dos txpipos para todos los alumnos, de los que uno tampoco
se encuentra ciprnate, IC)que sblilo deja un equipo para llevar a calm las sesiones
de kirracio, las que toman entre media y tina hora para poder borrar la
memoria debido el constante uso de los aparatos, lo que provoca otra pérdida
grave de tiempo para grabar.
1.1mvex It~)x~ada
la rxtmioria se tiebe rqwtir la operaciiin de grabado de la
misma con el equipa de grabacibri, lo que en circunstancias favorables toma
cerca de una hora adicional debido a la demanda.
la c~levadadexruanda dcl patiatlor y la evidente irisuficiencia tie uxui sola
máquina para satisfacerla provoca que KX pierda excesivamente tiempo debido
a que cada operaciiin de grabado y borrado de una memoria EPROM implica un
tiitirrrpo cxiritiriiio tllc cxitrc u ria y rnedia y cloa horas, t i d i o que Iirnita
t!norrnemmte el tiempo disponible para desamollar programs.
Si para realizar el trabajo, asumiendo que el alumno no tenga clases y contando
con i p ?se tenga tiempo libre, &IC) lr>ir? pueden rcdi;?IRr en promedio 2 pruebas
por dia, lo quc?implica un c?normtrdesperdicio de tiempo t h x i solo para grabar y
b?rria r.
Iil alumno generalmente n o dispone de tiempo libre para llevar a cabo si1
proyecto, puesto que existen otras claws quc debe cursar, adems de quc el
espacio y el equipo tlisponiblc?en 10s labrakorioc no puede cubrir la thmanda
de todos los cursos de Siñkms TXgitalee.
-3introducción.
Este problem lo agrava el hecho de que existen otros cursos que requieren
sesiones de laboratorios, con el consi,piente requerimiento de equipo de
laboratorio, por lo que a veces aún teniendo tiempo, el alumno debe esperar por
un equipo para poder llevar a cabo sus prácticas.
Estos problemas tan graves pdorian solucionarse si se dispusiera de un equipo
que simulara el funcionamiento de un programa en ensamblador s o h un
sistema mínimo disponible para probar su capacidad.
Recordando que ademas de generar el program de control tarnbih SE* requiere
el armado de rin sistema rnínixna propio ]por parte del alumno, lo que implica la
existencia de fallas durante el armado del sistema, lo que lleva a una mayor
perdida de tiempo por parte del alumno.
Nosotros propusimos una alternativa viable para solventar éste problema
grave, la cual consiste en la utilización del microcontrolador M68IICll de
motoroh para simular una WROM, la c i d puede cargarse desde la PC con un
programa de soporte, tiin requerir del grabado de la misma.
I
3 tiempo requerido para cargar y prolmr un programa con éste sistema, se
reducirá de un promedio de 2 horas con los grabaclores, a tan &lo 5 minutos
con el sistema de prueba. %to nos ayudara considerablemente, puesto que en
vez de podes llevar a cabo 2 pruebas por dia en promedio con el antiguo
sistema, el alumno puede realizar un promedio de 6 pruebas por dia por lo
menos, ya que hte proceso tomaria unos minutas.
El proceso anterior, toma alrededor de 6 horas dc prueba, sin incluir el tiempo
que al alumno le tom Uegar H la universidad desde su lugar de residexicia, lo
que a i r r e debido a que existen alumno^; que invierten 2 horas o m 6 s en llegar
desde y hacia su lugar de residencia.
Es& nuevo sistema s610 requiere k conexión con una PC para el envio del
program, 10 que aceleraria el proceso dt?desarrollo y prueba en u n a s 10 veces
m á s rápido. Este sistema también evita el proceso de espera para poder grabar
una memoria puesto que pueden probarse rápidamente los programas de
varios equipos con el consiguiente aharrci en tiempo y la mejora en el desarrollo
de las prácticas de laboratorio.
-4-
Objetivo del Proyecto.
El oú~&vodel proyecta que se desarroiló en f k n a prhctica h e el de utilizar el
siterrw rninimo del micrncmtroladar HCIJ para proveer a los al~imioscon t i ~ w
forma alternativa de probar los programs desarrollados para las prhcticas de
los laboratorios de Sistemas T)igitales.
Este proyecta preveia la nt'cesidad de c o n k con una f a m eficiente y mucho
mkis rápida tie poder prthar la programcih de las prácticas requeridas en los
labaratarios de Digitales con la cerbza de saber que si la m i s m a no funciona, es
tiebiria B tallas de propaxnacibri.
Se previiii utilimr la faciiidad de cant-xiiiiri úel HCll
una YC: para una
trransmisiori entre el chip y la rmiquina para potier simular con el sisierna
minima una ROM sin rquerir grabar UM verdadera con la consiguiente
pirrciide colt? tietnpa.
Q
Este proyecto también previó su futura expansión aprovechando la
ccrrrnuriicacihn entre le Tic y e l &term, para kmbien Isansferir wfmles al ir:hip, y
almcerrnrlas en lou rogisIsors inkrriou disponibles, y realizar operaciones con
ellas, aderrias de poder rea lizar transmisiones y medicicmes en tiempo rea I
comunicando al E.TC11 con una PC.
k'l proyecto se dividid en las siguientes fases &spas, las cuales st? 11evasr)ri x1.
cabo una tras otra y se cumplieran satisfactoriamente.
a)Sisterna Mininio
Ekta etapa carresponde al a r m d o y ptiesh a pinto del sist.em
mínimo, que M? requerirá para el desarrollo del proyecto.
b)l)isplay
Se aiiadió t i n display para poder desplegar la iriformcilin.
-5-
Pases del I’royecto.
c)Te&dó
Se afbdib un teclado para poder acce681r los d a b d &sterna.
d)Pmpmaciónde menus, tmmmdm yvalidaci6n
Esta étapa cofilfliponde al desplegado de los menus en el display, su vali-h
y aceptaah
Siatema Mínimo.
El sistema mínimoesconto su nombre lo indicca el mínimo requerido de
componentes para W o n m ~011110UNI cirmpufadorat pues dispone de una
unidad de procesairiientode inhmau611i
ya sea dcmpmcesador o
micztxxmhlndor, asi coni0p e d é r i c o y~ dqomtivos externos que le permiten
efeckiar divema tareas con eñciewia.
Loseomporrentes tipicos de nuestro sistemamfnimoson:
* Unidad Central, en éste c8so miammnbrolador H a l .
* Buffer almacenador de información, típicamente 74373.
* DeaxWcador piira los perüéricos, iipicamente 74138.
* Memoria de Solo lectura con el progrm de control @OM) de tipo 8x8.
* Memoria para operaácmes de acceso aleatorio (RAM) de tipo8x8.
* Decodificador de teclado y display de tipo 8279.
%tos
-P
se integranrn em una tabia de proyectos
.compone~~tes
. to de alambrado
hasta quEe q,ue&mm operaaonales,
con el
-6Metodologia para
m a d o del
Sistema Mfnimo.
El proceso de a r m r cl sistema mínimo fue la adquisición de los cornponentes
principales del mismo p o r wparado y su entmnnbiado sabre iim tabla de
proyecto.
1.aforma cie llevar H r:ak.)M Aparte consistió eri ixi&wrtfirLas tmes para
componentes que se adquirieron en los lugares que 60 estimá conventente para
poder proceder
B
su posterior alambrado con iin alambrador (wire wrap).
Lhspues de alambrar cada base segiin d esquema que contiene ~l m n u a l de
operación del f.1CX1, (E-KllMCfii-ICXJ Kelerence mnual) sf! prob6 cada
conexión con el probador de continuidad del rnultimetro y una vez
r:omprohdo h t o 6 i ~ *prwetiio a i t i m f - r y prchar los ccmiponentes codcmrne SE?
fueran iitilimntio para poder proceder a la posterior progarrunctón y
adaphcibn del sistema mhirno, ixm vez que diste fuera operairrimal.
i
3 proceso de a r n w el sistema minima fue la adquisición de los componentes
principales del mismo por separado y su ensamblado sobre um tabla de
proyw to.
1~ form de llevar a cabo bta parte consistió en insertar las bases para
ccxnpoxwntm qut+sc? atiyiiirimon c m loti l-rgarc?s:que se esfilm0 t:ortvicyxiiente para
poder proceder a BU posterior alambrado con un akxnbrador (wire wrap).
llespues de alambrar cada bast!sézgiín el esquem que contiene el manual de
operacibn del HCll, (€fCll MMllCll Reference manual) se probó cada
conexibn con el probador de continuidad del multimetro y una vez
comprobado esto se prwedio a insertar y probar los c:ompnmtm conforme SCI
heron utilizando para poder proceder a la posterior progrmcilún y
adaptacibn del sistema mínimo, urn vez que 6ste fuera operacional.
Microcontro1,ador HCI1.
Eií microcontrolador €IC11es un chip, el cual sigue instrucciones, almacena
infc>maci6n,se conrunka y enciende y apaga dispositivos, adcmas de que &te
tipo de chip se utíliza ampliamente & la industria.
b t e dispositivo ha sido construido de serniconductores metal-6xido de alta
densidad c m grandes capacidades peírf&iuis, lo que permite una velocidad de
operaidtin de 2 megahertz, y entre sus capacidades se encuentran las siguientes.
* Sistema Qrnporiador mejorado de 16bits con preewala programable de 4
etapas.
* Modos AL’T’O (Lj’TClP)y ESPEXA(WAT11) de ahorro de energia.
* Interface periftkica serial (SPI).
* Interface de comunícacictín erial NRX miejorada (93).
’‘
Circuito acumulador de pulso de 8 bits.
* Circuito de interrupciones de tiempo red.
* 512 bytes de EEPROM.
* 256 Bytes de KAM esthtice.
t-
Convertidor A/D de 8 bits de 8 canales,
El microcontrolador cuenta con circuiteri,ainterna para poder comunicarse con
una pc, asi como para tomar muestras y almcemrlas, lo que se aprovechó para
llevar H caba e1 proyecto.
Caractiristicas principales.
Modos de Operach.
LA unidad usa 2 pines (MODA y MOI3B) para seleccionar uno de estos 2
rncxios básicos de operacidn, los que son modo chipúnico y expandido
multiplexado, o bien puede operar en modos especiales que son el de baselastre
y el de prueba.
M t d o de chipímico (single chip).
Modo expandido multiplexado (expanded multiplexed).
ItQ chip piieds direcciomr hash fAK bytus de cwprac:io dimxciomble. IAW
bih de
rsmyor orden se envian en los pines riel puerto 13, y los bits de rrienor orden y el
bus de datos están miiítiplcxados en los pines del puerto C.
k!l pin AS prowee ls salida de cnntrot irtiada en dexmdtiplexar h e direcciones de
rrienor orden del puerto (3, el pin R/W w usa para contro1,arla dirwci6n de la
transfercncia de datos en el bus de1 puerta C,
Todos los virjctores estAn cickdos:desde la RCJM de 191-byte cargabasrc3
intcgrada. Este modo es muy versailrir y puede usarse para probar y diagnosticar
rxiciciixlas y para prograwriar la FHWM
Eil recibidor Idgico wrial se inicialim por software en h K0.Mcargabase, lo que
provee control de programa para la interfase de carnunicación serial (XI)en
Eorxrrato de Xxwdio y palabra.
tin 6ste modo, un bit de control especial está configurado q u e permite autopmc'ba del chip"este modo puede cambiarse a otros moám de bajo control de
pn rgrarxia
8
Mrxio de X'rueh (te&).
Puede usarse para calibrar programs CI datos de personalidad en La EEPROM
intern, en C-stcmodo se configura un bit de control especial para permitir el
sc:c:efi~>
a un núrnert~de bits especiales de cx~ntroitic? prueba
Este modo puede cambiarse con los btros bajo c:onf;rolde pragmm.
Vdd y Vss
Vtld ks Vt>ltaje de 5Volt;sy vss es tima.
Reinicio(reset)
Reinicia la operac:iOxi del chip.
XtalJIxtal
San intcrfases para un cristal o para un reloj tipo cmos.
E
tis un pin de salida tie 1.asena1 de tiempo irle1 reloj interno del chip.
BO
Se lisa para interrupciones asíncroms del chip"
MODA/Z,iRt MODB/V
Se usan para controlar los m d o s Msicoa y especiales de operación del chip.
VHi,VRH
Proveen voltaje de referencia para el convertidor A/ D.
R/W\LTIR.
Segiin el modo de operación proveen función de estroboscopio o de
l.t?c:tir ra/ emitt ira.
AS/SlXA
"Proveefunci6n de ir.strok)de entrada en modo solo chip, y de dir~xcibnestrobo
en modo expandido.
MEMORKA.
I:,a memoria intern del chip se divide de diferentes formas sclgiín el modo de
operacibn del mismo.
- 1.0
Modos de Direccionadento.
Inmeciikkto.
El operando se contiene en el byte inmediato sipimte al código de operacih,
existen hash cuatro instrrrcciones de byte.
Ilircxto.
El byte menos significativo sc? contiene en un byte adjunto al código de
operacibn, y el m á s significativo se asume %XI.
Extendido.
La dirección efectiva del argumento se contiene en los 2 bytes siguientesal
código de operación.
Indexado.
Clno de los registros indices b*l usa para calc:ular la dirección efectiva.
Relativo,
Solo se usa tn instrucciones ramificadas.
inherente.
toda la información requerida para ejecutar la instrucción la contiene el código
de cxpenraciCin.
Prebyte.
Expande las instrucciones n o m l e s del chip.
LA unidad cuenta a d e m s con registros, interrupciones, modos de ahorra de
enerlpa,temporimdoin programable,EEPROM, transmisor y receptor
incorporados en el chip.
Metodologia para
conexión. de display
y Teclado.
L a forma de conexión del display y del tecíado consistió en soldar las
conexiones del display confonmcl al manual de oyesación de forma que &lo
presentase 2 lineas de cddigo y probandolo con un mensaje sencillo de revisitin
de RAM.
-
4 1
Metadologia paxa.
conexi6n di~lidisp lay
y Tdada.
DISPLAY Y “TECLADO.
Modos de? Entrada.
* ‘l’ecladir)restrearios cie tipo r:ndificadr>o dec:mlific:aciodonde cada pultiiacibn
prodrncc una codificacibn de G hits de La echal.
* %nwr castreador de Mairiz con lineas cmM%:adasr) rieccdificedas c k rastreo,
y can adado dc ttcliz almacenado en RAM dirwciomb1.e por CPU.
- 12Modos de Salida.
Display.
kil display w iin display del k i p ) tlii. matrix dti piírzta de c:rietd lícpicilo c i e Ih
c:aract&resp o r 2 lirieas, tiel tipo ANT1492 inc:lzryencio circuitos contrioladores, y
t i e control con UM gran varidad de símbolos, con las siguientes c-irActwisticas.
* MAtlulo cic? display compacto e in tegrado.
-133I lisp1 ay.
* 1WM generadora tie car8r:teres y KA M tle despliegue.
l:l dc!c:adific:wrlorPItilixario hid! rrn IIAC d d tipa 0808 en c:onfipracibn
recbngular tle 20 pinest el ciial es simpleinente tin cmjunto de amplificmiores
operaciom1t.s integrados cn un paquete y con conexiones apropiadas entre los
pxx10s.
* Voltaje de referencia de 12 volts.
Desarrollo del. Sistema Minima.
EX sisterria mínimo w arm6 utilizando:
14-
Desarrollo dell. Sistema Minima.
Programación de Menus, aceptación y
VaZida.cicifnde coma~~dos.
Programaci6n de Menus, aceptacictin y
Valldaci6n Ide comandos.
pdm p r c x d m a ía pskerior prueba del sistema ccm la
mgyrridad de yiie le maniaria d~ acceso aleatorio M?encuentra en óptlnma:
dicioms, aprovcx:brido LA experiencia de LA prhctica I. de Sistemas I)igitales.
l
k prueba consisic. en grabar yjocr todo el contenido dc la memoria, linea a
Iiriea, y la falla w da cuando titia lr*ctura IMJ coincide con una escritura.
Ei,*tt7 kwtiam pare
L."'Tx 3. DAC 4..OPEK 5 . RJ3CW 6. EJEC
c :OM:ANIX)--Eo& splicaciorxes: w 1lc;vtiri a c:etm por rciedirr tie in terrupcioncs
display euivia tin mensaje de que esta listo para recibir un casacter y tixi mensaje
de espma en tanto no to diste, mctisaje que it?lsistema recibc?y se mantiene en
c!spera nritmt.ras IKI prieda adquirir el r:i.iraeter
1. A
m
m 1 6 ~
Programación de Menus, aceptación y
VaIida.cl6n.de comandos.
'I' r*?al
BlCWl
hip
Quit
-17Programación de Menus, aceptacih y
Validacibn del comandos.
KODN
EQU $00A7
BPROT'
RQTJ $1035
AiKPKG
EQTJ $23
STX EQU $02
EOT 1lQT.r $04
ACK EQLJ $06
BlXT, EQU $07
ORG $oorwr** variable que guarda el tamam de la muestra
TAMCAM
rmb 2
<YAJ'"ADCIRrmb 2
ORG EEPROM
LDS #PILA
LDD #RAM:!-FN
LDY #REGBAS3
S'TD TAMSAM
LDAA#$93
C'I'AAOPnON,y
LDAA #$O0
STAA TM.SK2
STAA BPROY* Inicializa vectores de uiterrupcion
JSK V E C I N F Inicializa cmunicacion serial
CX.K IODEY
JSR mrr
** Programa Principal
LI3X #RAMl-lNI ;X apunta R la ciirtxcion de inicio cfe la
;ram e x t e r n
LLENA
LDAA # A E P R G
LDY #REGBASE
EQLJ *
SI'AA ADCTL,y
AD BRCLR
ATx:TL,y,CXF,ad
LDAAADDR1,y
JSR WRIT"
INX
RHY
LDY #TAMSAM
CPX 0,y
PITLY
B E LLENA
LDD #$aooo
STi) CDNTAML)R
** Urn vez cdpturadas las muestras se procede a enviarlas
LDX #RAMl-INI
LDY #TAMSAM
-181
kogramacibn de Menus, aceptaclbn y
Valida.ciónde comandos.
LDAA0,x
c)~J'JTWI'
I , h m r i t h ? la futiciini EJIK:tfel mtníx, el niatxmia lltwrnrá n c a b In tja:uc:it*rnde
un prc)gam gut! previamente debia tie haberse cargado cm la localidad 14oQH
tic! la memoria SKAM externa del chip, lo que debió haberse ll.evatloa ab con
la opciirí de REKBP del sistema mhimo.
[Ish opi:iOrz. sinlt? para ciianda no SCI dispone dit: tquippo para grabar
E J W ~ M y, la puede siiñtitiiir a la perficxcibn, ya que si falla, es debido a emc)res
de programcihn del sistmna.
-19-
Programación de Menus, aceptacibn y
Vali.dacióndle comandos.
CTAA FLAG1
1,DY #RU'lINA
JSK SFiOW
]MI' O K . P
;Regresamos B la opciari el Mer& Principal
Esta parte sirve para poder probar programs sin necesidad de utiliuir
mmtorimi, diminando ~ $problema
1
del grabado y borrado y rediiciendo la
p6rdida tits tiernpo debida u la excesiva demanda.
DAC.
5elccciomndo la opción 3 del menu principal que cs el DAC, h e m o s el
despliegue cid sipiente l17~xw
en el display, el cukl sirve para poder
prqpnlar In forrnu I : O ~ Cvarnci,ñ
)
H enviar urn ~
e pur1meciio del sistema
minima.
ORG RUTINA
NIJXIVA JW €3119'
i" 0crr.p"d"' ?
JSR CI,I.:AK
;Limpia al L,Cl3
LTIY #BENVENIIXE ;Y apiinta a la cadena "'I'KANSMISION"
JSR 5HOW
;Mostramos la cadena
J'SK C:X,UAK
JSK CW'IXJ
;" Hiiffer de trarwmisi;in vacilo ?
;largamos A con el byte de inicio de tsansmisih
I.,DAA #hiJ'x
STAA KDAT
;Loenviamozs al registro de datas del SCI
JSK I)EI'í,AY
;IZr!hrdo
;Kchucio
;Ketardo
JSK O W 1
i'Buffer de traizsmisitn vacio ?
IJ)AA fF.*I'x-Kcal ;Cargamos A c:on byte de transmisitn en tiempo r t d
01IAA 1' CXNAI.,
;Hacemos OK con el contenido de P. CANAL
SI'AA SC:ilA'lT'
;llnviarnos a1 %1I)AIT'
JSR DEXAY
;Retardo
JW IIELAY
;Rc?tardo
JSK riE:I,AY
;KstArria
NIJWAZ
LDAB P--MASK
;Cargamos 13 con la mascara del canal activo
C.Si3AII # S O
NITEVA2 1,I)X #W,<J;BAS ;CMrgamos X con registro barn?
1,T)AA # A T X ..ON
;Cargamos A con byte de encendido del AZX:
STAA OPTION,X
;hviamos .A al registro OFTION
lNIJ?l 1J>AA Er-C:ANAL;Chrgumos 14 on el contenido tiel yunkro al c:arial
C)F¿AA #$2O
W A A AJX:'íTd,X
;L.o enviamos al registro de control tiel AIX:
CON Rl LDAA AKTL,X
;Cargii A con el contenido del registro de
coritirol cicl A I X
c
;Cornpara A con la mascara tiel c m l
"1;
CONvRl
;Si no m n iguales, no ha terminado la conversion
(.lpción IIAC.
Bloque
E'recix
VKeS
fMP yu.m
La opción bloque solicita al usuario el bloque desde el cual se enviarkí la senal
qiie SÍ? adquirió previamente.
Bn esta opción LT~C?está previendo que si no sc! elije n i n p n bloque éste ser&el O
por entrada para evitar conf4usiones, Aunque si se hace por dos veces
consecutivas, el bloque almacenar&la nueva sefial y eliminar&la anterior.
LR opcibri Frecu nos indica la fiwíiencia con la que se llevarh a cabo el envio de
datos H traves del DAC, pudiendo variar desde 10 haste 999 muestras por
ejecucibn, previendo que se tornen una cierta cantidad de muestras en caso de
que el usuario no intxcxiurxa ningum cantidad m h t a opcibn.
La opción veces le solicita al usuario la cantidad de veces que el DAC llevar&B
cabo el envio de la sehl almacenada el cual es variable.
k
i bta opcl6n tamtjih w? prwee que si no se india la cantidad, el sistema lo
llevarii a cabo una detedndada cantidad de veces.
IA opción EMP le indicar&al D A C que inicie el envio cie wñtll.
Is opción QUIT le indica al sistema qxie abandone éste wibmenu y regrese a1
menú principal de opiones.
Cada una de Ehhs opciones se programó en el programa de control, y ~ 5 f 3Ir di0
validación para que pudiese corregirse ia opción, adernas de integrar bloques y
opciones de entrada para el caso de que no se le diera instrucción en éste
sentido,y previendo que se pasase por alto bsta indicacibn para no causar
problemas al sistrorna.
Sistema de Comunicacitín.
En €IC11dispone de un sistema integrado que le permite comunicarse con una
M_. a traves de un UART que es un -tor
Transmisor Universal Asíncrono
del tipo de Sistema de inbfase de cornunicacicírx d,
el cuál puede ser
fhcilmente programado por software.
13 transrriimr tiel sisterria line seña1 interm de re14 para mviar datos; en fortria
seria 1 al pin ' C'xI), la transtnisiiíri sc?inicia flabititandocl ibnanstrnirtor, y esrihientlo
el dato qire 6 s k rw-iitrirhpara si1 envio.
Tnterfrise de Ccmmnlcacidn
serie Asiticrona.
Opera bajo la ncmm it!!-23241,con niveles tie v d h j e 'WL, ptrro tlispcme nie iirw
conexión para voltaje de '22 Volts, siendo la comunicación ashcrcma entre
palabras, pero shcrona en una palabra.
Formato tic 1latcm
I ,a krruisrnislhn y la re<:epci6n tie datos operan bajo el mlsrno ftirmto de da tos,
cada palabra transmitida es de &its, coin un bit de paro y otro bit de inicio,
A<.:SC), y el bit de pliw tin MARCA.
twtantio cl bit. dé inicio en
Cumdo no hay infcwtriaeilon la linea ociosa tisbrd en MARCA, ai terminar lo
comunieLic:ih, y crisntici no hay comunicacibn se envia BREAK siempre en
espacio.
Al ctripe~mima txansmisi0ri M! env La i i n PKtiAMBTJi,C.l, que cmnsistc? tie a1
rnenns 10 bits cc~nsecil~tivos
en rnarc:a, por 10 tanto el bit de inicio siempre irh
preceditlo tie m r c a y la transicihn marca-espacio pemitirh detectar el inicio de
iina palabra, iniciando IR transmisibn con el bit O.
1.ainterí'asc?se utilizti en fcmna asincrone, donde cada caracter se trata corno un
twnsaje particular, p r o que tiene bits coin intervalos a reloj.
utiiim 4ete protctK:crla p x ' ser ndt; aimpltr, aunque r d t i lmto y no prcwtw
comeccion tf c? wrorw.
El conector es e1 1113.25, qiie cons'lii de tlri cableado de 25 lineas, siendo conector
tipo macho del lado t~~miml,
y conectar hemúm del lada del modem.
I as internipdomes w mrwjaron por r r i d io ríe la t k n k a deriotriine(ia polling,
qiie sc. impletrientbn por rriedio de wftwm?,el ciml tarnbih fit! eticargbri nit?
preparar las banderas de status.
Estas opciones s b integraron
~
al programa desarrollado por los alumnos durante
La r(?alinx:i~n
(le los yroyec:tos t , ~ m i ~ l e t ~
=24==
Porci6n Central dell
Programa de
Control del
Sistema Mininto.
T5T P-_CAD--OK ;Comparamos con lo que hay en P -CAI_OK
BNX.: MAT34
;Si no son iguales salta A MALM
;Si fue le cad- BLCQ salta el submenu de
JMP BIAJQUB
nr,oyrJE
MAIM
LDY #P- QUIT
;Y apunta al comando QUW
JSR VAl.n)A
;Cmmparamos la a d e m introducida COI\ el
c:o~rrd
yurr
o
-CAI>-OK ;Compararnos con lo que hay en E' <3AII..CIK
'WI'
BNE MAD5
;Si no es igual, salta a MADS
'IS'J" FLAG2
;Probarnos la hnderlt 2
BESI;! MAD45
;Si e u cero salta e MATM5
JMP OK: - I X
;Si nn, salta a O K 'IX
MALM5
JMP .Mmn..JP
;Si fue la cadena QUIT regresa al M e d
Principal
MAl35
JSR RKROR
;Si no file una cadena v litie muestra el
mensaje de error
JMP OPC;--AD
;R~?gresaa pedirle la opcitn del Men€ de
Adquisicien al usuario
******+**********XJBMENIJ CANAL, DET, MENU ADQVZSKX)N ***************
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
CANAL
JSR CLJ.3AR
;Lknpmos al Dlsplay
I,DY #MW-AKKAN
;Y a p n h al inicio de la cadem
"CANA AI-XJ 0-3"
J5I.i. 0PC:iON
;Mostramos la cadena , C U ~ Z O Tparpadeando
JSR READY
;Esperamos la respuesta del usuario
'13'1' E'-'IEC-C)K ;Cornparamcm con lo que hay en P--'SJ-<CJ-OK
HEQ KESECAN
;Si fue un caracter irnprirxijble, s a h A
IWSKAN
JSR EBIROR
;Si no, se oprimio urn tecla de control,
rriuwtra mensaje tie c?rror
JMP CXNAI.
;14epesamos a pedir le opcitn úel CANAL a1
usuario
;Carganios A con le ASCII que hay en
REPCAN LDAA P-TECLA
r-?E(:xA
CMPA
#CERO
;Compararnos con la tecla 'O'
HNE CANAL1
;Si nc~es igual, salta a CXNAL1
JSR VER
;Ver la opciitn cmecta durante 2 segundos
JSR PFfl
;Chrga bytes para el canal O
;Si fue la tecla 'O', r~?~;resa
a opciBn del
JW OP<:_-AI)
submed de adquisicien
#UNO
;Compara A coda tecla 'I'
CANAL1
CMPA
I d
I
- 25 Porcitin Central del
Programa de
Control del
Sistema hfinimo.
-27Porción Central del
Programa de
Control del
Sistema Minimo.
JSR COMMAND
;Esperamos una cadena fhdizada con m m
I:,X?Y w-wxwrd ;Y apunta ai ctiimntio T ~ A L
JSK VAId.lDA
;Comparamos la c : a t i e ~introdudda con el
comando 'TWAL,
OK
'ET P-uGAD-~OK;Comparamos con lo que hay en PwmCAD*
BM;: Tx2
;Si no es igticil, salta a TX2
;Si hie IR cadena TKEAL d t a al submenu de
JMP '1' ..KIWI-,
't'KkiA.f,
Tx2 LDY
JSR
#PJMP
VAIJDA
;Y apunta al comando EMF
;Comparamos la CH d e - introducida c m el
comando IFMP
con lo que hay en P CAD ""OK
'ET 3) CAD C3K ;C~omparamc~
BNE TX3
JM:P FNP-TX
;Si no es igud, salta a Tx3
;Si fue la a d e m EMP s ~ l t aal submenu
EMP Tx
LDY #P--BLOQ
JSR VALIDA
comando BLOQ
'1x3
;Y apunta al comando BLOQ
;Comparamos la cadena introducida can el
P C A D .OK ;Comparamos con lo que hay en Y "CADOK
UNE 1x4
;Si no son iguales salta a 'Jx4
;Si fue la cadena SLOQ salta al submenu de
Frp BLW-7-X
vr OQJX
'1x4 1,DY #P_.QlJrT'
;Y apiunta al comancicj QUIT'
JSR VALIDA
;Corn paramos la cadena introducida con el
ET
conuinclo QUIT
'151' P-CAIl-J)K ;C:orxiparaxrii.>scion lo que hay en P-CAD-OK
BNE '1x5
;Si no es igiiral, salta a TX5
MI- MFNIJJ?
;Si fue la cadena QLJJT regresa al M d
Principal
'1x5 JSR ERROR
;Si no fue una cadena Y lida muestra el
mensaje de error
JMP OK-'IIX
;Regrwwnos a la opcitn el tsansmisictn
**e******************
R m A DE ' m L ************t**X*************
..................................................................
'r REAL, i,nY
'mIMmREA I, *"
#MFN TREAI,
;Y apunta al inicio de la cadena "*
JSR ANUNCIO
;Moslramos la cadena ,cumor parpadeando
I ,DAA# N O
;A ccm la ccm,xistmteI~mlciarmNC)
S'T'AA PZAG2
;E:nviiamos a FLAG2
fMtP tWt:-At?
;%ltamos al medi de adquisicictn
T .REALI LDAA #sr
;A COIR la constante booleana SI
YX'AA FLAW
;FI:nviaamns
a FLAG2
-28Porción Central del
Programa de
Control del
Sistema Minima.
29
-
Porciisrn Central del
Programa de
Contrail del
Sistema ñdinirno.
;Loenviamos ai registro de datos del K I
STAA SCDAT
CPY #$o
;" Ea el fin del bloque ?
REQ END.-KEA
;Si es aq, salta a END -AlX:
;krementa el puntero a1 bloque
Drn
BRA IATI-IrlA
;Salta a I N I - A X
ENII-REA JSR
C:I,FAR
;LirnpUi el 1X:I-l
JMa 'T.J@ALl
;Salta a rI'JEAL,l
****+***X**********X*
R W A I)F,I3LC?QíIX............................
.*****X+*********+***+,*X****+*+*****************~~~*~~*.******.*********
BLC)#J'X
JSK
CIXAR
;I,inipiamm al LCD
1,DY #MENmm,'TXBI,C) ;Y apunta al inicio de la cadena ' BU,Q-'rX 0-
3u
JSR
JSR
OPCION
1WAIIY
;Mostrarnos la cadena ,curzor parpadeando
;Esperaanos la respuesta del usuario
Tr;T P-TEC .OK ;Cmnparamoé;con lo que hay en P_'IEC-.OK
BEQ BLO"'TX2
;Si fue .uncaracter imprimiblet salta a
BLO-TX2
JSH PAROR
;Si no, w oyrirnio urm tecla de corrtrol,
xnuestra mensaje de error
;Kegret;a a pedir la opcian de BLOQUE de TX
JMP BL,C)Q JX
;Carga A con el contenido de P -TECLA
BLOm-TX2
LDAA P-'TECLA
CMYA
#CEXC?
;Ckxnparammcon la kwla 'O'
;Si no es igual, salta a BLO-.'IX3
BNE HLC) TX3
JSR VER
;Ver la opcien correcta durante 2 segundos
JSR B L . 0
;CArga bytes para el bloque O
;Si fue la &la 'O', regresa a opciQnde 'XX
Jh4-P C"x?c.:"-rrx
;Camparaxnos con la tecla '1'
Bi ,O.. 'JX3 CMPA #UNO
BNE BL,O-'iX4
;Si no es igual, salta a BLO-.TX4
JSR VER
;Ver la opcieni correcta durante 2 segundas
JSR BL-1
;Carga bytes para el blryue 1
;Si fue la t& 'l',regresa a opcien (le1LIAC
Jh!fP 0uC:Jx
BIX)-TX4 CMPA #W
;Comparamos con la tecla '2'
BNE 13LOu.TX5
;Si no es igual, salta a BLO-TX5
JSR VER
;Ver la qrci$n t:mwtadurante 2 ,segundos
JSH B L ~ ~ 2
;Carga bytes para el bloque 2
JMP O X _'IX
;Si h e la tecla '2'/ regresa a apcien del DAC
BLU--TX5 CMPA .#'IRE
;Comparamos con la tech '3'
BNE HLC.I-.TXó
;Si no es igual, salta a BLCl-T'X6
JSR VEI:H
;Ver la opcihi comw,ta durante 2 segundos
JSR BL-3
;Carga bytes para el bloque 3
;Si fue la tecla '3', regresa a opcien del DAC
JMP QPC_.TX
l3IXI-TXG ClMPA #CXJA
;Chnparmm con la tecla '4'
I
-
-31
Porcibn Ceintral del
Programa de
Control del
Sistema Níinimo.
;Retardo
JSR DELAY
$* Buffer de bransmisiCn vacio ?
JSR OUTXI
;Cargamos A cmn bloque y canal
LI.)AA INFO
;Laenviamos al registro de datos del SCI
CTAA SCDA'T'
;Retarda
JSR DELAY
;Retardo
JSR IJELAY
;Retardci
JSR DELAY
;Carga X con el contenido de INI- BLO
LDX iNI~.BLO
BM-~TXl JSR O W K I
;?Ma a la subrutina OTJTXI
;Carga A con 10 epurttado por X
LDAA 0,X
;Envialo al registro de datos del
S'TAA S C D A T
;Incrementa el puntero al bloquer
INX
CPX FIN--BLO
;" Es el fin del bloque ?
BNE HM-TX'l
;Si no mi aq, salta a EM-TX'i
LDY #ME~N,~E?íN~~EMI?
;Y apunta a la cadem "FIN TRANSMTSION"
JSR SHOW
;Mostramosla cadena
JMP OMC:--TX
;Regresiimos a la opciCn el Men£ de
'IRANSMEION
*******e***********
R[*J"JrSJTAI[)EL I>AC***C***********X**x*******
...................................................................
MENU "DALDY #MEN -DAC ;Y apunta al inicio de la cadena "*** DAC ***I
JSR ANUNCIO
;Mostramoa la cadem por un segundo
L,DY #MIELNZJ-.I:)AC:
;Y apunta al inicio del submenf: del DAC
JSR SHOW
;Mostramosel MenE DAC de derecha a
izquierda
OPC?-_DACjSR
CLEAR
;Limyiarnr>se1 Len
LI3Y #PT_.DAC::
;Y apunta a k cadena "CM'D-DAC"
JSR CXMMAND
;Esperarnos una cadena finalizada con ENTER
LDY #P.-BLOQ
;Y apunik ai comando BLOQ
JSR VATJDA
;Conripairaxnosla cadena introducida con el
ccm,anda ADQ
' E i ' Pm-CADw-CIK
;Comparamos con 10 que hay en P-CAD--.OK
;Si no fue la cadena BLCQ salta a DAC2
BNE DAC2
;Si fue la cadtYc1L)BLCQ salta al mbnwnu de
JiW DAC-BLO
BLOQIJE del Z)AC
DAG2 LDY #P _EMP
;Y apunta al comando E1iMP
JSR VALDA
;Cornpeiramos la cadena introducida con el
comando A m
' IYI' Y,-CAL).O K ;Chrnparamos con la que hay en P"CAD-_OK
;Si no fue la caldena EIMP salta a DAC3
BNE IMC3
;Si fue la cadena EMP salta al submenu "
JMP DAC--EMP
EMPEZA D A C "
- 33
Porriibn Contra1 dol
megrama ae
Crintral dol
msxerna wrxnxme.
ACABA
DEY
#a
BN'E: IIAT€I
E R GLEAK
C:PY
JlSP
del IIAC
OK-JYAC
;Demementa Y
,I;L:wpauI k'bbiw MIW
;Si ni0 E)Eigual iii~ltaa DA'I'O
;Limpiamos el display
;Reg-reetimos a pedir la apclPrn del submenf
SISTEMA DE CONVERSI6N
ANAL6GICO DIGITAL.
P;I sistema ut1x1z~un convertlaor de apromnacion sucesiva ae O canales ae O
'bits ccm urn ymxiiulh de +,- medio bit menom aipificativc>, pcnr In que no
xwpiere cia c:ircuitesia extern.
12 convertidor se cormone de un convertidor de s i m l e amoximación sucesiva
de redistribuclon de carga, y conarol digital,
I.& 1Bg.i~:~
de control, la cual esth multiplexada, le permite al sistema canalizar la
sefía1 h c i a 4 registras disponibles la conversión se confiprh para detenerse
después de haber tomado una serie de 4 nnuestras, la m a l se program6 para
poder repetirse una determilirada serie de veces.
Todos los bits de &te registro pueden 1eei:se o eecribirse, excepto el bit 7, el cual
es tin bit de wlo lectura indicadcm de sldfiis, y tcldoar lcm lntn se limpian cun 11x1.
rescat a ercccapcihn del bit 7.
Ls bandera de conversión completa (CCF) se activa cuando los 4 registros de
datos A/D es& llenos de datos válidas.
€9bit de %::AN se piis0 en 1 de t d f o m qire los registros se llenan mando hay
datos disponibles.
u
h34
-
Resultados Obtenidos
Y
Recomendaciones.
E31 proyecto sc! LlevO a cabo a disíaccibn, lograndose que el sistema enhblara
c:omhacitin con una compulridora a traves de un prowam instahdo en la
iiri irn yruptrnn irtahíadu m d misbm, el r:ixal p r x x x i k
transportar la infomci6n obtenida fiácilrnerite.
r:rrmputadorn, y
El sislem puede utilizarse para simplificar el problem de grabar y probar un
programa, puc?etoque como el hardware es funcional, s i exist,t?a 1 p n a falla
dtxrmte la ejeciicih del prograrxia, &Sta M? debera a prograrxuncihn, y por La
misma raz6n si un program que funciona en el sistema n o Eunciona en la
prhctica, el problem SCI cncontrarkí en el hardware del alumno"
'l'ambiibpermite monitorear tina sl?ihl y enviarla a la compiitadora, CJ bien
almcenarla para poder rnostrarla en &traririkíquina la que solamente requerirá
de tener instalado el programa de comuniaciisn, el cual no requiere mas que de
tin
mi#liiPr*nrriW h y U b Y W du dtMW dwtw, uli tnílltikilua pwJdrtu u+ALL*iM*an em&¶y r w p ' f "
tientro tle LA unidad de discos flexibles, asumiendo que no hu biew espacio en
disco disponible para poder llevar a iiiabo el nionilor~).
-351Programa de Control
para la
Computsidora.
#include "=1Z;repliics.h>
#include <coruo.h>
#include .rlctype.h>
#irndirde "=sttiio.ti%
#int:lnde cstd1ib.W
#include <stsing.h>
#include <dos.ha
#&!fine N wri-Muesht.w 500
#tiefine Num..Thtos 700
#define irii Tx 0x24
#define Tx-Real 0x04
#define
C'diinirms $0
#define KIS 0x39
#define Mensaje3 "Nose puede abrir el arlchivo "
#define TRChnalO "TiempaReal Gina1 : O"
#ciefine 'TRCa~ri~ll
"'T'ieniyoReal Ch~i~l
: 1"
#define '1W23ri~12"TiempoHeal C'wrml :Y
#define 'lRCam13 "TiempoR e d C h a l : 3"
#define ESC Oxlb /* Drsfinir la tecla da ewape */
void porkda();void mido();
void pantalla10;void pantalla0;void termina();
itnsiped i r i t rnargerx -(
22, distancia -- 2 ;
FI7,li *Archivo;
char Buffer[Colums];
i m s i p t r d char ~yttr,altil),bay,,Cax;~~a.rl.,r:ar2;
imsigned irit i,k;
ink GraphLhWer;
/* Controlador'gr fico */
in1 CraphModtr;
/* Valor del modlo gr fica */
int MexX, MkaxY;
/* M ximn rtisr.>lncitnde la pa~ztalla*/
irit kirrod lode;
/* Rt!pcirrta un errcw de gr fico~l*/
int X,Y;
unsigned int h n g o -= 255,Margen -=: IO;
int Mirtstras[Nrrrn-Ih tos);
int C ,hml,Blcxpe;
int I'errniso = O;
ixzt Error --- O;
irit T'-l<eal - 5;
str.rlic:tlisia
( iinsigned char info;
slsucl lista *siguiente; 3;
-36Programa de Control
para la
Computadora.
struct lista *p;
struck lista *NuevoElemento()
{ retuni((shct lista +)rrUdllTX:(Gi~~.)~(SfirU1:t
lista)) ); J
void Iru~5alizaGraflcos(void)
~
I
GrayhWver = 13Erric1:
/" Cmntx.oladur VGA "/
initgraph( &Grephlkiver,&GraphMode, %P);
h r o d h d e == graphresulto;
/" Ideeel resultado de la inicuitlizacih "/
if( ErroCode != @k
)
/* Error cxurrido durante la
iriichiimciie n */
{ printf('Pmor en al sistema gr fico : % @\nW,Iz;rripherrorrnsg(RrroKode ) );
exit( 1 ); }
MaxX getmaxxo;
/" I'mw~o
de la pantalla */
I
MaxY
gebriaxy(); )
void Marco(int x1,int y1,int x2,int y2,int texto,int fondo)
{ int i,i;
textcolor(texto);
text€rackltro)~ind(fando);
gotoxy(x1,yl);
cprintf(mfin);
for (i x'ltl; i e-x2-1; i-t-t)
{
ptoxy(i,yI); c:printf@));
gotoxy(i,yZ); cprintf("t7; 1
;gOtOxY(x2t,yl);
c:printf(V);
for(j -ylj'l;j<-?yZ1;jti)
( ptoxy(x1,j); cprintf(m'n);
gotoxy(x2,j); cprintf("O"); )
gotc)xy(xl,y2);
c:priritf("E");
gotoxy(x2#y2);
cprhtf("Y4W);
winr.hvv(xl+l,ylcl,x2- l,y2 I);
c: lrbwr(); }
A
I37Programa drr Control
para la
Computadora.
438Programa de Control
para la
Computadora.
NKJLL)
whilrr (pi I
Out L%rial@l-3info);
gotoxy(4gJ5);
cprintf("%c",pl->ido);
deiay(5O);
pl = pi-%siguiente; }
Cht-Seria t(RW);
/* Erivianios Rekmno dc e r ~ h ~
*/ t i ~
{
~
delay(l00);
il)ut- %rial(oX26);
/" Enviamos h */
delay(100);
c)ut-,c;enral(oX25);
/*
dehy('W;
Out _%rial('T'xReal);
/* Enviamos fin de kansmisih */
Enviamos %
"/
3
cirScr();
gotoxy(l!5,4); r:printf("'I"erminoenvio de ixtfomcih al ltS.2:32.\a#);
gotoxy(l3,7); Eexticolor(l4);
cputs("Presionti cualquier tecla para continuar ..*Ir); Retch(); 1
void Libera".Mexnoria(shcitlista "pi)
stsiict lista *aux,*aiixO;
aux = = pl;
if ( aux --- Nrxr,r*)
return;
while (sux-Wguiente !=-NULL,)
( auxO aux; aux aux->siguicn2ie; frw(aux0);
I
{
p=
)
frw(aux); )
void hwrtar(struct lista "*p1,,char byte)
( struct lista *temporai,*aux;
CL'ltX
*pl;
/" Si la lista eñh vacia */
{ temporal NuevoJJementcQ;
/* Creamos un nuevo nodo */
temporal.->info= byte;
/* Gwrdamw el dato en el nuevo nodo */
t~?xxipr3ral->si~ií~n
tci - *pl;
/* temporai->siguimte apunta a M.i;[,T1
"/
*pl" temporal;
/" p1 apunta a temporal */
f
/* Si la lisia ya contiene elementos */
-
-r
-
temporal NuevoUlmmto();
temporal->info byte;
while ( aux->siguiente ! NTJT-,L,)
azix aux >siguiente;
- bmyit)ral; /* tcrnpor.al 5Bipiiente apunta a pl */
ai~x->sipi~tntt?
temporal ,siguiente NTJTJ ;,
/* pT apiinta B temporal */
I -
=.
I
-
1
J
- 39 Programa de Control
para la
Computadora.
void Bytes()
I gotnxy(26,2):
textcolor(l5);
...");
cpnts("T~~nc~ificando
while (f-ts(Buff~r,C:nliar~~as,Archi~~))
!. NLJ1,1,)
( if ( Biiffer[ll .=='9')
return;
if ((Buffer[O] != '9)I I (Bufferl4J!%='1')I I (I)uffer[l]<. '4') I I (Bdfer[5] 'B'))
{
clrRCr(); textcolc7r(15);
ptoxy(l5,:j);
cprintf('Brror en el formato del archivo 529\a");
got,oxy(l5,5); c printf("% s',Buffer);
gotoxy(l3,7); textcolor(l4);
cputs("Yrr!aiont? c:tialqiiier tt?cr:lripasa continuar ...");
g&ch(); Rrror I . 1; return; j
gotoxy(l4,4);
clrLwlQ; ti?xtcolor(l4);
c p rintt("X;i swti3ufft.r); gotuxy(26,f7);
clre«l(); tt?xtcolor(15);
i 8;
while(1)
if ( F3nff&r1i+21 '\n')
(
break;
car -= Miiffer[i]; if ((car >=-'O') &&, (car <-='9'))
car == car 'O';
if ((car >==
'A') && (car <=='I.'))
car car '7'; alto car;
alto altoK<4;
i t I-;
car =: FIiiffer[i];
if ((car >- 'lo') && (car <= '9'))
car' = car . 'O';
if ((car >=='A') && (car a= IF'))
car - car '7'; bajo car;
byte alto I bajo; IxisertAr(&p,byte);
Cprintf("%P,byte); y + 4 ; }
delay(300);
1
-z
-AL
i-i
-I
11
void Opcinn()
( textbckground(9);
clrwr();
tr?xtcolor(25); gotO%y(10,2);
cputs(" SlXEC:C7IC)NAK FUNCTON DEL MIINtJ 1-4.
");
ploxy(25,4$; textcolor(14);
eptm('
RL,ECC'X3N: ");
tc?xtcnlor(15);
1
+€oPrograma de Control
para la
Computadora.
void Fi:scritorio()
{ char op;
int far *p, i;
window(1,1,80,25);
p (int far *)oxrisoooaii3;
for (; (int)p 4000; *p++= Ox71BO);
distancia 2; textbackground(1);
textco2or(15); gotoxy(1,l);clreal0;
got,tnxy(3~,'L);
cputs("PR0YE:CZ'OTERMWAL, IN);
gotoxy(l,25); clrwl(); textcolrr(14);
gotoxy(2,25); cputs("E%: = AHANLX>hTAR");
Marco(margm~-der,margexitop ,margen Zzq ,margen -fori ,15,7);
windnw(l,l,80,25); kxtcolor(l5);
gotoly(margen-.CLer,margen~-top
+ distancia); cput~(~P);
for ( i = umrgen-der -t 1;i <;- mrgen-izq J ;it+)
cputS(s("t7;cpilb(ftJn); ttixtcolor(4);
e;atoxy(mrgen.der + l.,margen..top + 1):
CPUtS("
LUIS VALLES M.
FERNANDO VALLB M.
€€FJRN A NIX33 U.");
diotencia
y-
ALBERTO
IO; tmtr=;cJlor(lFi);
gotoxy(mrgen-.der,margen top F distancia); cputs("P);
for ( i = mmgen--der + 1;i <==margen . i q 1;i++
)
cput.(");
cputq1N);
tex tbackground(7);
gntoxy(margeri-.der+30,margeri-topi-4);
textcolor(4); c puts("1 "); textcolor(0); cputs('ABFüR");
gotmy(mrgen-der +30,niargen- top+5);
textcolor(4); cputs(V "); textccríor(0); cputs("ENVMKN);
gotoxy(margen--der+,W,marp;en_top+FJ);
textcolor(4); cputSp3 "; texkolor(0); cputs(nmcmIRN);
gotoxy(niargen-der+ W,niargm- top+7);
textcolor(4); ~ p u t s ( ~7;4 textcolor(0); c~~~s(~GKA.E'IC:AR~);
window(margen.-der -E. 1, margen.-top + distancia 1- 1, margen-izq
niargen-_fon 1); }
~
"-
1,
-41.
Programa tie Control
paria. la
Computadora.
void Plano()
( struct viewporttype plano;
X - ((~RXX/2)-(nrllIn_Mílestr86/L));
Y . ((MaxY/2) +*(.Rang)/2));
setivieuvport(X-MaI.8c?n,((MaxY/2)-(Kango/2))Margen,( (MaxX/ 2)+(Num..Muestras/ 2))+ hllargen,Y -tMargenJ);
c:leaxviewporto; getviewsettings(kp1atia);
setc:olar(12);
rwtangIe(O,o,p lano.right-plano.left,plario.bttom-plano.top);
,setcolor(YELLOW); he(Margm,(Margen/ 2),Margen,Ranga+ ((M~rgen*3)/2));
lixic!((Marg~~n/2),Karil;o+
Mar~~~t',Nu~-b~Iut3st.ir.as+((Marge~*3)/2),Kango+MjrtrlZej
n);
line((Margen/ ;Z),Margen,Margen,Margen);
line((Margen/ 2), (Rango/ 5)+Margen,Mtirgen,(Rango/ 5)+Margen);
Line((Margen/ 2),2*( Ran go/ 5)+Margen,IluIargen,2*(Rrango/ 5)+Margm);
X i n ~ ( ( M a r g ~ n / 2 ) , 3 * ( ~+ n~~rgen,lvlarg~n,3*(F(*an~11»/5).t.Mar~mn);
~/~)
1i ne((hr[argen/ 2),4*(Rango/ 5)+Ma r gen,Margen,4*(Rango/ 5)+Margen);
s e t c o l o r ~ 1} ~ ;
void Fondo()
{ sfriict viewporttype video;
int art-car;
static char nisgI] = WProywto 'Iemiiruil I ";
hiicializa. C ;raficos();
/* Inicializar sistema gr fico */
getviewmttings(kvideo);
wtvicw part(vidm.left,vidtro.top,video.iight,video.bottom, 1);
,ctstbkolor(HK.,1JR);cleardevice();
recta ngle(vid cw.left,vitim.top,video.riglht, videahttom);
all: car = textheight("A"); line(O,(alt-car I- Fi),vidm.right,(alt car + 5));
outtextxy(((MaxY)/ 2)-strlen(rnsg),3,msg);
line(0,MaxY (alt-car + 5),video.right,hifLtxY (altm-cuilr+ 5)); wtcolor(l0);
c m ttextxy(((MaxX/ 2)-(Num .Miiestras/ 2!) 25),((MaxY/ 2) (Rango/ 2)-SO)," Volts");
ciu ttextxy((( MaxX/S)-t(Num _Mu&~As/2)20),((MaxY/2) +(.Rango/2))+20, "Tiempo"); wtcalor(l5);
oiittr!xtxy( ((MaxX/ 2)-(Niim -Muestras/ 2) 2O),((MRxY / 2).(hngo/ 2)), "5");
outtextxy(((~ax'/2)-(N1im.""~uestras/:!) 20),((UaxY/L)
(Iiciriga/2))+(J~ngo/5),
"4");
outtextxy(((MaxX/ 2)-(Nurn M uestras/ 2!)- 20),((MaxY / 2)
(I& tigo/ 2))+2"(Tz# ngo/ 5), "3";
I
I
r.,uttextxy(((MRxx/2)-(rJiírri ."~~1iestras/:r)-2O),((MaxY/2)
(KHrigo/2))+3*(I3ango/I)),
"2");
outtex.y(((MsixX/2)-(Nun Mueshas/;!)-2O),((MaxY /2)(Hango/2))+4*( h n p / 5),"l"); }
42Programa de Control
para la.
Computadora.
void Chfica--Blaque()
I inti,k,dato;
Plano();
for &=O; i <I- 2W;i +- +)
t)
{ for (k-i;k <= Num._Muestras+í;k+
p u t p i x e l ( k - i + M a r g e n + l , ~ g ~ Ñ l a-rM[uestras[k]-l,lS);
~)
for (k-i;k <=-Num_Mueshas+i;Er++)
putpixel(lc-i+Margen+l,(IZango+Margen) - Muestras[k]-.l,l); }
for (k-i;k <==Num-Muestrae+~k++)
putpixei(k-i+Margen+I,(Rmgo+brgtr\) - Muestras[k]-l,lS); }
void Tiempo,.-.Real()
{ int i-O,x-O,limit~=500,ancha,alt".car,k;
unsigned char dato;
char msg2u = "C)ir?rrar C)raficarw;
Fonda();
setcolor(l4);
if (canal == O)
{ o ~ t t e x ~ y ( ( ( M a x u ) / 2 ) - í Z O , ~ , ~ C ~ ~*¡-Real
l O ) ; = O; }
if (Canal
I)
{ o u ~ x . Y ( ( ( M a x Y ) / 2 > . ~ / í K ) , l ~ C ~ lTI )Heal
;
== 1; f
if (Canal == 2)
{ outfextxy(((MaxY)/2).LK),tK),1.KC~nslL);T-ReaX = 2; }
if (canal sz=: 3)
{ autt~txy(((MaxY)/L>L10,80,TRGína13); Tu.Heal=3; }
ancho = strkn(mg2); alt-car = texWght("A~;
nirt~xtxy(((hizaxY/2).anchci),MaxY - (alt-cm + 2),rns@);
wtcolor(l5); Plano();
while(!kbhito)
( dato = h-SCI();
Muestras[i] = dato;
if ( i <=:limite )
putpixel(x-tMargen+l,(Rango+Margen) - Muestras[i]-*l.,l5);
{
-==I
it+;
x++;
}
elw
(
Plano();
1
i
^*-
O;
x -= O;
}
Permiso = 1;
yrintf("\ a");
do
{
car == get&();
car = toupper(cei.r);
if ( car == '(2')
Grdica-BloqueO;
if ( car
1,')
break; }
--
-43Propama d
m Cantxal
para la
Computadora.
-44-
Programa de Control
para la
Computadora.
void A brir.-Archivo()
[ char nornbrer(20J;
char *pad; nambrero] 30;
clrscr(); gotoxy(20,2);
t€?xtcoíor(~ci);
cputs("Jngrese ell nombre del archivon);
gotoxy(21,3); cyrirztf(wincluidala ruta de accew.\ a");
gotoxy(lO,5); hxtcolor(l4); cputs("Archivo : ");
textbackground(l1); p a d = cgetflnombre);
if ((Archivo fopen@cad, nrs
)) =- NULL )
( textzscilor(l5); textXwiclcgraimd(l2);
clrscr0; gotcncy(15,3);
cprinff(bIenmje3 "% s \aw,pcad);
gotoxy(13,7); texlcolor(14);
cputs("ClJA1,QUEX 'ITCLA P A W ~.~C?N'TNI.JAK...
");
geticho; return; }
textbackpund(l2); clrwr();
Libera.-Memoria@); p NULL;
Bytes(); fclose(Archivr>);
if ( Error
J)
return;
chscr(); kxtcolor(l5);
gotoxy(l2,3); cp"itf("E1 archivo % s se ha dwdificado.n,pcxd); gatoq(5,4);
cputs(nlJtiticela opciun 2 del mer& para enviar al sistema 68HCll.n);
gotoxy(13,7); tatcolor(l4);
cputs("CUALQU3ERTECLA PARA CONmUAH..."); get&(); }
2.-
-=I
i
-
=$-:
void C.hfica()
{ int alt-.,car,ancho;
char m,*info = "'canal : n,,string[2];
char rnsg2rj = wC)errar G)raficd;
ChRX msg3u
Bloque 4n;
if (Permisa =:= O)
{ clrscr(); textcolor(l5);
gc)toxy(20,3); cpriritf("Nose han adquirido muestras.\ a");
goto%y(l:3,7); textcolor(l4);
cpiits("CCUAI.QU~X'JliGIA PARA CONTiNUAR...");
get&(); return; )
I-.
-45-
Programa de Control
para la.
Computadora.
void A r g u rnento(chi3.r *arpyment [I)
{ if ((Archivo = foptrn(*argument,"r")) === NULL )
[ textc:olor(15); textbackpound(2);
cIrwr(); gotoxy(l5,3);
cprinü(Mensaje3 "% s \a",*argument);
gotoxy(137); LextColor(14);
eyriits(Y:r[JAI,~iTJ~.I:R
'I'E:,C:IA PARA CXWI'tNLJAK...");
I;5rstch(); rc2ttxrn; )
textbackgrorrnci(1.2); chscscr();
Zikra.,.Memoria(p);p NULL;
By teso; fclusiE?(Archivo); clrwr();
te%tcolor(l5); gotoxy(l.2,3);
cprintf("El archivo %! s sp ha decodificadclq
"',*argument);gotoxy(5,4);
cputs("Uti1icela apci$n 2 del men€ para ienviar al sistema 68HCIl.");
goto%y(l3',7);textcolor("l.4);
cIriits("CcUAI.(=2iT-I~R
WC31,A P A M C K " L J A K ..."); getch();
i
-
1
46Programa de Control
para la
Computadora.
void Ini_SCI()
mov
asm
mov
asm
out
mov
asrn
asm
mov
{ asm
dx,3FBh
a1,80h
dx,al
dx,3F8h
a1,OCh
ioitt
asm
asm
mov dx,3P9h
mov a1,Qüh
out dx,al
asm
mw
kkSllt3
mov al,O3h
ouE
dx,a I
mov dx,3FCh
LTWV al,Q3h
iL)Ut
dx,al
mov dx,3F9h
mov a1,00h
out dx,d }
8SfIl
void Salir()
1 clo=p;TaPho;
wrlHndtnup,i,w,añ),
//direc. del TSB del reg. de baud rate
dx,a1
8SXXl
ASrn
asm
asm
asm
esm
asm
asm
//direcciUn del reg"de control de linea
//direcciom regs. de baud rete
dx,3FBh
//direc. del M S B del reg. de baud rate
//baud rate = K
O
0(9Ijoo baudios)
//direc. reg. c m h l de linea
//prog. 8 bits de datos,2 bits de pero y If
//un bit de paridad impar
//direc. reg. del modem
//no se usar niodem
//direce reg. identificmACn inkrrups.
/ / todas las internups. deshabilitadas
/* Rataurar el sistema a modo texto */
t i j f i c t i t i ~ w ,
textbackground(lBLACK); TJbera-.,Memarie(p);
clrscr(); exit@); }
* ~ ~ ~ r ~ )
u d d -h
(ifit ~ & p , i ~ h a *
{ char opcion;
int argumentas =-: O; clrscr();
if ( argc == 2) argumentos = 1;
I(; portada();
temdna(); Escritono();
if (argumentos
I) Arpmento(&argv[l]);
while(1)
{ Option(); oycion gcitche();
delay(400);
if' ( EX,' opcion) Salir();
opcion = taupper(opcion); switch@pcion)
i==
I=-
1.
caw
'í':Abrir-Mvo();break;
cam '2':hvia-Datcm(p);bak;
case '3':I.~-_~ato6s();breals; a s e '4':Crafia();break;
} )1
-47-
Programa dle Control
para la
Computadora.
void portcida(v oici)
unsigned contg,i=O,auxl=O;char aux[3Gllpinliri[l];;
void ruida(unsigrrtui i)
if (is-.())
/* riiiclo tie ~ r m r */
(
sc;ound(L3(X));cielay(250); eaund(l30Q);
I
sorind(3:Wl); tl.eIay(1X.l); )
ClW
if
tielay(l30);
(ji~:=.f)
wnrnd(l500); tielay(20); munti(1CiCK));
delay(l0);sorind(l40ia);
delay(l5);
}
-48Programa de Control
para 1.a
Computadora.
s a n d (1800);
delay(l5);
sound(1500);
dehy(30);
sou nd(1aK));
deky(25);
1
wold pmiritalhl(void)
(
wtbkcolor(0);
deardevice();
setdos(l5);
setfills~le(9,l);
floadfi11(5,5,getcolor());
rlc?ctangl@(10,lo,getmaxx()- 10,getmaxyo-10);
rtictarigle(o,O,~e~%%(),~~%y());
setfillstyle(9,9);
f l ~ d f i l l (5,
5 getcolm());
~
I
void termhi(void)
t
1
cleardievice();
closegraph();
491
Bibliograf ia.
Practicas de Sistemas Digitaler~
Profr. Victor Tellex.
Microconfñil.oierTechnology.
Peter Spasov.
Manual Motorola
Microcontrolador HC3 I.,
Lenguaje ensarnblad.or para microcornputadoras IBM.
J. Terry Godhey.
HClL
Reference manual.
Ell. micxrocontrola.dorHCI *I
Jorge Gamboa Cabrera,
Turbo c;fG+*
h4a.nua.lde referencia..
.
Aceptaciiin
Luis Vallez IMontañez,
11RW
Alberto Hemández Qlvera.
Descargar