|
我是新手,提問(wèn)的帖不夠全面,現(xiàn)在完整發(fā)出來(lái),請(qǐng)問(wèn)一下高手
出錯(cuò)提示如下:
Error [1250] E:\thermometer\PIC\thermometer.c; 72. could not find space (2 bytes) for variable _SEC
unsigned int SEC;這樣定義編譯會(huì)通過(guò),這樣的話比較的數(shù)是不是少于255;理論上是不會(huì)的。是不是我哪兒設(shè)置不對(duì)?
單片機(jī)源程序如下:
#include <pic.h>
//#include "thermometer.h"
unsigned char volatile ADCY_COUNT @ 0X25;
unsigned char volatile DIP0 @ 0X26;
unsigned char volatile DIP1 @ 0X27;
unsigned char volatile WEI @ 0X30;
unsigned char sbstatus @ 0x23;
bit volatile ADCY@((unsigned)&sbstatus*8+0;
unsigned char LED @ 0x21;
bit volatile LEDdp@((unsigned)&LED*8+0;
bit volatile LEDg@((unsigned)&LED*8+1;
bit volatile LEDf@((unsigned)&LED*8+2;
bit volatile LEDe@((unsigned)&LED*8+3;
bit volatile LEDd@((unsigned)&LED*8+4;
bit volatile LEDc@((unsigned)&LED*8+5;
bit volatile LEDb@((unsigned)&LED*8+6;
bit volatile LEDa@((unsigned)&LED*8+7;
#define XLEDa RC0
#define XLEDb RC1
#define XLEDc RC5
#define XLEDd RC4
#define XLEDe RC3
#define XLEDf RC2
#define XLEDg RA5
//unsigned char volatile SEC; //雙字節(jié)
unsigned int SEC;
unsigned char i;
void DisbytLED(void)
{
XLEDa=LEDa;
XLEDb=LEDb;
XLEDc=LEDc;
XLEDd=LEDd;
XLEDe=LEDe;
XLEDf=LEDf;
XLEDg=LEDg;
//LEDdp=;
}
void interrupt ISR(void)
{
if(T0IE&&T0IF==1)
{ T0IF=0;
TMR0=TMR0+0X03;
OPTION_REG=0X01;
LED=0X00;
DisbytLED();
if(WEI==0X00)
{
RA0=1;
RA1=0;
LED=DIP0;
WEI=0X01;
}
else
{
RA1=1;
RA0=0;
LED=DIP1;
WEI=0X00;
}
DisbytLED();
SEC=SEC+1;
if(SEC==500)
ADCY=1;
SEC=0;
}
}
void cydelay() //采樣時(shí)間延時(shí)程序
{
for (i=255;i>0;i--)
{
asm("nop");
asm("nop");
asm("nop");
asm("nop");
}
}
void initial() //初始化程序
{
INTCON=0X00;
TRISA=0X0C;
ANSEL=0X04;
//TRISB=0X00;
TRISC=0X00;
//TRISD=0X00;
OPTION_REG=0X01;
ADCON1=0X04;
ADCON0=0X00;
CMCON=0x07;
INTCON=0XA0;
}
/*主程序*/
main()
{
WEI=0X00;
ADCY=0;
initial();//調(diào)用初始化端口程序
for(;;)
{
asm("clrwdt");//清除看門(mén)狗
// DIP0=0X11;
//DIP1=0XFF;
SEC=SEC+1;
if(SEC>=500)
ADCY=1;
}
}
// LLED=0XFF;
// LLED1=0;
//LOLED=0XFF;
|
|