📄 atmega128.h
字号:
SFR_B_N(0x11, DDRD, DDD7, DDD6, DDD5, DDD4, DDD3, DDD2, DDD1, DDD0)
// 端口D数据方向寄存器
SFR_B_N(0x12, PORTD, PORTD7, PORTD6, PORTD5, PORTD4, PORTD3, PORTD2, PORTD1, PORTD0)
// 端口D数据寄存器
SFR_B_N(0x13, PINC, PINC7, PINC6, PINC5, PINC4, PINC3, PINC2, PINC1, PINC0)
// 端口C输入引脚地址
SFR_B_N(0x14, DDRC, DDC7, DDC6, DDC5, DDC4, DDC3, DDC2, DDC1, DDC0)
// 端口C数据方向寄存器
SFR_B_N(0x15, PORTC, PORTC7, PORTC6, PORTC5, PORTC4, PORTC3, PORTC2, PORTC1, PORTC0)
// 端口C数据寄存器
SFR_B_N(0x16, PINB, PINB0, PINB1, PINB2, PINB3, PINB4, PINB5, PINB6, PINB7)
// 端口B输入引脚地址
SFR_B_N(0x17, DDRB, DDB7, DDB6, DDB5, DDB4, DDB3, DDB2, DDB1, DDB0)
// 端口B数据方向寄存器
SFR_B_N(0x18, PORTB, PORTB7, PORTB6, PORTB5, PORTB4, PORTB3, PORTB2, PORTB1, PORTB0)
// 端口B数据寄存器
SFR_B_N(0x19, PINA, PINA7, PINA6, PINA5, PINA4, PINA3, PINA2, PINA1, PINA0)
// 端口A输入引脚地址
SFR_B_N(0x1A, DDRA, DDA7, DDA6, DDA5, DDA4, DDA3, DDA2, DDA1, DDA0)
// 端口A数据方向寄存器
SFR_B_N(0x1B, PORTA, PORTA7, PORTA6, PORTA5, PORTA4, PORTA3, PORTA2, PORTA1, PORTA0)
// 端口A数据寄存器
SFR_B_N(0x1C, EECR, Dummy7, Dummy6, Dummy5, Dummy4, EERIE, EEMWE, EEWE, EERE)
// EEPROM控制寄存器
SFR_B_R(0x1D, EEDR) // EEPROM数据寄存器
SFR_W_R(0x1E, EEAR) // EEPROM地址寄存器(16 位存取模式)
SFR_B_N(0x20, SFIOR, TSM, Dummy6, Dummy5, Dummy4, ACME, PUD, PSR0, PSR321)
// 特殊功能I/O寄存器
SFR_B_N(0x21, WDTCR, Dummy7, Dummy6, Dummy5, WDCE, WDE, WDP2, WDP1, WDP0)
// 看门狗定时器控制寄存器
SFR_B_N(0x22, OCDR, OCDR7, OCDR6, OCDR5, OCDR4, OCDR3, OCDR2, OCDR1, OCDR0)
// 片上调试系统(OCD)寄存器
SFR_B_R(0x23, OCR2) // 定时器/计数器2输出比较寄存器
SFR_B_R(0x24, TCNT2) // 定时器/计数器2
SFR_B_N(0x25, TCCR2, FOC2, WGM20, COM21, COM20, WGM21, CS22, CS21, CS20)
// 定时器/计数器2控制寄存器
SFR_W_R(0x26, ICR1) // 定时器/计数器1输入捕获寄存器(16 位)
SFR_W_R(0x28, OCR1B) // 定时器/计数器1输出比较寄存器B(16 位)
SFR_W_R(0x2A, OCR1A) // 定时器/计数器1输出比较寄存器A(16 位)
SFR_W_R(0x2C, TCNT1) // 定时器/计数器1(16 位存取模式)
SFR_B_N(0x2E, TCCR1B, ICNC1, ICES1, Dummy5, WGM13, WGM12, CS12, CS11, CS10)
// 定时器/计数器1控制寄存器B
SFR_B_N(0x2F, TCCR1A, COM1A1, COM1A0, COM1B1, COM1B0, COM1C1, COM1C0, WGM11, WGM10)
// 定时器/计数器1控制寄存器A
SFR_B_N(0x30, ASSR, Dummy7, Dummy6, Dummy5, Dummy4, AS0, TCN0UB, OCR0UB, TCR0UB)
// 异步方式状态寄存器
SFR_B_R(0x31, OCR0) // 定时器/计数器0输出比较寄存器
SFR_B_R(0x32, TCNT0) // 定时器/计数器0
SFR_B_N(0x33, TCCR0, FOC0, WGM00, COM01, COM00, WGM01, CS02, CS01, CS00)
// 定时器/计数器0控制寄存器
SFR_B_N(0x34, MCUCSR, JTD, Dummy6, Dummy5, JTRF, WDRF, BORF, EXTRF, PORF)
// MCU控制与状态寄存器
SFR_B_N(0x35, MCUCR, SRE, SRW10, SE, SM1, SM0, SM2, IVSEL, IVCE)
// MCU控制寄存器
SFR_B_N(0x36, TIFR, OCF2, TOV2, ICF1, OCF1A, OCF1B, TOV1, OCF0, TOV0)
// 定时器/计数器中断标志寄存器
SFR_B_N(0x37, TIMSK, OCIE2, TOIE2, TICIE1, OCIE1A, OCIE1B, TOIE1, OCIE0, TOIE0)
// 定时器/计数器中断屏蔽寄存器
SFR_B_N(0x38, EIFR, INTF7, INTF6, INTF5, INTF4, INTF3, INTF2, INTF1, INTF0)
// 外部中断标志寄存器
SFR_B_N(0x39, EIMSK, INT7, INT6, INT5, INT4, INT3, INT2, INT1, INT0)
// 外部中断屏蔽寄存器
SFR_B_N(0x3A, EICRB, ISC71, ISC70, ISC61, ISC60, ISC51, ISC50, ISC41, ISC40)
// 外部中断控制寄存器B
SFR_B_N(0x3B, RAMPZ, Dummy7, Dummy6, Dummy5, Dummy4, Dummy3, Dummy2, Dummy1, RAMPZ0)
// 程序存储器页面的Z指针选择寄存器
SFR_B_N(0x3C, XDIV, XDIVEN, XDIV6, XDIV5, XDIV4, XDIV3, XDIV2, XDIV1, XDIV0)
// XTAL分频控制寄存器
SFR_W_N(0x3D, SP, SP15, SP14, SP13, SP12, SP11, SP10, SP9, SP8, SP7, SP6, SP5, SP4, SP3, SP2, SP1, SP0)
// 堆栈指针(16 位存取模式)
SFR_B_N(0x3F, SREG, I, T, H, S, V, N, Z, C)
// 状态寄存器
/*--------------------------------------------------------------------------------------
存储器映射式的I/O 寄存器定义(0xFF~0x60)
--------------------------------------------------------------------------------------*/
SFR_B_N(0x61, DDRF, DDF7, DDF6, DDF5, DDF4, DDF3, DDF2, DDF1, DDF0)
// 端口F数据方向寄存器
SFR_B_N(0x62, PORTF, PORTF7, PORTF6, PORTF5, PORTF4, PORTF3, PORTF2, PORTF1, PORTF0)
// 端口F数据寄存器
SFR_B_N(0x63, PING, Dummy7, Dummy6, Dummy5, PING4, PING3, PING2, PING1, PING0)
// 端口G输入引脚地址
SFR_B_N(0x64, DDRG, Dummy7, Dummy6, Dummy5, DDG4, DDG3, DDG2, DDG1, DDG0 )
// 端口G数据方向寄存器
SFR_B_N(0x65, PORTG, Dummy7, Dummy6, Dummy5, PORTG4, PORTG3, PORTG2, PORTG1, PORTG0)
// 端口G数据寄存器
SFR_B_N(0x68, SPMCSR, SPMIE, RWWSB, Dummy5, RWWSRE, BLBSET, PGWRT, PGERS, SPMEN)
// 保存程序存储器控制寄存器
SFR_B_N(0x6A, EICRA, ISC31, ISC30, ISC21, ISC20, ISC11, ISC10, ISC01, ISC00)
// 外部中断控制寄存器A
SFR_B_N(0x6C, XMCRB, XMBK, Dummy6, Dummy5, Dummy4, Dummy3, XMM2, XMM1, XMM0)
// 外部存储器控制寄存器B
SFR_B_N(0x6D, XMCRA, Dummy7, SRL2, SRL1, SRL0, SRW01, SRW00, SRW11, Dummy0)
// 外部存储器控制寄存器A
SFR_B_R(0x6F, OSCCAL) // 振荡器定标寄存器
SFR_B_R(0x70, TWBR) // TWI比特率寄存器
SFR_B_N(0x71, TWSR, TWS7, TWS6, TWS5, TWS4, TWS3, Dummy2, TWPS1, TWPS0)
// TWI状态寄存器
SFR_B_N(0x72, TWAR, TWA6, TWA5, TWA4, TWA3, TWA2, TWA1, TWA0, TWGCE)
// TWI(从机)地址寄存器
SFR_B_R(0x73, TWDR) // TWI数据寄存器
SFR_B_N(0x74, TWCR, TWINT, TWEA, TWSTA, TWSTO, TWWC, TWEN, Dummy1, TWIE)
// TWI控制寄存器
SFR_W_R(0x78, OCR1C) // 定时器/计数器1输出比较寄存器C(16 位)
SFR_B_N(0x7A, TCCR1C, FOC1A, FOC1B, FOC1C, Dummy4, Dummy3, Dummy2, Dummy1, Dummy0)
// 定时器/计数器1控制寄存器C
SFR_B_N(0x7C, ETIFR, Dummy7, Dummy6, ICF3, OCF3A, OCF3B, TOV3, OCF3C, OCF1C)
// 扩展的定时器/计数器中断标志寄存器
SFR_B_N(0x7D, ETIMSK, Dummy7, Dummy6, TICIE3, OCIE3A, OCIE3B, TOIE3, OCIE3C, OCIE1C)
// 扩展的定时器/计数器中断屏蔽寄存器
SFR_W_R(0x80, ICR3) // 定时器/计数器3输入捕获寄存器(16 位)
SFR_W_R(0x82, OCR3C) // 定时器/计数器3输出比较寄存器C(16 位)
SFR_W_R(0x84, OCR3B) // 定时器/计数器3输出比较寄存器B(16 位)
SFR_W_R(0x86, OCR3A) // 定时器/计数器3输出比较寄存器A(16 位)
SFR_W_R(0x88, TCNT3) // 定时器/计数器3(16 位存取模式)
SFR_B_N(0x8A, TCCR3B, ICNC3, ICES3, Dummy5, WGM33, WGM32, CS32, CS31, CS30)
// 定时器/计数器3控制寄存器B
SFR_B_N(0x8B, TCCR3A, COM3A1, COM3A0, COM3B1, COM3B0, COM3C1, COM3C0, WGM31, WGM30)
// 定时器/计数器3控制寄存器A
SFR_B_N(0x8C, TCCR3C, FOC3A, FOC3B, FOC3C, Dummy4, Dummy3, Dummy2, Dummy1, Dummy0)
// 定时器/计数器3控制寄存器C
SFR_B_R(0x90, UBRR0H) // USART0波特率寄存器高字节
SFR_B_N(0x95, UCSR0C, Dummy7, UMSEL0, UPM01, UPM00, USBS0, UCSZ01, UCSZ00, UCPOL0)
// USART0控制和状态寄存器C
SFR_B_R(0x98, UBRR1H) // USART1波特率寄存器高字节
SFR_B_R(0x99, UBRR1L) // USART1波特率寄存器低字节
SFR_B_N(0x9A, UCSR1B, RXCIE1, TXCIE1, UDRIE1, RXEN1, TXEN1, UCSZ12, RXB81, TXB81)
// USART1控制和状态寄存器B
SFR_B_N(0x9B, UCSR1A, RXC1, TXC1, UDRE1, FE1, DOR1, UPE1, U2X1, MPCM1)
// USART1控制和状态寄存器A
SFR_B_R(0x9C, UDR1) // USART1 I/O 数据寄存器
SFR_B_N(0x9D, UCSR1C, Dummy7, UMSEL1, UPM11, UPM10, USBS1, UCSZ11, UCSZ10, UCPOL1)
// USART1控制和状态寄存器C
/*==========================================================================================
下面两条指令是本头部文件条件编译的预处理指令,用于防止本头部文件被其他文件重复引用。
==========================================================================================*/
#ifndef __IOM128_H // "__IOM128_H" 条件编译开始
#define __IOM128_H
/*==========================================================================================
中断向量地址定义
注意:本头部文件的中断向量地址指定为字节地址。
==========================================================================================*/
#define RESET_vect (0x00) // 外部引脚、上电复位、掉电检测、看门狗复位、
// 以及 JTAG AVR 复位中断向量
#define INT0_vect (0x04) // 外部中断请求0中断向量
#define INT1_vect (0x08) // 外部中断请求1中断向量
#define INT2_vect (0x0C) // 外部中断请求2中断向量
#define INT3_vect (0x10) // 外部中断请求3中断向量
#define INT4_vect (0x14) // 外部中断请求4中断向量
#define INT5_vect (0x18) // 外部中断请求5中断向量
#define INT6_vect (0x1C) // 外部中断请求6中断向量
#define INT7_vect (0x20) // 外部中断请求7中断向量
#define TIMER2_COMP_vect (0x24) // 定时器/计数器2比较匹配中断向量
#define TIMER2_OVF_vect (0x28) // 定时器/计数器2溢出中断向量
#define TIMER1_CAPT_vect (0x2C) // 定时器/计数器1输入捕获中断向量
#define TIMER1_COMPA_vect (0x30) // 定时器/计数器1A比较匹配中断向量
#define TIMER1_COMPB_vect (0x34) // 定时器/计数器1B比较匹配中断向量
#define TIMER1_OVF_vect (0x38) // 定时器/计数器1溢出中断向量
#define TIMER0_COMP_vect (0x3C) // 定时器/计数器0比较匹配中断向量
#define TIMER0_OVF_vect (0x40) // 定时器/计数器0溢出中断向量
#define SPI_STC_vect (0x44) // SPI串行传输结束中断向量
#define USART0_RXC_vect (0x48) // USART0接收结束中断向量
#define USART0_UDRE_vect (0x4C) // USART0数据寄存器空中断向量
#define USART0_TXC_vect (0x50) // USART0发送结束中断向量
#define ADC_vect (0x54) // ADC转换结束中断向量
#define EE_RDY_vect (0x58) // EEPROM就绪中断向量
#define ANA_COMP_vect (0x5C) // 模拟比较器中断向量
#define TIMER1_COMPC_vect (0x60) // 定时器/计数器1C比较匹配中断向量
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -