|
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,"空氣質(zhì)量:");
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:時(shí)間顯示");
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,"請(qǐng)輸入密碼:");
LCD12864_WriteAscll(0,3,"按下14確認(rèn)");
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,"請(qǐng)重新輸入");
LCD12864_WriteAscll(1,2,"你還有倆機(jī)會(huì)");
DelayNms(3000);
LCD12864_CleanScans();
}
if(a1 == 2)
{
b1 = 0;
y = 0;
LCD12864_WriteAscll(2,0,"NO!!");
LCD12864_WriteAscll(2,1,"請(qǐng)重新輸入");
LCD12864_WriteAscll(1,2,"你還有一次機(jī)會(huì)");
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,"請(qǐng)按手指");
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,"請(qǐng)?jiān)侔匆淮?quot;);
// 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,"對(duì)比兩次指紋");
// LCD12864_WriteAscll(0,2," ");
ensure=PS_Match();
if(ensure==0x00)
{
LCD12864_WriteAscll(0,2,"對(duì)比成功");
// LCD12864_WriteAscll(0,2," ");
processnum=3;//跳到第四步
}
else
{
LCD12864_WriteAscll(0,2,"對(duì)比失敗");
// 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);//儲(chǔ)存模板
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參數(shù)
//刷指紋
uint t=0;
void press_FR(void)
{
SearchResult seach;
uchar ensure;
//char str[20];
LCD12864_WriteAscll(0,0,"請(qǐng)按下指紋");
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,"指紋驗(yàn)證成功");
// 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,"驗(yàn)證失敗");
DelayNms(1500);
}
if(t==3)
{
Buzzer = 0;
DelayNms(4000);
Buzzer = 1;
t=0;
LCD12864_CleanScans();
mima();
}
}
else
{
}
LCD12864_CleanScans();
LCD12864_WriteAscll(0,2,"請(qǐng)按手指");
}
}
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);//刪除單個(gè)指紋
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;
}
|
|