现用0808做一pc机模拟接口对程序搞不懂望大家给编译一下。
c程序如下:
#include <stdio.h>
#include <conio.h>
#define llpt 0*278/*lpt2 address(lpt1 0*278)*/
void main()
{
static unsigned char data,j,k,l,
set[8]={1,2,4,8,16,32,64,128},
get[8]=254,252,248,240,224,192,128,0};
float voltage,i;
调试部分
outportb(lpt,00*00);
printf("\n adjust p1 to get analog output=0 volts");
printf("\n press a key when done");getch();
outportb(lpt,0*ff);
printf("\n adjust p2 to get analog output=5.10. volts");
printf("\n press a key when done");getch();
数字到模拟变换器
printf("\n enter a value b/w 0-255\t");
scanf("%d",&data);
voltage=data*0.02;
printf("\n out put=%0.2f volts",voltage);
getch();
模拟到数字变换器
data=0;
for(i=7;i>=0;i-)
{
data=data|set;
outportb(lpt,data);
for(l=0;l<75;l++);/*wait state */
k=ininportb(lpt+1);/* reading at lpt+1 address */
if ((k&8)==0)j=0;else j=1; /*pin 15 status */
if(j>0) data=data &get;
}
voltage =data *0.02;
printf("\n in put =%0.2f volts",voltage);
}
详情见2002电子制作合订本附加资料。图纸画好就贴上。