文档库 最新最全的文档下载
当前位置:文档库 › (ATMEGA16.H)AVR的头文件

(ATMEGA16.H)AVR的头文件

#ifndef __ATMEGA16_H__
#define __ATMEGA16_H__
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~特殊功能寄存器声明部分~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//2线串行接口
#define TWBR (*(volatile unsigned char *)0x20)
#define TWSR (*(volatile unsigned char *)0x21)
#define TWCR (*(volatile unsigned char *)0x56)
#define TWAR (*(volatile unsigned char *)0x22)
#define TWDR (*(volatile unsigned char *)0x23)
//模数转换器ADC
#define ADC (*(volatile unsigned int *)0x24)
#define ADCL (*(volatile unsigned char *)0x24)
#define ADCH (*(volatile unsigned char *)0x25)
#define ADCSR (*(volatile unsigned char *)0x26)
#define ADCSRA (*(volatile unsigned char *)0x26)
#define ADMUX (*(volatile unsigned char *)0x27)
//模拟比较器
#define ACSR (*(volatile unsigned char *)0x28)
// 通用同步异步收发机USART
#define UBRRHI (*(volatile unsigned char *)0x40)
#define UBRRH (*(volatile unsigned char *)0x40)
#define UBRR (*(volatile unsigned char *)0x29)
#define UBRRL (*(volatile unsigned char *)0x29)
#define UCSRC (*(volatile unsigned char *)0x40)
#define UCSRB (*(volatile unsigned char *)0x2A)
#define UCSRA (*(volatile unsigned char *)0x2B)
#define UDR (*(volatile unsigned char *)0x2C)
//串行外设接口SPI
#define SPCR (*(volatile unsigned char *)0x2D)
#define SPSR (*(volatile unsigned char *)0x2E)
#define SPDR (*(volatile unsigned char *)0x2F)
//四组输入输出端口PORTA/PORTB/PORTC/PORTD
#define PIND (*(volatile unsigned char *)0x30)
#define DDRD (*(volatile unsigned char *)0x31)
#define PORTD (*(volatile unsigned char *)0x32)
#define PINC (*(volatile unsigned char *)0x33)
#define DDRC (*(volatile unsigned char *)0x34)
#define PORTC (*(volatile unsigned char *)0x35)
#define PINB (*(volatile unsigned char *)0x36)
#define DDRB (*(volatile unsigned char *)0x37)
#define PORTB (*(volatile unsigned char *)0x38)
#define PINA (*(volatile unsigned char *)0x39)
#define DDRA (*(volatile unsigned char *)0x3A)
#define PORTA (*(volatile unsigned char *)0x3B)
//电可擦只读存储器EEPROM
#define EECR (*(volatile unsigned char *)0x3C)
#define EEDR (*(volatile unsigned char *)0x3D)
#define EEAR (*(volatile unsigned int *)0x3E)
#define EEARL (*(volatile unsigned char *)0x3E)
#define EEARH (*(volatile unsigned char *)0x3F)
//看门狗定时器
#define WDTCR (*(volatile unsigned char *)0x41)
//定时器计数器T2
#define ASSR (*(volatile unsigned char *)0x42)
#define OCR2 (*(volatile unsigned char *)0x43)
#define TCNT2 (*(volatile unsigned char *)0x44)
#define TCCR2 (*(volatile unsigned char *)0x45)
//定时器计数器T1
#define ICR1 (*(volatile unsigned int *)0x46)
#define ICR1L (*(volatile unsigned char *)0x46)
#define ICR1H (*(volatile unsigned char *)0x47)
#define OCR1B (*(volatile unsigned int *)0x48)
#define OCR1BL (*(volatile unsigned char *)0x48)
#define OCR1BH (*(volatile unsigned char *)0x49)
#define OCR1A (*(volatile unsigned i

nt *)0x4A)
#define OCR1AL (*(volatile unsigned char *)0x4A)
#define OCR1AH (*(volatile unsigned char *)0x4B)
#define TCNT1 (*(volatile unsigned int *)0x4C)
#define TCNT1L (*(volatile unsigned char *)0x4C)
#define TCNT1H (*(volatile unsigned char *)0x4D)
#define TCCR1B (*(volatile unsigned char *)0x4E)
#define TCCR1A (*(volatile unsigned char *)0x4F)
//特殊功能的I/O寄存器
#define SFIOR (*(volatile unsigned char *)0x50)
//振荡器校准
#define OSCCAL (*(volatile unsigned char *)0x51)
//芯片上的调试寄存器
#define OCDR (*(volatile unsigned char *)0x51)
//定时器计数器T0
#define OCR0 (*(volatile unsigned char *)0x5C)
#define TCNT0 (*(volatile unsigned char *)0x52)
#define TCCR0 (*(volatile unsigned char *)0x53)
//MCU通用寄存器
#define MCUCSR (*(volatile unsigned char *)0x54)
#define MCUSR (*(volatile unsigned char *)0x54)
#define MCUCR (*(volatile unsigned char *)0x55)
//SPM控制寄存器
#define SPMCR (*(volatile unsigned char *)0x57)
//定时器计数器中断
#define TIFR (*(volatile unsigned char *)0x58)
#define TIMSK (*(volatile unsigned char *)0x59)
//普通中断
#define GIFR (*(volatile unsigned char *)0x5A)
#define GICR (*(volatile unsigned char *)0x5B)
//堆栈指针
#define SP (*(volatile unsigned int *)0x5D)
#define SPL (*(volatile unsigned char *)0x5D)
#define SPH (*(volatile unsigned char *)0x5E)
//状态寄存器
#define SREG (*(volatile unsigned char *)0x5F)
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~特殊功能函数部分~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//移位定义
#ifndef BIT
#define BIT(x) (1<<(x))
#endif
//IAR兼容性
#if !defined(flash)
#define flash __flash
#endif
//
#ifndef C_task
#define C_task
#endif
//汇编指令定义
#define _asm asm
#define WDR() asm("wdr")
#define SEI() asm("sei") //开全局中断
#define CLI() asm("cli") //禁止所有中断
#define NOP() asm("nop")
#define SLEEP() asm("sleep");
#define _WDR() asm("wdr")
#define _SEI() asm("sei")
#define _CLI() asm("cli")
#define _NOP() asm("nop")
#define _SLEEP() asm("sleep");
//寄存器保存/恢复使用
unsigned char FlashReadByte(unsigned char ramp, unsigned addr);
unsigned FlashReadWord(unsigned char ramp, unsigned addr);
unsigned long FlashReadLWord(unsigned char ramp, unsigned addr);
void FlashReadBytes(unsigned char ramp, unsigned addr, unsigned char *buf, int n);

unsigned char EDataReadByte(unsigned char ramp, unsigned addr);
unsigned EDataReadWord(unsigned char ramp, unsigned addr);
unsigned long EDataReadLWord(unsigned char ramp, unsigned addr);
void EDataReadBytes(unsigned char ramp, unsigned addr, unsigned char *buf, int n);

void EDataWriteByte(unsigned char ramp, unsigned addr);
void EDataWriteWord(unsigned char ramp, unsigned addr);
void EDataWriteLWord(unsigned char ramp, unsigned addr);
void EDataWriteBytes(unsigned char ramp, unsigned addr, unsigned char *buf, int

n);
//使用AppBuilder对于UART初始化
#define BAUD9600 25
#define BAUD19K 12

#define UART_TRANSMIT_ON() UCR |= 0x8
#define UART_TRANSMIT_OFF() UCR &= ~0x8
#define UART_RECEIVE_ON() UCR |= 0x10
#define UART_RECEIVE_OFF() UCR &= ~0x10

#define COMPRESS_DISABLE NOCC_START()
#define COMPRESS_REENABLE NOCC_END()

#define NOCC_START() asm(".nocc_start")
#define NOCC_END() asm(".nocc_end")

void _StackCheck(void);
void _StackOverflowed(char);
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~有关特殊功能寄存器兼容性定义~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
//2线串行接口
#define TWPS1 1
#define TWPS0 0
#define TWINT 7
#define TWEA 6
#define TWSTA 5
#define TWSTO 4
#define TWWC 3
#define TWEN 2
#define TWIE 0
#define TWGCE 0
//模数转换器ADC
#define ADEN 7
#define ADSC 6
#define ADATE 5
#define ADFR 5
#define ADIF 4
#define ADIE 3
#define ADPS2 2
#define ADPS1 1
#define ADPS0 0
#define REFS1 7
#define REFS0 6
#define ADLAR 5
#define MUX4 4
#define MUX3 3
#define MUX2 2
#define MUX1 1
#define MUX0 0
//模拟比较器
#define ACD 7
#define ACBG 6
#define ACO 5
#define ACI 4
#define ACIE 3
#define ACIC 2
#define ACIS1 1
#define ACIS0 0
// 通用同步异步收发机USART
#define URSEL 7
#define URSEL 7
#define UMSEL 6
#define UPM1 5
#define UPM0 4
#define USBS 3
#define UCSZ1 2
#define UCSZ0 1
#define UCPOL 0
#define RXCIE 7
#define TXCIE 6
#define UDRIE 5
#define RXEN 4
#define TXEN 3
#define UCSZ2 2
#define RXB8 1
#define TXB8 0
#define RXC 7
#define TXC 6
#define UDRE 5
#define FE 4
#define DOR 3
#define OVR 3
#define PE 2
#define U2X 1
#define MPCM 0
//串行外设接口SPI
#define SPIE 7
#define SPE 6
#define DORD 5
#define MSTR 4
#define CPOL 3
#define CPHA 2
#define SPR1 1
#define SPR0 0
#define SPIF 7
#define WCOL 6
#define SPI2X 0
//电可擦只读存储器EEPROM
#define EERIE 3
#define EEMWE 2
#define EEWE 1
#define EERE 0
//看门狗定时器
#define WDTOE 4
#define WDE 3
#define WDP2 2
#define WDP1 1
#define WDP0 0
//定时器计数器T2
#define AS2 3
#define TCN2UB 2
#define OCR2UB 1
#define TCR2UB 0
#define FOC2 7
#define WGM20 6
#define COM21 5
#define COM20 4
#define WGM21 3
#define CS22 2
#define CS21 1
#define CS20 0
//定时器计数器T1
#define ICNC1 7
#define ICES1 6
#define WGM13 4
#define WGM12 3
#define CS12 2
#define CS11 1
#define CS10 0
#define COM1A1 7
#define

COM1A0 6
#define COM1B1 5
#define COM1B0 4
#define FOC1A 3
#define FOC1B 2
#define WGM11 1
#define WGM10 0
//特殊功能的I/O寄存器
#define ADTS2 7
#define ADTS1 6
#define ADTS0 5
#define ACME 3
#define PUD 2
#define PSR2 1
#define PSR10 0
//定时器计数器T0
#define FOC0 7
#define WGM00 6
#define COM01 5
#define COM00 4
#define WGM01 3
#define CS02 2
#define CS01 1
#define CS00 0
//MCU通用寄存器
#define JTD 7
#define ISC2 6
#define JTRF 4
#define WDRF 3
#define BORF 2
#define EXTRF 1
#define PORF 0
#define SM2 7
#define SE 6
#define SM1 5
#define SM0 4
#define ISC11 3
#define ISC10 2
#define ISC01 1
#define ISC00 0
//SPM控制寄存器
#define SPMIE 7
#define RWWSB 6
#define RWWSRE 4
#define BLBSET 3
#define PGWRT 2
#define PGERS 1
#define SPMEN 0
//定时器计数器中断
#define OCF2 7
#define TOV2 6
#define ICF1 5
#define OCF1A 4
#define OCF1B 3
#define TOV1 2
#define OCF0 1
#define TOV0 0
#define OCIE2 7
#define TOIE2 6
#define TICIE1 5
#define OCIE1A 4
#define OCIE1B 3
#define TOIE1 2
#define OCIE0 1
#define TOIE0 0
//普通中断
#define INTF1 7
#define INTF0 6
#define INTF2 5
#define INT1 7
#define INT0 6
#define INT2 5
#define IVSEL 1
#define IVCE 0
//I/O端口位定义
#define PORTA7 7
#define PORTA6 6
#define PORTA5 5
#define PORTA4 4
#define PORTA3 3
#define PORTA2 2
#define PORTA1 1
#define PORTA0 0
#define PA7 7
#define PA6 6
#define PA5 5
#define PA4 4
#define PA3 3
#define PA2 2
#define PA1 1
#define PA0 0
#define DDA7 7
#define DDA6 6
#define DDA5 5
#define DDA4 4
#define DDA3 3
#define DDA2 2
#define DDA1 1
#define DDA0 0
#define PINA7 7
#define PINA6 6
#define PINA5 5
#define PINA4 4
#define PINA3 3
#define PINA2 2
#define PINA1 1
#define PINA0 0
#define PORTB7 7
#define PORTB6 6
#define PORTB5 5
#define PORTB4 4
#define PORTB3 3
#define PORTB2 2
#define PORTB1 1
#define PORTB0 0
#define PB7 7
#define PB6 6
#define PB5 5
#define PB4 4
#define PB3 3
#define PB2 2
#define PB1 1
#define PB0 0
#define DDB7 7
#define DDB6 6
#define DDB5 5
#define DDB4 4
#define DDB3 3
#define DDB2 2
#define DDB1 1
#define DDB0 0
#define PINB7 7
#define PINB6 6
#define PINB5 5
#define PINB4 4
#define PINB3 3
#define PINB2 2
#define PINB1 1
#define PINB0 0
#define PORTC7 7
#define PORTC6 6
#define PORTC5 5
#define

PORTC4 4
#define PORTC3 3
#define PORTC2 2
#define PORTC1 1
#define PORTC0 0
#define PC7 7
#define PC6 6
#define PC5 5
#define PC4 4
#define PC3 3
#define PC2 2
#define PC1 1
#define PC0 0
#define DDC7 7
#define DDC6 6
#define DDC5 5
#define DDC4 4
#define DDC3 3
#define DDC2 2
#define DDC1 1
#define DDC0 0
#define PINC7 7
#define PINC6 6
#define PINC5 5
#define PINC4 4
#define PINC3 3
#define PINC2 2
#define PINC1 1
#define PINC0 0
#define PORTD7 7
#define PORTD6 6
#define PORTD5 5
#define PORTD4 4
#define PORTD3 3
#define PORTD2 2
#define PORTD1 1
#define PORTD0 0
#define PD7 7
#define PD6 6
#define PD5 5
#define PD4 4
#define PD3 3
#define PD2 2
#define PD1 1
#define PD0 0
#define DDD7 7
#define DDD6 6
#define DDD5 5
#define DDD4 4
#define DDD3 3
#define DDD2 2
#define DDD1 1
#define DDD0 0
#define PIND7 7
#define PIND6 6
#define PIND5 5
#define PIND4 4
#define PIND3 3
#define PIND2 2
#define PIND1 1
#define PIND0 0
//加密位
#define BLB12 5
#define BLB11 4
#define BLB02 3
#define BLB01 2
#define LB2 1
#define LB1 0
//熔丝低位
#define BODLEVEL 7
#define BODEN 6
#define SUT1 5
#define SUT0 4
#define CKSEL3 3
#define CKSEL2 2
#define CKSEL1 1
#define CKSEL0 0
//熔丝高位
#define OCDEN 7
#define JTAGEN 6
#define SPIEN 5
#define CKOPT 4
#define EESAVE 3
#define BOOTSZ1 2
#define BOOTSZ0 1
#define BOOTRST 0
//中断矢量编号
#define iv_RESET 1
#define iv_INT0 2
#define iv_EXT_INT0 2
#define iv_INT1 3
#define iv_EXT_INT1 3
#define iv_TIMER2_COMPA 4
#define iv_TIMER2_COMP 4
#define iv_TIM2_COMP 4
#define iv_TIMER2_OVF 5
#define iv_TIM2_OVF 5
#define iv_TIMER1_CAPT 6
#define iv_TIM1_CAPT 6
#define iv_TIMER1_COMPA 7
#define iv_TIM1_COMPA 7
#define iv_TIMER1_COMPB 8
#define iv_TIM1_COMPB 8
#define iv_TIMER1_OVF 9
#define iv_TIM1_OVF 9
#define iv_TIMER0_OVF 10
#define iv_TIM0_OVF 10
#define iv_SPI_STC 11
#define iv_USART_RX 12
#define iv_USART_RXC 12
#define iv_USART0_RX 12
#define iv_USART0_RXC 12
#define iv_USART_DRE 13
#define iv_USART_UDRE 13
#define iv_USART0_DRE 13
#define iv_USART0_UDRE 13
#define iv_USART_TX 14
#define iv_USART_TXC 14
#define iv_USART0_TX 14
#define iv_USART0_TXC 14
#define iv_ADC 15
#define iv_EE_RDY 16
#define iv_EE_READY 16
#define iv_ANA_COMP 17
#define iv_ANALOG_COMP 17
#define iv_TWI 18
#define iv_TWSI 18
#define iv_INT2 19
#define iv_EXT_INT2 19
#define iv_TIMER0_COMPA 20
#define iv_TI

MER0_COMP 20
#define iv_TIM0_COMP 20
#define iv_SPM_RDY 21
#define iv_SPM_READY 21

#endif














相关文档
相关文档 最新文档