1、中国石油大学华东机自测控实习程序 A/D采集1.采集#include #include #include #include #include #include huatu.cvoid CJ_AD();main() int gdriver=DETECT,gmode,i; initgraph(&gdriver,&gmode,); setfillstyle(SOLID_FILL,2);CJ_AD();huatu();getch();void CJ_AD()int ch=0;int i,dl,dh,base,dtime=0,k=0;base=0x200;dl=inportb(base+3);outpo
2、rtb(base,ch);do j=0; for(i=0;i=0x80); dh=inportb(base+2); dl=inportb(base+3); datai=(dh*256+dl-2047); for(i=0;i590;i+) if(datai*datai+10) j+; /* printf(%d,j); getch(); */ dtime=200; dtime=dtime*pow(2,k); k+; while(j4);_2.画图#include#include#include#includedouble data600;int j=0;int huatu()char c20;in
3、t i;double k=1;bar(0,0,640,480);line(39,240,640,240); /*x zhou*/line(39,30,39,450); /*y zhou*/for(i=-5;i15)k=j/10;for(i=0;i600/k;i+)lineto(39+i*k,240-datai*200/2047);getch();closegraph();_ D/A输出1. D/A#include #include #include #include #include huatu.c#define pi 3.14159265357int SH_DA();main() doubl
4、e a=5,fre=1; int control,flag=0,zf=1; int i,dh,dl; int gdriver=DETECT,gmode; printf(nPlease input a:); scanf(%lf,&a); printf(nYour a is %lf,a); printf(nPlease input frequency:); scanf(%lf,&fre); printf(nYour frequency is %lf,fre); printf(nPlease choose the wave type,1 is sine,2 is triangle,3 is quar
5、ter:); scanf(%d,&control); printf(nYour choose is %d,control); getch(); initgraph(&gdriver,&gmode,); setfillstyle(SOLID_FILL,2); for(i=0;i=a)zf*=-1; if(control=3)datai=a;flag+;if(flag=300/fre)flag=0;a*=-1; data2i=(datai+5)*409.5; huatu();SH_DA();getch();int SH_DA() int dh,dl,i,base; base=0x200; for(
6、;) for(i=0;i=600;i+) dh=(int)data2i)/16; dl=(int)data2i%16)*16; outportb(base+4,dh); outportb(base+5,dl); inportb(base+0x0); 2. 画图#include#include#include#includedouble data601;double data2601;int huatu()char c20;int i;bar(0,0,640,480);line(39,240,640,240); /*x zhou*/line(39,30,39,450); /*y zhou*/fo
7、r(i=-5;i=5;i+) line(39,240-40*i,44,240-40*i); sprintf(c,%d,i); outtextxy(15,240-40*i,c); moveto(39,240-data0*40);for(i=0;i600;i+)lineto(39+i,240-datai*40);/*getch();closegraph();*/3. 测试#include main()double a=6;scanf(%lf,&a);printf(%lf,a);getch();_ 步进电机驱动1. 电机驱动#include #include #include #include #i
8、nclude int right();int left();main() int d5; int i,control,base,dtime=0,direct=1,stop=0xff; printf(nPlease input delay,the larger,the slower:); scanf(%d,&dtime); printf(nYour delay time is %d,dtime); printf(nPlease input direction,1 and 2 are opposite:); scanf(%d,&direct); printf(nYour direction is
9、%d,direct); printf(nHit Space to stop the motor,hit right arrow to spin one side,left arrow the opposite side.); base=0x200; d1=0x1;d2=0x2;d3=0x8;d4=0x10; control=0x80; outportb(base+0xf,control); for(;) if(direct=1) for(i=1;i=1;i-) printf(%d,di); outportb(base+0xc,di); delay(dtime); /* if(bioskey(1
10、)!=0) if(bioskey(0)=0x3920)outportb(base+0xc,stop); if(bioskey(0)=0x4d00)right(); if(bioskey(0)=0x4b00)left(); if(bioskey(0)=0x4800)dtime=dtime-10; if(bioskey(0)=0x5000)dtime=dtime+10; */_2. 键控#include #include #include #include #include #define stop 0x00int base=0x200;int d5;int right();int left();
11、int contro();int dtime=0;int direct=1;int key=0;main() int i,control; printf(nPlease input delay,the larger,the slower:); scanf(%d,&dtime); printf(nYour delay time is %d,dtime); printf(nPlease input direction,1 and 2 are opposite:); scanf(%d,&direct); printf(nYour direction is %d,direct); printf(nHi
12、t Space to stop the motor,hit right arrow to spin one side,left arrow the opposite side.); d1=0x1;d2=0x2;d3=0x8;d4=0x10; control=0x80; outportb(base+0xf,control); for(;) if(direct=1) right(); if(direct=2) left(); if(bioskey(1)!=0)key=bioskey(0); if(key!=0)contro(); int right() int i; for(i=1;i=1;i-) outportb(base+0xc,di); delay(dtime); if(bioskey(1)!=0)key=bioskey(0); if(key!=0)contro(); int contro() if(key=0x3920)outportb(base+0xc,stop);direct=0; if(key=0x4d00)direct=1; if(key=0x4b00)direct=2; if(key=0x4800)dtime=dtime-100; if(key=0x5000)dtime=dtime+100; key=0;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1