最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網
技術交流 | 電路欣賞 | 工控天地 | 數字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產業(yè) | CAN-bus/DeviceNe

Keil編譯ASM文件出錯

作者:Volitation 欄目:單片機
Keil編譯ASM文件出錯
單片機為ADI公司的ADUC831,在編譯ADI公司自帶的ASM文件時,Keil不能編譯。
ASM文件內容:
;********************************************************************
;
; Author        : ADI - Apps            www.analog.com/MicroConverter
;
; Date          : 31 Jan 2002
;
; File          : ADCcont.asm
;
; HARDWARE      : ADUC831
;
; DESCRIPTION   : Performs ADC conversions in continuous mode at a
;                 rate of 81.31KSPS (assuming an 11.0592MHZ Mclk).
;                 Outputs ADC results on P0 & P2.  Continuously
;                 flashes LED (independently of ADC routine) at
;                 approximately 5Hz.
;                 All rate calculations assume an 11.0592MHZ Mclk.
;        
;********************************************************************

$MOD831                         ; Use 8052&ADUC831 predefined symbols

LED     EQU     P3.4            ; P3.4 drives red LED on EVAL board
CHAN    EQU     0               ; convert this ADC input channel..
                                ;
;____________________________________________________________________
                                                  ; BEGINNING OF CODE
CSEG

ORG 0000h

        JMP     MAIN            ; jump to main program
;____________________________________________________________________
                                             ; INTERRUPT VECTOR SPACE
ORG 0033H ; (ADC ISR)

        MOV     P0,ADCDATAL     ; ADC result low byte to Port0  
        MOV     P2,ADCDATAH     ; high nibble and channel ID to Port2
        RETI

;====================================================================
                                                       ; MAIN PROGRAM
ORG 004Bh

MAIN:

; PRECONFIGURE...

        MOV     ADCCON1,#0B0h   ; POWER up ADC, 12.3us conv+acq time
        MOV     ADCCON2,#CHAN   ; SELECT channel to convert

; LAUNCH CONTINUOUS CONVERSIONS...

        SETB    EA              ; enable interrupts
        SETB    EADC            ; enable ADC interrupt
        SETB    CCONV           ; begin continuous conversions

; CONTINUE WITH OTHER CODE...

AGAIN:  CPL     LED             ; blink (complement) the LED
        CALL    DELAY           ; delay 100MS
        JMP     AGAIN           ; repeat

; the MICRO is free to continue with other tasks (flashing the LED in
; this case) while the ADC is continuously converting, and results
; are being handled by the ADC interrupt service routine.

;____________________________________________________________________
                                                         ; SUBROUTINE

DELAY:                          ; delay 100MS

        MOV     R7,#200         ; 200 * 500us = 100MS
DLY1:   MOV     R6,#229         ; 229 * 2.17us = 500us
        DJNZ    R6,$            ; sit here for 500us
        DJNZ    R7,DLY1         ; repeat 200 times (100MS total)
        RET

;____________________________________________________________________
                        
END


用keil編譯后,出現不能編譯提示:
Build target 'Target 1'
assembling ADCcont.asm...
ADCcont.asm(20): error A68: UNKNOWN CONTROL OR BAD ARGUMENT(S)
ADCcont.asm(36): error A45: UNDEFINED SYMBOL (PASS-2)
ADCcont.asm(37): error A45: UNDEFINED SYMBOL (PASS-2)
ADCcont.asm(48): error A45: UNDEFINED SYMBOL (PASS-2)
ADCcont.asm(49): error A45: UNDEFINED SYMBOL (PASS-2)
ADCcont.asm(54): error A45: UNDEFINED SYMBOL (PASS-2)
ADCcont.asm(55): error A45: UNDEFINED SYMBOL (PASS-2)
Target not created


是缺少什么文件嗎?

2樓: >>參與討論
被磁化的鐵
*
好幾個符號沒有定義.

