xie2101 发表于 2026-6-26 15:48:58

PCON invalid base address


C51 COMPILER V9.01 - SN: D1DZC-W07EXC
COPYRIGHT KEIL ELEKTRONIK GmbH 1987 - 2009
*** ERROR C146 IN LINE 23 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 24 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 25 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 26 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 27 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 28 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 29 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 30 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'PCON': invalid base address
*** ERROR C146 IN LINE 43 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'TMOD': invalid base address
*** ERROR C146 IN LINE 44 OF J:/AI8051/27-MULTI-TASK/BUILDLIB\..\SOURCES\INC\AI8051U.H: 'TMOD': invalid base address   
AI8051 的头文件 c51就编不过 啊。 真的支持吗?

乘风飞扬 发表于 2026-6-26 16:41:10

AI8051U实验箱例程包里面8bit模式的例子使用C51编译器
用例程包里面的例子试试:https://www.stcai.com/syx

梁工 发表于 2026-6-26 17:46:27

C51,PCON不支持位寻址,使用C251吧。

xie2101 发表于 2026-6-26 19:44:40

感谢楼上两位的热心回复。原因如下:

C251 的 AI8051U.h内容 和C51的AI8051U.h 内容是不一样的。

+++++C251 的 AI8051U.h内容 +++++++++
sfr         PCON      =         0x87;
    sbit    SMOD      =         PCON^7;
    sbit    SMOD0       =         PCON^6;
    sbit    LVDF      =         PCON^5;
    sbit    POF         =         PCON^4;
    sbit    GF1         =         PCON^3;
    sbit    GF0         =         PCON^2;
    sbit    PD          =         PCON^1;
    sbit    IDL         =         PCON^0;               
---------C251 的 AI8051U.h内容 ---------

+++++C51 的 AI8051U.h内容 +++++++++
    #define SMOD                  0x80
    #define SMOD0                   0x40
    #define LVDF                  0x20
    #define POF                     0x10
    #define GF1                     0x08
    #define GF0                     0x04
    #define PD                      0x02
    #define IDL                     0x01
---------C51 的 AI8051U.h内容 ---------

梁工 发表于 2026-6-26 22:08:04

xie2101 发表于 2026-6-26 19:44
感谢楼上两位的热心回复。原因如下:

C251 的 AI8051U.h内容 和C51的AI8051U.h 内容是不一样的。


C51,PCON不支持位寻址,C251支持。

狂热主宰 发表于 2026-6-27 21:49:25

梁工 发表于 2026-6-26 22:08
C51,PCON不支持位寻址,C251支持。

为操作方便
251在这方面限制少
支持更多寄存器位操作
页: [1]
查看完整版本: PCON invalid base address