📄 arch.h
字号:
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆硬件平台定义◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
//◆文件名称:arch.h
//◆文件说明:
//◆文件作者:翟 鹏
//◆创建日期:2005年5月
//◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆◆
#ifndef ARCH_H
#define ARCH_H
//*******************************************************************************************
//STC89C51特殊寄存器字节地址定义
//*******************************************************************************************
sfr P0 = 0x80;
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 AUXR = 0x8E;
sfr P1 = 0x90;
sfr SCON = 0x98;
sfr SBUF = 0x99;
sfr P2 = 0xA0;
sfr AUXR1 = 0xA2;
sfr IE = 0xA8;
sfr SADDR = 0xA9;
sfr P3 = 0xB0;
sfr IPH = 0xB7;
sfr IP = 0xB8;
sfr SADEN = 0xB9;
sfr XICON = 0xC0;
sfr T2CON = 0xC8;
sfr T2MOD = 0xC9;
sfr RCAP2L = 0xCA;
sfr RCAP2H = 0xCB;
sfr TL2 = 0xCC;
sfr TH2 = 0xCD;
sfr PSW = 0xD0;
sfr ACC = 0xE0;
sfr WDTCONT = 0xE1;
sfr ISPDATA = 0xE2;
sfr ISPADDRH = 0xE3;
sfr ISPADDRL = 0xE4;
sfr ISPCMD = 0xE5;
sfr ISPTRIG = 0xE6;
sfr ISPCONTR = 0xE7;
sfr P4 = 0xE8;
sfr B = 0xF0;
//*******************************************************************************************
//STC89C51中可寻址位的位地址定义
//*******************************************************************************************
//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--定时器0,1控制
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;
//TCON2--定时器2控制
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;
//IE--中断允许控制
sbit EA = IE^7;
sbit ET2 = IE^5; //8052 only
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;
//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;
//IPH--中断优先级控制2
#define PX3H 0x80
#define PX2H 0x40
#define PT2H 0x20
#define PSH 0x10
#define PT1H 0x08
#define PX1H 0x04
#define PT0H 0x02
#define PX0H 0x01
//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;
//WDTCONT--看门狗
#define EN_WDT 0x20
#define CLR_WDT 0x10
#define IDLE_WDT 0x08
#define WDT_PS2 0x04
#define WDT_PS1 0x02
#define WDT_PS0 0x01
#define WDT_PS 0x07 //WDT_PS2+WDT_PS1+WDT_PS0
#define WDG_CMD 0x37
//AUXR--内部扩展RAM
#define EXTRAM 0x02
#define ALEOFF 0x01
//*******************************************************************************************
//数字平台地址分配
//*******************************************************************************************
//中断向量
#define IRQ_EXTINT0 0
#define IRQ_TIMER0 1
#define IRQ_EXTINT1 2
#define IRQ_TIMER1 3
#define IRQ_UART 4
#define IRQ_TIMER2 5
#define IRQ_EXTINT2 6
#define IRQ_EXTINT3 7
//中断寄存器组
#define USE_UART 1
#define USE_TIMER0 2
#define USE_EXTINT 3
//*******************************************************************************************
//数字平台地址分配
//*******************************************************************************************
#define SECTORSIZE 0x0400 //扇区大小
#define RAMADDR 0x4000 //RAM起始地址
#define RAMSIZE 0x8000 //RAM大小
#define BANKADDR 0x0000 //BANK起始地址
#define BANKSIZE 0x4000 //BANK大小
#define COMMONADDR 0x0000 //COMMON所在地址 告诉上位机下载地址 用于和upsd区别开
#define BANKNUM 32 //BANK数量
#define BOOTBANK 0 //BOOTLOADER所在BANK
#define COMM0NBANK 31 //COMMON所在BANK
#define APPBANK 1 //APP开始BANK
#define PAGE 0xC000 //BANK切换地址
#define PAGE_FIRSTBIT 3 //BANK切换寄存器的第一位
//*******************************************************************************************
//时钟和晶振
//*******************************************************************************************
//波特率
#define UART_DEFAULT_BAUDRATE 9600
#define SUART1_DEFAULT_BAUDRATE 4800
#define SUART2_DEFAULT_BAUDRATE 9600
//晶振
//#define F_OSC 11059200
#define F_OSC 22118400
//时钟周期数
//#define CLOCK_COUNT 12
#define CLOCK_COUNT 6
//波特率培增
#define DOUBLE_BAUDRATE
//timer0缺省周期毫秒数
#define TIMER0_DEFAULT_MS 10
//*******************************************************************************************
//I/O口定义
//*******************************************************************************************
sbit P0_0=P0^0;
sbit P0_1=P0^1;
sbit P0_2=P0^2;
sbit P0_3=P0^3;
sbit P0_4=P0^4;
sbit P0_5=P0^5;
sbit P0_6=P0^6;
sbit P0_7=P0^7;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit P1_7=P1^7;
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
sbit P4_0=P4^0;
sbit P4_1=P4^1;
sbit P4_2=P4^2;
sbit P4_3=P4^3;
sbit P4_4=P4^4;
sbit P4_5=P4^5;
sbit P4_6=P4^6;
sbit P4_7=P4^7;
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -