shellray
驱动牛犊
驱动牛犊
  • 注册日期2004-09-02
  • 最后登录2005-05-31
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:710回复:0

这段程序有什么问题--请教

楼主#
更多 发布于:2004-09-04 21:26
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>
#include<bios.h>
#ifdef __cplusplus
#define __CPPARGS ...
#else
#define __CPPARGS
#endif
void interrupt ( *oldirq)(__CPPARGS);
void interrupt newirq(__CPPARGS);
int flag=0;
int ad_result;
void main()
{int a;
a=inportb(0x21);
a=a&0x7f;
outportb(0x21,a);//开irq7中断
clrscr();//清屏
 oldirq = getvect(0X0F);//取得中断入口地址
 setvect(0X0F,newirq);
outportb(0x283,0x10);
outportb(0x280,0x64);//初始化A/D
}
void interrupt newirq(__CPPARGS)
{ int i;int b;FILE *fp;
 disable();//关中断
 outportb(0x298,ad_result);//启动A/D
    while(i<=10)
    i=i++;//延时
 ad_result=inportb(0x298);//读入A/D转换结果
 printf("%d",ad_result);
 while(bioskey(1)==0)//键盘有输入就跳出
 {
  if ((fp=fopen("c:\\leiming","wb"))==NULL)
   {printf("cant create file");
   exit(1);//创建文件 
   }
   fwrite(&ad_result,1,1,fp);//将A/D转换结果写入文件中
   outportb (0x290,b);//启动D/A
 oldirq();
 outportb(0x20,0x20);//将8259 的ISR相应位置1
 }
 }
游客

返回顶部