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

📄 atmega128.h

📁 本程序是用 ATmega16 控制实时时钟芯片 DS12887 接口驱动的源程序文件。
💻 H
📖 第 1 页 / 共 5 页
字号:
#define IT_RESET            1                 // 外部引脚、上电复位、掉电检测、看门狗复位、
                                                // 以及 JTAG AVR 复位中断向量
#define IT_INT0             2                 // 外部中断请求0中断向量
#define IT_INT1             3                 // 外部中断请求1中断向量
#define IT_INT2             4                 // 外部中断请求2中断向量
#define IT_INT3             5                 // 外部中断请求3中断向量
#define IT_INT4             6                 // 外部中断请求4中断向量
#define IT_INT5             7                 // 外部中断请求5中断向量
#define IT_INT6             8                 // 外部中断请求6中断向量
#define IT_INT7             9                 // 外部中断请求7中断向量
#define IT_TIMER2_COMP     10                 // 定时器/计数器2比较匹配中断向量
#define IT_TIMER2_OVF      11                 // 定时器/计数器2溢出中断向量
#define IT_TIMER1_CAPT     12                 // 定时器/计数器1输入捕获中断向量
#define IT_TIMER1_COMPA    13                 // 定时器/计数器1A比较匹配中断向量
#define IT_TIMER1_COMPB    14                 // 定时器/计数器1B比较匹配中断向量
#define IT_TIMER1_OVF      15                 // 定时器/计数器1溢出中断向量
#define IT_TIMER0_COMP     16                 // 定时器/计数器0比较匹配中断向量
#define IT_TIMER0_OVF      17                 // 定时器/计数器0溢出中断向量
#define IT_SPI_STC         18                 // SPI串行传输结束中断向量
#define IT_USART0_RX       19                 // USART0接收结束中断向量
#define IT_USART0_UDRE     20                 // USART0数据寄存器空中断向量
#define IT_USART0_TX       21                 // USART0传送结束中断向量
#define IT_ADC             22                 // ADC转换结束中断向量
#define IT_EE_READY        23                 // EEPROM就绪中断向量
#define IT_ANALOG_COMP     24                 // 模拟比较器中断向量
#define IT_TIMER1_COMPC    25                 // 定时器/计数器1C比较匹配中断向量
#define IT_TIMER3_CAPT     26                 // 定时器/计数器3输入捕获中断向量
#define IT_TIMER3_COMPA    27                 // 定时器/计数器3A比较匹配中断向量
#define IT_TIMER3_COMPB    28                 // 定时器/计数器3B比较匹配中断向量
#define IT_TIMER3_COMPC    29                 // 定时器/计数器3C比较匹配中断向量
#define IT_TIMER3_OVF      30                 // 定时器/计数器3溢出中断向量
#define IT_USART1_RX       31                 // USART1接收结束中断向量
#define IT_USART1_UDRE     32                 // USART1数据寄存器空中断向量
#define IT_USART1_TX       33                 // USART1传送结束中断向量
#define IT_TWI             34                 // 两线串行总线接口中断向量
#define IT_SPM_READY       35                 // 保存程序存储器内容就绪中断向量


#endif                                        // "__iom128_h" 条件编译结束


#endif                                        // "_ICC_AVR_" 条件编译结束



/*
********************************************************************************************
                                       寄存器位名定义
********************************************************************************************
*/
#if defined(_IAR_EW_AVR_)                     // "IAR Embedded Workbench AVR " 条件编译开始
#ifdef __IAR_SYSTEMS_ASM__                    // "__IAR_SYSTEMS_ASM__" 条件编译开始
#ifndef ENABLE_BIT_DEFINITIONS                // "ENABLE_BIT_DEFINITIONS" 条件编译开始
#define ENABLE_BIT_DEFINITIONS                // 使能寄存器位定义
#endif                                        // "ENABLE_BIT_DEFINITIONS" 条件编译结束
#endif                                        // "__IAR_SYSTEMS_ASM__" 条件编译结束
#endif                                        // "defined(_IAR_EW_AVR_)" 条件编译结束

#if defined(_ICC_AVR_)                        // "ICCAVR 编译器"条件编译开始
#define ENABLE_BIT_DEFINITIONS                // 使能寄存器位定义
#endif                                        // "_ICC_AVR_" 条件编译结束

#if defined(_CodeVision_AVR_)                 // "CodeVision AVR C 编译器"条件编译开始
#define ENABLE_BIT_DEFINITIONS                // 使能寄存器位定义
#endif                                        // "defined(_CodeVision_AVR_)" 条件编译结束
/*==========================================================================================
在编制的汇编语言程序中将有可能使用此部分的寄存器位定义。
寄存器位名代表其所属寄存器中的位数(0-7)。
==========================================================================================*/
#ifdef ENABLE_BIT_DEFINITIONS                 // "ENABLE_BIT_DEFINITIONS" 条件编译开始

