请问 <reg52.h> 用来定义什么的? 都包括什么?

如题所述

第1个回答  推荐于2017-10-01
是c51(用于单片机开发的一种c语言)的头文件。类似于头文件AT89X52.h。这两个头文件基本是一样的,只是在使用时对位的定义不一样,at89x52.h文件中对P1.1的操作是写成P1_1;reg52.h文件中的操作则写成P1^1。表示方法不一样而已。另外前者是特指ATMEL公司的52系列单片机,后者指所有52系列的单片机。

/*--------------------------------------------------------------------------
REG51.H

Header file for generic 80C51 and 80C31 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __REG51_H__
#define __REG51_H__

/* BYTE Register */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;

/* BIT Register */
/* PSW */
sbit CY = 0xD7;
sbit AC = 0xD6;
sbit F0 = 0xD5;
sbit RS1 = 0xD4;
sbit RS0 = 0xD3;
sbit OV = 0xD2;
sbit P = 0xD0;

/* TCON */
sbit TF1 = 0x8F;
sbit TR1 = 0x8E;
sbit TF0 = 0x8D;
sbit TR0 = 0x8C;
sbit IE1 = 0x8B;
sbit IT1 = 0x8A;
sbit IE0 = 0x89;
sbit IT0 = 0x88;

/* IE */
sbit EA = 0xAF;
sbit ES = 0xAC;
sbit ET1 = 0xAB;
sbit EX1 = 0xAA;
sbit ET0 = 0xA9;
sbit EX0 = 0xA8;

/* IP */
sbit PS = 0xBC;
sbit PT1 = 0xBB;
sbit PX1 = 0xBA;
sbit PT0 = 0xB9;
sbit PX0 = 0xB8;

/* P3 */
sbit RD = 0xB7;
sbit WR = 0xB6;
sbit T1 = 0xB5;
sbit T0 = 0xB4;
sbit INT1 = 0xB3;
sbit INT0 = 0xB2;
sbit TXD = 0xB1;
sbit RXD = 0xB0;

/* SCON */
sbit SM0 = 0x9F;
sbit SM1 = 0x9E;
sbit SM2 = 0x9D;
sbit REN = 0x9C;
sbit TB8 = 0x9B;
sbit RB8 = 0x9A;
sbit TI = 0x99;
sbit RI = 0x98;

#endif
--------------------------------------------------------------
/*--------------------------------------------------------------------------
REG52.H

Header file for generic 80C52 and 80C32 microcontroller.
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/

#ifndef __REG52_H__
#define __REG52_H__

/* BYTE Registers */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;

/* 8052 Extensions */
sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;

/* BIT Registers */
/* PSW */
sbit CY = PSW^7;
sbit AC = PSW^6;
sbit F0 = PSW^5;
sbit RS1 = PSW^4;
sbit RS0 = PSW^3;
sbit OV = PSW^2;
sbit P = PSW^0; //8052 only

/* TCON */
sbit TF1 = TCON^7;
sbit TR1 = TCON^6;
sbit TF0 = TCON^5;
sbit TR0 = TCON^4;
sbit IE1 = TCON^3;
sbit IT1 = TCON^2;
sbit IE0 = TCON^1;
sbit IT0 = TCON^0;

/* IE */
sbit EA = IE^7;
sbit ET2 = IE^5; //8052 only
sbit ES = IE^4;
sbit ET1 = IE^3;
sbit EX1 = IE^2;
sbit ET0 = IE^1;
sbit EX0 = IE^0;

/* IP */
sbit PT2 = IP^5;
sbit PS = IP^4;
sbit PT1 = IP^3;
sbit PX1 = IP^2;
sbit PT0 = IP^1;
sbit PX0 = IP^0;

/* P3 */
sbit RD = P3^7;
sbit WR = P3^6;
sbit T1 = P3^5;
sbit T0 = P3^4;
sbit INT1 = P3^3;
sbit INT0 = P3^2;
sbit TXD = P3^1;
sbit RXD = P3^0;

/* SCON */
sbit SM0 = SCON^7;
sbit SM1 = SCON^6;
sbit SM2 = SCON^5;
sbit REN = SCON^4;
sbit TB8 = SCON^3;
sbit RB8 = SCON^2;
sbit TI = SCON^1;
sbit RI = SCON^0;

/* P1 */
sbit T2EX = P1^1; // 8052 only
sbit T2 = P1^0; // 8052 only

