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

📄 51fx.h

📁 mcs51,2051,x86系列MCU
💻 H
字号:
/*
 *  Copyright (c) 1995, Intel Corporation
 *
 *  $Workfile:   51fx.h  $
 *  $Revision:   1.1  $
 *  $Modtime:   Mar 22 1995 17:05:08  $
 *
 *  Purpose:
 *
 *
 *
 *
 *
 *  Compiler:       
 *
 *  Ext Packages:   
 *
 * 
 *
 */
/*======================================================================

            <51fx.h>

=======================================================================*/
#ifndef I51FX_H
#define I51FX_H

/* Interrupt vectors */

#define  RESET 0     /* Reset interrupt */
#define  EXTI0 3     /* External interrupt 0 */
#define  TIMER0   11    /* Timer 0 overflow interrupt */
#define  EXTI1 19    /* External interrupt 1 */
#define  TIMER1   27    /* Timer 1 overflow interrupt */
#define  SINT  35    /* Serial port interrupt */
#define  TIMER2   43    /* Timer 2 interrupt */

/* Definitions for interrupt handling */


/* Macros to enable and disable interrupts */

#define _STR(x) # x
#define  EI()    IE_BITS.B7 = 1
#define  DI()  IE_BITS.B7 = 0
#define  SET_VECTOR(vec, fun)\
   asm("\tglobal\t_"_STR(fun)"\n" \
   "\tdefseg\tv"_STR(fun)",class=CODE,phantom\n" \
   "\tseg\tv"_STR(fun)"\n" \
   "\torg\t"_STR(vec)"\n" \
   "\tljmp\t_"_STR(fun)"\n" \
   "\tseg\tc_text\n")

            
/* The type of a pointer to an interrupt vector */

typedef interrupt void (*isr)(void);

typedef near struct {
   unsigned B7:1; /* this is the most significant bit */
   unsigned B6:1;
   unsigned B5:1;
   unsigned B4:1;
   unsigned B3:1;
   unsigned B2:1;
   unsigned B1:1;
   unsigned B0:1;
} _SFR_BITS;

/*  #########################  8X51 and 8xC51   ########################### */
#define P0 (*(unsigned char near *)(0x80))
#define SP (*(unsigned char near *)(0x81))
#define PCON (*(unsigned char near *)(0x87))
#define TCON (*(unsigned char near *)(0x88))
#define TMOD (*(unsigned char near *)(0x89))
#define TL0 (*(unsigned char near *)(0x8a))
#define TL1 (*(unsigned char near *)(0x8b))
#define TH0 (*(unsigned char near *)(0x8c))
#define TH1 (*(unsigned char near *)(0x8d))
#define P1 (*(unsigned char near *)(0x90))
#define SCON (*(unsigned char near *)(0x98))
#define SBUF (*(unsigned char near *)(0x99))
#define P2 (*(unsigned char near *)(0xA0))
#define IE (*(unsigned char near *)(0xA8))
#define P3 (*(unsigned char near *)(0xB0))
#define IP (*(unsigned char near *)(0xB8))
#define PSW (*(unsigned char near *)(0xD0))
#define ACC (*(unsigned char near *)(0xE0))
#define B (*(unsigned char near *)(0xF0))

/* Bit Addressable SFR */
#define P0_BITS (*(_SFR_BITS *)(0x80))
#define PCON_BITS (*(_SFR_BITS *)(0x87))
#define TCON_BITS (*(_SFR_BITS *)(0x88))
#define P1_BITS (*(_SFR_BITS *)(0x90))
#define SCON_BITS (*(_SFR_BITS *)(0x98))
#define P2_BITS (*(_SFR_BITS *)(0xA0))
#define IE_BITS (*(_SFR_BITS *)(0xA8))
#define P3_BITS (*(_SFR_BITS *)(0xB0))
#define IP_BITS (*(_SFR_BITS *)(0xB8))
#define PSW_BITS (*(_SFR_BITS *)(0xD0))
#define ACC_BITS (*(_SFR_BITS *)(0xE0))
#define B_BITS (*(_SFR_BITS *)(0xF0))

/* Bit Definition */
#define SMOD1 PCON_BITS.B7
#define SMOD0 PCON_BITS.B6
#define POF PCON_BITS.B4
#define GF1 PCON_BITS.B3
#define GF0 PCON_BITS.B2
#define PD PCON_BITS.B1
#define IDL PCON_BITS.B0

#define TF1 TCON_BITS.B7
#define TR1 TCON_BITS.B6
#define TF0 TCON_BITS.B5
#define TR0 TCON_BITS.B4
#define IE1 TCON_BITS.B3
#define IT1 TCON_BITS.B2
#define IE0 TCON_BITS.B1
#define IT0 TCON_BITS.B0

#define SM0 SCON_BITS.B7
#define SM1 SCON_BITS.B6
#define SM2 SCON_BITS.B5
#define REN SCON_BITS.B4
#define TB8 SCON_BITS.B3
#define RB8 SCON_BITS.B2
#define TI SCON_BITS.B1
#define RI SCON_BITS.B0

#define EA IE_BITS.B7
#define EC IE_BITS.B6
#define ET2 IE_BITS.B5
#define ES IE_BITS.B4
#define ET1 IE_BITS.B3
#define EX1 IE_BITS.B2
#define ET0 IE_BITS.B1
#define EX0 IE_BITS.B0

#define PT2 IP_BITS.B5
#define PS IP_BITS.B4
#define PT1 IP_BITS.B3
#define PX1 IP_BITS.B2
#define PT0 IP_BITS.B1
#define PX0 IP_BITS.B0

#define CY PSW_BITS.B7
#define AC PSW_BITS.B6
#define F0 PSW_BITS.B5
#define RS1 PSW_BITS.B4
#define RS0 PSW_BITS.B3
#define OV PSW_BITS.B2
#define P PSW_BITS.B0


/*  #########################  8xC5X & 8XC51FX ######################### */
#define T2CON (*(unsigned char near *)(0xC8))
#define RCAP2L (*(unsigned char near *)(0xca))
#define RCAP2H (*(unsigned char near *)(0xcb))
#define TL2 (*(unsigned char near *)(0xcc))
#define TH2 (*(unsigned char near *)(0xcd))
#define T2MOD (*(unsigned char near *)(0xc9))
#define IPH (*(unsigned char near *)(0xB7))
#define CCON (*(unsigned char near *)(0xD8))
#define CMOD (*(unsigned char near *)(0xD9))
#define CCAPM0 (*(unsigned char near *)(0xDA))
#define CCAPM1 (*(unsigned char near *)(0xDB))
#define CCAPM2 (*(unsigned char near *)(0xDC))
#define CCAPM3 (*(unsigned char near *)(0xDD))
#define CCAPM4 (*(unsigned char near *)(0xDE))
#define CL (*(unsigned char near *)(0xE9))
#define CCAP0L (*(unsigned char near *)(0xEA))
#define CCAP1L (*(unsigned char near *)(0xEB))
#define CCAP2L (*(unsigned char near *)(0xEC))
#define CCAP3L (*(unsigned char near *)(0xED))
#define CCAP4L (*(unsigned char near *)(0xEE))
#define CH (*(unsigned char near *)(0xF9))
#define CCAP0H (*(unsigned char near *)(0xFA))
#define CCAP1H (*(unsigned char near *)(0xFB))
#define CCAP2H (*(unsigned char near *)(0xFC))
#define CCAP3H (*(unsigned char near *)(0xFD))
#define CCAP4H (*(unsigned char near *)(0xFE))

/* Bit Addressable SFR */
#define IPH_BITS (*(_SFR_BITS *)(0xB7))
#define CCON_BITS (*(_SFR_BITS *)(0xD8))
#define T2CON_BITS (*(_SFR_BITS *)(0xC8))

/* Bit Definition */
#define TF2 T2CON_BITS.B7
#define EXF2 T2CON_BITS.B6
#define RCLK T2CON_BITS.B5
#define TCLK T2CON_BITS.B4
#define EXEN2 T2CON_BITS.B3
#define TR2 T2CON_BITS.B2
#define C_T2 T2CON_BITS.B1
#define CP_RL2 T2CON_BITS.B0

#define PPCH IPH_BITS.B6
#define PT2H IPH_BITS.B5
#define PSH IPH_BITS.B4
#define PT1H IPH_BITS.B3
#define PX1H IPH_BITS.B2
#define PT0H IPH_BITS.B1
#define PX0H IPH_BITS.B0

#define CF CCON_BITS.B7
#define CR CCON_BITS.B6
#define CCF4 CCON_BITS.B4
#define CCF3 CCON_BITS.B3
#define CCF2 CCON_BITS.B2
#define CCF1 CCON_BITS.B1
#define CCF0 CCON_BITS.B0

/* 
8xC51GB
#define IEN0 (*(unsigned char near *)(0xA8))
#define IRCON (*(unsigned char near *)(0xC0))
#define IP1 (*(unsigned char near *)(0xb9))
#define CCEN (*(unsigned char near *)(0xc1))
#define CCL1 (*(unsigned char near *)(0xc2))
#define CCH1 (*(unsigned char near *)(0xc3))
#define CCL2 (*(unsigned char near *)(0xc4))
#define CCH2 (*(unsigned char near *)(0xc5))
#define CCL3 (*(unsigned char near *)(0xc6))
#define CCH3 (*(unsigned char near *)(0xc7))
#define IRCON_BITS (*(_SFR_BITS *)(0xC0))
*/

#endif

⌨️ 快捷键说明

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