weixin_45434511
雪化岩
采纳率0%
2019-08-10 09:19 阅读 1.5k

单片机编写EEPROM时,该程序中为什么只能用<reg52.h>作头文件,而换成<regx52.h>就是错误的呢?

只有用作头文件时调试正确,而换成就报错很多。我知道两个头文件中位定义的格式不一样,但把^改成_之后依旧报错。

#include <reg52.h>           //此文件中定义了单片机的一些特殊功能寄存器

#include "i2c.h"    
#include "nixie.h"
#include "Delay.h"
#include "at24c02.h"

typedef unsigned int u16;     //对数据类型进行声明定义
typedef unsigned char u8;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

sbit k1=P3^1;
sbit k2=P3^0;
sbit k3=P3^2;
sbit k4=P3^3;    //定义按键端口

char num=0;
u8 disp[4];



/*******************************************************************************
* 函数名         :Keypros()
* 函数功能       :按键处理函数
* 输入           : 无
* 输出             : 无
*******************************************************************************/
void Keypros()
{
    if(k1==0)
    {
        Delay(10);  //消抖处理
        if(k1==0)
        {
            At24c02Write(1,num);   //在地址1内写入数据num
        }
        while(!k1);
    }
    if(k2==0)
    {
        Delay(10);  //消抖处理
        if(k2==0)
        {
            num=At24c02Read(1);   //读取EEPROM地址1内的数据保存在num中
        }
        while(!k2);
    }
    if(k3==0)
    {
        Delay(1);  //消抖处理
        if(k3==0)
        {
            num++;     //数据加1
            if(num>255)num=0;
        }
        while(!k3);
    }
    if(k4==0)
    {
        Delay(10);  //消抖处理
        if(k4==0)
        {
            num=0;       //数据清零
        }
        while(!k4);
    }       
}

/*******************************************************************************
* 函数名         :datapros()
* 函数功能       :数据处理函数
* 输入           : 无
* 输出             : 无
*******************************************************************************/
void datapros()
{
    disp[0]=num/1000;//千位
    disp[1]=num%1000/100;//百位
    disp[2]=num%1000%100/10;//十位
    disp[3]=num%1000%100%10;    //个位
}


/*******************************************************************************
* 函数名         :DigDisplay()
* 函数功能       :数码管显示函数
* 输入           : 无
* 输出             : 无
*******************************************************************************/
void DigDisplay()
{
    u8 i;
    for(i=0;i<4;i++)
    {
        Nixie(i,disp[3-i]);
    }       
}

/*******************************************************************************
* 函 数 名       : main
* 函数功能       : 主函数
* 输    入       : 无
* 输    出         : 无
*******************************************************************************/
void main()
{   
    while(1)
    {
        Keypros();   //按键处理函数
        datapros();  //数据处理函数
        DigDisplay();//数码管显示函数        
    }       
}

报错如下:

F:\单片机\Keil 4\C51\Inc\reg52.h(13): error C231: 'P0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(14): error C231: 'P1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(15): error C231: 'P2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(16): error C231: 'P3': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(17): error C231: 'PSW': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(18): error C231: 'ACC': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(19): error C231: 'B': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(20): error C231: 'SP': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(21): error C231: 'DPL': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(22): error C231: 'DPH': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(23): error C231: 'PCON': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(24): error C231: 'TCON': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(25): error C231: 'TMOD': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(26): error C231: 'TL0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(27): error C231: 'TL1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(28): error C231: 'TH0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(29): error C231: 'TH1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(30): error C231: 'IE': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(31): error C231: 'IP': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(32): error C231: 'SCON': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(33): error C231: 'SBUF': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(36): error C231: 'T2CON': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(37): error C231: 'RCAP2L': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(38): error C231: 'RCAP2H': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(39): error C231: 'TL2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(40): error C231: 'TH2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(45): error C231: 'CY': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(46): error C231: 'AC': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(47): error C231: 'F0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(48): error C231: 'RS1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(49): error C231: 'RS0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(50): error C231: 'OV': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(51): error C231: 'P': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(54): error C231: 'TF1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(55): error C231: 'TR1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(56): error C231: 'TF0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(57): error C231: 'TR0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(58): error C231: 'IE1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(59): error C231: 'IT1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(60): error C231: 'IE0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(61): error C231: 'IT0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(64): error C231: 'EA': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(65): error C231: 'ET2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(66): error C231: 'ES': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(67): error C231: 'ET1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(68): error C231: 'EX1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(69): error C231: 'ET0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(70): error C231: 'EX0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(73): error C231: 'PT2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(74): error C231: 'PS': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(75): error C231: 'PT1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(76): error C231: 'PX1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(77): error C231: 'PT0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(78): error C231: 'PX0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(81): error C231: 'RD': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(82): error C231: 'WR': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(83): error C231: 'T1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(84): error C231: 'T0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(85): error C231: 'INT1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(86): error C231: 'INT0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(87): error C231: 'TXD': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(88): error C231: 'RXD': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(91): error C231: 'SM0': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(92): error C231: 'SM1': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(93): error C231: 'SM2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(94): error C231: 'REN': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(95): error C231: 'TB8': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(96): error C231: 'RB8': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(97): error C231: 'TI': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(98): error C231: 'RI': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(101): error C231: 'T2EX': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(102): error C231: 'T2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(105): error C231: 'TF2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(106): error C231: 'EXF2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(107): error C231: 'RCLK': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(108): error C231: 'TCLK': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(109): error C231: 'EXEN2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(110): error C231: 'TR2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(111): error C231: 'C_T2': redefinition
F:\单片机\Keil 4\C51\Inc\reg52.h(112): error C231: 'CP_RL2': redefinition
compiling i2c.c...
compiling Delay10us.c...
compiling Nixie.c...
compiling Delay.c...
compiling At24c02.c...
Target not created

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

1条回答 默认 最新

相关推荐