3樓: >>參與討論
Volitation
???
這是MOD831文件中的內容:
;REV.  1.1   31 October 2002
;ADUC831   Apps, ANALOG Devices Inc.
P0       DATA  080H  ;PORT 0    
SP       DATA  081H  ;STACK POINTER    
DPL      DATA  082H  ;DATA POINTER - LOW BYTE
DPH      DATA  083H  ;DATA POINTER - HIGH BYTE
DPP      DATA  084H  ;DATA POINTER - PAGE BYTE
PCON     DATA  087H  ;POWER CONTROL
TCON     DATA  088H  ;TIMER CONTROL
TMOD     DATA  089H  ;TIMER MODE
TL0      DATA  08AH  ;TIMER 0 - LOW BYTE
TL1      DATA  08BH  ;TIMER 1 - LOW BYTE
TH0      DATA  08CH  ;TIMER 0 - HIGH BYTE
TH1      DATA  08DH  ;TIMER 1 - HIGH BYTE
P1       DATA  090H  ;PORT 1
SCON     DATA  098H  ;SERIAL PORT CONTROL
SBUF     DATA  099H  ;SERIAL PORT BUFFER
I2CDAT   DATA  09AH  ;I2C DATA REGISTER
I2CADD   DATA  09BH  ;I2C ADDRESS REGISTER
T3CON    DATA  09EH  ;TIMER 3 CONTROL
T3FD     DATA  09DH  ;TIMER 3 FRACTIONAL DIVIDER
P2       DATA  0A0H  ;PORT 2
TIMECON  DATA  0A1H  ;TIC CONTROL
HTHSEC   DATA  0A2H  ;TIC - HTHSEC DATA
SEC      DATA  0A3H  ;TIC - SEC DATA
MIN      DATA  0A4H  ;TIC - MIN DATA
HOUR     DATA  0A5H  ;TIC - HOUR DATA
INTVAL   DATA  0A6H  ;TIC INTERVAL REGISTER
DPCON    DATA  0A7H  ;DUAL DATA POINTER CONTROL REGISTER
IE       DATA  0A8H  ;INTERRUPT ENABLE 1
IEIP2    DATA  0A9H  ;INTERRUPT ENABLE 2
PWMCON   DATA  0AEH  ;PWM CONTROL REGISTER
CFG831   DATA  0AFH  ;GENERAL FLASH/PWM CONTROL REGISTER
P3       DATA  0B0H  ;PORT 3
PWM0L    DATA  0B1H  ;PWM DATA REGISTER
PWM0H    DATA  0B2H  ;PWM DATA REGISTER
PWM1L    DATA  0B3H  ;PWM DATA REGISTER
PWM1H    DATA  0B4H  ;PWM DATA REGISTER
SPH      DATA  0B7H  ;EXTENDED STACK POINTER REGISTER
IP       DATA  0B8H  ;INTERRUPT PRIORITY
ECON     DATA  0B9H  ;FLASH EEPROM CONTROL
EDATA1   DATA  0BCH  ;FLASH EEPROM DATA1
EDATA2   DATA  0BDH  ;FLASH EEPROM DATA2
EDATA3   DATA  0BEH  ;FLASH EEPROM DATA3
EDATA4   DATA  0BFH  ;FLASH EEPROM DATA4
WDCON    DATA  0C0H  ;WATCHDOG TIMER CONTROL
CHIPID   DATA  0C2H  ;CHIPID REGISTER
EADRL    DATA  0C6H  ;FLASH EEPROM PAGE ADDRESS - LOW BYTE
EADRH    DATA  0C7H  ;FLASH EEPROM PAGE ADDRESS - LOW BYTE
T2CON    DATA  0C8H  ;TIMER 2 CONTROL
RCAP2L   DATA  0CAH  ;TIMER 2 CAPTURE REGISTER - LOW BYTE
RCAP2H   DATA  0CBH  ;TIMER 2 CAPTURE REGISTER - HIGH BYTE
TL2      DATA  0CCH  ;TIMER 2 - LOW BYTE
TH2      DATA  0CDH  ;TIMER 2 - HIGH BYTE
PSW      DATA  0D0H  ;PROGRAM STATUS WORD
DMAL     DATA  0D2H  ;DMA ADDRESS LOW BYTE
DMAH     DATA  0D3H  ;DMA ADDRESS HIGH BYTE
DMAP     DATA  0D4H  ;DMA ADDRESS PAGE BYTE
ADCCON2  DATA  0D8H  ;ADC CONTROL
ADCDATAL DATA  0D9H  ;ADC DATA LOW BYTE
ADCDATAH DATA  0DAH  ;ADC DATA HIGH BYTE
PSMCON   DATA  0DFH  ;POWER SUPPLY MONITOR
ACC      DATA  0E0H  ;ACCUMULATOR
DCON     DATA  0E8H  ;D1 AND D0 CONTROL
I2CCON   DATA  0E8H  ;I2C CONTROL
ADCCON1  DATA  0EFH  ;ADC CONTROL
B        DATA  0F0H  ;MULTIPLICATION REGISTER
ADCOFSL  DATA  0F1H  ;ADC OFFSET LOW BYTE
ADCOFSH  DATA  0F2H  ;ADC OFFSET HIGH BYTE
ADCGAINL DATA  0F3H  ;ADC GAIN LOW BYTE
ADCGAINH DATA  0F4H  ;ADC GAIN HIGH BYTE
ADCCON3  DATA  0F5H  ;ADC CONTROL
SPIDAT   DATA  0F7H  ;SPI DATA REGISTER
SPICON   DATA  0F8H  ;SPI CONTROL REGISTER
DAC0L    DATA  0F9H  ;DAC0 LOW BYTE
DAC0H    DATA  0FAH  ;DAC0 HIGH BYTE
DAC1L    DATA  0FBH  ;DAC1 LOW BYTE
DAC1H    DATA  0FCH  ;DAC1 HIGH BYTE
DACCON   DATA  0FDH  ;DAC CONTROL REGISTER
IT0      BIT   088H  ;TCON.0 - EXT. INTERRUPT 0 TYPE
IE0      BIT   089H  ;TCON.1 - EXT. INTERRUPT 0 EDGE FLAG
IT1      BIT   08AH  ;TCON.2 - EXT. INTERRUPT 1 TYPE
IE1      BIT   08BH  ;TCON.3 - EXT. INTERRUPT 1 EDGE FLAG
TR0      BIT   08CH  ;TCON.4 - TIMER 0 ON/OFF CONTROL
TF0      BIT   08DH  ;TCON.5 - TIMER 0 OVERFLOW FLAG
TR1      BIT   08EH  ;TCON.6 - TIMER 1 ON/OFF CONTROL
TF1      BIT   08FH  ;TCON.7 - TIMER 1 OVERFLOW FLAG
T2       BIT   090H  ;P1.0 - TIMER 2 TRIGGER INPUT
T2EX     BIT   091H  ;P1.1 - TIMER 2 COUNT INPUT
RI       BIT   098H  ;SCON.0 - RECEIVE
4樓: >>參與討論
Volitation
搞定了
查看了一些書籍后,問題解決。只要去掉這一行指令$MOD831,然后添加下面兩行語句就可以了。
$NOMOD51
$INCLUDE (MOD831)

解釋:
$NOMOD51,這一指令功能是使A51不識別8051的所有預定義符號。
$INCLUDE (MOD831),這一指令功能使用用戶自定義的符號文件。
這兩條語句必須配合使用,使用了$INCLUDE (MOD831),就必須使用$NOMOD51,否則回因多重定義而產生錯誤。同時,要先用$NOMOD51,后用$INCLUDE (MOD831)。

參與討論
昵稱:
討論內容:
 
 
相關帖子
T6標準
再談flash數據丟失問題
有誰用過DAC8512F?
c51如何ds12c887程序
請教問題
免費注冊為維庫電子開發(fā)網會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號