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

📄 iom128v.h

📁 用AVR单片机做的一些程序,包括跑马灯显示,PWM产生,ADC转换等
💻 H
📖 第 1 页 / 共 2 页
字号:
#ifndef __iom128v_h
#define __iom128v_h

/* ATmega128 header file for
 * ImageCraft ICCAVR compiler
 */

/* i/o register addresses
 * >= 0x60 are memory mapped only
 */

/* not strictly sorted by address no more
 */

/* interrupt vector number definitions added
 */

/* last changed 2002/09/26
 */

/* Port G */
#define PING	(*(volatile unsigned char *)0x63) /* m/m */
#define DDRG	(*(volatile unsigned char *)0x64) /* m/m */
#define PORTG	(*(volatile unsigned char *)0x65) /* m/m */

/* Port F */
#define PINF	(*(volatile unsigned char *)0x20)
#define DDRF	(*(volatile unsigned char *)0x61) /* m/m */
#define PORTF	(*(volatile unsigned char *)0x62) /* m/m */

/* Port E */
#define PINE	(*(volatile unsigned char *)0x21)
#define DDRE	(*(volatile unsigned char *)0x22)
#define PORTE	(*(volatile unsigned char *)0x23)

/* Port D */
#define PIND	(*(volatile unsigned char *)0x30)
#define DDRD	(*(volatile unsigned char *)0x31)
#define PORTD	(*(volatile unsigned char *)0x32)

/* Port C */
#define PINC	(*(volatile unsigned char *)0x33)
#define DDRC	(*(volatile unsigned char *)0x34)
#define PORTC	(*(volatile unsigned char *)0x35)

/* Port B */
#define PINB	(*(volatile unsigned char *)0x36)
#define DDRB	(*(volatile unsigned char *)0x37)
#define PORTB	(*(volatile unsigned char *)0x38)

/* Port A */
#define PINA	(*(volatile unsigned char *)0x39)
#define DDRA	(*(volatile unsigned char *)0x3A)
#define PORTA	(*(volatile unsigned char *)0x3B)

/* ADC */
#define ADC 	(*(volatile unsigned int *)0x24)
#define ADCL	(*(volatile unsigned char *)0x24)
#define ADCH	(*(volatile unsigned char *)0x25)
#define ADCSRA	(*(volatile unsigned char *)0x26)
#define  ADEN     7
#define  ADSC     6
#define  ADFR     5
#define  ADATE    5
#define  ADIF     4
#define  ADIE     3
#define  ADPS2    2
#define  ADPS1    1
#define  ADPS0    0
#define ADMUX	(*(volatile unsigned char *)0x27)
#define  REFS1    7
#define  REFS0    6
#define  ADLAR    5
#define  MUX4     4
#define  MUX3     3
#define  MUX2     2
#define  MUX1     1
#define  MUX0     0

/* Analog Comparator Control and Status Register */
#define ACSR	(*(volatile unsigned char *)0x28)
#define  ACD      7
#define  ACBG     6
#define  ACO      5
#define  ACI      4
#define  ACIE     3
#define  ACIC     2
#define  ACIS1    1
#define  ACIS0    0

/* USART0 */
#define UBRR0H	(*(volatile unsigned char *)0x90) /* m/m */
#define UBRR0L	(*(volatile unsigned char *)0x29)
#define UCSR0C	(*(volatile unsigned char *)0x95) /* m/m */
#define  UMSEL0   6
#define  UPM01    5
#define  UPM00    4
#define  USBS0    3
#define  UCSZ01   2
#define  UCSZ00   1
#define  UCPOL0   0
#define UCSR0B	(*(volatile unsigned char *)0x2A)
#define  RXCIE0   7
#define  TXCIE0   6
#define  UDRIE0   5
#define  RXEN0    4
#define  TXEN0    3
#define  UCSZ02   2
#define  RXB80    1
#define  TXB80    0
#define UCSR0A	(*(volatile unsigned char *)0x2B)
#define  RXC0     7
#define  TXC0     6
#define  UDRE0    5
#define  FE0      4
#define  DOR0     3
#define  UPE0     2
#define  U2X0     1
#define  MPCM0    0
#define UDR0	(*(volatile unsigned char *)0x2C)

/* USART1 */
#define UBRR1H	(*(volatile unsigned char *)0x98) /* m/m */
#define UBRR1L	(*(volatile unsigned char *)0x99) /* m/m */
#define UCSR1C	(*(volatile unsigned char *)0x9D) /* m/m */
#define  UMSEL1   6
#define  UPM11    5
#define  UPM10    4
#define  USBS1    3
#define  UCSZ11   2
#define  UCSZ10   1
#define  UCPOL1   0
#define UCSR1B	(*(volatile unsigned char *)0x9A) /* m/m */
#define  RXCIE1   7
#define  TXCIE1   6
#define  UDRIE1   5
#define  RXEN1    4
#define  TXEN1    3
#define  UCSZ12   2
#define  RXB81    1
#define  TXB81    0
#define UCSR1A	(*(volatile unsigned char *)0x9B) /* m/m */
#define  RXC1     7
#define  TXC1     6
#define  UDRE1    5
#define  FE1      4
#define  DOR1     3
#define  UPE1     2
#define  U2X1     1
#define  MPCM1    0
#define UDR1	(*(volatile unsigned char *)0x9C) /* m/m */

/* 2-wire SI */
#define TWBR	(*(volatile unsigned char *)0x70) /* m/m */
#define TWSR	(*(volatile unsigned char *)0x71) /* m/m */
#define  TWPS1    1
#define  TWPS0    0
#define TWAR	(*(volatile unsigned char *)0x72) /* m/m */
#define  TWGCE    0
#define TWDR	(*(volatile unsigned char *)0x73) /* m/m */
#define TWCR	(*(volatile unsigned char *)0x74) /* m/m */
#define  TWINT    7
#define  TWEA     6
#define  TWSTA    5
#define  TWSTO    4
#define  TWWC     3
#define  TWEN     2
#define  TWIE     0

/* SPI */
#define SPCR	(*(volatile unsigned char *)0x2D)
#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 SPSR	(*(volatile unsigned char *)0x2E)
#define  SPIF     7
#define  WCOL     6
#define  SPI2X    0
#define SPDR	(*(volatile unsigned char *)0x2F)

/* EEPROM */
#define EECR	(*(volatile unsigned char *)0x3C)
#define  EERIE    3
#define  EEMWE    2
#define  EEWE     1
#define  EERE     0
#define EEDR	(*(volatile unsigned char *)0x3D)
#define EEAR	(*(volatile unsigned int *)0x3E)
#define EEARL	(*(volatile unsigned char *)0x3E)
#define EEARH	(*(volatile unsigned char *)0x3F)

/* Special Function IO Register */
#define SFIOR	(*(volatile unsigned char *)0x40)
#define  TSM      7
#define  ADHSM    4
#define  ACME     3
#define  PUD      2
#define  PSR0     1
#define  PSR321   0

/* Watchdog Timer Control Register */
#define WDTCR	(*(volatile unsigned char *)0x41)
#define  WDCE     4
#define  WDE      3
#define  WDP2     2
#define  WDP1     1
#define  WDP0     0

/* OCDR */
#define OCDR	(*(volatile unsigned char *)0x42)
#define  IDRD     7

/* Timer/Counter3 */
#define ICR3	(*(volatile unsigned int *)0x80) /* m/m */
#define ICR3L	(*(volatile unsigned char *)0x80) /* m/m */
#define ICR3H	(*(volatile unsigned char *)0x81) /* m/m */
#define OCR3C	(*(volatile unsigned int *)0x82) /* m/m */
#define OCR3CL	(*(volatile unsigned char *)0x82) /* m/m */
#define OCR3CH	(*(volatile unsigned char *)0x83) /* m/m */
#define OCR3B	(*(volatile unsigned int *)0x84) /* m/m */
#define OCR3BL	(*(volatile unsigned char *)0x84) /* m/m */
#define OCR3BH	(*(volatile unsigned char *)0x85) /* m/m */
#define OCR3A	(*(volatile unsigned int *)0x86) /* m/m */
#define OCR3AL	(*(volatile unsigned char *)0x86) /* m/m */
#define OCR3AH	(*(volatile unsigned char *)0x87) /* m/m */
#define TCNT3	(*(volatile unsigned int *)0x88) /* m/m */
#define TCNT3L	(*(volatile unsigned char *)0x88) /* m/m */
#define TCNT3H	(*(volatile unsigned char *)0x89) /* m/m */
#define TCCR3C	(*(volatile unsigned char *)0x8C) /* m/m */
#define  FOC3A    7
#define  FOC3B    6
#define  FOC3C    5
#define TCCR3B	(*(volatile unsigned char *)0x8A) /* m/m */
#define  ICNC3    7
#define  ICES3    6
#define  WGM33    4
#define  WGM32    3
#define  CS32     2
#define  CS31     1
#define  CS30     0
#define TCCR3A	(*(volatile unsigned char *)0x8B) /* m/m */
#define  COM3A1   7
#define  COM3A0   6
#define  COM3B1   5
#define  COM3B0   4
#define  COM3C1   3
#define  COM3C0   2
#define  WGM31    1
#define  WGM30    0

/* Timer/Counter2 */
#define OCR2	(*(volatile unsigned char *)0x43)
#define TCNT2	(*(volatile unsigned char *)0x44)
#define TCCR2	(*(volatile unsigned char *)0x45)
#define  FOC2     7
#define  WGM20    6
#define  COM21    5
#define  COM20    4
#define  WGM21    3
#define  CS22     2
#define  CS21     1
#define  CS20     0

/* Timer/Counter1 */
#define ICR1	(*(volatile unsigned int *)0x46)
#define ICR1L	(*(volatile unsigned char *)0x46)
#define ICR1H	(*(volatile unsigned char *)0x47)
#define OCR1C	(*(volatile unsigned int *)0x78) /* m/m */
#define OCR1CL	(*(volatile unsigned char *)0x78) /* m/m */
#define OCR1CH	(*(volatile unsigned char *)0x79) /* m/m */
#define OCR1B	(*(volatile unsigned int *)0x48)
#define OCR1BL	(*(volatile unsigned char *)0x48)
#define OCR1BH	(*(volatile unsigned char *)0x49)
#define OCR1A	(*(volatile unsigned int *)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 TCCR1C	(*(volatile unsigned char *)0x7A) /* m/m */
#define  FOC1A    7
#define  FOC1B    6
#define  FOC1C    5
#define TCCR1B	(*(volatile unsigned char *)0x4E)
#define  ICNC1    7
#define  ICES1    6
#define  WGM13    4
#define  WGM12    3
#define  CS12     2
#define  CS11     1
#define  CS10     0
#define TCCR1A	(*(volatile unsigned char *)0x4F)
#define  COM1A1   7
#define  COM1A0   6
#define  COM1B1   5
#define  COM1B0   4
#define  COM1C1   3
#define  COM1C0   2
#define  WGM11    1
#define  WGM10    0

/* Timer/Counter 0 */
#define ASSR	(*(volatile unsigned char *)0x50)
#define  AS0      3
#define  TCN0UB   2
#define  OCR0UB   1
#define  TCR0UB   0
#define OCR0	(*(volatile unsigned char *)0x51)
#define TCNT0	(*(volatile unsigned char *)0x52)
#define TCCR0	(*(volatile unsigned char *)0x53)
#define  FOC0     7
#define  WGM00    6
#define  COM01    5
#define  COM00    4
#define  WGM01    3
#define  CS02     2
#define  CS01     1
#define  CS00     0

/* Oscillator Calibration Register */
#define OSCCAL	(*(volatile unsigned char *)0x6F) /* m/m */

/* MCU */
#define MCUSR	(*(volatile unsigned char *)0x54)
#define MCUCSR	(*(volatile unsigned char *)0x54)
#define  JTD      7
#define  JTRF     4
#define  WDRF     3
#define  BORF     2
#define  EXTRF    1
#define  PORF     0
#define MCUCR	(*(volatile unsigned char *)0x55)
#define  SRE      7
#define  SRW10    6
#define  SE       5
#define  SM1      4
#define  SM0      3
#define  SM2      2
#define  IVSEL    1
#define  IVCE     0

/* SPM Control and Status Register */
#define SPMCSR	(*(volatile unsigned char *)0x68) /* m/m */
#define  SPMIE    7
#define  RWWSB    6
#define  RWWSRE   4
#define  BLBSET   3
#define  PGWRT    2
#define  PGERS    1
#define  SPMEN    0

/* Timer/Counter Interrupts */
#define TIFR	(*(volatile unsigned char *)0x56)
#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 TIMSK	(*(volatile unsigned char *)0x57)
#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 ETIFR	(*(volatile unsigned char *)0x7C) /* m/m */
#define  ICF3     5
#define  OCF3A    4
#define  OCF3B    3
#define  TOV3     2
#define  OCF3C    1
#define  OCF1C    0
#define ETIMSK	(*(volatile unsigned char *)0x7D) /* m/m */
#define  TICIE3   5
#define  OCIE3A   4
#define  OCIE3B   3
#define  TOIE3    2
#define  OCIE3C   1
#define  OCIE1C   0

/* 葂ternal Interrupts */
#define EIFR	(*(volatile unsigned char *)0x58)
#define  INTF7    7

⌨️ 快捷键说明

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