⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stc89c54rd.h

📁 RTL8019以太网开发板资料
💻 H
📖 第 1 页 / 共 2 页
字号:
/********************************************************************** 
Date:          2007 09 21                                                        
************************************************************************/

/************************************************************************/
#ifndef T89C51_H
#define T89C51_H
/************************************************************************/                                  
/* ................................... 寄存器定义 ............................................ */

sfr     P0          =   0x80;   /* 漏极开路双向I/O口;地址/数据复用.复位值:11111111b */         

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;
/* ............................................................................................ */
sfr     SP          =   0x81;   /* 堆栈指针寄存器.复位值:00000111b */

sfr     DPL         =   0x82;   /* DPTR,DPTR1通过AUXR1切换 */
sfr     DPH         =   0x83;
/* ............................................................................................ */
sfr     PCON        =   0x87;   /* 电源控制.复位值:00x10000b */          
#define SMOD            0x80    /* 1:使波特率加倍(模式1,2,3) */
#define SMOD0           0x40    /* 1:SCON.7(SCON1.7)表示帧检测使能; 0:标准8052功能 */
#define PCON_REV5       0x20    /* 保留 */
#define POF             0x10    /* Power-off 标记 */
#define GF1             0x08    /* 用户标志位 */
#define GF0             0x04    /* 用户标志位 */
#define PD              0x02    /* 1:关机模式 */
#define IDL             0x01    /* 1:空闲模式.串口,定时器,中断模块继续工作 */
/* ............................................................................................ */
sfr     TCON        =   0x88;   /* 时钟控制.复位值:00000000b */

sbit    TF1         =   TCON^7; /* timer1溢出标志,进入中断服务程序后自动清零.可软件置复位 */
sbit    TR1         =   TCON^6; /* 1:timer1开始计时/计数; 0:timer1停止计时/计数 */
sbit    TF0         =   TCON^5; /* timer0溢出标志,进入中断服务程序后自动清零.可软件置复位 */
sbit    TR0         =   TCON^4; /* 1:timer0开始计时/计数; 0:timer0停止计时/计数 */
sbit    IE1         =   TCON^3; /* 外部中断1,边沿触发时进入中断服务程序硬件清零 */
sbit    IT1         =   TCON^2; /* 外部中断1类型. 1:下降沿触发; 0:低电平触发 */
sbit    IE0         =   TCON^1; /* 外部中断0,边沿触发时进入中断服务程序硬件清零 */
sbit    IT0         =   TCON^0; /* 外部中断0类型. 1:下降沿触发; 0:低电平触发 */
/* ............................................................................................ */
sfr     TMOD        =   0x89;   /* 计数器模式控制.复位值:00000000b */

#define GATE1           0x80    /* 门控制1. 1:INT1引脚为高 和 TR1置位使能TIMER1; 0:只需TR1置位 */
#define CT1             0x40    /* 定时器1,计数器1选择. 1:计数T1引脚上的脉冲; 0:定时器 */

#define T1M1            0x20    /* 模式控制位. 00:13位模式; 01:无预置的16位模式 */
#define T1M0            0x10    /* 10:自动从TH1加载的8位模式; 11:停止计数器 */

#define GATE0           0x08    /* 门控制0. 1:INT0 和 TR0同时置位使能TIMER0; 0:只需TR0置位 */
#define CT0             0x04    /* 定时器0,计数器0选择. 1:计数T0引脚上的脉冲; 0:定时器 */

#define T0M1            0x02    /* 模式控制位. 00:13位模式; 01:无预置的16位模式 */
#define T0M0            0x01    /* 10:自动从TH0加载的8位模式; 11:TL0,TH0分别是一个8位定时器/计数器. */
/* ............................................................................................ */
sfr     TL0         =   0x8a;   /* timer0低八位.复位值:00000000b */

sfr     TL1         =   0x8b;   /* timer1低八位.复位值:00000000b */

sfr     TH0         =   0x8c;   /* timer0高八位.复位值:00000000b */

