导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→求助:单片机的c语言编程[fef110]

 *第30302篇: 求助:单片机的c语言编程

  
楼 主:fef110 2005年3月15日16:37
 求助:单片机的c语言编程
本人在做毕业设计,以南京赛博的单片机开发板为基础,做温度控制。在读其以
c语言写的源程序时,(导师要求用汇编),我所使用的伟福仿真器在编译过程
中出错。“fatal error 210:I/O error on input file :  <我的项目名.m51>  

赛博给了一个源程序sy1032.c和sy1032.hex。在伟福s51里,我把仿真器语言设
计为Keil C,仿真器s51,cpu为89c51RX。

出错提示如下:
MCS-51 LINKER / LOCATER  L51 V2.8                                                             DATE  03/15/05   PAGE    1


MS-DOS MCS-51 LINKER / LOCATER  L51 V2.8, INVOKED BY:
L51 D:\CPU\SY1032.OBJ TO D:\CPU\LIUWEI RS (256)

*** FATAL ERROR 210: I/O ERROR ON INPUT file:
    EXCEPTION 0021H: PATH OR FILE NOT FOUND
    file: D:\CPU\SY1032.OBJ

这是怎么回事?

部分源程序:

#include   <at89x51.h>  
#include   <absacc.h>  
#define VAR XBYTE[0x00]     /*VAR为外部位址0000*/
#define read   0     /*93c46读取的识别码READ=0*/
#define write  2     /*93c46写入的识别码WRITE=2*/
#define ewen   4     /*93C46写致能的识别码EWEN=4*/
#define ewds   6     /*93C46写除能的识别码EWDS=6*/
#define cs     INT0     /*93C46 CS接脚=8051 RD P3.2*/
#define clk    INT1     /*93C46 CLK接脚=8051 WR P3.3*/
#define di     T0     /*93C46 DI接脚=8051 T1 P3.4*/
#define d0     T1     /*93C46 DO接脚=8051 T0 P3.5*/
#define LOW  0x49     /*存放测试温度的下限值*/
#define HIGH 0x51     /*存放测试温度的上限值*/
bit FLAG0=0;      /*宣告TIMER0响应旗号*/
//外接工业专用温度传感器时,目前设置测量温度为0-99度:
static const char tab[13]={0x3a,0x53,0x6f,0x8a,0xa3, /*0度,10度,20度,30度,40度*/
      0xB8,0xC8,0xD5,0xDE,0xE5, /*50度,60度,70度,80度,90度*/
                           0xEA,0xEE};   /*100度,110度*/
//使用板上AD590温度传感器时,目前设置测量温度为0-99度:
//static const char tab[13]={0x88,0x8d,0x92,0x97,0x9c, /*0度,10度,20度,30度,40度,*/
//       0xa1,0xa6,0xab,0xb0,0xb5, /*50度,60度,70度,80度,90度*/
//                           0xba,0xc0};  /*100度,110度*/
char data1[2];
char C,S,k=0;
char MEP[7];                       /*显示器值存放阵列*/
//MEP[0]=数码管最低位显示值,温度指示小数点后位
//MEP[1]=数码管次低位显示值,温度指示个位数
//MEP[2]=数码管高位显示值,温度指示十位数
//MEP[3]=数码管最低位显示值,功能显示目前定为1,2,3,4,5
//MEP[4]=
//MEP[5]=暂放置温度显示值,高4位为温度指示十位数值,低4位为温度指示个位数值
//MEP[6]=在温度显示与电压调整副程式中,将测量值C暂存MEP[6]中
unsigned char combuf[10];
unsigned char ADR46,CH,CL,m,C1,C2;   /*ADR46,93C46位址,CH高位元组,CL低*/
int sec,sec1;
char ptr=0,ptr1=0x10,psr=0;      /*ptr显示器值存放阵MEP[]指标,ptr1显示器扫描指标*/
char count=100,sb=0;
void delay (unsigned int value)    /*延时副程式*/
 {
      while (value!=0) value--;    /*10us延时*/
 }
void COMP();      /*宣告比较现在温度与设定温度副程式*/
void SET();
void disp();      /*宣告设定温度副程式*/
void to9346(char c);     /*宣告TO93C46副程式*/
void SDT46(char c);     /*宣告串入副程式*/
RDT46();      /*宣告串出副程式*/
void clear(void);     /*宣告清除按键存放/显示器阵列MEP[]副副程式*/
void xch(void);      /*宣告按键存放/显示器阵列MEP[]右键滚入副程式*/
void sjust(void);     /*温度显示慢跳调整副程式*/
void temper();      /*宣告温度显示与电压调整副程式*/
void UP();      /*宣告温度上升键防抖动副程式*/
void UPA();      /*宣告温度设置上升副程式*/
void DOWN();      /*宣告温度下降键防抖动副程式*/
void DOWNA();      /*宣告温度设置下降副程式*/
void FONTION();      /*宣告模式键判断模式副程式*/
void buf();      /*宣告从93C46取设定值副程式*/
void SAVE();      /*宣告设置存储副程式*/
//********************************************************
main()       /*主程式*/
{
 TMOD=0x11;                     /*TIMER0,TIMER1工作在MODE1*/
 TH0=(65535-50000)/256;          /*设定TIMER0初值,50ms*/
 TL0=(65536-50000)%256;
 TH1=(65535-4000)/256;              /*设定TIMER1初值,4ms*/
 TL1=(65536-4000)%256;
 IE=0x8a;             /*TIMER0,TIMER1中断致能*/
 TR1=1;                      /*启动TIMER1*/
 P2_7=1;      /*测试用,温度下限指示*/
 P2_6=1;      /*测试用,温度在正常上下限间指示*/
 P2_5=1;      /*测试用,温度上限指示*/
 buf();       /*从93C46取设定值副程式*/
   while(1)      /*无条件循环*/
   {
 P3_1=0;
   MEP[3]=0xff;     /*将模式位置零*/
    VAR=0x00;     /*产生写入信号WR=0,令ADC0804开始转换*/
      while (P2_0==1);    /*侦测ADC0804的接脚INTR=0否?是则转换完成*/
 S=VAR;      /*读取ADC0804资料,存入C*/
 sjust();     /*温度显示慢跳调整副程式*/
 temper();     /*呼叫温度显示调整副程式*/
 MEP[5]=(MEP[2]  <  <4)|MEP[1];
    if(P2_4==0) SET();    /*如果模式键P2.4按下,则呼叫SET副程式,否则跳过副程式*/
 if(MEP[5]  <combuf[5]) {  P2_7=0;  /*如果测试温度小于设定温度下限,等式成立时,则将低温指示打开P2_7=0*/
        P2_6=P2_5=1;  /*关闭指示灯*/
           }
 if(MEP[5]>  combuf[6]) {  P2_5=0;  /*如果测试温度大于设定温度上限,等式成立时,则将高温指示打开P2_5=0*/
    P2_7=P2_6=1;  /*关闭指示灯*/
        }
 if(combuf[5]  <MEP[5])
 if(MEP[5]  <combuf[6]) { P2_6=0;  /*如果测试温度介于设定温度上下限之间,则将正常指示打开P2_6=0*/
     P2_7=P2_5=1;
         }
   }       /*跳至while(1),无条件循环*/
}

  
2楼:fenggou80 2005年3月15日17:02
 编译器路径设置对没有哦?
FATAL ERROR 210: I/O ERROR ON INPUT file:
    EXCEPTION 0021H: PATH OR FILE NOT FOUND
    file: D:\CPU\SY1032.OBJ
  
3楼:fef110 2005年3月16日10:20
 我只按他的引导输入了模块文件和包含文件,
我只按他的引导输入了模块文件和包含文件,没要求设路径阿?
不是问题把?

>>>>>>对该主题发表你的看法

本主题贴数3,分页: [第1页]


[上一篇主题]:求助:用vhdl语言设计iic ip core

[下一篇主题]:5509A