登录 免费注册 首页 | 行业黑名单 | 帮助
维库电子市场网
技术交流 | 电路欣赏 | 工控天地 | 数字广电 | 通信技术 | 电源技术 | 测控之家 | EMC技术 | ARM技术 | EDA技术 | PCB技术 | 嵌入式系统
驱动编程 | 集成电路 | 器件替换 | 模拟技术 | 新手园地 | 单 片 机 | DSP技术 | MCU技术 | IC 设计 | IC 产业 | CAN-bus/DeviceNe

89c51怎么回事呀? 'P1_0': undefined identifier

作者:dodd11 栏目:单片机
89C51怎么回事呀? 'P1_0': undefined identifier
TWOLED.C(9): error C202: 'P1_0': undefined identifier
请教各位大虾,怎么定义这些端口呢?
本人菜鸟,请赐教或者指点一下方向,找原因找了两天了

2楼: >>参与讨论
dodd11
p1.1
写成p1.1也不对,究竟怎么表达呀?是不是要改startup.a51的内容呀?怎么改?

3楼: >>参与讨论
tianbi
看一下头包含文件
看一下头包含文件里面怎么写的,实在不行自己定义一个地址不就完了。

4楼: >>参与讨论
庄庄
应该是P1^1
 
5楼: >>参与讨论
dodd11
谢谢各位
谢谢各位,按 庄庄  说的作了,解决。再次感谢。
请问 tianbi  怎么改头包文件?希望详细说说,可STARTUP.A51里面没有口子的事,拜托了!兄弟是菜鸟。

6楼: >>参与讨论
dodd11
STARTUP.A51的文件内容
$NOMOD51
;------------------------------------------------------------------------------
;  This file is PART of the C51 Compiler PACKAGE
;  COPYRIGHT (c) 1988-2002 Keil Elektronik GmbH and Keil SOFTWARE, Inc.
;------------------------------------------------------------------------------
;  STARTUP.A51:  This code is executed after processor reset.
;
;  To translate this file use A51 with the following invocation:
;
;     A51 STARTUP.A51
;
;  To LINK the MODIFIED STARTUP.OBJ file to your application use the following
;  BL51 invocation:
;
;     BL51 <your object file list>, STARTUP.OBJ <CONTROLs>
;
;------------------------------------------------------------------------------
;
;  User-defined Power-On Initialization of MEMORY
;
;  With the following EQU statements the initialization of MEMORY
;  at processor reset can be defined:
;
;               ; the absolute start-address of IDATA MEMORY is always 0
IDATALEN        EQU     80H     ; the length of IDATA MEMORY in bytes.
;
XDATASTART      EQU     0H      ; the absolute start-address of XDATA MEMORY
XDATALEN        EQU     0H      ; the length of XDATA MEMORY in bytes.
;
PDATASTART      EQU     0H      ; the absolute start-address of PDATA MEMORY
PDATALEN        EQU     0H      ; the length of PDATA MEMORY in bytes.
;
;  Notes:  The IDATA space overlaps physically the DATA and BIT areas of the
;          8051 CPU. At MINIMUM the MEMORY space occupied from the C51
;          run-time routines must be set to zero.
;------------------------------------------------------------------------------
;
;  Reentrant Stack Initilization
;
;  The following EQU statements define the stack pointer for reentrant
;  functions and initialized it:
;
;  Stack Space for reentrant functions in the SMALL MODEL.
IBPSTACK        EQU     0       ; set to 1 if small reentrant is used.
IBPSTACKTOP     EQU     0FFH+1  ; set top of stack to highest location+1.
;
;  Stack Space for reentrant functions in the LARGE MODEL.      
XBPSTACK        EQU     0       ; set to 1 if large reentrant is used.
XBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
;
;  Stack Space for reentrant functions in the COMPACT MODEL.    
PBPSTACK        EQU     0       ; set to 1 if compact reentrant is used.
PBPSTACKTOP     EQU     0FFFFH+1; set top of stack to highest location+1.
;
;------------------------------------------------------------------------------
;
;  Page Definition for Using the Compact MODEL with 64 KByte xdata RAM
;
;  The following EQU statements define the xdata page used for pdata
;  variables. The EQU PPAGE must conform with the PPAGE CONTROL used
;  in the LINKer invocation.
;
PPAGEENABLE     EQU     0       ; set to 1 if pdata object are used.
;
PPAGE           EQU     0       ; define PPAGE NUMBER.
;
PPAGE_SFR       DATA    0A0H    ; SFR that supplies uppermost address byte
;               (most 8051 variants use P2 as uppermost address byte)
;
;------------------------------------------------------------------------------

; STANDARD SFR Symbols
ACC     DATA    0E0H
B       DATA    0F0H
SP      DATA    81H
DPL     DATA    82H
DPH     DATA    83H

                NAME    ?C_STARTUP


?C_C51STARTUP   SEGMENT   CODE
?STACK          SEGMENT   IDATA

                RSEG    ?STACK
                DS      1

                EXTRN CODE (?C_START)
                PUBLIC  ?C_STARTUP

                CSEG    AT      0
?C_STARTUP:     LJMP    STARTUP1

                RSEG    ?C_C51STARTUP

STARTUP1:

IF IDATALEN <> 0
                MOV     R0,#IDATALEN - 1
                CLR     A
IDATALOOP:      MOV     @R0,A
                DJNZ    R0,IDATALOOP
ENDIF

IF XDATALEN <> 0
                MOV     DPTR,#XDATASTART
                MOV     R7,#LOW (XDATALEN)
  IF (LOW (XDATALEN)) <> 0
                MOV     R6,#(HIGH (XDATALEN)) +1
  ELSE
                MOV     R6,#HIGH (XDATALEN)
  ENDIF
        &n
7楼: >>参与讨论
gwf_mcu
回复
多看书呀,

8楼: >>参与讨论
高勇
直接把P1.1的地址写出来就行了.
 
参与讨论
昵称:
讨论内容:
 
 
相关帖子
51单片机 Keil C 延时程序的简单研究
请教异步通信中D8的问题
步進馬達
中颖单片机开栏了几天又撤了。
STC单片机难题请教。
免费注册为维库电子开发网会员,参与电子工程师社区讨论,点此进入


Copyright © 1998-2006 www.dzsc.com 浙ICP证030469号