📄 stk6031.h
字号:
/*
********************************************************************************
*
* LCD控制程序
*
* MCU STK6031的寄存器定义
*
* 文件名 : STK6031.H
* 设计者 : Terry
********************************************************************************
* 功 能 描 述
*
* 1. STK6031和标准的8051是有一定的差异的
********************************************************************************
*/
#ifndef __STK6031_H__
#define __STK6031_H__
#include <absacc.h>
/*
================================================================================
= BYTE Registers
================================================================================
*/
sfr P0 = 0x80;
sfr P1 = 0x90;
sfr P2 = 0xA0;
sfr P3 = 0xB0;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr B = 0xF0;
sfr SP = 0x81;
sfr DPL = 0x82;
sfr DPH = 0x83;
sfr PCON = 0x87;
sfr TCON = 0x88;
sfr TMOD = 0x89;
sfr TL0 = 0x8A;
sfr TL1 = 0x8B;
sfr TH0 = 0x8C;
sfr TH1 = 0x8D;
sfr IE = 0xA8;
sfr IP = 0xB8;
sfr SCON = 0x98;
sfr SBUF = 0x99;
/*
================================================================================
= STK6031所扩充的寄存器,位于8051特殊功能寄存器地址范围内
================================================================================
*/
sfr P4 = 0xC0;
sfr DPL1 = 0x84;
sfr DPH1 = 0x85;
sfr DPS = 0x86;
sfr CHIPCON = 0xBF;
sfr CKCON = 0x8E;
sfr T2CON = 0xC8;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;
sfr XFR_WDT = 0xE1;
sfr XFR_ISPSLV = 0xE2;
sfr XFR_ISPEN = 0xE3;
sfr P0_OPT = 0xDD;
sfr P1_OPT = 0xD1;
sfr P2_OPT = 0xDE;
sfr P4_OPT = 0xD9;
sfr XFR_PWMDA0 = 0xD2;
sfr XFR_PWMDA1 = 0xD3;
sfr XFR_PWMDA2 = 0xD4;
sfr XFR_PWMDA3 = 0xD5;
sfr XFR_PWMDA4 = 0xD6;
#define XFR_PADOPT_ADC P4_OPT // 选择引脚是ADC还是IO
#define XFR_PADOPT_PWM P1_OPT // 选择引脚是PWM还是IO
sfr XFR_ADC = 0xDB; // AD 转换后的6 位2 进制结果
sfr XFR_ADCCH = 0xDA; // 启动ADC和选择ADC的输入通道
/*
================================================================================
= 位寄存器定义
================================================================================
*/
/* 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 P = PSW^0; //8052 only
/* 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;
/* 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;
/* P3 */
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;
/* 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;
/* 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;
/*
================================================================================
= STK6031中断向量定义
================================================================================
*/
#define INTERRUPT_INT0 0 // 外部中断0
#define INTERRUPT_TIMER0 1 // 定时中断0
#define INTERRUPT_INT1 2 // 外部中断1
#define INTERRUPT_TIMER1 3 // 定时中断1
#define INTERRUPT_SERIAL 4 // 串行口中断
#define INTERRUPT_TIMER2 5 // 定时中断2 或T2EX 中断
/*
================================================================================
= 定义两个STK6031的进入和退出临界区的宏
================================================================================
*/
#define ENTER_CRITICAL() EA=0
#define EXIT_CRITICAL() EA=1
#endif
/*
********************************************************************************
* 文 件 结 束 *
********************************************************************************
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -