?? 51fx.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 + -