Target not created怎么解决啊,以下是所有警告和主程序代码,用的是KEIL4
代码比较多,劳烦大佬帮忙看看,谢谢。
Build target 'Target 1'
linking...
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: T
MODULE: .\Objects\18b20.obj (18B20)
*** ERROR L104: MULTIPLE PUBLIC DEFINITIONS
SYMBOL: TIMER1_INTERRUPT
MODULE: .\Objects\timer.obj (TIMER)
*** WARNING L5: CODE SPACE MEMORY OVERLAP
FROM: 0013H
TO: 0015H
*** WARNING L5: CODE SPACE MEMORY OVERLAP
FROM: 001BH
TO: 001DH
*** WARNING L5: CODE SPACE MEMORY OVERLAP
FROM: 0043H
TO: 0045H
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: AS608
MODULE: .\Objects\main.obj (MAIN)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: AS608
MODULE: .\Objects\main.obj (MAIN)
ADDRESS: 220AH
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: PRINTFMAIN
MODULE: .\Objects\ds1302.obj (DS1302)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: PRINTFMAIN
MODULE: .\Objects\ds1302.obj (DS1302)
ADDRESS: 195CH
Program Size: data=15.3 xdata=643 code=16461
Target not created.
Build Time Elapsed: 00:00:00
#include "main.h"
#include "lcd12864.h"
#include "ADC.h"
#include "delay.h"
#include "dh11.h"
#include "led_key.h"
#include "usart.h"
#include "MFRC522.h"
#include "ired.h"
#include "ds1302.h"
#include "UART2.h"
#include "AS608.h"
sbit led = P1^0;
sbit Buzzer = P2^1;
sbit hongwai=P2^2;
uint K;
uint x=0,y = 0,a1=0,y1;
ulong b1 = 0;
void dh11();
void MQ135();
void body_hongwai();
void IR();
void ds1302();
void dianliu();
void AS608();
void Add_FR(void);
void press_FR(void);
void Del_FR(void);
void mima(void);
void mian()
{
lcdinit();
DGD();
DelayNms(1500);
LCD12864_CleanScans();
while(1)
{
switch (KeyDown(1))
{
case 0:LCD12864_WriteAscll(7,0,"00");//putchar(0X00);
break;
case 1:LCD12864_WriteAscll(7,0,"01");//putchar(0X01);
dh11();
break;
case 2:LCD12864_WriteAscll(7,0,"02");//putchar(0X02);
MQ135();
break;
case 3:LCD12864_WriteAscll(7,0,"03");//putchar(0X03);
body_hongwai();
break;
case 4:LCD12864_WriteAscll(7,0,"04");//putchar(0X04);
IR();
break;
case 5:LCD12864_WriteAscll(7,0,"05");//putchar(0X05);
ds1302();
break;
case 6:LCD12864_WriteAscll(7,0,"06");//putchar(0X06);//
dianliu();
break;
case 7:LCD12864_WriteAscll(7,0,"07");//putchar(0X07);//电流检测
AS608();
break;
case 8:LCD12864_WriteAscll(7,0,"08");//putchar(0X08);
//hongwai();
break;
case 9:LCD12864_WriteAscll(7,0,"09");//putchar(0X09);
break;
case 10:LCD12864_WriteAscll(7,0,"10");//putchar(0X10);
break;
case 11:LCD12864_WriteAscll(7,0,"11");//putchar(0X11);
break;
case 12:LCD12864_WriteAscll(7,0,"12");//putchar(0X12);
break;
case 13:LCD12864_WriteAscll(7,0,"13");//putchar(0X13);
break;
case 14:LCD12864_WriteAscll(7,0,"14");//putchar(0X14);
break;
case 15:LCD12864_WriteAscll(7,0,"15");//putchar(0X15);
break;
case 16:LCD12864_WriteAscll(7,0,"16");//putchar(0X16);
break;
}
}
}
void dh11()
{
uchar key1;
lcdinit();
while(1)
{
key1 = KeyDown(0);
LCD12864_WriteAscll(0,0,"温度:");
LCD12864_WriteAscll(0,1,"湿度:");
Lcd_DH11_xs(0,3,1,3);
if(key1==16)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按1:温湿度");
delay(10000);
delay(10000);
break;
}
}
}
void MQ135()
{
uchar key2;
uint AD_MQ135;
lcdinit();
while(1)
{
key2 = KeyDown(0);
ADC_Init(ADP1_1,CH_P1_1);
AD_MQ135 = Adc_result(CH_P1_1);
DelayNms(100);
LCD12864_WriteAscll(0,3,"空气质量:");
LCD12864_WriteAscll(5,3,AD_Screen(AD_MQ135));
if(key2==16)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按2:空气净度");
delay(10000);
delay(10000);
break;
}
}
}
void body_hongwai()
{
uchar key3;
Usart1_init();
while(1)
{
key3 = KeyDown(0);
if(hongwai==1)
{printf("有人靠近");
DelayNms(2000);}
if(key3==16)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按3:人体红外检测");
delay(10000);
delay(10000);
break;
}
}
}
void IR()
{
uchar key4;
PC838();
while(1)
{
key4 = KeyDown(0);
if(keynum==0)
{LED0=0;}
if(key4==16)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按4:红外遥控");
delay(10000);
delay(10000);
break;
}
}
}
void ds1302()
{
uchar key5;
while(1)
{
key5 = KeyDown(0);
Lcd_dsShowtime(0,2,0,3);
if(key5==16)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按5:时间显示");
delay(10000);
delay(10000);
break;
}
}
}
void dianliu()
{
uchar key6;
int adc;
ADC_Init(ADP1_0,CH_P1_0);
while(1)
{
key6=KeyDown(0);
adc=Adc_result_N(CH_P1_0);
LCD_WriteTextNum(5,0,adc,2);
if(key6== 16)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按6:电流");
delay(10000);
delay(10000);
break;
}
}
}
void mima(void)
{
uint pass_key;
b1 = 0;
y = 0;
x = 0;
a1 = 0;
y1 = 0;
LCD12864_WriteAscll(0,0,"请输入密码:");
LCD12864_WriteAscll(0,3,"按下14确认");
while(1)
{
pass_key= KeyDown(1);
if(pass_key &&pass_key<=9)
{
y++;
if(y==1)
{x = pass_key;
b1 = x*1000;}
if(y==2)
{x =pass_key;
b1 += x*100;}
if(y==3)
{x = pass_key;
b1 += x*10;}
if(y==4)
{x = pass_key;
b1 += x;}
}
if(pass_key == 14)
{
if(b1 == 1234)
{
b1 = 0;
y = 0;
LCD12864_WriteAscll(2,1,"YES!!");
LCD12864_WriteAscll(2,2,"开锁成功");
DelayNms(3000);
}
else
{
a1++;
if(a1 == 1)
{
b1 = 0;
y = 0;
LCD12864_WriteAscll(2,0,"NO!!");
LCD12864_WriteAscll(2,1,"请重新输入");
LCD12864_WriteAscll(1,2,"你还有俩机会");
DelayNms(3000);
LCD12864_CleanScans();
}
if(a1 == 2)
{
b1 = 0;
y = 0;
LCD12864_WriteAscll(2,0,"NO!!");
LCD12864_WriteAscll(2,1,"请重新输入");
LCD12864_WriteAscll(1,2,"你还有一次机会");
DelayNms(3000);
LCD12864_CleanScans();
}
if(a1 == 3)
{
b1 = 0;
y = 0;
led = 0;
Buzzer = 0;
DelayNms(4000);
Buzzer = 1;
led = 1;
a1 = 0;
}
}
}
if(pass_key== 10)
{
b1 = 0;
y = 0;
}
LCD_WriteTextNum(0,1,b1,9);
if(pass_key == 16)
{
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按:密码");
delay(10000);
delay(10000);
break;
}
}
}
//指纹管理
void zhiwen(void)
{
uchar key8;
lcdinit();
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"指纹模块测试程序");
LCD12864_WriteAscll(0,1,"K1键添加指纹");
LCD12864_WriteAscll(0,2,"K3键删除指纹");
UART2_Init();
while(1)
{
key8=KeyDown(1);
if(key8==1)
{
key8=0;
LCD12864_CleanScans();
Add_FR();
}
if(key8==3)
{
key8=0;
LCD12864_CleanScans();
Del_FR();
}
if(key8==16)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按8:指纹");
delay(10000);
delay(10000);
break;
}
}
}
//添加指纹
void Add_FR(void)
{
uchar i,ensure,processnum=0;
uint ID_NUM=0;
while(1)
{
switch(processnum)
{
case 0:
i++;
LCD12864_WriteAscll(0,1,"请按手指");
ensure=PS_GetImage();
if(ensure==0x00)
{
ensure=PS_GenChar(CharBuffer1);//生成特征
if(ensure==0x00)
{
DelayNms(1);
// LCD12864_WriteAscll(0,1," ");
LCD12864_WriteAscll(0,2,"指纹正常");
// LCD12864_WriteAscll(0,2," ");
DelayNms(100);
i=0;
processnum=1;//跳到第二步
}else {};
}else {};
break;
case 1:
i++;
LCD12864_WriteAscll(0,2,"请再按一次");
// LCD12864_WriteAscll(0,2," ");
DelayNms(100);
ensure=PS_GetImage();
if(ensure==0x00)
{
ensure=PS_GenChar(CharBuffer2);//生成特征
if(ensure==0x00)
{
DelayNms(1);
LCD12864_WriteAscll(0,2,"指纹正常");
// LCD12864_WriteAscll(0,2," ");
DelayNms(100);
i=0;
processnum=2;//跳到第三步
}else {};
}else {};
break;
case 2:
LCD12864_WriteAscll(0,2,"对比两次指纹");
// LCD12864_WriteAscll(0,2," ");
ensure=PS_Match();
if(ensure==0x00)
{
LCD12864_WriteAscll(0,2,"对比成功");
// LCD12864_WriteAscll(0,2," ");
processnum=3;//跳到第四步
}
else
{
LCD12864_WriteAscll(0,2,"对比失败");
// LCD12864_WriteAscll(0,2," ");
ShowErrMessage(ensure);
i=0;
processnum=0;//跳回第一步
}
DelayNms(500);
break;
case 3:
LCD12864_WriteAscll(0,2,"生成指纹模板");
// LCD12864_WriteAscll(0,2," ");
DelayNms(500);
ensure=PS_RegModel();
if(ensure==0x00)
{
LCD12864_WriteAscll(0,2,"生成指纹模板成功");
// LCD12864_WriteAscll(0,2," ");
processnum=4;//跳到第五步
}else {processnum=0;}
DelayNms(1000);
break;
case 4:
LCD12864_WriteAscll(0,0,"按K4加,按K2减");
LCD12864_WriteAscll(0,1,"按K3保存");
LCD12864_WriteAscll(0,2,"0=< ID <=99 ");
ID_NUM=0;
while(K!=3)
{
K=KeyDown(0);
if(K==2)
{
K=0;
if(ID_NUM>0)
ID_NUM--;
}
if(K==4)
{
K=0;
if(ID_NUM<99)
ID_NUM++;
}
LCD12864_WriteAscll(0,3,"ID=");
LCD_WriteTextNum(3,3,ID_NUM,2);
}
K=0;
ensure=PS_StoreChar(CharBuffer2,ID_NUM);//储存模板
if(ensure==0x00)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,2,"录入指纹成功");
// LCD12864_WriteAscll(0,3," ");
DelayNms(1500);
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"指纹模块测试程序");
LCD12864_WriteAscll(0,1,"K1键添加指纹");
LCD12864_WriteAscll(0,2,"K3键删除指纹");
return ;
}else {LCD12864_CleanScans();processnum=0;}
break;
}
DelayNms(400);
if(i==10)//超过5次没有按手指则退出
{
LCD12864_CleanScans();
break;
}
}
}
SysPara AS608Para; //指纹模块AS608参数
//刷指纹
uint t=0;
void press_FR(void)
{
SearchResult seach;
uchar ensure;
//char str[20];
LCD12864_WriteAscll(0,0,"请按下指纹");
LCD12864_WriteAscll(0,3,"按下16退出");
while(K!=16)
{
K=KeyDown(1);
ensure=PS_GetImage();
if(ensure==0x00)//获取图像成功
{
ensure=PS_GenChar(CharBuffer1);
if(ensure==0x00) //生成特征成功
{
ensure=PS_HighSpeedSearch(CharBuffer1,0,99,&seach);
if(ensure==0x00)//搜索成功
{
t=0;
LCD12864_WriteAscll(0,1,"指纹验证成功");
// sprintf(str,"ID:%d 得分:%d ",seach.pageID,seach.mathscore);
// LCD12864_WriteAscll(0,4,str);
DelayNms(3000);
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"欢迎来到菜单");
LCD12864_WriteAscll(0,1,"按8:指纹");
delay(10000);
delay(10000);
break;
}
if(ensure==0x09)
{
t++;
LCD12864_WriteAscll(0,2,"验证失败");
DelayNms(1500);
}
if(t==3)
{
Buzzer = 0;
DelayNms(4000);
Buzzer = 1;
t=0;
LCD12864_CleanScans();
mima();
}
}
else
{
}
LCD12864_CleanScans();
LCD12864_WriteAscll(0,2,"请按手指");
}
}
LCD12864_CleanScans();
//main();
}
//删除指纹
void Del_FR(void)
{
uchar ensure;
uint ID_NUM=0;
LCD12864_WriteAscll(0,0,"K4+ K2- K3 ok");
LCD12864_WriteAscll(0,2,"K5清空 K1 braek");
LCD12864_WriteAscll(0,3,"0=<ID<=99");
while(K!=3)
{
K=KeyDown(1);
if(K==2)
{
K=0;
if(ID_NUM>0)
ID_NUM--;
}
if(K==4)
{
K=0;
if(ID_NUM<99)
ID_NUM++;
}
if(K==1)
goto MENU ; //返回主页面
if(K==5)
{
K=0;
ensure=PS_Empty();//清空指纹库
if(ensure==0)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,2," 清空指纹库成功 ");
}
else
{};
DelayNms(1500);
goto MENU ; //返回主页面
}
LCD12864_WriteAscll(0,3,"ID=");
LCD_WriteTextNum(3,3,ID_NUM,2);
}
ensure=PS_DeletChar(ID_NUM,1);//删除单个指纹
if(ensure==0)
{
LCD12864_CleanScans();
LCD12864_WriteAscll(0,2," 删除指纹成功 ");
}
else
{};
DelayNms(1500);
MENU:
LCD12864_CleanScans();
LCD12864_WriteAscll(0,0,"指纹模块测试程序");
LCD12864_WriteAscll(0,1,"K1键添加指纹");
LCD12864_WriteAscll(0,2,"K3键删除指纹");
K=0;
}
|