|
|||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
談c調(diào)匯編,在18b20中的應用 |
| 作者:chuandaoxy 欄目:單片機 |
小弟從書上找到一份完整的18B20程序,其中c調(diào)用了匯編,我編譯后出現(xiàn)了下面幾個嚴重警告 *** WARNING L7: MODULE NAME NOT UNIQUE MODULE: Text1.obj (RW1820) *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: ?C_START MODULE: .\STARTUP.obj (?C_STARTUP) *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: ?C_START MODULE: .\STARTUP.obj (?C_STARTUP) ADDRESS: 005FH Program Size: data=9.0 xdata=0 code=104 "1820" - 0 Error(s), 4 Warning(s). 我找不到原因請大家?guī)兔,我有個問題,是不是應該把主程序c和匯編在一個項目下同時編譯,下面是書上的代碼, #include<reg51.h> #include<stdio.h> #include<math.h> #define uCHAR unsigned CHAR #define uint unsigned int extern WDS1820(uCHAR x); extern RDS1820(uCHAR *pt); extern bit RTDS1820(void); extern Delay15(uCHAR n); int error( int y) { } sbit P1_4=P1^4; void main(void) { uint i; float data TEMPF; uCHAR data TEMP[10],disbuf[10]; if(RTDS1820()!=1)error(0x3); Delay15(0xff); WDS1820(0xcc); WDS1820(0x44); P1_4=1; do{Delay15(0xff);i++;}while(i<=400); if(RTDS1820()!=1)error(0x3); Delay15(0xff); WDS1820(0xcc); WDS1820(0xbe); RDS1820(&TEMP); TEMPF=((TEMP[1]<<8)+TEMP[0]>>1)-0.25+((TEMP[7]-TEMP[6])/TEMP[7]); sprintf(&disbuf,"T=%+4,1f%c",TEMPF,'c'); //DISPLAY(&TEMP); } ////////////////////////////////////////////////////////////// NAME RW1820; ?PR?RDS1820?RW1820 SEGMENT CODE; PUBLIC _RDS1820; RSEG ?PR?RDS1820?RW1820 _RDS1820: MOV R1,#9 MOV A,R7 MOV R0,A RD18201:MOV R2,#8 RD18202:SETB P1.4; NOP NOP CLR P1.4 NOP NOP SETB P1.4 MOV R7,#1 LCALL _Delay15 MOV C,P1.4 RRC A; DJNZ R2,RD18202 MOV @R0,A INC R0 DJNZ R1,RD18201 RET ///////////////////////////////////////////////////////////// ?PR?WDS1820?RW1820 SEGMENT CODE; PUBLIC _WDS1820; RSEG ?PR?WDS1820?RW1820 _WDS1820: MOV R1,#8 CLR C MOV A,R7 WR18201:CLR P1.4 MOV R7,#1 LCALL _Delay15 RRC A MOV P1.4,C MOV R7,#1 LCALL _Delay15 SETB P1.4 NOP DJNZ R1,WR18201 SETB P1.4 RET //////////////////////////////////////////////////////// ?PR?RTDS1820?RW1820 SEGMENT CODE; PUBLIC _RTDS1820; RSEG ?PR?RTDS1820?RW1820 _RTDS1820: CLR P1.4 MOV R7,#40 LCALL _Delay15 SETB P1.4 MOV R7,#4 LCALL _Delay15 MOV R7,#100 SETB C RST0: JNB P1.4,RST1 DJNZ R7,RST0 CLR C RST1:RET /////////////////////////////////////////////////////////////////// ?PR?Delay15?RW1820 SEGMENT CODE; PUBLIC _Delay15 RSEG ?PR?Delay15?RW1820 _Delay15: MOV R6,#6 DEL151: DJNZ R6,DEL151 DJNZ R7,_Delay15 RET END |
| 2樓: | >>參與討論 |
| 作者: jxb163 于 2006/7/2 10:26:00 發(fā)布:
MODULE NAME NOT UNIQUE 模塊名不唯一 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |