亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? compiler.h

?? AT89C51CC03CAN引導(dǎo)程序C51原代碼
?? H
字號:
/*H**************************************************************************
* NAME:         compiler.h
*----------------------------------------------------------------------------
* Copyright (c) 2004 Atmel.
*----------------------------------------------------------------------------
* RELEASE:      cc03-bl-can-1_0_4      
* FILE_REV:     1.6     
*----------------------------------------------------------------------------
* PURPOSE:
* This file redefines dedicated KEIL, RAISONANCE and TASKINKG C51/C251
* keywords in order to ensure that any source file can be processed by
* these compilers.
*****************************************************************************/

#ifndef _COMPILER_H_
#define _COMPILER_H_

/*_____ I N C L U D E S ____________________________________________________*/


/*_____ D E C L A R A T I O N S ____________________________________________*/
#ifndef ASM_INCLUDE // define ASM_INCLUDE in your a51 source code before include of .h file
typedef unsigned char       Uchar;
typedef float               Float16;

typedef unsigned char       Uint8;
typedef unsigned int        Uint16;
typedef unsigned long int   Uint32;

typedef char                Int8;
typedef int                 Int16;
typedef long int            Int32;

typedef unsigned char       Bool;
typedef unsigned char       Byte;
typedef unsigned int        Word;
typedef unsigned long int   DWord;

typedef union 
{
  Uint32 dw; // l changed in dw (double word) because l is used for signed long...
  Uint16 w[2];
  Uint8  b[4];
} Union32;

typedef union 
{
  Uint16 w;
  Uint8  b[2];
} Union16;
#endif

/*_____ M A C R O S ________________________________________________________*/

/* General purpose defines */

/* Constants */
#define FALSE   0
#define TRUE    1
#define KO      0
#define OK      1
#define OFF     0
#define ON      1
#ifndef ASM_INCLUDE // define ASM_INCLUDE in your a51 source code before include of .h file
#define CLR     0
#define SET     1
#endif

/* Bit and bytes manipulations */
#define LOW(U16)                ((Uchar)U16)
#define HIGH(U16)               ((Uchar)(U16>>8))
#define TST_BIT_X(addrx,mask)   (*addrx & mask)
#define SET_BIT_X(addrx,mask)   (*addrx = (*addrx | mask))
#define CLR_BIT_X(addrx,mask)   (*addrx = (*addrx & ~mask))
#define OUT_X(addrx,value)      (*addrx = value)
#define IN_X(addrx)             (*addrx)
/* little endian conversion */
#define LE16(b) (((b & 0xFF) << 8) | ((b & 0xFF00) >> 8))
#define LE32(b) (((b & 0xFF) << 24) | ((b & 0xFF00) << 8) | \
                 ((b & 0xFF0000) >> 8) | ((b & 0xFF000000) >> 24))
/* host to network conversion: used for Intel HEX format, TCP/IP, ... */
// Convert a 16-bit value from host-byte order to network-byte order
// Standard Unix, POSIX 1003.1g (draft)
#define htons(a)    (a)
#define ntohs(a)    (a)
#define htonl(a)    (a)
#define ntohl(a)    (a)

/*M**************************************************************************
* NAME: Long_call
*----------------------------------------------------------------------------
* PARAMS:
* addr: address of the routine to call
*----------------------------------------------------------------------------
* PURPOSE: 
* Call the routine at address addr: generate an Assembly LCALL addr opcode.
*----------------------------------------------------------------------------
* EXAMPLE:
* Long_call(0); // Software reset (if no IT used before)
*----------------------------------------------------------------------------
* NOTE: 
* May be used as a long jump opcode in some special cases
*****************************************************************************/
#define Long_call(addr)         ((*(void (code*)(void))(addr))())

/***********************************************************
 SET_SFR_BIT macro 
  parameters 
    sfr_reg : defined value in include file for sfr register 
    bit_pos : defined value B_XX in include file for particular
              bit of sfr register 
    bit_val : CLR / SET 
************************************************************/
#define SET_SFR_BIT(sfr_reg, bit_pos, bit_val) { sfr_reg &= ~(1<<(bit_pos)); sfr_reg |= ((bit_val)<<(bit_pos));}

/***********************************************************
 TST_SFR_BIT macro 
  parameters 
    sfr_reg : defined value in include file for sfr register 
    bit_pos : defined value B_XX in include file for particular
              bit of sfr register 
************************************************************/
#define TST_SFR_BIT(sfr_reg, bit_pos) ((sfr_reg & (1<<(bit_pos)))>>(bit_pos))

#ifdef KEIL             /* KEIL compiler */

#define Reentrant(x)    x reentrant
#define Sfr(x,y)        sfr x = y
#define Sfr16(x,y)      sfr16 x = y
#define Sbit(x,y,z)     sbit x = y ^ z
#define Interrupt(x,y)  x interrupt y
#define At(x)           _at_ x

#ifdef __C51__          /* C51 Compiler */
#define far  xdata      /* far is for C251 only */  
#endif

#endif                  /* End of KEIL */


#ifdef RAISONANCE       /* RAISONANCE compiler */

#define Reentrant(x)    x reentrant
#define Sfr(x,y)        sfr x = y
#define Sbit(x,y,z)     sbit x = y ^ z
#define Interrupt(x,y)  x interrupt y
#define At(x)           _at_ x

#ifdef __C51__          /* C51 Compiler */
#define far  xdata      /* far is for 251 only */
#endif

#endif                  /* End of RAISONANCE */


#ifdef TASKING          /* TASKING compiler */

#include <keil.h>       /* Include Tasking / Keil compatibility header file */ 

#define far             _far
#define Reentrant(x)    _reentrant x
#define Sfr(x,y)        _sfrbyte x _at(y)
#define Sbit(x,y,z)     _sfrbit x _atbit(y,z)
#define Interrupt(x,y)  _interrupt(y) x

#endif                  /* End of TASKING */
#ifdef _IAR_AVR_  
        
#define __IOMACRO_H

#define TID_GUARD(proc) ((__TID__ & 0x7FF0) != ((90 << 8) | ((proc) << 4)))

#if !(__IAR_SYSTEMS_ICC__ > 2) && !defined(__IAR_SYSTEMS_ASM__)
#error This file should only be compiled with iccavr or aavr.
#endif /* !(__IAR_SYSTEMS_ICC__ > 2) && !defined __IAR_SYSTEMS_ASM__ */

/* The assembler uses a special set of macros... */
#ifdef __IAR_SYSTEMS_ASM__

/* Byte sized SFRs */
#define SFR_B_BITS(_NAME,_ADDR,_A,_B,_C,_D,_E,_F,_G,_H)\
	sfrb	_NAME = _ADDR
#define SFR_B_BITS_EXT(_NAME,_ADDR,_A,_B,_C,_D,_E,_F,_G,_H)\
	sfrb	_NAME = _ADDR
#define SFR_B2_BITS(_NAME1,_NAME2,_ADDR,_A,_B,_C,_D,_E,_F,_G,_H)\
	ASMSFRB2 _NAME1, _NAME2, _ADDR

ASMSFRB2 MACRO
	sfrb	\1 = \3
	sfrb	\2 = \3
	ENDM


/* Word sized SFRs, needs to be expanded into an assembler macro first. */
#define SFR_W_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P)\
	ASMSFRW	_NAME, _ADDR

#define SFR_W_BITS_EXT(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P)\
	ASMSFRW	_NAME, _ADDR

ASMSFRW	MACRO
	sfrw	\1  = \2
	sfrb	\1L = (\2+0)
	sfrb	\1H = (\2+1)
	ENDM

#endif /* __IAR_SYSTEMS_ASM__ */

#ifdef __ICCAVR__

#define __BYTEBITS(_NAME,_A,_B,_C,_D,_E,_F,_G,_H) \
unsigned char _NAME ## _ ## _A:1, \
              _NAME ## _ ## _B:1, \
              _NAME ## _ ## _C:1, \
              _NAME ## _ ## _D:1, \
              _NAME ## _ ## _E:1, \
              _NAME ## _ ## _F:1, \
              _NAME ## _ ## _G:1, \
              _NAME ## _ ## _H:1;

#define SFR_B_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H) \
    __io union { \
      unsigned char   _NAME;           /* The sfrb as 1 byte */ \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
    } @ _ADDR;
#define SFR_B2_BITS(_NAME1, _NAME2, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H) \
    __io union { \
      unsigned char   _NAME1;           /* The sfrb as 1 byte */ \
      unsigned char   _NAME2;           /* The sfrb as 1 byte */ \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME1, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME2, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
    } @ _ADDR;
#define SFR_B_BITS_EXT(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H) \
    __tiny __no_init volatile union { \
      unsigned char   _NAME;           /* The sfrb as 1 byte */ \
      struct {                        /* The sfrb as 8 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H) \
      };  \
    } @ _ADDR;
  
#define SFR_W_BITS(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P) \
    __io union { \
      unsigned short  _NAME;  /* The sfrw as 1 short */ \
      struct {                /* The sfrw as 16 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H)   /* Bit names defined by user */  \
        __BYTEBITS(_NAME, _I,_J,_K,_L,_M,_N,_O,_P)   /* Bit names defined by user */  \
      };  \
      struct { /* The sfrw as 2 bytes */ \
        unsigned char _NAME ## L; \
        unsigned char _NAME ## H; \
      };  \
      struct {                          /* The sfrw as 2 x 8 bits */ \
        __BYTEBITS(_NAME ## L, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
        __BYTEBITS(_NAME ## H, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
      };  \
    } @ _ADDR;

#define SFR_W_BITS_EXT(_NAME, _ADDR, _A,_B,_C,_D,_E,_F,_G,_H, _I,_J,_K,_L,_M,_N,_O,_P) \
   __tiny __no_init volatile union { \
    unsigned short  _NAME;   \
     struct {                /* The sfrw_ext as 16 bits */ \
        __BYTEBITS(_NAME, _A,_B,_C,_D,_E,_F,_G,_H)   /* Bit names defined by user */  \
        __BYTEBITS(_NAME, _I,_J,_K,_L,_M,_N,_O,_P)   /* Bit names defined by user */  \
      };  \
      struct { /* The sfrw _ext as 2 bytes */ \
        unsigned char _NAME ## L; \
        unsigned char _NAME ## H; \
      };  \
      struct {                          /* The sfrw_ext as 2 x 8 bits */ \
        __BYTEBITS(_NAME ## L, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
        __BYTEBITS(_NAME ## H, Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)  /* Bit names hard coded to 0-7 */ \
      };  \
    } @ _ADDR;

#endif /* __ICCAVR__ */

#define SFR_B(_NAME, _ADDR) SFR_B_BITS(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)
#define SFR_B2(_NAME1, _NAME2, _ADDR) SFR_B2_BITS(_NAME1, _NAME2, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)
#define SFR_B_EXT(_NAME, _ADDR) SFR_B_BITS_EXT(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7)

#define SFR_W(_NAME, _ADDR)  SFR_W_BITS(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7, \
                                    Bit8,Bit9,Bit10,Bit11,Bit12,Bit13,Bit14,Bit15)

#define SFR_W_EXT(_NAME, _ADDR)  SFR_W_BITS_EXT(_NAME, _ADDR, \
                                    Bit0,Bit1,Bit2,Bit3,Bit4,Bit5,Bit6,Bit7, \
                                    Bit8,Bit9,Bit10,Bit11,Bit12,Bit13,Bit14,Bit15)

#endif /* _IAR_AVR_ */





#endif /* _COMPILER_H_ */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区四| 色综合咪咪久久| 亚洲欧美另类久久久精品| 91精品国产全国免费观看| 99精品欧美一区二区蜜桃免费| 日精品一区二区三区| 亚洲情趣在线观看| 久久久精品国产免费观看同学| 欧美裸体一区二区三区| 99久久精品国产观看| 国产精品一区二区视频| 日韩av在线发布| 亚洲夂夂婷婷色拍ww47| 国产精品丝袜黑色高跟| 2023国产一二三区日本精品2022| 欧美三级资源在线| 91在线一区二区| 丰满亚洲少妇av| 国产麻豆视频精品| 久久精品免费观看| 日日欢夜夜爽一区| 五月天亚洲婷婷| 图片区小说区国产精品视频| 亚洲欧美另类在线| 亚洲欧洲av色图| 欧美激情一区在线观看| 国产欧美精品国产国产专区| 亚洲精品在线观看视频| 欧美一区2区视频在线观看| 欧美日韩久久久一区| 欧美色图12p| 欧美日韩一二三区| 欧美巨大另类极品videosbest | 亚洲欧洲另类国产综合| 国产欧美一区二区三区在线老狼| www亚洲一区| 久久人人97超碰com| 久久久影视传媒| 国产清纯美女被跳蛋高潮一区二区久久w | 国产一区二区免费看| 黄页视频在线91| 国产毛片精品视频| 大胆亚洲人体视频| 99综合影院在线| 91在线观看高清| 欧洲精品中文字幕| 欧美日韩国产免费| 日韩欧美123| 亚洲欧洲综合另类在线| 亚洲少妇30p| 亚洲在线成人精品| 日本亚洲最大的色成网站www| 免费xxxx性欧美18vr| 激情综合亚洲精品| 国产成人精品影院| 91在线播放网址| 欧美日韩一区高清| 精品欧美久久久| 欧美国产精品久久| 亚洲一级片在线观看| 青青草国产成人av片免费| 国产精品资源网| 91网站黄www| 日韩一区二区三区视频在线观看| 2021中文字幕一区亚洲| 中文字幕视频一区| 亚洲成国产人片在线观看| 日本中文字幕一区二区视频| 国产精品中文欧美| 欧美亚洲禁片免费| 精品国产123| 亚洲综合色自拍一区| 美国十次综合导航| 99视频精品在线| 91精品国产综合久久蜜臀 | 亚洲成人免费在线| 国产在线精品一区二区不卡了 | 奇米色一区二区| 国产91精品露脸国语对白| 色综合久久88色综合天天免费| 欧美一级搡bbbb搡bbbb| 亚洲国产高清不卡| 日韩国产在线观看一区| 丰满少妇久久久久久久| 7777女厕盗摄久久久| 国产精品日韩成人| 日韩福利电影在线观看| 日韩免费一区二区三区在线播放| 日本一区二区三区视频视频| 亚洲成人精品影院| av在线这里只有精品| 日韩欧美一卡二卡| 亚洲精品菠萝久久久久久久| 国产一区视频导航| 欧美日韩国产综合一区二区三区| 国产三级精品在线| 日韩av电影免费观看高清完整版在线观看| 高清成人在线观看| 日韩欧美的一区| 亚洲图片欧美色图| 懂色av一区二区三区免费看| 欧美日高清视频| 亚洲精品中文在线| 成人黄色在线网站| 久久综合一区二区| 美日韩一区二区| 欧美午夜精品久久久久久孕妇| 欧美国产一区二区在线观看 | 丁香婷婷综合激情五月色| 欧美日韩一区国产| 尤物在线观看一区| aaa欧美色吧激情视频| 精品盗摄一区二区三区| 午夜视频一区二区三区| 91在线视频观看| 国产亚洲污的网站| 激情综合亚洲精品| 日韩精品一区二区三区视频播放| 亚洲韩国精品一区| 在线中文字幕不卡| 综合电影一区二区三区| www.日本不卡| 国产精品五月天| 成人听书哪个软件好| 久久久高清一区二区三区| 精品无码三级在线观看视频| 欧美一激情一区二区三区| 婷婷激情综合网| 91.xcao| 日韩中文字幕麻豆| 在线成人高清不卡| 日日夜夜精品视频天天综合网| 欧美视频一区二区在线观看| 亚洲综合成人在线视频| 一本大道久久a久久精二百| 亚洲欧洲日韩av| 色呦呦国产精品| 亚洲成a人在线观看| 欧美丰满嫩嫩电影| 免费美女久久99| 欧美成人a视频| 国内精品国产成人| 国产色产综合产在线视频| 国产成人自拍网| 亚洲视频网在线直播| 在线一区二区三区| 亚洲bt欧美bt精品777| 欧美日本视频在线| 美脚の诱脚舐め脚责91| 久久久久免费观看| 成人免费高清视频| 一区二区三区国产精华| 欧美性受xxxx黑人xyx性爽| 性做久久久久久| 久久影音资源网| av福利精品导航| 一区二区三区四区亚洲| 777奇米成人网| 国产最新精品精品你懂的| 国产精品你懂的| 欧美三级韩国三级日本一级| 蜜桃传媒麻豆第一区在线观看| 久久久精品欧美丰满| 日本韩国精品在线| 日本不卡123| 国产精品入口麻豆九色| 欧美日韩久久久一区| 国内精品嫩模私拍在线| 亚洲男人的天堂av| 91麻豆精品国产自产在线| 狠狠色伊人亚洲综合成人| 亚洲视频在线一区| 日韩免费观看高清完整版在线观看 | 五月激情综合网| 精品久久久久99| 色屁屁一区二区| 精品一区二区在线免费观看| 综合久久一区二区三区| 欧美精品在线观看一区二区| 国产精品123| 亚洲bt欧美bt精品777| 久久先锋资源网| 欧美日韩视频第一区| 成人午夜精品在线| 日本成人中文字幕在线视频| 欧美国产成人在线| 日韩欧美美女一区二区三区| www.亚洲人| 美女视频一区在线观看| 亚洲日本中文字幕区| 久久影音资源网| 欧美放荡的少妇| 色狠狠色噜噜噜综合网| 国产精品亚洲成人| 日本在线不卡一区| 夜夜嗨av一区二区三区| 中文一区二区在线观看 | 亚洲欧美国产毛片在线| 精品免费国产一区二区三区四区| 色哟哟在线观看一区二区三区|