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

📄 mylib.h

📁 MEGA48单片机模拟/硬件两种方式实现TWI通讯
💻 H
字号:
#include  "ioavr.h"
#ifndef MYLIB_H
#define MYLIB_H

#define SYSCLK_4M     0
#define SYSCLK_8M     1
/****端口操作定义**************************************************************/
#define PORTIN	  0	/*输入口为0*/
#define PORTOUT	  1     /*输出口为1*/
#define KEYUP     0
#define KEYDN     1
/********* PORTA **************************************************************/
#ifdef  PA0
#define CLR_PORTA(n)  CLRMSK(PORTA,n)
#define SET_PORTA(n)  SETMSK(PORTA,n)
#define SET_PAIN(n)   CLRMSK(DDRA,n)
#define SET_PAOUT(n)  SETMSK(DDRA,n)
#define GET_PINA(n)   TESTMSK(PINA,n)
#endif
/********* PORTB **************************************************************/
#ifdef  PB0
#define CLR_PORTB(n)  CLRMSK(PORTB,n)
#define SET_PORTB(n)  SETMSK(PORTB,n)
#define SET_PBIN(n)   CLRMSK(DDRB,n)
#define SET_PBOUT(n)  SETMSK(DDRB,n)
#define GET_PINB(n)   TESTMSK(PINB,n)
#endif
/********* PORTC **************************************************************/
#ifdef  PC0
#define CLR_PORTC(n)  CLRMSK(PORTC,n)
#define SET_PORTC(n)  SETMSK(PORTC,n)
#define SET_PCIN(n)   CLRMSK(DDRC,n)
#define SET_PCOUT(n)  SETMSK(DDRC,n)
#define GET_PINC(n)   TESTMSK(PINC,n)
#endif
/********* PORTD **************************************************************/
#ifdef  PD0
#define CLR_PORTD(n)  CLRMSK(PORTD,n)
#define SET_PORTD(n)  SETMSK(PORTD,n)
#define SET_PDIN(n)   CLRMSK(DDRD,n)
#define SET_PDOUT(n)  SETMSK(DDRD,n)
#define GET_PIND(n)   TESTMSK(PIND,n)
#endif
/***********通用定义***********************************************************/
typedef  unsigned char      uint8;       /* Unsigned 8  bit value */
typedef  unsigned short     uint16;      /* Unsigned 16 bit value */
typedef  unsigned long int  uint32;      /* Unsigned 32 bit value */
typedef  signed   char      int8;        /* Signed 8  bit value */
typedef  signed   short     int16;       /* Signed 16 bit value */
typedef  signed   long int  int32;       /* Signed 32 bit value */

#ifndef  BIT
#define  BIT(x)   (1 << (x))
#endif
/* Set BIT in ADDRESS */
#define SETMSK(ADDRESS,n)   ((ADDRESS) |= BIT(n))
/* Clear BIT in ADDRESS */
#define CLRMSK(ADDRESS,n)   ((ADDRESS) &= ~BIT(n))
/* Test BIT in ADDRESS */
#define TESTMSK(ADDRESS,n)  ((ADDRESS) & BIT(n))

/*******全局中断操作***********************************************************/
#define cli()     __disable_interrupt()
#define sei()     __enable_interrupt()
/******************************************************************************/
/******************************************************************************/
#define SWAP(data) (data = __swap_nibbles(data))
/******************************************************************************/
#define  Delaync(val) \
{\
  val = OclDat - 50;\
  if(val != OSCCAL)\
  {\
    LED_ALL_OPEN();\
    delaynms(4);\
    LED_ALL_CLOSE();\
    while(1)clrwdt();\
  }\
}
/*******看门狗定义*************************************************************/
#define wdt_enable(wdttime) (WDTCSR= BIT(WDCE)|BIT(WDE),WDTCSR=((wdttime)|BIT(WDE)))
#define wdt_disable()       WDTCSR=0
#define clrwdt()    __watchdog_reset()
#define WDTO_30MS   BIT(WDP0)
#define WDTO_60MS   BIT(WDP1)
#define WDTO_120MS  (BIT(WDP0)|BIT(WDP1))
#define WDTO_250MS  BIT(WDP2)
#define WDTO_500MS  (BIT(WDP2)|BIT(WDP0))
#define WDTO_1S     (BIT(WDP2)|BIT(WDP1))
#define WDTO_2S     (BIT(WDP2)|BIT(WDP1)|BIT(WDP0))
#define WDTO_4S     BIT(WDP3)
#define WDTO_8S     (BIT(WDP3)|BIT(WDP0))
/************ADC通道定义*******************************************************/
#ifdef  ADC0D
#define AD_SE_ADC0 0x00 //ADC0 
#define AD_SE_ADC1 0x01 //ADC1 
#define AD_SE_ADC2 0x02 //ADC2 
#define AD_SE_ADC3 0x03 //ADC3 
#define AD_SE_ADC4 0x04 //ADC4 
#define AD_SE_ADC5 0x05 //ADC5 
#define AD_SE_ADC6 0x06 //ADC6
#define AD_SE_ADC7 0x07 //ADC7
#endif
/***********LED显示段码定义****************************************************/
#ifndef LED_CODE
#define LED_CODE
#define	Led_0		0x3F
#define	Led_1		0x06
#define	Led_2		0x5B
#define	Led_3		0x4F
#define	Led_4		0x66
#define	Led_5		0x6D
#define	Led_6		0x7D
#define	Led_7		0x07
#define	Led_8		0x7E
#define	Led_9		0x6F
#define	Led_A		0x77
#define	Led_b		0x7C
#define	Led_C		0x39
#define	Led_c		0x58
#define	Led_d		0x5E
#define	Led_E		0x79
#define	Led_F		0x71
#define	Led_H		0x76
#define	Led_h		0x74
#define	Led_L		0x38
#define	Led_n		0x54
#define	Led_N		0x37
#define	Led_O		0x3f
#define	Led_o		0x5C
#define	Led_P		0x73
#define	Led_r		0x50
#define	Led_t		0x78
#define	Led_U		0x3E
#define	Led_G		0x7D
#define	Led_S		0x6D
#define Led_y           0x6e
#define	Led_HEN		0x40	//"-"
#define	Led_SPC		0x00	//空
#endif
/******************************************************************************/
#endif  /*end of  #ifndef MYLIB_H*/

⌨️ 快捷键说明

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