/*--------------------------------------------------------------------------------------
微处理器系统控制
--------------------------------------------------------------------------------------*/
/* MCUCR —— MCU控制寄存器 */
#define    SRE       7                        // 外部SRAM/XMEM使能位
#define    SRW10     6                        // 高地址存储器区等待状态选择位0
#define    SE        5                        // 休眠使能位
#define    SM1       4                        // 休眠模式选择位1
#define    SM0       3                        // 休眠模式选择位0
#define    SM2       2                        // 休眠模式选择位2
#define    IVSEL     1                        // 中断向量选择位
#define    IVCE      0                        // 中断向量修改使能位

/* MCUCSR —— MCU控制与状态寄存器 */
#define    JTD       7                        // JATG接口禁用位
#define    JTRF      4                        // JATG复位标志位
#define    WDRF      3                        // 看门狗复位标志位
#define    BORF      2                        // 掉电检测复位标志位
#define    EXTRF     1                        // 外部复位标志位
#define    PORF      0                        // 上电复位标志位

/* XMCRA —— 外部存储器控制寄存器A */
#define    SRL2      6                        // 等待状态存储器区限制分区位2
#define    SRL1      5                        // 等待状态存储器区限制分区位1
#define    SRL0      4                        // 等待状态存储器区限制分区位0
#define    SRW01     3                        // 低地址存储器区等待状态选择位1
#define    SRW00     2                        // 低地址存储器区等待状态选择位0
#define    SRW11     1                        // 高地址存储器区等待状态选择位1

/* XMCRB —— 外部存储器控制寄存器B */
#define    XMBK      7                        // 外部存储器总线保持功能使能位
#define    XMM2      2                        // 外部存储器高位地址屏蔽位2
#define    XMM1      1                        // 外部存储器高位地址屏蔽位1
#define    XMM0      0                        // 外部存储器高位地址屏蔽位0

/* SPMCSR —— 保存程序存储器控制寄存器 */
#define    SPMIE     7                        // SPM中断使能位
#define    RWWSB     6                        // RWW区忙标志位
#define    RWWSRE    4                        // RWW区读使能位
#define    BLBSET    3                        // BOOT锁定位设置
#define    PGWRT     2                        // 页写入
#define    PGERS     1                        // 页擦除
#define    SPMEN     0                        // 存贮程序存储器使能位

/* OCDR —— 片上调试系统(OCD)寄存器 */
#define    IDRD      7                        // 调试寄存器被修改标志位
#define    OCDR6     6                        // 调试寄存器数据位6
#define    OCDR5     5                        // 调试寄存器数据位5
#define    OCDR4     4                        // 调试寄存器数据位4
#define    OCDR3     3                        // 调试寄存器数据位3
#define    OCDR2     2                        // 调试寄存器数据位2
#define    OCDR1     1                        // 调试寄存器数据位1
#define    OCDR0     0                        // 调试寄存器数据位0

/* XDIV —— XTAL分频控制寄存器 */
#define    XDIVEN    7                        // XTAL分频使能位
#define    XDIV6     6                        // XTAL分频选择位6
#define    XDIV5     5                        // XTAL分频选择位5
#define    XDIV4     4                        // XTAL分频选择位4
#define    XDIV3     3                        // XTAL分频选择位3
#define    XDIV2     2                        // XTAL分频选择位2
#define    XDIV1     1                        // XTAL分频选择位1
#define    XDIV0     0                        // XTAL分频选择位0

/* SFIOR —— 特殊功能IO寄存器 */
#define    TSM       7                        // T/C同步模式
#define    ADHSM     4                        // ADC高速模式
#define    ACME      3                        // 模拟比较器多路复用器使能位
#define    PUD       2                        // 禁止上拉电阻
#define    PSR0      1                        // T/C0预分频器复位
#define    PSR1      0                        // T/C1预分频器复位
#define    PSR2      0                        // T/C2预分频器复位
#define    PSR3      0                        // T/C3预分频器复位
#define    PSR321    0                        // T/C3、T/C2与T/C1预分频器复位


/*--------------------------------------------------------------------------------------
模拟/数字转换器
--------------------------------------------------------------------------------------*/
/* ADCSR —— ADC控制和状态寄存器 */
#define    ADEN      7                        // ADC使能位
#define    ADSC      6                        // ADC开始转换
#define    ADFR      5                        // ADC自动触发使能位
#define    ADIF      4                        // ADC中断标志位
#define    ADIE      3                        // ADC中断使能位
#define    ADPS2     2                        // ADC预分频器选择控制位2
#define    ADPS1     1                        // ADC预分频器选择控制位1
#define    ADPS0     0                        // ADC预分频器选择控制位0

/* ADMUX —— ADC多路选择寄存器 */
#define    REFS1     7                        // 参考电压选择控制位1
#define    REFS0     6                        // 参考电压选择控制位0
#define    ADLAR     5                        // ADC转换数据存放形式控制位(左/右对齐)
#define    MUX4      4                        // 模拟通道与增益选择控制位4
#define    MUX3      3                        // 模拟通道与增益选择控制位3
#define    MUX2      2                        // 模拟通道与增益选择控制位2
#define    MUX1      1                        // 模拟通道与增益选择控制位1
#define    MUX0      0                        // 模拟通道与增益选择控制位0


/*-----------------------------

⌨️ 快捷键说明

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