51单片机特殊功能寄存器详细说明

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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; 串行口发送中断请求标志位,当串行口发送完一帧数据后请求中断,由硬件置位,软件清零

相关文档
最新文档