sfr     TH1         =   0x8d;   /* timer1高八位.复位值:00000000b */
/* ............................................................................................ */
sfr     AUXR        =   0x8e;   /* 辅助寄存器.复位值:xx0x1000b */

#define AUXR_REV7       0x80    /* 保留  */
#define AUXR_REV6       0x40    /* 保留 */

#define AUXR_REV5       0x20    /* 保留 */
#define AUXR_REV4       0x10    /* 保留 */

#define AUXR_REV3       0x08    /* 保留 */
#define AUXR_REV2       0x04    /* 保留 */

#define EXTRAM          0x02    /* XRAM读写方式(0~0XFF)
                                   0:允许访问内部扩展RAM
                                   1:禁止访问内部扩展RAM */
#define ALEOFF          0x01    /* ALE操作模式. 
                                   0:允许ALE信号输出
                                   1:禁止ALE信号输出 */                         
/* ............................................................................................ */
sfr     P1          =   0x90;   /* 通用I/O,第二功能口.复位值:11111111b */

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    P1_1        =   P1^1;   /* T2EX,定时器/计数器2 重载/捕捉触发 */
sbit    P1_0        =   P1^0;   /* T2,计数器2输入口 */
/* ............................................................................................ */
sfr     SCON        =   0x98;   /* 串口0控制.复位值:00000000b */

sbit    FE          =   SCON^7; /* PCON.SMOD0为1时此位为帧错误位. 1:表示有帧错误,需软件清零 */

sbit    SM0         =   SCON^7; /* 00:8位同步模式,波特率1/12或1/6 Tclk;   01:10位异步模式,波特率可变 */
sbit    SM1         =   SCON^6; /* 10:11位异步模式,波特率1/32或1/64Tclk; 11:11位异步模式,波特率可变 */

sbit    SM2         =   SCON^5; /* 在模式2,3,置1表示多机通信; 在模式0应该置零 */
sbit    REN         =   SCON^4; /* 1:接收使能; 0:禁止接收 */
sbit    TB8         =   SCON^3; /* 多机通信时发送的第9位 */
sbit    RB8         =   SCON^2; /* 多机通信时收到的第9位.
                                   在模式1如果SM2为0,则RB8就是接收到的停止位 */
sbit    TI          =   SCON^1; /* 发送完成,由软件清零 */
sbit    RI          =   SCON^0; /* 接收了一字节数据,由软件清零 */
/* ............................................................................................ */
sfr     SBUF        =   0x99;   /* 串口0接收发送缓冲.复位值:xxxxxxxxb */
/* ............................................................................................ */
sfr     P2          =   0xa0;   /* 内部上拉的双向I/O口;高8位地址.复位值:11111111b */

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;
/* ............................................................................................ */
sfr     AUXR1       =   0xa2;   /* 辅助寄存器1.复位值:xxxx00x0b */

#define AUXR1_REV7      0x80    /* 保留 */
#define AUXR1_REV6      0x40    /* 保留 */
#define AUXR1_REV5      0x20    /* 保留 */
#define AUXR1_REV4      0x10    /* 保留 */
#define GF2             0x08    /* 用户标志 */
#define AUXR1_REV2      0x04    /* 必须为0 */
#define AUXR1_REV1      0x02    /* 保留 */
#define DPS             0x01    /* 0:选择DPTR0 1:选择DPTR1 */                               
/* ............................................................................................ */
sfr     IE          =   0xa8;   /* 中断使能寄存器.复位值:00000000b */

sbit    EA          =   IE^7;   /* 中断总开关 */
sbit    EC          =   IE^6;   /* PCA中断使能 */
sbit    ET2         =   IE^5;   /* time2中断使能 */
sbit    ES          =   IE^4;   /* 串口0中断使能 */
sbit    ET1         =   IE^3;   /* time1中断使能 */
sbit    EX1         =   IE^2;   /* 外部中断1使能 */
sbit    ET0         =   IE^1;   /* time0中断使能 */
sbit    EX0         =   IE^0;   /* 外部中断0使能 */
/* ............................................................................................ */
sfr     SADDR       =   0xa9;   /* 串口0的广播地址.复位值:00000000b */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -