查看: 3963|回复: 2

89系列单片机头文件89x5x.h,带中文解释

[复制链接]
发表于 2011-4-6 19:00:13 | 显示全部楼层 |阅读模式
关键词: 单片机 , 寄存器 , 中文解释
/*-------------------------------------------------------------------------
89X5X_H    Header file for 89CXX controller
Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc^
All rights reserved^
--------------------------------------------------------------------------*/#ifndef __89x5X_H__
#define __89x5X_H__//  8051 core
sfr ACC    = 0xE0;//累加器A  (可位寻址)
sfr B      = 0xF0;//寄存器B  (可位寻址)
sfr DPL    = 0x82;//数据指针低位 (不可位寻址)
sfr DPH    = 0x83;//数据指针高位 (不可位寻址)
sfr SP     = 0x81;//堆栈指针 (不可位寻址)
sfr SBUF   = 0x99;//串行数据缓冲器 (不可位寻址)
sfr TL0    = 0x8A;//T0低字节 (不可位寻址)
sfr TL1    = 0x8B;//T1低字节 (不可位寻址)
sfr TH0    = 0x8C;//T0高字节 (不可位寻址)
sfr TH1    = 0x8D;//T1高字节 (不可位寻址)sfr PSW    = 0xD0;//状态 (标志) 寄存器 (可位寻址)
/************************************************************************
BIT7             CY               (进位标志位)
BIT6             AC               ( 辅助进位标志位,当进行加、减运算时当有低4位向高4位进位或
                                    借位时,AC置位,否则被清零。AC辅助进位位也常用于十进制调整)
BTT5             F0               (用户标志位0,供用户设置的标志位)
BIT4~BIT3        RS1~RS0          (寄存器组选择位)
BIT2             OV               (溢出标志位)
BIT1             F1               (用户标志位1,供用户设置的标志位)
BIT0             P                (奇偶校验位)
*************************************************************************/sfr SCON   = 0x98;//串口 (控制及标志) 寄存器 (可位寻址)
/************************************************************************
BIT7~BIT6        SM1~SM0          (串口的工作方式选择:00B 为同步8位工作方式0
                                                       01B 为定波特绿
                                                       10B 为
                                                       11B 为)
BTT5             SM2              (多机通信控制位,仅在工作方式2和3有效)
BIT4             REN              (允许接收控制位)
BIT3             TB8              (发送数据位8,多机通信中,0代表当前发送内容是数据,1代表地址)
BIT2             RB8              (接收数据位8,存放接收到的第9位数据)
BIT1             TI               (发送中断标志位,1有效,需软件清0)
BIT0             RI               (发送中断标志位,1有效,需软件清0)
*************************************************************************/sfr IE     = 0xA8;//中断使能 (控制) 寄存器 (可位寻址)
/************************************************************************
BIT7             EA           (全局中断使能控制位,1有效)  
BIT6             ---            
BIT5             ET2            (定时器2中断使能控制位,1有效)
BIT4             ES            (串口中断使能控制位,1有效)
BIT3             ET1              (定时计数器1中断使能控制位,1有效)
BIT2             EX1           (外部中断1中断使能控制位,1有效)
BIT1             ET0              (定时计数器0中断使能控制位,1有效)
BIT0             EX0           (外部中断0中断使能控制位,1有效)
*************************************************************************/sfr IP     = 0xB8;//中断优先级 (控制) 寄存器 (可位寻址)
/************************************************************************
BIT7             ---           
BIT6             ---            
BIT5             PT2            (为1时T2中断设置为高优先级)
BIT4             PS            (为1时串口中断设置为高优先级)
BIT3             PT1              (为1时T1中断设置为高优先级)
BIT2             PX1           (为1时外部中断1设置为高优先级)
BIT1             PT0              (为1时T0中断设置为高优先级)
BIT0             PX0           (为1时外部中断0设置为高优先级)
*************************************************************************/sfr TCON   = 0x88;//T1,T0及INT1,INT0 (控制及标志) 寄存器 (可位寻址)
/************************************************************************
BIT7             TF1            (定时计数器1中断标志位,1有效,硬件自动清0)           
BIT6             TR1            (定时计数器1启动控制位,1有效)            
BIT5             TF0            (定时计数器0中断标志位,1有效,硬件自动清0)
BIT4             TR0           (定时计数器0启动控制位,1有效)
BIT3             IE1              (外部中断1中断标志位,1有效,硬件自动清0)
BIT2             IT1           (外部中断1引起中断的方式: 0为低电平触发,1为下降沿触发)
BIT1             IE0              (外部中断0中断标志位,1有效,硬件自动清0)
BIT0             IT0           (外部中断0引起中断的方式: 0为低电平触发,1为下降沿触发)
*************************************************************************/sfr TMOD   = 0x89;//T1,T0 (控制及标志) 寄存器 (不可位寻址)
/************************************************************************
BIT7             GATE1            (T1启动是否与"/INT1"引脚相关)
BIT6             C/T1             (0时T1为定时,1时TI为计数)
BIT5~BIT4        T1M1~T1M0     (T1的工作模式)
BIT3             GATE1            (T0启动是否与"/INT0"引脚相关)
BIT2             C/T1             (0时T0为定时,1时T0为计数)
BIT1~BIT0        T0M1~T0M0   (T0的工作模式)
*************************************************************************/sfr PCON   = 0x87;//电源 (控制) 寄存器 (不可位寻址)
/************************************************************************
BIT7             SMOD           (为串行口波特率倍率控制位,用于串行通信)   
//=====以下仅STC89系列和AT89S5X系列有效         
BIT6             SMOD0                 
BIT5             ---
BIT4             POF            (上电复位标志位: 1则表明该复位为上电复位,可由软件清0
                                                   0则表明该复位为外部手动复位或看门狗复位)
BIT3~BIT2        GF1~GF0          (通用标志位,描述中断是来自正常运行还是来自空
                                            闲方式,用户可通过指令设定它们的状态)            
BIT1             PD              (为1时,进入掉电模式,外部时钟停振,CPU,定时器,
                                             串口全部停止工作,仅由外部中断唤醒)
BIT0             IDL           (为1时,进入空闲模式,CPU不工作,可欲任何一个中断唤醒)
*************************************************************************///  Ports
sfr P0     = 0x80;//端口0(可位寻址)
sfr P1     = 0x90;//端口1(可位寻址)
sfr P2     = 0xA0;//端口2(可位寻址)
sfr P3     = 0xB0;//端口3(可位寻址)//  Timer2
sfr T2CON  = 0xC8;//定时器2的 (控制标志) 寄存器 (可位寻址)
/************************************************************************
BIT7             TF2            (定时计数器2中断标志位,1有效,必须由软件清0,
                                   当该定时器作为波特率时不置该标志位)
BIT6             EXF2            (定时计数器2外部中断标志位,1有效,必须软件清0,
                                    当EXEN2为1且T2EX引脚负跳变产生捕获或重装时引
                                     起该中断标志位置1,在递增/递减模式即T2MOD中的
                                     DCEN = 1时及,EXF2为1不会引起中断)            
BIT5             RCLK           (为1时定时计数器2溢出脉冲作为串口接收波特率)
BIT4             TCLK           (为1时定时计数器2溢出脉冲作为串口发送波特率)
BIT3             EXEN2            (定时计数器2外部中断使能控制位,
                                   当该位为1且RCLK和TCLK同时为0时有效)
BIT2             TR2           (定时计数器2启动控制位,1有效)
BIT1             C/T2             (定时计数器2工作方式选择控制位: 0时为内部定时器
                                                                  1时为外部事件计数器)
BIT0             CP/RL2         (捕获还是重装选择控制位:仅RCLK和TCLK同时为0时有效,
                                   为0时且EXEN2=0,定时计数器2的溢出和T2EX引脚的负跳变
                                   都能使TH2和TL2重装;为1时且EXEN2=1,T2EX引脚负跳变产生
                                   捕获,TH2和TL2清0)
*************************************************************************/sfr T2MOD  = 0xC9;//定时计数器2模式控制寄存器 (不可位寻址)
/************************************************************************
BIT7             ---           0  
BIT6             ---              0
BIT5             ---              0
BIT4             ---              0
BIT3             ---              0
BIT2             ---              0
BIT1             T2OE             (定时计数器2中断T2输出使能控制位,1有效)
BIT0             PX0           (向下计数使能位,为1时定时计数器2倒计数)
*************************************************************************/sfr RCAP2H = 0xCB;//定时计数器2再装入缓冲区高字节 (不可位寻址)
sfr RCAP2L = 0xCA;//定时计数器2再装入缓冲区低字节 (不可位寻址)
sfr TH2    = 0xCD;//定时计数器2高字节 (不可位寻址)
sfr TL2    = 0xCC;//定时计数器2低字节 (不可位寻址)// BIT Registers
// Port0
sbit P0_7  = P0^7;
sbit P0_6  = P0^6;
sbit P0_5  = P0^5;
sbit P0_4  = P0^4;
sbit P0_3  = P0^3;
sbit P0_2  = P0^2;
sbit P0_1  = P0^1;
sbit P0_0  = P0^0;// Port1
sbit P1_7  = P1^7;
sbit P1_6  = P1^6;
sbit P1_5  = P1^5;
sbit P1_4  = P1^4;
sbit P1_3  = P1^3;
sbit P1_2  = P1^2;
sbit T2_EX = P1^1;
sbit T2    = P1^0;// Port2
sbit P2_7  = P2^7;
sbit P2_6  = P2^6;
sbit P2_5  = P2^5;
sbit P2_4  = P2^4;
sbit P2_3  = P2^3;
sbit P2_2  = P2^2;
sbit P2_1  = P2^1;
sbit P2_0  = P2^0;// Port3
sbit RD    = P3^7;
sbit WR    = P3^6;
sbit T1    = P3^5;
sbit T0    = P3^4;
sbit INT1  = P3^3;
sbit INT0  = P3^2;
sbit TXD   = P3^1;
sbit RXD   = P3^0;// PSW
sbit CY    = PSW^7;
sbit AC    = PSW^6;
sbit F0    = PSW^5;
sbit RS1   = PSW^4;
sbit RS0   = PSW^3;
sbit OV    = PSW^2;
sbit F1    = PSW^1;
sbit P     = PSW^0;// SCON
sbit SM0   = SCON^7;
sbit SM1   = SCON^6;
sbit SM2   = SCON^5;
sbit REN   = SCON^4;
sbit TB8   = SCON^3;
sbit RB8   = SCON^2;
sbit TI    = SCON^1;
sbit RI    = SCON^0;// IE
sbit EA    = IE^7;
sbit ET2   = IE^5;
sbit ES    = IE^4;
sbit ET1   = IE^3;
sbit EX1   = IE^2;
sbit ET0   = IE^1;
sbit EX0   = IE^0;// IP
sbit PT2   = IP^5;
sbit PS    = IP^4;
sbit PT1   = IP^3;
sbit PX1   = IP^2;
sbit PT0   = IP^1;
sbit PX0   = IP^0;// TCON
sbit TF1   = TCON^7;
sbit TR1   = TCON^6;
sbit TF0   = TCON^5;
sbit TR0   = TCON^4;
sbit IE1   = TCON^3;
sbit IT1   = TCON^2;
sbit IE0   = TCON^1;
sbit IT0   = TCON^0;// T2CON
sbit TF2    = T2CON^7;
sbit EXF2   = T2CON^6;
sbit RCLK   = T2CON^5;
sbit TCLK   = T2CON^4;
sbit EXEN2  = T2CON^3;
sbit TR2    = T2CON^2;
sbit C_T2   = T2CON^1;
sbit CP_RL2 = T2CON^0;
//以下仅STC89C5X系列有效
sfr AUXR       = 0x8E;//扩展RAM管理及禁止ALE输出控制寄存器 (不可位寻址)
/************************************************************************
BIT7             ---           0  
BIT6             ---              0
BIT5             ---              0
BIT4             ---              0
BIT3             ---              0
BIT2             ---              0
BIT1             EXTRAM           (为0时允许使用内部扩展的RAM,为1时使用同普通 51 MCU)
BIT0             ALEOFF          (为0时允许ALE一直输出固定的频率信号,
                                   为1时仅在对外存储器有操作时输出ALE控制信号)
*************************************************************************/sfr AUXR1      = 0xA2;//双数据指针控制寄存器 (不可位寻址)
/************************************************************************
BIT7             ---           0  
BIT6             ---              0
BIT5             ---              0
BIT4             ---              0
BIT3             GF2              (通用功能用户自定义位)
BIT2             ---              0
BIT1             ---              0
BIT0             DPS          (为0时使用DPTR0,为1时使用DPTR1)
*************************************************************************/sfr IPH        = 0xB7;//中断优先级控制寄存器高位(同IP配合组成4个中断优先级,不可位寻址)
/************************************************************************
BIT7             PX3H           (外部中断3中断设置优先级高位)  
BIT6             PX2H             (外部中断2中断设置优先级高位)
BIT5             PT2H             (定时计数器2中断设置优先级高位)
BIT4             PSH              (串口中断设置优先级高位)
BIT3             PT1H             (定时计数器1中断设置优先级高位)
BIT2             PX1H             (外部中断1中断设置优先级高位)
BIT1             PT0H             (定时计数器0中断设置优先级高位)
BIT0             PX0H         (外部中断0中断设置优先级高位)
                  
中断        代号       优先级0    优先级1    优先级2     优先级3        说明               
INTn      PXnH,PXn       0,0        0,1        1,0         1,1      第n个外部中断
Timer     PTnH,PTn       0,0        0,1        1,0         1,1     第n个定时器中断  
USART      PSH,PS        0,0        0,1        1,0         1,1        串口中断
*************************************************************************/sfr XICON      = 0xC0;//扩展外部中断控制及标志寄存器 (可位寻址)
/************************************************************************
BIT7             PX3           (外部中断3优先级设置低位)  
BIT6             EX3              (外部中断3中断使能控制位,1有效)
BIT5             IE3              (外部中断3中断标志位,1有效)
BIT4             IT3              (外部中断3引起中断的方式: 0为低电平触发,1为下降沿触发)
BIT3             PX2              (外部中断2优先级设置低位)
BIT2             EX2              (外部中断2中断使能控制位,1有效)
BIT1             IE2              (外部中断2中断标志位,1有效)
BIT0             IT2          (外部中断2引起中断的方式: 0为低电平触发,1为下降沿触发)
*************************************************************************/sfr WDT_CONTR  = 0xE1;//看门狗定时器控制寄存器 (不可位寻址)
/************************************************************************
BIT7             ---           
BIT6             ---            
BIT5             EN_WDT    (看门狗启动控制位,1有效)
BIT4             CLR_WDT          (看门狗清零控制位,设置为1看门狗将重新计数,该位硬件自动清0)
BIT3             IDLE_WDT         (看门狗工作方式选择位: 1时看门狗在"空闲模式"下计数
                                                         0时看门狗在"空闲模式"下不计数)
BIT2~BIT0        PS2~PS0          (看门狗定时器分频模式:
                                     0时为2分频,1时为4分频,2时为8分频,3时为16分频
                                     4时为32分频,5时为64分频,6时为128分频,7时为256分频)//PS:看门狗的溢出时间公式 WDT_T(S) = (N*分频值*32768)/晶振频率(Hz)  (其中当在12 Clock 模式
                                                                      N = 12, 在6 Clock 模式
                                                                      N = 6)
*************************************************************************/sfr ISP_DATA   = 0xE2;//=ISP/IAP操作时使用的数据寄存器 (不可位寻址)
sfr ISP_ADDRH  = 0xE3;//=ISP/IAP操作时使用的地址寄存器高字节 (不可位寻址)
sfr ISP_ADDRL  = 0xE4;//=ISP/IAP操作时使用的地址寄存器低字节 (不可位寻址)sfr ISP_CMD    = 0xE5;//=ISP/IAP操作时命令模式寄存器,需设置后ISP/IAP操作才有效 (不可位寻址)
/************************************************************************
BIT7             ---  
BIT6             ---
BIT5             ---
BIT4             ---
BIT3             ---
BIT2~BIT0        B2~B0            (为0时 待机模式,无ISP操作
                                   为1时 对用户程序Flash区或数据Flash区读
                                   为2时 对用户程序Flash区或数据Flash区编程
                                   为3时 对用户程序Flash区或数据Flash区擦除)
*************************************************************************/sfr ISP_TRIG   = 0xE6;//=ISP/IAP操作时的命令触发寄存器 (不可位寻址)
/************************************************************************
在ISPEN(ISP_CONTR.7) = 1时,对ISP_TRIG先写入0x46,再写入0xB9,ISP/IAP命令才能生效
*************************************************************************/sfr ISP_CONTR  = 0xE7;//=ISP/IAP控制寄存器 (不可位寻址)
/************************************************************************
BIT7             ISPEN           (ISP/IAP功能允许位,1有效)  
BIT6             SWBS             (软件选择从用户主程序区启动(0),还是从ISP程序区启动(1))
BIT5             SWRST            (为0时不操作,为1时产生软件复位,硬件自动清0)
BIT4             ---            
BIT3             ---            
BIT2~BIT0        WT2~WT0          (ISP/IAP操作等待的时间,晶振频率越大,设置值越小)
*************************************************************************/sfr P4         = 0xE8;//=P4口 (可位寻址)
/************************************************************************
BIT7             ---
BIT6             ---
BIT5             ---
BIT4             ---
BIT3             P4.3 INT2        (外部中断2输入端口)
BIT2             P4.2 INT3        (外部中断3输入端口)
BIT1             P4.1             (普通I/O口)
BIT0             P4.0         (普通I/O口)
*************************************************************************/// XICON
sbit PX3       = XICON^7;
sbit EX3       = XICON^6;
sbit IE3       = XICON^5;
sbit IT3       = XICON^4;
sbit PX2       = XICON^3;
sbit EX2       = XICON^2;
sbit IE2       = XICON^1;
sbit IT2       = XICON^0;// P4
sbit P4_3      = P4^3;
sbit P4_2      = P4^2;
sbit P4_1      = P4^1;
sbit P4_0      = P4^0;sbit INT3      = P4^2;
sbit INT2      = P4^3;//以下仅STC89LE5X系列有效
sfr P1_ADC_EN  = 0x97;//=P1作为AD转换输入口使能控制寄存器 (不可位寻址)
/************************************************************************
BIT7             ADC_P17          (P1.7作为AD输入口使能控制位)
BIT6             ADC_P16          (P1.6作为AD输入口使能控制位)
BIT5             ADC_P15          (P1.5作为AD输入口使能控制位)
BIT4             ADC_P14          (P1.4作为AD输入口使能控制位)
BIT3             ADC_P13          (P1.3作为AD输入口使能控制位)
BIT2             ADC_P12          (P1.2作为AD输入口使能控制位)
BIT1             ADC_P11          (P1.1作为AD输入口使能控制位)
BIT0             ADC_P10          (P1.0作为AD输入口使能控制位)
*************************************************************************/sfr ADC_CONTR  = 0xC5;//8位AD转换控制及标志寄存器 (不可位寻址)
/************************************************************************
BIT7             ---
BIT6             ---
BIT5             ---
BIT4             ADC_FLAG         (模数转换启动控制位,设置为1开始转换)
BIT3             ADC_START        (模数转换结束标志位,转换完成后,该位置1)
BIT2~BIT0        CHS2~CHS0        (选择P2哪个端口输入进行AD转换)
*************************************************************************/sfr ADC_DATA   = 0xC6;//8位AD转换结果寄存器 (不可位寻址)
#endif
 楼主| 发表于 2011-4-6 19:00:46 | 显示全部楼层
自己顶一个!!
发表于 2011-5-30 21:24:34 | 显示全部楼层
路过顶一下
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表