导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→[求助]关于PIC16F877编译错误的问题

* 84123: [求助]关于PIC16F877编译错误的问题

   endurance 
endurance发表的帖子 

 [求助]关于PIC16F877编译错误的问题
我是一个刚开始使用pic单片机的新手,我编写了一个应用程序,里面用到了中断,编译时总是出现如下的错误:

Error - section '.org_1' can not fit the absolute section. Section '.org_1' start=0x00000004, length=0x00000004
Errors    : 1
想请教高手,这是什么问题,该如何解决?谢谢。

以下是我的程序,中断只是产生延时,随便试一下中断用的,我想知道为什么编译时会出现那个错误


LIST P=16F877A;
 INCLUDE "P16F877A.INC"
 ERRORLEVEL -302;
TEMP EQU 0X2D;临时寄存器,将PORT端口要检验的相应位置1
SIG1 EQU 0X21;RD0
SIG2 EQU 0X22;RD1
SIG3 EQU 0X23;RD2
SIG4 EQU 0X24;RD3
SIG5 EQU 0X25;RD4
SIG6 EQU 0X26;RD5
SIG7 EQU 0X27;RD6
SIG8 EQU 0X28;RD7
SIG9 EQU 0X29;RB1
SIG10 EQU 0X2A;RB2
SIG11 EQU 0X2B;RB3
SIG12 EQU 0X2C;RB4
;定义用于存储相应路脉冲累加值的寄存器
 ORG 0X0000;
 GOTO START;
 ORG 0X0004;
 NOP;
 RETFIE;
 ORG 0X0100;
START
 BANKSEL INTCON;
 BCF INTCON,GIE;
 MOVLW 0X50;
 MOVWF INTCON;
 BANKSEL OPTION_REG;
 MOVLW 0X40;
 MOVWF OPTION_REG;
 BANKSEL TRISD;
 MOVLW 0XFF;
 MOVWF TRISD;
 MOVWF TRISB;
 CLRF SIG1;1
 CLRF SIG2;1
 CLRF SIG3;1
 CLRF SIG4;1
 CLRF SIG5;1
 CLRF SIG6;1
 CLRF SIG7;1
 CLRF SIG8;1
 CLRF SIG9;1
 CLRF SIG10;1
 CLRF SIG11;1
 CLRF SIG12;1清除各个累加寄存器,正式运用时放在主程序的开始部分,可用循环完成
MAIN
 BSF INTCON,GIE;
 BANKSEL STATUS;
 BSF STATUS,C;将STATUS的C置,为后面的TEMP移位做准备。
 MOVLW 0X20;
 MOVWF FSR;设定累加值寄存器组的初始指针
 CLRF TEMP;清除TEMP
NONED
 RLF TEMP,1;由于已经置STATUS的C为1,所以第一次移位后TEMP=0X01
 INCF FSR,1;将指针指向相应的累加寄存器
 BTFSS STATUS,C;判断循环是否结束,当1再次移入STATUS的C时循环结束
 GOTO PDD;未结束时去判断PORTD的哪一位为1
 GOTO DOVER;循环结束,去判断PORTB。
PDD;判断PORTD的哪一为1,将TEMP and POPRTD,若PORTD相应位为1则结果不为0,STATUS的Z为0。利用这个作为判断条件
 MOVF TEMP,0;将TEMP中的值写入W寄存器
 ANDWF PORTD,0;PORTD and TEMP
 BTFSC STATUS,Z;检验结果是否为0
 GOTO NONED;若结果为0说明PORTD相应位为0,不需要累加,继续看下一位。否则进行累加
COUNTD;利用寄存器间接寻址完成相应累加器的加1
 INCF INDF,1;
 GOTO NONED;继续检查下一位

DOVER;以下为检验PORTB的相应位,原理与上面相同。
 MOVLW 0X01;
 MOVWF TEMP;
 DECF FSR,1;由于判断PORTD时多加一次,因此减掉多加的一次。
 BCF STATUS,C;经过上面的循环STATUS的C位为1,将其清除避免影响后面的判断
NONEB
 RLF TEMP,1;
 INCF FSR,1;
 BTFSS TEMP,5;
 GOTO PDB;
 GOTO BOVER;
PDB
 MOVF TEMP,0;
 ANDWF PORTB,0;
 BTFSC STATUS,Z;
 GOTO NONEB;
COUNTB
 INCF INDF,1;
 GOTO NONEB;
BOVER 
 END;

发表时间:2005年9月26日0:30:14

  
回复该帖

本主题共有 1 帖,分页:>>>>>该主题的所有内容[1]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:请教AC220V小继电器,如何让他在低于150V时就快速的释放! 现在他190V吸合而到10
[下一篇帖子]:增益创新科技 ADI DSP 仿真器上市啦!!!!!![upload=