為了工作方便想開發(fā)一個8繼電器的開關(guān)電源作為工具使用;
于是買了帶單片機的模塊,以及拿到C 語言源代碼,如下。但是由于新手+基礎(chǔ)薄弱,在修改一些語句后,編譯仍然出現(xiàn)warnings,雖生存hex文件,但是XCOM串口工具通過給的協(xié)議無法調(diào)試單片機模塊;
想在這跟大佬請教,指出錯誤。
/*************以下是main.c源代碼******************/
/*************以下是EEPROM.h源代碼, 用于main.c調(diào)用******************/
- #ifndef _EERPOM_H_
- #define _EEPROM_H_
- #include "reg51.h"
- #include "intrins.h"
- typedef unsigned char BYTE;
- typedef unsigned int WORD;
- /*Declare SFR associated with the IAP */
- sfr IAP_DATA = 0xE2; //Flash data register
- sfr IAP_ADDRH = 0xE3; //Flash address HIGH
- sfr IAP_ADDRL = 0xE4; //Flash address LOW
- sfr IAP_CMD = 0xE5; //Flash command register
- sfr IAP_TRIG = 0xE6; //Flash command trigger
- sfr IAP_CONTR = 0xE7; //Flash control register
- /*Define ISP/IAP/EEPROM command*/
- #define CMD_IDLE 0 //Stand-By
- #define CMD_READ 1 //Byte-Read
- #define CMD_PROGRAM 2 //Byte-Program
- #define CMD_ERASE 3 //Sector-Erase
- /*Define ISP/IAP/EEPROM operation const for IAP_CONTR*/
- //#define ENABLE_IAP 0x80 //if SYSCLK<30MHz
- //#define ENABLE_IAP 0x81 //if SYSCLK<24MHz
- #define ENABLE_IAP 0x82 //if SYSCLK<20MHz
- //#define ENABLE_IAP 0x83 //if SYSCLK<12MHz
- //#define ENABLE_IAP 0x84 //if SYSCLK<6MHz
- //#define ENABLE_IAP 0x85 //if SYSCLK<3MHz
- //#define ENABLE_IAP 0x86 //if SYSCLK<2MHz
- //#define ENABLE_IAP 0x87 //if SYSCLK<1MHz
- //Start address for STC12C2052AD series EEPROM
- #define IAP_ADDRESS 0x0000
- void Delay(BYTE n);
- void IapIdle();
- BYTE IapReadByte(WORD addr);
- void IapProgramByte(WORD addr, BYTE dat);
- void IapEraseSector(WORD addr);
- #endif
復(fù)制代碼 /***********以下是Warnings******************/
Build started: Project: 20211123
Build target 'Target 1'
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?_DELAY?MAIN
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: _IAPERASESECTOR
MODULE: .\Objects\main.obj (MAIN)
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: _IAPPROGRAMBYTE
MODULE: .\Objects\main.obj (MAIN)
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: _IAPREADBYTE
MODULE: .\Objects\main.obj (MAIN)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _IAPREADBYTE
MODULE: .\Objects\main.obj (MAIN)
ADDRESS: 000AH
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _IAPERASESECTOR
MODULE: .\Objects\main.obj (MAIN)
ADDRESS: 0064H
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _IAPPROGRAMBYTE
MODULE: .\Objects\main.obj (MAIN)
ADDRESS: 006CH
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _IAPERASESECTOR
MODULE: .\Objects\main.obj (MAIN)
ADDRESS: 0236H
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: _IAPPROGRAMBYTE
MODULE: .\Objects\main.obj (MAIN)
ADDRESS: 023DH
Program Size: data=36.2 xdata=0 code=872
creating hex file from ".\Objects\20211123"...
".\Objects\20211123" - 0 Error(s), 9 Warning(s).
Build Time Elapsed: 00:00:01
求助以上問題,不勝感激
|