<AT89X52.H>换成<reg52.h>
来源:互联网 发布:汪小帆 复杂网络 编辑:程序博客网 时间:2024/04/26 04:01
C51中为什么把头文件<AT89X52.H>换成<reg52.h>原先的错误就不见了呢
检举|2009-11-14 10:45jinfang199054 | 分类:操作系统/系统故障 | 浏览1039次
我有更好的答案
提问者采纳
2009-11-22 13:41
检举|2009-11-14 10:45jinfang199054 | 分类:操作系统/系统故障 | 浏览1039次
我有更好的答案
提问者采纳
2009-11-22 13:41
头文件不同所需要的语句也相应会有所区别~有些语句是<AT89X52.H>所不能调用的
/*-------------------------------------------------------------------------- AT89X52.H Header file for the low voltage Flash Atmel AT89C52 and AT89LV52. Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc. All rights reserved. --------------------------------------------------------------------------*/ #ifndef __AT89X52_H__ #define __AT89X52_H__ /*------------------------------------------- 基本特殊功能寄存器 -------------------------------------------*/ sfr P0 = 0x80;// P0通用I/O寄存器 sfr SP = 0x81;// 堆栈指针 sfr DPL = 0x82;// 数据指针低 sfr DPH = 0x83;// 数据指针高 sfr PCON = 0x87;// 电源控制 sfr TCON = 0x88;// 定时器控制 sfr TMOD = 0x89;// 定时器模式控制 sfr TL0 = 0x8A;// 定时器0低字节 sfr TL1 = 0x8B;// 定时器1低字节 sfr TH0 = 0x8C;// 定时器0高字节 sfr TH1 = 0x8D;// 定时器1高字节 sfr P1 = 0x90;// P1通用I/O寄存器 sfr SCON = 0x98;// 串口控制寄存器 sfr SBUF = 0x99;// 串口缓冲区 sfr P2 = 0xA0;// P2通用I/O寄存器 sfr IE = 0xA8;// 中断使能寄存器 sfr P3 = 0xB0;// P3通用I/O寄存器 sfr IP = 0xB8;// 中断优先级寄存器 sfr T2CON = 0xC8;// 定时器2控制寄存器 sfr T2MOD = 0xC9;// 定时器2 模式控制 sfr RCAP2L = 0xCA;// 定时器2重装/捕捉寄存器低字节 sfr RCAP2H = 0xCB;// 定时器2重装/捕捉寄存器高字节 sfr TL2 = 0xCC;// 定时器2低字节 sfr TH2 = 0xCD;// 定时器2高字节 sfr PSW = 0xD0;// 程序状态字 sfr ACC = 0xE0;// 累加器 sfr B = 0xF0;// B 寄存器 /*------------------------------------------- P0 通用I/O 寄存器位值 (地址:0x80) -------------------------------------------*/ sbit P0_0 = 0x80; sbit P0_1 = 0x81; sbit P0_2 = 0x82; sbit P0_3 = 0x83; sbit P0_4 = 0x84; sbit P0_5 = 0x85; sbit P0_6 = 0x86; sbit P0_7 = 0x87; /*------------------------------------------- PCON 电源控制寄存器位值 (地址:0x87) -------------------------------------------*/ #define IDL_ 0x01// 空闲标志位,置位进入空闲模式 #define STOP_ 0x02 #define PD_ 0x02 // 低功耗标志位,置位进入低功耗模式 #define GF0_ 0x04// 通用标志位 0 #define GF1_ 0x08// 通用标志位 1 #define SMOD_ 0x80// 串行口通信波特率控制位,置位使波特率翻倍 /*------------------------------------------- TCON 定时器控制位 (地址:0x88) -------------------------------------------*/ sbit IT0 = 0x88;// 外部中断0触发方式控制 sbit IE0 = 0x89;// 外部中断0标志 sbit IT1 = 0x8A;// 外部中断1触发方式控制 sbit IE1 = 0x8B;// 外部中断1标志 sbit TR0 = 0x8C;// 定时器0启动控制 sbit TF0 = 0x8D;// 定时器0溢出标志 sbit TR1 = 0x8E;// 定时器1启动控制 sbit TF1 = 0x8F;// 定时器1溢出标志 /*------------------------------------------- TMOD 定时/计数控制寄存器位值 (地址:0x89) -------------------------------------------*/ #define T0_M0_ 0x01// 模式选择位低位。 #define T0_M1_ 0x02// 模式选择位高位。 #define T0_CT_ 0x04// 如果C/T=1,定时器以计数方式工作,C/T=0 时,以定时方式工作。 #define T0_GATE_ 0x08// 当GATE 置位时,定时器仅当TR=1 并且INT=1 时才工作, // 如果GATE=0,置位TR 定时器就开始工作。 #define T1_M0_ 0x10 #define T1_M1_ 0x20 #define T1_CT_ 0x40 #define T1_GATE_ 0x80 #define T1_MASK_ 0xF0// 用于对高4位的操作 #define T0_MASK_ 0x0F// 用于对低4位的操作 /*------------------------------------------- P1 通用I/O 寄存器位(地址:0x90) -------------------------------------------*/ sbit P1_0 = 0x90; sbit P1_1 = 0x91; sbit P1_2 = 0x92; sbit P1_3 = 0x93; sbit P1_4 = 0x94; sbit P1_5 = 0x95; sbit P1_6 = 0x96; sbit P1_7 = 0x97; /*------------------------------------------- P1 口复用功能 (地址:0x90) -------------------------------------------*/ sbit T2 = 0x90; // 定时器2的外部计数输入 sbit T2EX = 0x91; // 定时器2的重装载/捕获控制口 /*------------------------------------------- SCON 串行口控制寄存器位(地址:0x98) -------------------------------------------*/ sbit RI = 0x98;// 接收中断标志 sbit TI = 0x99;// 发送中断标志 sbit RB8 = 0x9A;// 接收到的第九位数据 sbit TB8 = 0x9B;// 要被发送的第九位数据 sbit REN = 0x9C;// 接收使能 sbit SM2 = 0x9D;// 多机通信控制 sbit SM1 = 0x9E;// 串口模式位1 sbit SM0 = 0x9F;// 串口模式位0 /*------------------------------------------- P2 通用I/O 寄存器位(地址:0xA0) -------------------------------------------*/ sbit P2_0 = 0xA0; sbit P2_1 = 0xA1; sbit P2_2 = 0xA2; sbit P2_3 = 0xA3; sbit P2_4 = 0xA4; sbit P2_5 = 0xA5; sbit P2_6 = 0xA6; sbit P2_7 = 0xA7; /*------------------------------------------- IE 中断使能寄存器(地址:0xA8) -------------------------------------------*/ sbit EX0 = 0xA8; // 外部中断0使能位 1=Enable 0=Disable sbit ET0 = 0xA9; // 定时器0中断使能位 1=Enable 0=Disable sbit EX1 = 0xAA; // 外部中断1使能位 1=Enable 0=Disable sbit ET1 = 0xAB; // 定时器1中断使能位 1=Enable 0=Disable sbit ES = 0xAC; // 串行口中断使能位 1=Enable 0=Disable sbit ET2 = 0xAD; // 定时器2中断使能位 1=Enable 0=Disable sbit EA = 0xAF; // 中断总控制位 1= Enable 0=Disable /*------------------------------------------- P3 通用I/O 寄存器位(地址:0xB0) -------------------------------------------*/ sbit P3_0 = 0xB0; sbit P3_1 = 0xB1; sbit P3_2 = 0xB2; sbit P3_3 = 0xB3; sbit P3_4 = 0xB4; sbit P3_5 = 0xB5; sbit P3_6 = 0xB6; sbit P3_7 = 0xB7; /*------------------------------------------- P3 口复用功能 (地址:0xB0) -------------------------------------------*/ sbit RXD = 0xB0; // 串行口输入 sbit TXD = 0xB1; // 串行口输出 sbit INT0 = 0xB2; // 外部中断0输入口 sbit INT1 = 0xB3; // 外部中断1输入口 sbit T0 = 0xB4; // 定时/计数器0外部输入信号 sbit T1 = 0xB5; // 定时/计数器1外部输入信号 sbit WR = 0xB6; // 访问外部RAM时的写信号 sbit RD = 0xB7; // 访问外部RAM时的读信号 /*------------------------------------------- IP 中断优先级寄存器位 (地址:0xB8) -------------------------------------------*/ sbit PX0 = 0xB8;// 外部中断0优先级位 sbit PT0 = 0xB9;// 定时器0中断优先级位 sbit PX1 = 0xBA;// 外部中断1优先级位 sbit PT1 = 0xBB;// 定时器1中断优先级位 sbit PS = 0xBC;// 串行口中断优先级位 sbit PT2 = 0xBD;// 定时器2中断优先级位 /*------------------------------------------- T2CON 定时器2控制寄存器位 (地址:0xC8) -------------------------------------------*/ sbit CP_RL2= 0xC8; // 捕捉/重装选择 0=Reload, 1=Capture sbit C_T2 = 0xC9; // 计数器/定时器选择位 0=Timer, 1=Counter sbit TR2 = 0xCA; // 定时器2运行控制位 0=Stop timer, 1=Start timer sbit EXEN2= 0xCB; // 定时器2外部事件使能 sbit TCLK = 0xCC; // 发送时钟标志 0=串口时钟用Timer 1,1=用Timer 2 sbit RCLK = 0xCD; // 接收时钟标志 0=串口时钟用Timer 1,1=用Timer 2 sbit EXF2 = 0xCE; // 定时器2外部事件标志 sbit TF2 = 0xCF; // 定时器2溢出标志 /*------------------------------------------- T2MOD 定时器2 模式控制寄存器位值 (地址:0xC9) -------------------------------------------*/ #define DCEN_ 0x01 // 向下计数使能。该位与T2EX管脚相结合,控制 // 定时器2 16位自动重装模式下的计数方向 #define T2OE_ 0x02 // 定时器2输出使能。该位用于打开/关闭定时器2时钟输出功能 /*------------------------------------------- PSW 程序状态字寄存器位 (地址:0xD0) -------------------------------------------*/ sbit P = 0xD0;// 奇、偶标志位 sbit F1 = 0xD1;// 用户标志1 sbit OV = 0xD2;// 溢出标志 sbit RS0 = 0xD3;// 寄存器区选择位0 sbit RS1 = 0xD4;// 寄存器区选择位1 sbit F0 = 0xD5;// 用户标志0 sbit AC = 0xD6;// 辅助进位标志 sbit CY = 0xD7;// 进位标志 /*------------------------------------------- 中断向量号在代码(code)区的00 - 0x2D 中断地址 = (Number * 8) + 3 -------------------------------------------*/ #define IE0_VECTOR0 // 外部中断0中断向量号,中断向量地址 = 0x03 #define TF0_VECTOR1 // 定时器 0 中断向量号,中断向量地址 = 0x0B #define IE1_VECTOR2 // 外部中断1中断向量号,中断向量地址 = 0x13 #define TF1_VECTOR3 // 定时器 1 中断向量号,中断向量地址 = 0x1B #define SIO_VECTOR4 // 串口中断向量号,中断地址 = 0x23 #define TF2_VECTOR5 // 定时器 2 中断向量号,中断向量地址 = 0x2B #define EX2_VECTOR5 // 外部中断1中断向量号,中断向量地址 = 0x2B #endif
- <AT89X52.H>换成<reg52.h>
- reg52.h
- 头文件AT89X51.H和reg52.h的区别
- 单片机中用c编程时头文件reg51.h及reg52.h解析
- 单片机中用c编程时头文件reg51.h及reg52.h解析
- C51 reg51.h或reg52.h中的寄存器重定义(error C231: 'xxx': redefinition)
- < iostream > 和 < iostream.h > 的区别
- h
- h
- h
- ,h
- h
- h
- H
- h
- h
- h
- H
- 【Findbugs缺陷库】Call to static DateFormat
- select、poll、epoll的比较
- Microsoft Visual Studio 2010 遇到了异常,可能是由某个扩展导致的
- 预测算法用java实现
- malloc()与 alloc()区别
- <AT89X52.H>换成<reg52.h>
- Linux也有自己的cls命令,clear。但在程序中如何调用昵?
- 网络中的网关技术
- man nm ----->nm - list symbols from object files
- ubuntu下嵌入式开发环境的搭建
- Javascript自定义排序——node运行
- Linux进程管理命令详解
- Mac下使用svnx进行版本控制,并解决无法上传.a库文件的问题
- 堆和栈的区别基于操作系统内存分配