编程器 读写 错误

luoyaxu   2008-7-29 23:06 楼主
自制编程器:
      用并口的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;
}

回复评论 (5)

平台是什么不知道,操作对象是什么不知道,结果正常/不正常的描述不清楚。

看了很是云里雾里,太深奥了。看来我的大预言术还没练好,没法猜到lz要表达的意思。
点赞  2008-7-30 09:55
自己顶
点赞  2008-7-30 22:50
平台是dos系统下的tc编辑器,操作对象为自制的烧录器,结果(问题所在)是写入偶数(2,4,6,8.......)读出正常(2,4,6,8。。。) 。但如写入奇数(1,3,5等)则读出错误为(85,131,等)。程序中有些printf句是调试用的。
点赞  2008-7-30 23:42
对二楼的关注表示衷心的感谢
点赞  2008-7-30 23:45
注释能不能改成中文或者英文的,看着很累
点赞  2008-7-31 02:09
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复