阅读:710回复:0
这段程序有什么问题--请教
#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 } } |
|