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

📄 89c51.h

📁 AT89S52单片机驱动带字库的LCD12864液晶屏实现图形显示
💻 H
📖 第 1 页 / 共 2 页
字号:
/*-------------------------------------------------------------------------
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;

⌨️ 快捷键说明

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