专注电子技术学习与研究
当前位置:单片机教程网 >> MCU设计实例 >> 浏览文章

SDCC使用的STC89系列头文件

作者:万致远   来源:本站原创   点击数:  更新时间:2012年08月26日   【字体:

 死太惨公司提供了的头文件几乎2K,里面1.6K全是广告。而且因为定义不符合SDCC标准导致无法在SDCC下面通过编译。我这一次极度压缩了,900B达成!

/*
 * FILE:STC89C5X.H
 * 此文件为STC89系列适用头文件
 * Written By WanZhiYuan=
*/
#ifndef STC89C5X_H
#define STC89C5X_H
#include <at89x52.h> //STC兼容AT芯片
__sfr	__at 0xE8 P4			;
__sbit	__at 0xE8 P4_0			;
__sbit	__at 0xE9 P4_1			;
__sbit 	__at 0xEA P4_2			;
__sbit 	__at 0xEB P4_3			;
__sbit 	__at 0xEC P4_4			;
__sbit 	__at 0xED P4_5			;
__sbit 	__at 0xEE P4_6			;
__sfr	__at 0xE7 IAP_CONTR		;
//注意和STC12系列不同
__sfr	__at 0xE1 WDT_CONTR		;
__sfr	__at 0x8E AUXR			;
__sfr	__at 0xC0 XICON 		;
__sfr	__at 0xE2 ISP_DATA		;
__sfr	__at 0xE3 ISP_ADDH		;
__sfr	__at 0xE4 ISP_ADDL		;
__sfr	__at 0xE5 ISP_CMD		;
__sfr	__at 0xE6 ISP_TRIG		;
__sfr	__at 0xA2 AUXR1		;

#define INT_0		0x0003
#define INT_T0		0x000B
#define INT_1		0x0013
#define INT_T1		0x001B
#define INT_UART	0x0023
#define INT_T2		0x002B
#define INT_2		0x0033
#define INT_3		0x003B
#include <stc_macro.h>
#endif

顺便放一个 stc_macro.h ,这个里面定义了一些常用操作。只要记住助记符就OK啦~

/*
 * FILE STC_MACRO.H
 * STC方便使用宏
 * Written by 万致远@rwzy.co.cc
*/
#ifndef STC_MACRO_H
#define STC_MACRO_H 1
#define RESET    IAP_CONTR=IAP_CONTR | 0x20 
//SWRST=1,按下RESET
#define SEL_AP    IAP_CONTR=IAP_CONTR & 0xBF 
//SWBS=0,选择AP区
#define SEL_ISP    IAP_CONTR=IAP_CONTR | 0x40 
//SWBS=1,选择ISP区
#define RS_DOWN    IAP_CONTR=0x60           
//SWRST=1,SWBS=1,直接重启进ISP区
#define RS_AP    IAP_CONTR=0x20
//SWRST=1,SWBS=0,直接重启进AP
#define START_WDT    WDT_CONTR=0x20
//启动WDT
#define CLR_WDT        WDT_CONTR=WDT_CONTR | 0x10
//喂狗
#define W_START_IDLE    WDT_CONTR=WDT_CONTR | 0x08
//看门狗在空闲模式计数
#define W_STOP_IDLE    WDT_CONTR=WDT_CONTR | 0xF7
//看门狗不在空闲模式计数
#define Set_WFre(x)    WDT_CONTR=WDT_CONTR | (x & 0x08)
//设置看门狗分频率
//看门狗溢出时间=( 12 x Pre-scale x 32768) / Oscillator frequency
#endif

以及数据定义type-def.h

/*
 * FILE:type-def.h
 * Write by 万致远@rwzy.co.cc
*/
#ifndef TYPE_DEF_H
#define TYPE_DEF_H
typedef unsigned int UINT;
typedef	unsigned long ULONG;
typedef unsigned char BYTE;
typedef __bit BOOL;
#define TRUE        1
#define FALSE       0
#define _nop_()	__asm NOP __endasm
#endif

 

关闭窗口

相关文章