AD卡的读写? 点击:449 | 回复:0



gongkongedit

    
  • 精华:1099帖
  • 求助:0帖
  • 帖子:14392帖 | 54470回
  • 年度积分:0
  • 历史总积分:622
  • 注册:2008年9月08日
发表于:2004-08-14 12:16:00
楼主
AD卡的读写: 1)选通道控制字:通道0:10H,通道1:11H,通道2:12H,通道3:13H,通道地址:22CH 2)启动AD转换:(1)控制字1:30 H;地址:22BH(2)控制字1:10H;地址:228H(3)控制字1:00;地址:228H 3)延时50微秒 4)从AD卡读数据:(1)读12位低8位数据:地址:220H(2)读12位高4位数据:地址:221H(取该字节的低4位数据) 程序如下: #include<conio.h> #include<stdlib.h> int adin(int ch) { int i,a,b ,data; outportb(0x22C,ch); outportb(0x22B,0x30); outportb(0x228,0x10); outportb(0x228,0x00); for(i=0;i<650;i++); //延时50微秒 a=inportb(0x220); b=inportb(0x221); data=(b&0x0f)*256+a; return(data); } main() { int ch; float da[4]; while(!kbhit()) { for(ch=0x10;ch<0x14;ch++) { da[ch]=adin(ch); printf("da[ch=%d]=%f\n",ch-16,da[ch]); } } } 这程序读得的结果根本就不对,请问问题出在那里,怎么解决,谢谢


热门招聘
相关主题

官方公众号

智造工程师