51单片机头文件reg51.h详解
Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __REG51_H__
#define __REG51_H__
/*BYTE Register*/
sfr P0= 0x80;//三态双向IO口P0口 此句话的意思是:特殊功能寄存器 P0 地址为0x80 ,可位寻址,下同
//低8位地址总线/数据总线(一般不用而只作普通I/O口,注意作I/O口用时,硬件上需接上接电阻)
sfr P1= 0x90;//准双向IO口P1口
sfr P2= 0xA0;//准双向IO口P2口
//高8位地址总线,一般也作普通I/O用
sfr P3= 0xB0;//双功能
//1.准双向IO口P3口
//2.P30RXD串行数据接受
//P31TXD串行数据发送
//P32外部中断0信号申请
//P33外部中断1信号申请
//P34定时/计数器T0外部计数脉冲输入
//P35定时/计数器T1外部计数脉冲输入
//P36WR片外RAM写脉冲信号输入
//P37 RD片外ram读脉冲信号输入
sfr PSW= 0xD0;//可以位寻址(C语言编程时可不考虑此寄存器)
//程序状态寄存器Program Status WORD(程序状态信息)
//psw.7(CY)进位标志
//psw.6(AC)辅助进位标志位低四位向高四位进位或借位时AC=1
//主要用于十进制调整
//psw.5(F0)用户可自定义的程序标志位
//psw.4(RS1)
//psw.3(RS0)
//工作寄存器选择位
//任一时刻只有一组寄存器在工作
//0 00区00H~07H
//0 11区08H~0fH
//1 02区10H~17H
//1 13区18H~1FH
//psw.2(OV)溢出标志位
//psw.1()保留为,不可使用
//psw.0(P)奇偶校验位
sfr ACC= 0xE0;//累加器A特殊功能寄存器可位寻址
sfr B= 0xF0;//寄存器B主要用于乘除运算
sfr SP= 0x81;//堆栈指针寄存器SP存放站定栈顶地址、
sfr DPL= 0x82;//
sfr DPH= 0x83;//数据指针寄存器DPTR、//对片外RAM及扩展IO进行存取用的地址指针
sfr PCON = 0x87;//电源控制寄存器、不能位寻址
//管理单片机的电源部分包括上电复位、掉电模式、空闲模式等
//单片机复位时PCON被全部清0,编程时一般是用到SMOD位,其它的一般不用
//D7SMOD该位与串口通信波特率有关
//SMOD=0串口方式1 2 3波特率正常
//SMOD=1串口方式1 2 3波特率加倍
sfr TCON = 0x88;//定时器/计数器控制寄存器可以位寻址
//D7 TF1定时器1溢出标志位
//D6TR1定时器1运行控制位
//D5TF0定时器0溢出标志位
//D4TR0定时器0运行控制位
//D3IE1外部中断1请求标志
//D2IT1外部中断1触发方式选择位
//D1IE0外部中断0请求标志
//D0IT0外部中断0触发方式选择位
sfr TMOD = 0x89;//定时器/计数器工作方式寄存器不能位寻址
//确定工作方式和功能
//D7GATE门控制位
//GATE=0;定时器/计数器由TRX(x=0,1)来控制
//GATE=1;定时器/计数器由TRX(x=0,1)
//和外部中断引脚(init0,1)来共同控制
//D6C/T定时器、计数器选择位
//0选择定时器模式
//1选择计数器模式
//D5M1
//D4M0
//M1M0工作方式
//00方式013位定时器/计数器
//01方式116位定时器/计数器
//10方式28位自动重装定时器/计数器
//11方式3仅适用T0分成两个8位计数器,T1停止计数
//D3GATE门控制位
//GATE=0;定时器/计数器由TRX(x=0,1)来控制
//GATE=1;定时器/计数器由TRX(x=0,1)
//和外部中断引脚(init0,1)来共同控制
//D2C/T定时器、计数器选择位
//0选择定时器模式
//1选择计数器模式
//D1M1
//D0M0
//M1M0工作方式
//00方式013位定时器/计数器
//01方式116位定时器/计数器
//10方式28位自动重装定时器/计数器
//11方式3仅适用T0分成两个8位计数器,T1停止计数
sfr TL0= 0x8A;//定时器/计数器0高8位容器 加1计数器
sfr TL1= 0x8B;//定时器/计数器1高8位容器
sfr TH0= 0x8C;//定时器/计数器0低8位容器
sfr TH1= 0x8D;//定时器/计数器1低8位容器
sfr IE= 0xA8;//中断允许寄存器可以位寻址
//D7 EA全局中断允许位
//D6NULL
//D5ET2定时器/计数器2中断允许位interrupt 5
//D4 ES串行口中断允许位interrupt 4
//D3 ET1定时器/计数器1中断允许位interrupt 3
//D2 EX1外部中断1中断允许位interrupt 2
//D1 ET0定时器/计数器0中断允许位interrupt 1
//D0 EX0外部中断0中断允许位interrupt 0
sfr IP= 0xB8; //中断优先级寄存器可进行位寻址
//D7NULL
//D6NULL
//D5NULL
//D4PS串行口中断定义优先级控制位
//1串行口中断定义为高优先级中断
//0串行口中断定义为低优先级中断
//
//D3PT1
//1定时器/计数器1中断定义为高优先级中断
//0定时器/计数器1中断定义为低优先级中断
//D2PX1
//1外部中断1定义为高优先级中断
//0外部中断1定义为低优先级中断
//D1PT0
//1定时器/计数器0中断定义为高优先级中断
//0定时器/计数器0中断定义为低优先级中断
//D0PX0
//1外部中断0定义为高优先
51单片机头文件reg51 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)