universidad aut~noma metropolitana unidad iztapalaf`a

Anuncio
UNIVERSIDAD AUT~NOMAMETROPOLITANA
UNIDAD IZTAPALAF'A
PRUY'ECTO TERMINAL I1
..
/fl
ASESOR DE PROYECTO: AQUST~NSUAREZ F E R N ~ D E Z .
ALUMNO: GUILLERMO CASTmEDA O R T E
CARRERA; INQ. ELECTR6PJICA E N COMPUTACI6N.
MATRICULA: 88322638
ENERO DE 199s
OBJETIVO GENERAL:
DISEÑAR UNA TARJETA CAPAZ DEMANEJAR
SEÑALES
ANAL~GICAS
(ADQUISICI~N,
ALMACENAMIENTO Y DESPLIEGUE). ADEMAS
PODRA GENERAR UNA SEÑ&
PROGRAMABLE,
CUADRADA
OBJETIVOS ESPECfFICOS:
l.-)
ADQUISICIóNDELA
SEfbG ANAL6QICk
L AF R E C U E N C I AM Á X I M AD EL AS E R A LA D Q U I R I D A
( P A B AQ U ES UR E C O N S T R U C C I b NS E AA D E C U A D A ) .E S T O
QUE E L ADCOS09 TIENE UN TIEMPO DECONVERSIÓN DE 100 ys.
ES D E 800 H E R T Z
SE D E B E A
L SAE f i AAL N A L Ó Q I C D
AEEN T R A D D
A E BTEE N E R
UN N I V EDL E
V O L T A J E E N T R E 0-5 V O L T S . C A B E A C L A R A R Q U E E X I S T E N
258 N I V E L E S
D E V O L T A J E (8 B I T S DE R E S O L U C I 6 N ) , L O Q U E I N D I C A Q U E C A D A N I V E L
ES DE 20 mV. AS!LO EXIGE ELADC0809.
P O R S I M P L I C I D A D SOLO U S A R E M OUS N D
OLEO S
8 C A N A L EDS E
ENTRADA
D EA
L D C 0 8 0 9S,I N
EMBABGO,
E S M U SYI M P L D
E AA
BL
P R O Y E C T OL AC A P A C I D A DD EE L E G I R
UNA D EO C H OS E R A L E SD E
ENTRADA.
2.-)
DESPLIEQUEDELA
SmAL ANALÓGICA.
LA FRECUENCIA "ÁXIMA DE LA SERAL DESPLEGADA
(PARAQUECONSTBUCCIONSEAADECUADA).ESTO
DAC0800 TIENE UN TIE7NIpO DE CONVERSIóN DE160 ns.
ES D E BOO0 H E R T Z
SE D E B E A Q U E EL
L AS E R A LA N A L O G I C AD ES A L I D AT E N D R AU NN I V E LD EV O L T A J E
E CLARAQ
R UE X I S T E N
266 N I V E L E D
SE
E N T R E 0-6 V O L T SC. A B A
V O L T A J E (8 B I T S D E R E S O L U C I O N ) , LO Q U E I N D I C A Q U E C A D A N I V E L ES
D E 20 m V . AS1 LO E X I G E EL D A C 0 8 0 0 .T A M B I k NH A YQ U EM E N C I O N A R
Q U EE X I S T E
UN A M P L I F I C A D O R A L AS A L I D AD E LD A C ,Q U EP U E D E
MODIFICAR EL RANGO DEL VOLTAJE DESALIDA.
3.-)
ONDA CUADRADA PROGRAMABLE.
S E P U E D E P R O G R A M A R EL T I E M P O Q U E LA SERAL ESTA A R R I B A Y EL
TIEMPO QUE LA SERAL ESTA ABAJO.
EN A M B O S C A S O S EL I N T E R V A L O
E S D E 1 ms. S I N E M B A B Q O , FACILMENTE P U E D E
M r N I M OD ET I E M P O
fLLCA.NZARSE Ips.
DISER0 DE LA TARJETA
PUERTOS DE ENTRADA SALIDA
Nuestro primer objetivo es hallar trcs grupos de puertos de &S libres,
La
familia
de
los
microprocesa.dores
&U$6i8028618038~/80486I~~~$~
utiliza y se comunica con muchas partes del ordenador a traves de la utilizaci6n
de l o s puertos de entrada y salida (EjS). L o s puertos de EIS son las entrada a
traves de las cuales pasa la información, tanto como si viaja desde
o hacia un
dispositivode EIS, comoun tecla.do o unaimpresora. P, lamayoriade
los
perifhicosdeapoyose
a.ccede a travesdelospuertos;deecho,cadapuerto
puede utilizar varias drecciones de puertos
para prop6sitos diferentes.
Cada puerto se identifica
por un número de puerto de
16 bits,elcual
puedevariarenun
ramgode OOH a FFFFH ( 6 5 535). L a CPLJ identifica u n
puerto particular por su número.
Como lo hace cuando accede a la memoria, la CPU utiliza los buses de
datos y direccionescam0conductos
para comunicarsecon i o s puertos. Para
acceder a los puertos, la CPLJ manda primero una sena1 en el bus del sistema
para avisar a todos l o s dispositivos de EIS de que la direcci6n que va. en e1 bus
es l a de un puerto. La CPU envía entonces l a direccibn del puerto. El dispositivo
cuya direcci6n de puertocoincida. responderá.
El númerodepuertodireccionaunaubicacidnenmemoriaqueest6
asociadaconundlspositivode
EIS peroque no forma parte de la memoria
de E/S no es lo mismo que
principal. En otra.s palabras, un número de puerto
u n a direcciSnde memoria. Por ejemplo, el puerto de EiS 3DSH no tiene nada
l a dirscclón de memoria i103D8H. Para acceder a u n puertrj se
quevercon
utilizan las instrucciones IN y OUT, que esthn reservadas para el acceso a 13s
puertos de EIS.
Las utilizaciones de l o s puertos de EIS específicos se determinan por l o s
disefiadores del hardware. L o s programas que hagan uso de l o s puertos de EIS
debentenercuidadodelosnúmerosde
los puertos, asf comode
su uso y
significado. Las asignaciones de los números de los puertos difieren ligeramente
e n t r e los miembros de la familia de las PC’s compatibles, pero, en general, IBh4
ha reservado l o s mismos rangos de l o s números de los puertos para los mismos
dispositivos en todos l o s PC's y PS12. Una definición clara del uso de todos los
puertos de entradalsalidasepuede
hallar en SYSTEM BIOS FOR IBM
PClXTlAT COMPUTERS AND COMPATIBLES (PHOENIX TECHNOLOGIES
LTD.;PHOENIXTECHNICAL REFERENCE SERIES)
Buscando en esta y o t r o s m a n u a l e s y programas de software
que e s t h libres l o s rangos siguientes.
0250-0287 hex
0290-0297hex
0300-0307hex
0390-0397hex
280-287(DAC)
290-297 (TIMER)
A7
A8
1
14LS 138
A5
AS
f\
74LS42
A10
A l1
hayamos
Este diagrama se observa mejor en la impresicinde ORCAD.Aquf 9610
queremos ilustrar a l l e c t o r s o b r e n u e s t r a Maca para obtener l o s puertos
deseados.
TIMER 8264
1 7 1
, T I
Para obtener una onda c u a d r a d a programable se usaran los modos 1 y
en dos de l o s relojes del TIMER 8254.
CLK
MGDO
MODO
,
h d a cuadrada
programable
2
SOFTWARE DE LA TARJETA
El programa nos permite 1a.s siguientes funciones:
1.- Adquirir del ADC y transmitir directamente a l DkC.
2.- Adquirir y almacenar en RAMia s e n d (IKb).
3.Transmitir haciael DAC la send almacenada enla RAM (1Kb).
4.-Guardar en disco l a s e ~ a almacenada
l
enRAM (1 KB).
.Almacena la sena1 en u n archivo cuyo nombre y PATH lo proporciona el
usuario.
.El archivo se almacena con un formato especial. Al inicio del archivo se
guarda una leyenda, esto con la finalidad de verificar el formato cuando
intentemos abrirlo.
.Si elnombredelarchivoque
se proporcione yaexiste,entonces,
el
programa me preguntar&si sobreescribe el archivo.
5.- Abrir un archivo almacenado
eRacupera una sena1 en un archivo cuyo nombre y PA4THlo proporciona
el usuario.
.Si e! archivo no existe se le indicars. al usuario. También se le Indicad.
cuando el archivo exista, pero n o tenga el formato correcto (leyenda). Es
decir, se i n t e n t a a b r i r u n a.rchivo que no tiene almacenados da.tos de Gna
send anal6gica anteriormente guardadoscon este programa.
6 , -Permite observar los valores almacenados enRAM.
0 N
os muestra los Gltlmos valores almacenados en la I%ANI (arregla)
L o s m u e s t r ac a d a 20 datos y haceunapausa.
Si presionamos dos
enter rkpidos termina la funci6n.
n
I .- Generar unaonda. triangular.
Genera una onda triangular enla salida del DAC.
Nos pide el limite inferior y el superior de la onda triangular.
5.-Generar una onda cuadrada.
0
Genera una onda cuadrada enla salida del DAC.
N o s pide el limite inferior y el superior de la onda cuadrada.
9.Envía un nivel de voltajed DAG.
10.- Muestra an el monitor de la PC la send almacenada enRAM.
11.-Adquirir del ADC y transmitir directamente al monitor de la PC.
Permite modificar l a resolucidn del eje X.
12.-Modifica la propamaci6n del TIMER.
Nos permitereprogramar al TIMER y nos pidedenuevacuentael
la sena1esteabajoeltiempo
en q u e este
tiempoquedeseamosque
arriba. El tiempo esta en milisegundos.
I
FROYECTO TERMINAL I1
TARJETA EE ADQUISICION ANALbGICA
ASESOR: PROF. ACXUSTfN SUAREZ FERNÁNDEZ
GUILLERMO CASTmEUA ORTIZ
ENERO DE 1998
#include <stdio.h>
#Include Kstdlihh.
knclude <conio.h>
#include <dos.h>
#include <dir.h>
#Include estringhp
#Include smath.hr
#mclude <graphics.h*
#define MAXMEM
1000 /*Tamano de la muestra de la send*/
Mefine MAXLEYENDA 50 FTarnano delidentiticador de archivo*/
0x280 FDireccibn del DAC (826E) */
#define DIRDAC
#define DIR8264 0x290 PDireccibndel 8264(TIMER) */
#define DIRADC
0x300 /*Direccibn del ADC
*/
#define GENALITA WHITE PColor de la send */
#define FONDITO BLACK PColor del fondo */
#define EGCALITAYELLOW FColor de las divisiones */
#define RETARDO1 6 F transferencia */
#define RETARD92 200 /* adquirir */
#define RETARDO3 18 F tlesplegm */
#define RETARP04 32e% F transferencia y despliegue */
char leyenda(MAXLEYENDA]= "TARJETA PE ADQLTISICION ANALOGICA 1.U";
/*Leyenda de identificacihn */
/* "TAJ3JETA DE AD$UIEICION ANALOGICA 1.Ou */
unsigned char senn[MAXMEM];
int FE=600,RE=300; PFrecuencia y retardo de un error */
int paso=3; F GAMBIA LA ESCALA DEL EJE X: TIEMPO */
void portada (void) rC PCIRTADA
DEL FROQRBMA*/
f
í
clearviewporto;
setfillstyle (SOLID-FILL,LIGHTCYAPJ);
floodfill (lO,lO,WHITEj;
setcolor (LIGHTBLUE);
rectangle (6,6,getm~0-S,getmaxyC)-6);
rectangle (7,7,getmaxx0-7,getmaxy0-7);
rectangle (13,13,getmaxx~-13,getmay~-l3~;
rectangle j16,15,getmaxx~-16,getmaxy~-l5);
settextjustify (CENTER-TEXT,TOP-TEXT);
settextstyle (€M~~L-FONT,HORIZ_DII,~;
outtextxy fgetmaxx0/2,60,"UNIVER€IDAD
AUTONOMA METROPOLITANA");
outtextxy (getn1axx0/2,100,~UNIDAD
IZTAPALAPA");
settextstyle (SMALL_FoNT,HoRIZ_DIR,8);
outtextxy (getmaxxO/2,130,"PROYECTO
TERMINAL 11");
settextstyle (SMALL-FoNT,HORE-DIR,G);
uuttextxy (getmaxx0/2,175, "Aseskm : SUAREZ FER.NANDEZ AQUGTUJ "1);
setcolor (MAGENTA);
settextstyle (DEFAULT-FONT,HORE-DIR,2);
outtextxy (getmaxxO/2,256,'TTARJETA
DE ADQUISICIr3N":I;
setcolor (LIGHTELUE);
settextjustlfy (RI13HT_TEXT,TOP_TEXT);
settextstyle (DEFAULT-FONT,HORIZ-DIR,
1);
outtextxy ( g e t m a x x ~ / ~ , ~ 3 4 0 , " ~ u r n n o : " ) ;
settextjustify (CENTER.-TEXT,TOP-TEXT);
settextstyle (DEFATJLT-FONT,HORIZ-DIR,1);
outtextxy (getmaxx012+60,36&,"CASTmEDA ORTIZ GTJILLERMO "1);
outtextxy (getrnaxx0/2+60,385,' 88322638 "1);
setcolor (BLUE);
settextjustify (R.IGHT-TEXT,TOP-TEXT);
outtextxy (getm~xO-30,getmaxyO-40,"Presione
una tecla ..."I;
settextjustlfy (LEFT-TEXT,TOP-TEXT);
settextstyle (DEPAULT-FONT,HORI%-DIR,l);
getcheo;
1
void suena(int frecuencia,int duracion)
.:
1
sound(frecuencia);
delay(duracion);
nosoundo;
void inicdza(void)
f
i
P INICIALEA MODO GRAFICO *I
/* EL 8265 (DAC) Y EL TIMER (8264) *I
i n t controlador,modo;
modo=0;
controlador=DETECT;
initgraph(&cantro:ador,&tnodo,
clutportb(DIRDAC+3,OX8E);
1
"'),
/x 8265 (DAC) *J
outportb(DIR8254+3,Ox3C);
outportb/DIR8264+0,00');
outportb(DIR8264+0,10');
Ih CLK O */
outportb(DIR8254+3,0~73);
/* CLK 1 "!
outportb(DIR826eel,00);
outportb(DIR8254+1,03);
void escala(void)
I* MUESTRA LAESCALA DE LA FTJNCION PANTALLA */
I
i
int r ;
setccslor(ESCAL1TA);
rectat~~:e/0,0,639,479'1;
~lr~r=39;r~630;r=r+40)
hne(r,2,r,477);
for(~=29;r-;470;r=r+30)
hne(Z,r,837,r);
void pide-paso(void) P CAMBIA LA ESCALA SOBRE E L EJE X *I
{
i n t pas;
char dat[20];
itoa(paso,dat,lO);
outtextxy(10,30,' El paso actual es de ");
outtextxy(230,30,dat);
outtextxy(10,60, " Se recomienda un paso en el rango del 1 a l 10");
outtextxy(10,80, " Paso de 1 para frecuencias baja ">;
csuttextxy(10,100," Paso de 10 para frecuencias altas ')>;
outtfrxtxy(10,130," A que paso desea graficar : "1;
gotoxy(36,9);
scanf("9/odN,&pa6);
If ((pawl) I I (pas*10))
suena(FE,EE);
return;
1
paso=pas;
1
void pa.ntallaCvoid) /* ENVIA A FANTALLA LA SERAL CAPTURADA */
I
i n t x,k,velocidad=5;
uhar dat[20];
pide-paso();
setf&tyle(SOLID-FILL,FONDITO);
b~(2,2,640-3,480-3);
I*
itoa(paso,dat, 10);
o u t t e ~ t x y ( 1 0 , 3 0 ,E~l paso actual es de
outtextxy(230,30,dat);
escalao; */
while(!kbhitO)
{.
"1;
for(k=O;k4OO; k+=velocidad)
for(x=O; (paso*x-paso*k)<=639;x++)
I
putpixel(paso*x,370-~enn[x],SENALITA);
if(paso*(x+1)439)
1
for(x=O; (paso*x-paso*k) ==G39;x++)
putpjxel(paso*x,370-sennlxl,PONDITO);
break;
r*
T R A N S F I E R E DIRECTAMENTE LA SERAL *t
tk DEL GENERADOR AL M@NIT@R DE LA FC *I'
unsigned char tapI[MAXMEM];
unsigned char tap2[MAXMEM];
i n t x,j,r,ret='iO;
char dat[20];
void tranfpant(void)
4;
pide-pasoo;
setfiilstyle(SOLID-FILL,F@NDITO);
ba(2,2,6400-3,480-3);
itoa(paso,dat,lO);
outtextxy{l0,30," El pax0 actual es de ");
outtextxy(230,30,dat);
P' escalao;*/
for(j=O;j4XO/paso;j++)
{.
rsutportb{DIRA.DC,OxF~;
for(r=lOU;r.-O;r--);
tap2[j]=inportb(DIRADC);
while(!kbhitO)
{.
for(j=O;j44O/paso;j++)
tapl[j]=tap2[j];
fr~r(x=l;paso*x~638;x++)
setcolor(SENAL1TA);
putpixel(pasoxx,358-tapl[x],€ENALITA).);
if(pafo*(x+1)~637)
j.
for(j=O;j4#tpaso;j++)
outportb(DIRADC,OxFF');
for(rl=ret;r.-0;r--);
setcolor(FONDIT0);
tap2[j]=inportb@IRADC);
}
forCx.=l;pasoxx<638;>r++)
putpixel(paso*x,368-tapl[x],FONDITO);
P.
eccalao;*/
break;
1
1
void transferenciajvoid)
I
1
unsigned c h a r dato,
unsigned int r,w;
outtextxy(40,20,"suena(1000,30cl);
/* TRANI;FIERE DIRECTAMENTE LA S E f h L *I
I* DEL GENERADOR AL OSCILOSCOFIC */
TRANSFIRIENDC? LA SERAL **-*'I;
for{w=O;w.;RETARD04;wt+!
{
outportb(DIRADC,OxFF);
for(r=~ETARDOl:r,~O;r--);
dato=inFortb(DIRADC);
outportb(DIRDAC,dato);
)
}
F CAPTURA 1Kb DE LA SERAL *I
P' EN EL ARREGLO Serin[] *t
void adquirir(void)
i
i n t r,j;
outtextx:y(10,20,
*suena(600,100>;
fm(j=O;j4&iXMEM;j++)
CAPTURANDO LA SERAL **x**'' >;
c
outporth(DIRA~C,OxFF);
~or(r=RETAFtD02;r~O;r--):
senn[j]=inportb@IRAPC);
1
YA TERMINE DE CAPTURAR ***
uuttextxy(lO,EO,n
suena(600,100>;
'I);
I
i
void desplegar.(void) Tx ENVIA LA SERAL CAPTURADA AL OSCILOSCOF'IO */
{
unsigned int r,w;
int j ;
outtextxy(lO,2U,"
*** DESPLEGANDO -')
suena(800,200j;
fm-(j=O,w=O:w~RETAPO4;j++,w++)
outportb(DITZDkC,selIn[jlr;
forCr=fZETAI;:D03;rrO;r--);
if (j==h'IAXMEM) j=O;
1
r
void guadar(void) /* GUkFZDA L A SERAL CAF'TTJRADA EN UN AECHIVO "I
{char arch[EO;;
FILE *fp;
char ÜPC,
int j;
outtestsy(20,~,"GuaTda [nombre.ext]
en disco
outtestxy('20,70,"I)e un nombre para guardar el archivo : "'1;
gotoxy(44,Q;
scanf(%s',arch);
settextstyle (DEFAULT_FONT,HO~IZ_DIR,2);
setcolorBED);
d((fp=f(qxn(areh,"rrb'))==NULL)
if((fp=fopen(arch,'wb"))==NULL)
í.
outtextxy(30,90,' No se puede abrir el archivo");
suena@,RE);
'I);
1
else
.i
outtextsy@O,l40,"
Grabando
wclliw");
fwrite(leyenda,MAXLEYENDA,
1,fp);
for(j=O;jeMAXMEM;j++)
fwrite(&senn[j], sizeof(unsigl1ed char), 1, fp);
fClOSe(fp);
outtextxy(30, 180,n
Archivo
graI>ado');
1
else
{
~uttextxy(30,90,'~Sobreesoribir
e1 archivo? ( S / N ) "1;
suena(FE,RE);
fclose(fp);
opc=getcheO;
If((opc=='sq I I {clpc=='sq>
c
If((fp=fupen(arck,'wb')))==NULL)
{
outtextxy(30,140," No se puedeabrir el archivo')):
suena(FI3,RE);
1
else
r
outtextxy(30,
Grabando
archivo");
fwrite(leyanda,MAXLEYENDA,
1fp);
for(j=l);j-;MAXMEM;]++)
fwrite(&senn~J,sizeof(unsigned char), 1, fp);
fclone{fp);
ou ttextxyj30,180,"
Archivo gmhado");
1
j
setcolor&IQWTC+REEN);
gettextstyle (DEFATJLT-FONT,HORIZ-DIIZ, I);
void abrir.(voici)
/* RECUPERA LA SERAL GUARDADA EN UN ARiJHTVi3 *I
char arch[fD];
char checaleyenda.[Mk~LEYENDAI;
FILE "fp;
i n k j;
outtextxy(20,40," C a r g a r un archivo completo de disco ');
outtextxy(20,70," De el nombre del archivo a abrir : "1);
gotoxy(43,S);
scanf('%s*,arch);
settextstyle (DEFAULT-FoNT,H@RIZz_DIR,2);
setcolor(RED);
If((fp=fopen{arch,'rb"))==NULL)
{
outte~txy(lQ#,200,~
No se puede abrir el archivo');
suena(FE,RE);
t
else
I* chew si el ar.chivo a abrir es un archivo
"ESTIMULADOR
NEURONAL
1.0'
*/
fread(aheca.leyenda,MAXLEYENDA,1,fp);
If(strcmp(leyenda,cilecaleyencla))
{
(~uttextxy(e0,200,*Error
no es un archivo de formato
outtextxy('l0,240,leysnda);
suena(FE,RE);
else
i
outtextxy(30,12#,"
Cargando
archivo
fseek(fp,MAXLEYENDA,O);
for~=O;j==MAXMEM;j++)
");
fread(&senn/j],sizeof(unsigned char), 1, fp);
outtextxy(30, 160,n
fclose(fp);
Archivo
cargado');
1
setcollor(LIGHTC3REEN);
settextstyle (DEFAULT_F@NT,H@RI%_DIR,l);
}
'1;
F MUESTRA TOPOS LO6 VALORES PEL */
void ver (void)
c.
P ARREGLO DE LA SERAL CAPTURADA *!
int j=O,y=2;
char dat1[20];
char dat21103;
while(!kbhitO]
i
itoa(j,datl,l0);
itoa{senn[j],dat2,10);
strcat(dat1," "1;
st;rcat(datl,dat2);
strcat(dat1," ");
outtextxy(lO,y*20,datlf;
j++;
y++;
if(!(j9-620))
:
getcheQ;
clearviewporto;
y=2;
\
if'(j==MAXMEM) j=O;
i
for(s=max;s*min;s--)
i
1
)
outportb(I?IRDAC,s):
void cuadrado(voidj
I* QENERA UNA SERAL CUADRADA *I
f
unsigned char max,minl
outtextxy/10,10,"Ondacuadrada '1;
outtextxy(10,60,"Demeel limite inferior (0-26E):');
gotoxy(36,4);
scanf(*3'od*,&min);
outtextxy(lO,83,'Deme el limite superior (0-265) :");
gotoxy(36,6);
scanf('%d',&max);
outtextxy(100,4000," Presione una tecla para terminar ...");
while(!bhitO)
void manda(void) /* ENVIA UN NIVEL AL DAC! *I
{
unsigned char k;
k=0 ;
for (; k!=222,)
aleartiewpurtO;
outtextxy(20,30,"***** MANDA NIVEL
I;
outtextxy(l5,~0,"T)eme
número a desplegar (222 exit):"),
gotoxy(4o,€i);
scanf("%d",&k);
outportb(Ox280,k);
*****O:
J
Tx CAMBIA LA
PROGRAMACIONDE TIMER *I
Tx SOLAMENTE EL CONTA13OIZ */
unsigned int t1,tu.: P tinlelclwer, time-upper *I
unsigned int tlmsh,.tumsb,tllsb,tulsh;
outtcjxtxy(r10,30,'FFRO~~AMA~I(3N
DEL TIMER "1);
outtextxy(40,70, "Cuantos milisegundos arriba (1-9939) :");
go toxy(47,E);
scanf('%d"~&tu);
rJuttextxy{40,100,"Cuantosnlllisegundos abajo (1-9999) :'I;
gotoxy!47,7);
scanf("%d",&tl);
if((tuC1) I I (tlq1)I I (tup.9999) I I (tlr9999)j I* Asegura rango delos datos */
void Progtimer(void)
6
I
>
suena(FE,RE);
outtextxy(100,200,"Erroren los datos de entrada");
return:
tu=tu+tl;
tulsL=tuS.6100;
tumsb=tu/100;
t&b= t1% 100;
tlmsb=tl/100;
outportb(DIR8254+3,Ox36); I* CLK O *I
outportb/DIR8!264+0, tulsb);
outportb(DIR8264+0, turnsh);
outportb(DIR8264+3,0~'73);P CLK 1 *I
outportb@IR$SE;~+l,tllsb);
outportb(PIR62~4+1,tLmsb);
j
void m e n u (void>
f
1.
clearviewporto:
setf*fityle (SOLID-FILL,BLLTE):
floodfill (10,10,WHITE);
setcolor(LIr3HTRED);
setlinestyle(SOL1D-LINE,O,THICK-WIDTH);
rectangle(1,1,638,478);
setaolor~LI~HTCITZEEN);
setlinestyle(SOLID_LINE,O,NOEiMIDTH);
TARJETA DE ADQUISICION");
uuttextxy(60,40, "
Termina
*?;
outtextxy(90,100,"
Entrada-sahda a osciioscopio ">;
outtextxy(90,120,"
Adquirir
"1;
outtextxy(90,140,n
Desplegar a osciloscopio
')>;
13uttextxy(90,160,"
Guardar e n disco
;
outtextxy(90,180,'
Abrir archivo
"? ;
outtextxy(90,200,"
Ver los valores del areglo
">;
out textxy(90,220, "
Onda
"1;
outtext~y(90,240,~ triangular
cuadrada
Onda
"1;
outtextxy(90,260,"
Mandar un número
;
outtextxy(90,280,"
Desplegar a pantalla
");
outtextxy(90,300,"
Entrada-s&da a pantalla
'1:
tXlttextxy(913,320,"
Frogramaz TIMER
;
+>uttextxy{90,340,"
"CUAL ES SU OPCION? : "1;
outtextxy(l20,400,"
">
void main (void)
I* MENU PRINCIFAL */
char upc='z';
inicialnao :
portadao;
for (;;:I
{
do
c
menu0;
opc = getcheo;
)wh~e(!strchr("Ol23466~89aAbBcC",opc));
clearviewport 0 :
if(0pc=='i33
i
closegrapho;
break;
1
switch(opc)
i
case '1' : transferenciao;
break;
casa '2': adquiriro;
break;
case '3' : denplegaro;
break;
case '4' : guardara;
break;
casa '5' : abriro;
break;
case '6' : ver0;
break;
case '7' : triangulo~;
break;
case '8' : cuatlrado0;
break;
case '9' : mandao;
break;
case 'a' :
case 'A': pantallaf):
break;
case 'b':
case 'B': tranfpanto;
break;
4:asa ' c ' :
case 'C' : ProgtimerO;
break;
}
outte~txy(100,400,~
Presiane una tecla para continu=-.. .");
getch0:
1
O-rN
aaa
1
Y
rc
d
A
SYSTEM BIOS FOR IBM PClXTlAT COMPUTERS AND COMPA4TIBLES
PHOENIX TECHNOLOGIESLTD.
PHOENIX TECHNICAL REFERENCE SERIES
LOS MICROPROCESADORES INTEL 8086/8088,80186,80286,8(3386
Y
80486
ARQUITECTURA, PROGRAMACIbN E INTERFACES
BARRY B. BREY
ED.FRENTICX HALL HISPANOBMERICANA
THE NEW PETER NORTON PROGRAMER'S GUIDE TO THE IBM PC &
PSI2
PETER NORTON
ED. MICROSOFT PRESS
LENGUAJE ENSAMHLADOR PAPA MIGROCOMPUTADORAS IRM
CODFREY
ED.PRENTICE HALL
MOTOROLA FAST AND LS TTL DATA
MOTOROLA
MOTOROLA LINEAR AND INTERFACE ics
MOTOROLA
Descargar