视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
51头文件详细介绍
2025-10-05 17:04:41 责编:小OO
文档
/*------------------------------------------------------------------

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 X

#define X

Y

#endif

说明:如果定义了宏X,则执行#endif后的,否则执行#define X,

定义宏并编译后面的程序段Y,直到#endif。

作用:可防止重复编译头文件

********************************************************************/

#ifndef __REG51_H__ //宏定义

#define __REG51_H__ //宏定义

/* BYTE Register */

/********************************************************************

特殊功能寄存器声明

格式:sfr 名称 = 特殊功能寄存器地址

********************************************************************/

sfr P0 = 0x80;//P0口寄存器

sfr P1 = 0x90;//P1口寄存器

sfr P2 = 0xA0;//P2口寄存器

sfr P3 = 0xB0;//P3口寄存器

sfr PSW = 0xD0;//程序状态字

sfr ACC = 0xE0;//累加器A,主要用于加减

sfr B = 0xF0;//寄存器B,主要用于乘除

sfr SP = 0x81;//堆栈指针

sfr DPL = 0x82;//数据指针DPTR的低八位

sfr DPH = 0x83;//数据指针DPTR的高八位

sfr PCON = 0x87;//电源管理寄存器

sfr TCON = 0x88;//定时/计数器控制

sfr TMOD = 0x;//定时/计数器工作方式控制

sfr TL0 = 0x8A;//定时器0低8位的初值

sfr TL1 = 0x8B;//定时器1低8位的初值

sfr TH0 = 0x8C;//定时器0高8位的初值

sfr TH1 = 0x8D;//定时器1高8位的初值

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;//工作寄存器选择位,和RS0一同

sbit RS0 = 0xD3;//工作寄存器选择位

sbit OV = 0xD2;//溢出标志位

sbit P = 0xD0;//奇偶校验

/* TCON */

/******************************************************************

定时器/计数器控制寄存器位声明

格式:sbit 名称 = 位地址

******************************************************************/

sbit TF1 = 0x8F;//时钟溢出中断1

sbit TR1 = 0x8E;//时钟1开关

sbit TF0 = 0x8D;//时钟溢出中断1

sbit TR0 = 0x8C;//时钟0开关

sbit IE1 = 0x8B;//外部中断1请求标志位

sbit IT1 = 0x8A;//外部中断1触发控制位

sbit IE0 = 0x;//外部中断0请求标志位

sbit IT0

= 0x88;//外部中断0触发控制位

/* IE */

/*****************************************************************

中断允许控制寄存器位声明

格式 sbit 名称 = 位地址

******************************************************************/

sbit EA = 0xAF; //中断开放控制位

sbit ES = 0xAC; //串行中断开放控制位

sbit ET1 = 0xAB; //定时器1中断控制位

sbit EX1 = 0xAA; //外部中断1开放控制位

sbit ET0 = 0xA9; //定时器0中断控制位

sbit EX0 = 0xA8; //外部中断0开放控制位

/* IP */

/*****************************************************************

中断优先级控制寄存器位声明

格式 sbit 名称 = 位地址

*****************************************************************/

sbit PS = 0xBC; //串行 优先级控制位

sbit PT1 = 0xBB; //定时/计数器优先级控制位

sbit PX1 = 0xBA; //外部中断 优先级控制位

sbit PT0 = 0xB9; //定时/计数器优先级控制位

sbit PX0 = 0xB8; //外部中断 优先级控制位

/* P3 */

/****************************************************************

P3口位声明

格式 sbit 名称 = 位地址

****************************************************************/

sbit RD = 0xB7; //读

sbit WR = 0xB6; //写

sbit T1 = 0xB5; //定时器1

sbit T0 = 0xB4; //定时器0

sbit INT1 = 0xB3; //外部中断1

sbit INT0 = 0xB2; //外部中断0

sbit TXD = 0xB1; //串口发送

sbit RXD = 0xB0; //串口接受

/* SCON */

/****************************************************************

串行口控制寄存器位声明

格式:sbit 名称 = 位地址

****************************************************************/

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 //结束条件编译下载本文

显示全文
专题