注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
447176737的个人空间 https://home.eeworld.com.cn/space-uid-584988.html [收藏] [复制] [分享] [RSS]
日志

《51单片机特殊功能寄存器》(就是头文件说明)

已有 1227 次阅读2014-11-11 23:09 | c语言编程, 单片机, 寄存器, 软件

就是keil软件c语言编程的REG51.H

 

 

 

/*--------------------------------------------------------------------------

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;       这两位用于选择当前工作寄存器区。805188位寄存器R0~R7,它们在RAM中的地址可以根据用户需要来确定。  

 sbit RS0  = 0xD3;      RS1 RS0R0~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;     外部中断请求标志位,产生中断时由硬件置位,当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;    SM0SM1控制串行口的工作方式。00(方式0):移位寄存器方式

sbit SM1  = 0x9E;   (用于扩展I/O口);01(方式1)8UART,波特率可变;10(方式2):位                                       UART,波特率为f/64f/32; 11(方式3):9UART,波特率为f/64f/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;      串行口发送中断请求标志位,当串行口发送完一帧数据后请求中断,由硬件置位,软件清零

评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章