51单片机特殊功能寄存器详细说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
/*--------------------------------------------------------------------------
REG51.H
Header file for generic 80C51 and 80C31 microcontroller.
Copyright (c) 1988-2001 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
/* BYTE Register */
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0; 程序状态字
sfr ACC = 0xE0; 累加器
sfr B = 0xF0; B寄存器
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 IE = 0xA8; 中断允许寄存器
sfr IP = 0xB8; 中断优先级寄存器
sfr SCON = 0x98; 串行控制寄存器
sfr SBUF = 0x99; 串行数据缓冲器
/* BIT Register */
/* PSW */ 程序状态字
sbit CY = 0xD7; 有无进位或者借位
sbit AC = 0xD6; Auxiliary Carry有无低四位向高四位的进位或借位
sbit F0 = 0xD5; 用户管理的标志位,可根据自己的需求设定
sbit RS1 = 0xD4; 这两位用于选择当前工作寄存器区。8051有8个8位寄存器R0~R7,它
们在RAM中的地址可以根据用户需要来确定。
sbit RS0 = 0xD3; RS1 RS0:R0~R7的地址0 0:00H~07H 0 1:08H~0FH 1
0:10H~17H 1 1:18H~1FH
sbit OV = 0xD2; 溢出标志位
sbit P = 0xD0; 奇偶校验位1的个数为奇数,P=1;
/* TCON */ 定时器/计数器控制寄存器
sbit TF1 = 0x8F; 定时器/计数器1溢出中断请求标志,当溢出时由硬件置位,当CPU响应中
断时由硬件清0
sbit TR1 = 0x8E; 启动定时器1
sbit TF0 = 0x8D; 定时器/计数器0溢出中断请求标志,当溢出时由硬件置位,当CPU响应中
断时由硬件清0
sbit TR0 = 0x8C; 启动定时器0
sbit IE1 = 0x8B; 外部中断1请求标志位,产生中断时由硬件置位,当CPU响应中断时由硬件清0
sbit IT1 = 0x8A; 外部中断1的触发方式选择位,当IT1=1时,INT1引脚上从高到低的负跳变触发中断,当IT1=0时,INT1引脚上的低电平触发中断
sbit IE0 = 0x89; 外部中断0 请求标志位,产生中断时由硬件置位,当CPU响应中断时由硬
件清0
sbit IT0 = 0x88; 外部中断0的触发方式选择位,当IT0=1时,INT0引脚上从高到低的负跳变触发中断,当IT0=0时,INT1引脚上的低电平触发中断
/* IE */ 中断允许寄存器
sbit EA = 0xAF; 中断总控制位
sbit ES = 0xAC; 串行口中断允许位
sbit ET1 = 0xAB; 定时器/计数器1溢出中断允许位
sbit EX1 = 0xAA; 外部中断1的溢出允许位
sbit ET0 = 0xA9; 定时器/计数器0溢出中断允许位
sbit EX0 = 0xA8; 外部中断0的溢出允许位
/* IP */ 中断优先级寄存器
sbit PS = 0xBC; 串行口中断优先级控制位
sbit PT1 = 0xBB; 定时器/计数器1中断优先级控制位
sbit PX1 = 0xBA; 外部中断1中断优先级控制位
sbit PT0 = 0xB9; 定时器/计数器0中断优先级控制位
sbit PX0 = 0xB8; 外部中断0中断优先级控制位
/* P3 */
sbit RD = 0xB7; 外部RAM写选通信号(输出)
sbit WR = 0xB6; 外部RAM写选通信号(输入)
sbit T1 = 0xB5; 计数器1计数输入
sbit T0 = 0xB4; 计数器0计数输入
sbit INT1 = 0xB3; 外部中断1输入
sbit INT0 = 0xB2; 外部中断0输入
sbit TXD = 0xB1; 串行数据发送口
sbit RXD = 0xB0; 串行数据接收口
/* SCON */ 串行口中断控制寄存器
sbit SM0 = 0x9F; SM0和SM1控制串行口的工作方式。00(方式0):移位寄存器方式
sbit SM1 = 0x9E; (用于扩展I/O口);01(方式1):8位UART,波特率可变;10(方式2):9 位UART,波特率为f/64或f/32; 11(方式3):9位UART,波特率为f/64或f/32 sbit SM2 = 0x9D; 允许方式2和方式3进行多机通信控制位。
sbit REN = 0x9C; 允许串行接收控制位
sbit TB8 = 0x9B; 工作在方式2和方式3时要发送的第九位数据
sbit RB8 = 0x9A; 工作在方式2和方式3时要接收的第九位数据
sbit TI = 0x99; 串行口接收中断请求标志位,当串行口接收完一帧数据后请求中断,由硬件置位,软件清零
sbit RI = 0x98; 串行口发送中断请求标志位,当串行口发送完一帧数据后请求中断,由硬件置位,软件清零