自制编程器:
用并口的17脚触发计数器产生地址 ,16脚地址清零,14脚存储器oe控制,1脚存储器we控制。程序运行时
输入偶数结果正常,输入奇数结果出错。用fflush 及取消输入子函数 调试无效 。请智者示教 。非常感谢!
程序如下:
#include"process.h"
#include"dos.h"
#include"stdio.h"
int data;
give_address()
{
outportb(0x37a,0x00); /* cp=1 */
delay(100);
outportb(0x37a,0x08); /* cp=0 */
delay(1000);
outportb(0x37a,0x00); /* cp=1 */
return;
}
main()
{
int fig; char c;
outportb(0x37a,0x0c);
outportb(0x37a,0x08); /* dizhi fuwei */
printf("\n");
printf("start ! !\n");
for(fig=4091;fig<=4095;fig++)
{
give_address();
printf("\n\n");
outportb(0x37a,0x20); /* du chushihua */
delay(100);
outportb(0x37a,0x22); /* oe=0 */
printf("%d",fig); /* yao caozuo de danwei biaoshi */
printf("yuan=%d\n",inportb(0x378));
outportb(0x37a,0x20); /* oe=1 */
printf(" go on ? y--->continue");
c=getch();
if(c=='y')
{
give();
printf("data=%d",data);
printf("\n");
outportb(0x37a,0x00); /* xie chushihua(zhixiemoshi kongzhiqingling) */
outportb(0x378,data); /* shuju shangxian */
delay(100);
outportb(0x37a,0x01); /* we=0 */
delay(100);
outportb(0x37a,0x00); /* we=1 */
printf(" ok ! !\n");
}
else
printf(" no ! !\n");
}
printf(" OVER \n") ;
}
give()
{
printf(" inputdata=");
scanf("%d",&data);
printf("data=%d",data);
return;
}
平台是什么不知道,操作对象是什么不知道,结果正常/不正常的描述不清楚。
看了很是云里雾里,太深奥了。看来我的大预言术还没练好,没法猜到lz要表达的意思。
平台是dos系统下的tc编辑器,操作对象为自制的烧录器,结果(问题所在)是写入偶数(2,4,6,8.......)读出正常(2,4,6,8。。。) 。但如写入奇数(1,3,5等)则读出错误为(85,131,等)。程序中有些printf句是调试用的。