/* T2CON */
sbit TF2 = T2CON^7;
sbit EXF2 = T2CON^6;
sbit RCLK = T2CON^5;
sbit TCLK = T2CON^4;
sbit EXEN2 = T2CON^3;
sbit TR2 = T2CON^2;
sbit C_T2 = T2CON^1;
sbit CP_RL2 = T2CON^0;

#endif本回答被提问者采纳

请问<reg52.h> 用来定义什么的? 都包括什么?
是c51(用于单片机开发的一种c语言)的头文件。类似于头文件AT89X52.h。这两个头文件基本是一样的,只是在使用时对位的定义不一样,at89x52.h文件中对P1.1的操作是写成P1_1;reg52.h文件中的操作则写成P1^1。表示方法不一样而已。另外前者是特指ATMEL公司的52系列单片机,后者指所有52系列的单...

单片机里面的寄存器的字节地址是用来干什么的,怎么用?
首先,地址的作用只有一个,就是用来寻址。其次,51单片机的的片内寄存器都是可以字节寻址的。字节地址就是用来寻址一个字节的内容,和位地址相对应,位地址就只能寻址一个位(bit)。在单片机指令中寻址任何一个字节都需要字节地址,寻址任何一个位都需要位地址。所谓的IP、IE不过是我们给这个寄存器取了...

keil软件里面c语言包含哪些头文件?做什么用的?尽量多列举点
在Keil\\C51\\INC里,你可以看见不同公司的文件夹,里面都有不同型号单片机的头文件,这些头文件里大部分是位定义和特殊寄存器的定义。比如你说的AT89X52.H和AT89X51.H吧,52比51多一个定时器,那就多了那个特殊寄存器的定义,再比如REG52.H这个头文件吧,它不对应一款单片机,它是52的通用寄存器定义头文件 还有一些...

请问:单片机使用C语言编程,怎样控制led灯的完成亮度强弱变换?
这每10次脉冲再用来控制高低电平的10个比值。这样,在每个1\/120秒的方波周期中,我们都可以改变方波的输出占空比,从而控制LED灯的10个级别的亮度。\/ define uchar unsigned char define uint unsigned int define ulong unsigned long include <reg52.h> \/\/包括一个52标准内核的头文件 sbit P10 = P1...

单片机检测和处理按键时怎样不干扰数码管的显示?
include<reg52.h> \/\/包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit KEY_ADD=P3^3; \/\/定义按键输入端口 sbit KEY_DEC=P3^4;sbit LED=P1^2; \/\/定义led输出端口 define DataPort P0 \/\/定义数据端口 程序中遇到DataPort 则用P0 替换 sbit LATCH1=P2^0;\/\/定义锁存使能...

sbit led1=P1^1;,那个是什么意思?
sbit 是用来定义特殊寄存器中的位标志,而 reg52.h 中有 sfr P1 = 0x90; 一行,所以 sbit led1=P1^1; 是定义 led1 是一个 sbit ,取 P1 的第1位

iphone4最新版本更新之后是不是锁屏美化都恢复出厂设置了
如果不是越狱过用插件美化的,升级以后还原数据和同步软件后还会再的。但是越狱的就不会在了,要重新越狱安装设置

单片机sfr是什么意思,求通俗易懂的讲解
其实这些东西你不用过于研究的,你了解一下就可以,因为我们在写程序中肯定有一个reg52.h的头文件,因为定义名字这个事情就在这个头文件里面了,你会调用就行,不用过于研究。如果你想学习更多单片机和程序的知识,可以看看我整理好的“17个实验学会单片机”,百度一下“17个实验学会单片机”就可以看到在...

8031微控制器定时器T0的四种工作方式是什么?
51微控制器,定时器0和定时器1,都设为工作方式1,能否同时工作 可以,他们是独立工作,如果是中断的话,定时器0的优先顺序高于定时器1 如何利用定时器T0的工作方式1实现1秒钟延时程式(微控制器)? 1、#include <reg52.h> 2、#define uchar unsigned char 3、#define uint unsigned int 4、 ...

TMOD=0X11是什么意思?
TMOD是定时器工作方式寄存器,T表示time,mod表示model,模式的意思,ox11表示定时器的第4种工作方式仅适用于T0。分成两个8位计数器,T1停止计数,ET0=1开定时器0 中断,TR0=1启动定时器0,EA开总中断。interrupt 3#include<reg52.h>#include<intrins.h> define uchar unsigned char#define uint ...

相似回答