#include<AT89X52.H>
#include "INTRINS.H"
#define BUSY1 (DQ1==0) //定义busy信号
sbit LED_0=P2^0; //定义数码管控制脚为P1口的0-3脚
sbit LED_1=P2^1;
sbit LED_2=P2^2;
sbit LED_3=P2^3;
sbit DQ1=P1^6; //定义18B20单总线引脚
void display(unsigned char d1,unsigned char d2,unsigned char d3,unsigned char d4);//声明显示函数
void ds_reset_1(void); //声明18B20复位函数
void wr_ds18_1(char dat); //声明18B20写入函数
void time_delay(unsigned char time);//声明延时函数
int get_temp_1(void); //声明18B20读入温度函数
void delay(unsigned int x); //声明延时函数
void read_ROM(void); //声明18B20读ROM函数
int get_temp_d(void); //声明获取温度函数
void ds_init(void); //声明18B20初始化函数
void ds_getT(void); //声明18B20获得温度显示值函数
/*定义数码管段码=====0-9=====A-G=====*/
unsigned char a[16]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
//共阳极数码管的段码0 1 2 3 4 5 6 7 8 9 A B C D E F
仔细看编译对话框的内容,我也遇到过类似的是拼写写错导致报错,display中的l和a顺序调换导致错误;函数拼写错误,调用时又写成正确的,导致报错定义的函数没有被调用。
查找方法*(参考图片中标注):
搜索编译对话框中的SEGMENT提示内容dispaly,
并参考SYMBOL下提示的比对查找display。
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
意思是:定义了一个函数,但是在main等函数中并没调用。