📄 showdata.c
字号:
#include <dos.h>
#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#define num_sample 256
void interrupt ( *oldsample)(void);
void interrupt datasample(void);
void showdata(void);
void dashow(void);
void file_creat_datashow(void);
int count=0, dbyte,da;
int data_sample[num_sample];
float data[num_sample];
FILE *pt1;
void main()
{
disable();
oldsample=getvect(0x08);/*保护现场*/
outportb(0x43,0x36); /*选择通道0*/
outportb(0x40,0x9d); /*置计数初值,先低后高*/
outportb(0x40,0x2e);
setvect(0x08,datasample);
enable();
while(count<num_sample);
puts("\n The data_sampling is over!\n");
disable();
setvect(0x08,oldsample);
outportb(0x43,0x36);
outportb(0x40,0x00);
outportb(0x40,0x00);
enable();
getch();
putchar('\n');
file_creat_datashow();
}
void interrupt datasample()
{ outportb(0x280,0x00);
do
;
while(!(inportb(0x285)&0x80));
dbyte=inportb(0x281)|((inportb(0x282)&0x0f)<<8);
showdata();
dashow();
count++;
outportb(0x283,(da&0x00ff));
outportb(0x284,((da>>8)&0x0f));
outportb(0x20,0x20);
}
void showdata()
{ data_sample[count]=dbyte-2047;
data[count]=data_sample[count]*10/4096;
printf("%d,The Voltage is %f \n",data_sample[count],data[count]);
}
void dashow()
{ if(dbyte==4095)
da=dbyte;
else if(dbyte<4095)
da=dbyte+1;
}
void file_creat_datashow()
{
int i;
printf("\n");
pt1=fopen("d:\datashow.dat","wb");
for(i=0;i<num_sample;i++)
fprintf(pt1,"%d ",data_sample[i]);
fclose(pt1);
pt1=fopen("datashow.dat","rb");
while(feof(pt1)==0)
{
fscanf(pt1,"%d ",&i);
printf("%d,",i);}
fclose(pt1);
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -