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

📄 atmega16.h

📁 ATmega16开发,外围芯片LCDM_HD61202_128D64及RTC_DS12887
💻 H
字号:
/* 
****************************************************************************************
头部文件名:        ATmega16.H
头部文件名称:      ATmega16 单片机内部寄存器名和位名定义的头部文件
适用器件芯片类型:   ATmega16(ATMEL公司生产的单片机)
文件版本:        1.0
文件功能:          
    本文件是 ATmega16 单片机内部寄存器名和位名定义、编译器数据类型定义的
  的头部文件。
文件说明:

编译工具软件:      CodeVision AVR C 版本:1.24.6 以上
链接文件:          

编作者:            磊元
编作者 E-Mail:     PTZSW@163.COM
编制日期:          2005年5月18日
------------------------------------------------------------------------------
头部文件版本历史:
2005年5月18日 -------- 版本 1.0 :发行版本
****************************************************************************************
*/


/*======================================================================================
下面两条指令是本头部文件条件编译的预处理指令,用于防止本头部文件被其他文件重复引用。
======================================================================================*/
#ifndef _MEGA16_INCLUDED_             /* "_MEGA16_INCLUDED_" 条件编译开始 */
#define _MEGA16_INCLUDED_


/*======================================================================================
下面这三条指令是用于区分编译系统为 C++ 或 C 的预处理指令。
"__cplusplus" 为 C++ 预处理器名字,这三条指令表明接在其下面的那些指令为 C 程序特征。
======================================================================================*/
#ifdef __cplusplus
extern "C" {
#endif


/*======================================================================================
                            I/O 寄存器定义
======================================================================================*/

#pragma used+
sfrb    SREG      = 0x3f;     /* 状态寄存器 */
sfrb    SPH       = 0x3e;     /* 堆栈指针高字节 */
sfrb    SPL       = 0x3d;     /* 堆栈指针低字节 */
sfrb    OCR0      = 0x3c;     /* 输出比较寄存器 */
sfrb    GICR      = 0x3b;     /* 通用中断屏蔽寄存器 */
sfrb    GIFR      = 0x3a;     /* 通用中断标志寄存器 */
sfrb    TIMSK     = 0x39;     /* 定时器中断屏蔽寄存器 */
sfrb    TIFR      = 0x38;     /* 定时器中断标志寄存器 */
sfrb    SPMCSR    = 0x37;     /* 保存程序存储器控制寄存器 */
sfrb    TWCR      = 0x36;     /* TWI控制寄存器 */
sfrb    MCUCR     = 0x35;     /* MCU控制寄存器 */
sfrb    MCUCSR    = 0x34;     /* MCU控制与状态寄存器 */
sfrb    TCCR0     = 0x33;     /* 定时器/计数器0控制寄存器 */
sfrb    TCNT0     = 0x32;     /* 定时器/计数器0(8位) */
sfrb    OSCCAL    = 0x31;     /* 振荡器标定寄存器 */
sfrb    OCDR      = 0x31;     /* 片上调试系统(OCD)寄存器 */
sfrb    SFIOR     = 0x30;     /* 特殊功能IO寄存器 */
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输入捕获寄存器低字节 */
sfrb    TCCR2     = 0x25;     /* 定时器/计数器2控制寄存器 */
sfrb    TCNT2     = 0x24;     /* 定时器/计数器2(8位) */
sfrb    OCR2      = 0x23;     /* 定时器/计数器2输出比较寄存器 */
sfrb    ASSR      = 0x22;     /* 异步方式状态寄存器 */
sfrb    WDTCR     = 0x21;     /* 看门狗定时器控制寄存器 */
sfrb    UBRRH     = 0x20;     /* USART波特率寄存器(注意:UCSRC 等于 UBRRH) */
sfrb    UCSRC     = 0x20;     /* USART控制和状态寄存器C(注意:UCSRC 等于 UBRRH) */
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    UDR       = 0x0c;     /* USART I/O 数据寄存器 */
sfrb    UCSRA     = 0x0b;     /* USART控制和状态寄存器A */
sfrb    UCSRB     = 0x0a;     /* USART控制和状态寄存器B */
sfrb    UBRRL     = 0x09;     /* USART波特率寄存器 */
sfrb    ACSR      = 0x08;     /* 模拟比较器控制和状态寄存器 */
sfrb    ADMUX     = 0x07;     /* ADC多路选择寄存器 */
sfrb    ADCSRA    = 0x06;     /* ADC控制和状态寄存器 */
sfrb    ADCH      = 0x05;     /* ADC数据寄存器高字节 */
sfrb    ADCL      = 0x04;     /* ADC数据寄存器低字节 */
sfrw    ADCW      = 0x04;     /* ADC数据寄存器 */
                                /* (16 位存取模式) */
sfrb    TWDR      = 0x03;     /* TWI数据寄存器 */
sfrb    TWAR      = 0x02;     /* TWI(从机)地址寄存器 */
sfrb    TWSR      = 0x01;     /* TWI状态寄存器 */
sfrb    TWBR      = 0x00;     /* TWI比特率寄存器 */
#pragma used-


/*======================================================================================
                            中断向量定义
======================================================================================*/

#define EXT_INT0     2        /* 外部中断请求0中断向量 */
#define EXT_INT1     3        /* 外部中断请求1中断向量 */
#define TIM2_COMP    4        /* 定时器/计数器2比较匹配中断向量 */
#define TIM2_OVF     5        /* 定时器/计数器2溢出中断向量 */
#define TIM1_CAPT    6        /* 定时器/计数器1输入捕获中断向量 */
#define TIM1_COMPA   7        /* 定时器/计数器1A比较匹配中断向量 */
#define TIM1_COMPB   8        /* 定时器/计数器1B比较匹配中断向量 */
#define TIM1_OVF     9        /* 定时器/计数器1溢出中断向量 */
#define TIM0_OVF    10        /* 定时器/计数器0溢出中断向量 */
#define SPI_STC     11        /* SPI串行传输结束中断向量 */
#define USART_RXC   12        /* USART接收结束中断向量 */
#define USART_DRE   13        /* USART数据寄存器空中断向量 */
#define USART_TXC   14        /* USART传送结束中断向量 */
#define ADC_INT     15        /* ADC转换结束中断向量 */
#define EE_RDY      16        /* EEPROM就绪中断向量 */
#define ANA_COMP    17        /* 模拟比较器中断向量 */
#define TWI         18        /* 两线串行接口中断向量 */
#define EXT_INT2    19        /* 外部中断请求2中断向量 */
#define TIM0_COMP   20        /* 定时器/计数器0比较匹配中断向量 */
#define SPM_READY   21        /* 保存程序存储器内容就绪中断向量 */


/*======================================================================================
                        片内程序和数据存储器地址空间定义
======================================================================================*/
#define FLASHEND    0x1fff    /* 程序存储器最大地址数(Flash Memory) */
                                /* (此地址为 16 位字的地址数) */
                                /* 【8K×16位字长】 */
#define IOEND       0x003f    /* I/O存储器最大地址数 */
#define SRAM_START  0x0060    /* 静态随机存储器起始地址 */
#define SRAM_SIZE   1024      /* 静态随机存储器容量大小 */
#define RAMEND      0x045f    /* 数据存储器最大地址数(SRAM)【8位字长】 */
                                /* (1KB随机存储器+I/O寄存器+通用寄存器) */
#define XRAMEND     0x0000    /* 外部扩展存储器最大地址数 */
#define EEPROMEND   0x01ff    /* 电可擦除只读存储器最大地址数(EEPROM) */
                                /* 【512B×8位字长】 */
#define EEADRBITS   9         /* 电可擦除只读存储器寻址位数 */


/*======================================================================================
本单片机无扩展并行总线结构声明。
======================================================================================*/
#define MCU_No_ExtendedParallelBus    /* 本单片机无扩展并行总线结构声明 */


/*======================================================================================
下面这三条指令是用于与上面三条区分编译系统为 C++ 或 C 的预处理指令相对应。用于指定
 extern "C" 链接指示符作用域,此处的"}"与上面的"{"相对应,为链接指示符作用结束符。
======================================================================================*/
#ifdef __cplusplus
}
#endif



#endif                                /* "_MEGA16_INCLUDED_" 条件编译结束 */



/*
****************************************************************************************
                             本头部文件到此结束
****************************************************************************************
*/

⌨️ 快捷键说明

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