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

📄 arch.h

📁 基于STC51通过GPS自主定位导航FAT文件系统程序
💻 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 + -