📄 atmega128.h
字号:
#define TIMER3_CAPT_vect (0x64) // 定时器/计数器3输入捕获中断向量
#define TIMER3_COMPA_vect (0x68) // 定时器/计数器3A比较匹配中断向量
#define TIMER3_COMPB_vect (0x6C) // 定时器/计数器3B比较匹配中断向量
#define TIMER3_COMPC_vect (0x70) // 定时器/计数器3C比较匹配中断向量
#define TIMER3_OVF_vect (0x74) // 定时器/计数器3溢出中断向量
#define USART1_RXC_vect (0x78) // USART1接收结束中断向量
#define USART1_UDRE_vect (0x7C) // USART1数据寄存器空中断向量
#define USART1_TXC_vect (0x80) // USART1发送结束中断向量
#define TWI_vect (0x84) // 两线串行总线接口中断向量
#define SPM_RDY_vect (0x88) // 保存程序存储器内容就绪中断向量
#endif // "__IOM128_H(定义部分)" 条件编译结束
#endif // "__IOM128_H(特殊功能寄存器部分)" 编译结束
#endif // "defined(_IAR_EW_AVR_)" 条件编译结束
/*
********************************************************************************************
适合的编译系统:CodeVision AVR C 版本:1.24.6 以上
********************************************************************************************
*/
#if defined(_CodeVision_AVR_) // "CodeVision AVR C 编译器"条件编译开始
/*==========================================================================================
下面两条指令是本头部文件条件编译的预处理指令,用于防止本头部文件被其他文件重复引用。
==========================================================================================*/
#ifndef _MEGA128_INCLUDED_ // "_MEGA128_INCLUDED_" 条件编译开始
#define _MEGA128_INCLUDED_
/*==========================================================================================
I/O 寄存器定义
==========================================================================================*/
#pragma used+
/*--------------------------------------------------------------------------------------
I/O 寄存器定义($3F-$00)
--------------------------------------------------------------------------------------*/
sfrb SREG = 0x3F; // 状态寄存器
sfrb SPH = 0x3E; // 堆栈指针高字节
sfrb SPL = 0x3D; // 堆栈指针低字节
sfrb XDIV = 0x3C; // XTAL分频控制寄存器
sfrb RAMPZ = 0x3B; // 程序存储器页面的Z指针选择寄存器
sfrb EICRB = 0x3A; // 外部中断控制寄存器B
sfrb EIMSK = 0x39; // 外部中断屏蔽寄存器
sfrb EIFR = 0x38; // 外部中断标志寄存器
sfrb TIMSK = 0x37; // 定时器/计数器中断屏蔽寄存器
sfrb TIFR = 0x36; // 定时器/计数器中断标志寄存器
sfrb MCUCR = 0x35; // MCU控制寄存器
sfrb MCUCSR = 0x34; // MCU控制与状态寄存器
sfrb TCCR0 = 0x33; // 定时器/计数器0控制寄存器
sfrb TCNT0 = 0x32; // 定时器/计数器0(8位)
sfrb OCR0 = 0x31; // 定时器/计数器0输出比较寄存器
sfrb ASSR = 0x30; // 异步方式状态寄存器
sfrb TCCR1A = 0x2F; // 定时器/计数器1控制寄存器A
sfrb TCCR1B = 0x2E; // 定时器/计数器1控制寄存器B
sfrb TCNT1H = 0x2D; // 定时器/计数器1高字节
sfrb TCNT1L = 0x2C; // 定时器/计数器1低字节
sfrw TCNT1 = 0x2C; // 定时器/计数器1(16 位存取模式)
sfrb OCR1AH = 0x2B; // 定时器/计数器1输出比较寄存器A高字节
sfrb OCR1AL = 0x2A; // 定时器/计数器1输出比较寄存器A低字节
sfrw OCR1A = 0x2A; // 定时器/计数器1输出比较寄存器A(16 位)
sfrb OCR1BH = 0x29; // 定时器/计数器1输出比较寄存器B高字节
sfrb OCR1BL = 0x28; // 定时器/计数器1输出比较寄存器B低字节
sfrw OCR1B = 0x28; // 定时器/计数器1输出比较寄存器B(16 位)
sfrb ICR1H = 0x27; // 定时器/计数器1输入捕获寄存器高字节
sfrb ICR1L = 0x26; // 定时器/计数器1输入捕获寄存器低字节
sfrw ICR1 = 0x26; // 定时器/计数器1输入捕获寄存器(16 位)
sfrb TCCR2 = 0x25; // 定时器/计数器2控制寄存器
sfrb TCNT2 = 0x24; // 定时器/计数器2(8位)
sfrb OCR2 = 0x23; // 定时器/计数器2输出比较寄存器
sfrb OCDR = 0x22; // 片上调试系统(OCD)寄存器
sfrb WDTCR = 0x21; // 看门狗定时器控制寄存器
sfrb SFIOR = 0x20; // 特殊功能IO寄存器
sfrb EEARH = 0x1F; // EEPROM地址寄存器高字节
sfrb EEARL = 0x1E; // EEPROM地址寄存器低字节
sfrw EEAR = 0x1E; // EEPROM地址寄存器(16 位存取模式)
sfrb EEDR = 0x1D; // EEPROM数据寄存器
sfrb EECR = 0x1C; // EEPROM控制寄存器
sfrb PORTA = 0x1B; // 端口A数据寄存器
sfrb DDRA = 0x1A; // 端口A数据方向寄存器
sfrb PINA = 0x19; // 端口A输入引脚地址
sfrb PORTB = 0x18; // 端口B数据寄存器
sfrb DDRB = 0x17; // 端口B数据方向寄存器
sfrb PINB = 0x16; // 端口B输入引脚地址
sfrb PORTC = 0x15; // 端口C数据寄存器
sfrb DDRC = 0x14; // 端口C数据方向寄存器
sfrb PINC = 0x13; // 端口C输入引脚地址
sfrb PORTD = 0x12; // 端口D数据寄存器
sfrb DDRD = 0x11; // 端口D数据方向寄存器
sfrb PIND = 0x10; // 端口D输入引脚地址
sfrb SPDR = 0x0F; // SPI数据寄存器
sfrb SPSR = 0x0E; // SPI状态寄存器
sfrb SPCR = 0x0D; // SPI控制寄存器
sfrb UDR0 = 0x0C; // USART0 I/O 数据寄存器
sfrb UCSR0A = 0x0B; // USART0控制和状态寄存器A
sfrb UCSR0B = 0x0A; // USART0控制和状态寄存器B
sfrb UBRR0L = 0x09; // USART0波特率寄存器低字节
sfrb ACSR = 0x08; // 模拟比较器控制和状态寄存器
sfrb ADMUX = 0x07; // ADC多路选择寄存器
sfrb ADCSR = 0x06; // ADC控制和状态寄存器
sfrb ADCH = 0x05; // ADC数据寄存器高字节
sfrb ADCL = 0x04; // ADC数据寄存器低字节
sfrw ADCW = 0x04; // ADC数据寄存器(16 位存取模式)
sfrb PORTE = 0x03; // 端口E数据寄存器
sfrb DDRE = 0x02; // 端口E数据方向寄存器
sfrb PINE = 0x01; // 端口E输入引脚地址
sfrb PINF = 0x00; // 端口F输入引脚地址
#pragma used-
/*--------------------------------------------------------------------------------------
存储器映射式的I/O 寄存器定义(0xFF~0x60)
--------------------------------------------------------------------------------------*/
#define UCSR1C (*(volatile Uchar8 *)0x9D) // USART1控制和状态寄存器C
#define UDR1 (*(volatile Uchar8 *)0x9C) // USART1 I/O 数据寄存器
#define UCSR1A (*(volatile Uchar8 *)0x9B) // USART1控制和状态寄存器A
#define UCSR1B (*(volatile Uchar8 *)0x9A) // USART1控制和状态寄存器B
#define UBRR1L (*(volatile Uchar8 *)0x99) // USART1波特率寄存器低字节
#define UBRR1H (*(volatile Uchar8 *)0x98) // USART1波特率寄存器高字节
#define UCSR0C (*(volatile Uchar8 *)0x95) // USART0控制和状态寄存器C
#define UBRR0H (*(volatile Uchar8 *)0x90) // USART0波特率寄存器高字节
#define TCCR3C (*(volatile Uchar8 *)0x8C) // 定时器/计数器3控制寄存器C
#define TCCR3A (*(volatile Uchar8 *)0x8B) // 定时器/计数器3控制寄存器A
#define TCCR3B (*(volatile Uchar8 *)0x8A) // 定时器/计数器3控制寄存器B
#define TCNT3H (*(volatile Uchar8 *)0x89) // 定时器/计数器3高字节
#define TCNT3L (*(volatile Uchar8 *)0x88) // 定时器/计数器3低字节
#define OCR3AH (*(volatile Uchar8 *)0x87) // 定时器/计数器3输出比较寄存器A高字节
#define OCR3AL (*(volatile Uchar8 *)0x86) // 定时器/计数器3输出比较寄存器A低字节
#define OCR3BH (*(volatile Uchar8 *)0x85) // 定时器/计数器3输出比较寄存器B高字节
#define OCR3BL (*(volatile Uchar8 *)0x84) // 定时器/计数器3输出比较寄存器B低字节
#define OCR3CH (*(volatile Uchar8 *)0x83) // 定时器/计数器3输出比较寄存器C高字节
#define OCR3CL (*(volatile Uchar8 *)0x82) // 定时器/计数器3输出比较寄存器C低字节
#define ICR3H (*(volatile Uchar8 *)0x81) // 定时器/计数器3输入捕获寄存器高字节
#define ICR3L (*(volatile Uchar8 *)0x80) // 定时器/计数器3输入捕获寄存器低字节
#define ETIMSK (*(volatile Uchar8 *)0x7D) // 扩展的定时器/计数器中断屏蔽寄存器
#define ETIFR (*(volatile Uchar8 *)0x7C) // 扩展的定时器/计数器中断标志寄存器
#define TCCR1C (*(volatile Uchar8 *)0x7A) // 定时器/计数器1控制寄存器C
#define OCR1CH (*(volatile Uchar8 *)0x79) // 定时器/计数器1输出比较寄存器C高字节
#define OCR1CL (*(volatile Uchar8 *)0x78) // 定时器/计数器1输出比较寄存器C低字节
#define TWCR (*(volatile Uchar8 *)0x74) // TWI控制寄存器
#define TWDR (*(volatile Uchar8 *)0x73) // TWI数据寄存器
#define TWAR (*(volatile Uchar8 *)0x72) // TWI(从机)地址寄存器
#define TWSR (*(volatile Uchar8 *)0x71) // TWI状态寄存器
#define TWBR (*(volatile Uchar8 *)0x70) // TWI比特率寄存器
#define OSCCAL (*(volatile Uchar8 *)0x6F) // 振荡器标定寄存器
#define XMCRA (*(volatile Uchar8 *)0x6D) // 外部存储器控制寄存器A
#define XMCRB (*(volatile Uchar8 *)0x6C) // 外部存储器控制寄存器B
#define EICRA (*(volatile Uchar8 *)0x6A) // 外部中断控制寄存器A
#define SPMCSR (*(volatile Uchar8 *)0x68) // 保存程序存储器控制寄存器
#define PORTG (*(volatile Uchar8 *)0x65) // 端口G数据寄存器
#define DDRG (*(volatile Uchar8 *)0x64) // 端口G数据方向寄存器
#define PING (*(volatile Uchar8 *)0x63) // 端口G输入引脚地址
#define PORTF (*(volatile Uchar8 *)0x62) // 端口F数据寄存器
#define DDRF (*(volatile Uchar8 *)0x61) // 端口F数据方向寄存器
/*==========================================================================================
中断向量地址定义
==========================================================================================*/
#define EXT_INT0 2 // 外部中断请求0中断向量
#define EXT_INT1 3 // 外部中断请求1中断向量
#define EXT_INT2 4 // 外部中断请求2中断向量
#define EXT_INT3 5 // 外部中断请求3中断向量
#define EXT_INT4 6 // 外部中断请求4中断向量
#define EXT_INT5 7 // 外部中断请求5中断向量
#define EXT_INT6 8 // 外部中断请求6中断向量
#define EXT_INT7 9 // 外部中断请求7中断向量
#define TIM2_COMP 10 // 定时器/计数器2比较匹配中断向量
#define TIM2_OVF 11 // 定时器/计数器2溢出中断向量
#define TIM1_CAPT 12 // 定时器/计数器1输入捕获中断向量
#define TIM1_COMPA 13 // 定时器/计数器1A比较匹配中断向量
#define TIM1_COMPB 14 // 定时器/计数器1B比较匹配中断向量
#define TIM1_OVF 15 // 定时器/计数器1溢出中断向量
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -