北京航空航天大学学生设计用纸 第 11 页
图 5中断程序软件结构图 3.3数据采集与模拟量输出 3.3.1 A/D程序 float adc(int n) { float ad; int p,q,i,r; outportb(0x31b,0x18); outportb(0x310,n); for(i=0;i<500;i++) outportb(0x311,0x0); for(i=0;i<500;i++) p=inportb(0x312); q=inportb(0x313); r=p*256+q; float r1=r; ad=r1/0x800-1; return ad; } 北京航空航天大学学生设计用纸 第 12 页
3.3.2 D/A程序 void dac(float da) //da function { long lo,hi,newhi,newlo,x; da=(da+1)/2*0xfff0; x=da; lo=x&0x00ff; //low8 hi=(x&0xff00)/256; //high8 newhi=(hi&0x000f)*16+(hi&0x00f0)/16; //change_high4&low4 outportb(0x316,newhi); //write_high8 newlo=(lo&0x00f0)/16; //change_high4&low4 outportb(0x317,newlo); //write_low8 inportb(0x317); //start_DA } 图 6双极性D/A 数码/电压对应关系 3.4 采样周期的实现 本实验采用硬件定时器实现Ts=20ms的采样周期。 int n,temp; n=2000000*t; temp=n%6; n=n/256; outportb(0x31b,0xb6); //写入控制字 outportb(0x31a,temp); //写入低八位 outportb(0x31a,n); //写入高八位 outportb(0x21,inportb(0x21)&0xf7); 北京航空航天大学学生设计用纸 第 13 页
3.5界面设计与实现 3.5.1软件初始界面 图 7软件初始界面 运行软件,显示如图 7所示界面,在按下任意键后,进入功能选择界面。 北京航空航天大学学生设计用纸 第 14 页
3.5.2功能选择界面 图 8功能选择界面 进入功能选择界面后,可供用户选择的共有五个选项。 ? 设置参数 ? 运行程序 ? 帮助提示 ? 软件信息 ? 退出程序 程序界面友好,提示清晰,可以根据控制的效果实时修改参数,提高程序调试的效率。 北京航空航天大学学生设计用纸 第 15 页
3.5.3参数设置界面 图 9参数设置界面 图 10参数设置界面