avr寄存器说明
- 格式:doc
- 大小:108.50 KB
- 文档页数:13
第三节:面向新手的AVR开发工具,及基本知识互联网上下载AVR STUDIO 4首先,请放松,我们首先要做的只是下载AVR开发软件和相关的资料。
下载前确保这些软件有效,下载的时间取决于你连接互联网的速度。
下载以下文件到你的计算机中(如C:\Temp)AVR STUDIO 4(~15MB) This file contains the AVR Studio 4 Program. This program is a complete development suite, and containsan editor and a simulator that we will use to write ourcode, and then see how it will run on an AVR device.Assembly Sample Code(~1kB) This file contains the Assembly Sample code you will need to complete this guide.AT90S8515 Datasheet(~4MB)This is the Datasheet for the AT90S8515 AVR Microcontroller. This is a convenient "Getting Started"device. For now you don't have to worry about thedifferent types of AVR micros. You'll see that they arevery much alike, and if you learn how to use one (eg.8515), you will be able to use any other AVR withoutany problems.Instruction SetManual(~2MB)This is the Instruction Set Manual. This document is very useful if you want detailed information about a specific instruction.AVR STUDIO4:这个文件是一个完整的开发工具,包括编辑、仿真功能,利用这个工具,我们可以编辑源代码,并在AVR器件上运行。
互联网上下载AVR STUDIO 4首先,请放松,我们首先要做的只是下载AVR开发软件和相关的资料。
下载前确保这些软件有效,下载的时间取决于你连接互联网的速度。
下载以下文件到你的计算机中(如C:\Temp)∙AVR STUDIO4:这个文件是一个完整的开发工具,包括编辑、仿真功能,利用这个工具,我们可以编辑源代码,并在AVR器件上运行。
这个文件大概15MB。
∙代码实例:这是一个用于演示完整代码,大概1KB。
∙AT90S8515数据手册:这是AT90S8515芯片的完整资料。
AT90S8515芯片是一款非常容易上手的AVR芯片。
现在你不用担心AVR其他型号的产品,以后你会发现AVR系列产品有非常大的相似性,你掌握了一款芯片(比如说8515),学会其他芯片也非常容易。
这个文件大概4MB。
∙指令说明:如果你要详细的了解各种指令的话,这个文件非常有用。
这个文件大概2MB。
如果以上的文件你都下载了,下面的工作就是安装软件了。
安装AVR Studio 4AVR Studio现在也提供版本3,不过版本4将逐步替代版本3。
使用Windows NT/2000/XP的用户请注意,安装AVR Studio软件时,必须使用管理员(Administrator)权限登陆,这是Windows系统限定只有管理员才可以安装新器件。
安装过程:1.双击AVRSTUDIO.EXE文件。
这是一个自解压文件,双击后系统询问将文件解压到哪个目录底下,一般情况下是放在系统默认临时目录下,这个目录是隐藏在你的硬盘中的。
为了记忆方便,一般输入指定的目录,如C:\temp。
2.当所有文件解压缩完成以后,打开temp目录,双击SETUP.EXE文件。
好了,开始安装了,推荐适用默认的安装路径,当然,用户也可以设定自己的安装路径,但是在指南中,我们使用默认路径。
好了,开发工具安装好了,就这么简单。
现在你可以开始编写代码,在AVR器件上运行了。
注意,将芯片资料和指令说明放在旁边,这些资料以后经常用到。
AVR 定时器中断初值计算方法使用芯片AT Mega16 外部晶振定时器1 (16位定时器)寄存器TCCR1B = 0x04 设定256预分频要利用定时器定时1秒1,4000000 / 256 = 15625 说明定时器每当1/15625 秒就会触发一次中断2,65535 - 15625 = 49910 计算出要累加多少次才能在1秒后出发定时器1的溢出中断3,49910 <==> C2 F6 将计算后的值换算成16进制4,TCNT1H = 0xC2 ; 对寄存器赋值TCNT1L = 0xF6 ;=================================================例如用16位定时器TIMER1,4MHZ晶振,256分频,100ms定时,如何求得初值赋给TCNT165536-(4M/256)*=其中,4M是晶体频率,是定时时长单位秒。
对于8位的定时器T=(2^8-计数初值)*晶振周期*分频数=(2^8-计数初值)/晶振频率*分频数计数初值=2^8-T/晶振周期/分频数=2^8-T*晶振频率/分频数因为AVR一指令一周期IAR For AVR 精确延时C语言中,想使用精确的延时程序并不容易。
IAR 中有这样的一个函数__delay_cycles(),该函数在头文件中定义,函数的作用就是延时N个指令周期。
根据这个函数就可以实现精确的延时函数了(但不能做到100%精确度)。
实现的方法:建立一个的头文件:#ifndef __IAR_DELAY_H#define __IAR_DELAY_H#include <>#define XTAL 8 //可定义为你所用的晶振频率(单位Mhz)#define delay_us(x) __delay_cycles ( (unsigned long)(x * XTAL) )#define delay_ms(x) __delay_cycles ( (unsigned long)(x * XTAL*1000) )#define delay_s(x) __delay_cycles ( (unsigned long)(x * XTAL*1000000) )#endif注意:__delay_cycles(x),x必须是常量或则是常量表达式,如果是变量则编译报错!关于溢出中断不管是哪个单片机都是不断累加,使其寄存器溢出触发中断,然后跳转到中断函数处执行中断服务程序。
第五章A V R单片机指令系统计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。
计算机只能识别和执行机器语言的指令。
为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。
汇编语言指令可通过汇编器翻译成计算机能识别的机器语言。
AVR单片机指令系统是RISC结构的精简指令集,是一种简明易掌握﹑效率高的指令系统。
SL-DIY02-3开发实验器使用AT90S8535单片机,有118条指令,而我们所做的11个实验程序仅用了34条指令,我们重点讲这34条指令,其余指令就可自学了。
AVR器件(指令速查表)118条指令器件1.不带进位加法ADD一不带进位加说明:两个寄存器不带进位C标志加,结果送目的寄存器Rd。
操作:Rd✍Rd+Rr语法:操作码:程序计数器:ADDRd,RrO≤d≤31,0≤r≤31PC✍PC+1例子:。
(实践操作程序4411.ASM)实践操作例子*.ASM,必须编译生成*.OBJ文件才可调试,如要修改*.ASM,必须修改文件属性,去掉*.ASM只读文件属性2.带进位加法ADC-一带进位加说明:两个寄存器和C标志的内容相加,结果送目的寄存器Rd。
操作:Rd←Rd+Rr+C语法:操作码:程序计数器:ADCRd,Rr0≤d≤31,0≤r≤31PC←PC+1例子:(实践操作程序4412.ASM)3.减1指令DEC一减1说明:寄存器Rd的内容减1,结果送目的寄存器Rd中。
操作:Rd✍Rd-l语法:操作码:程序计数器:DECRd0≤d≤31PC✍PC十1例子:(实践操作程序4426.ASM)4.立即数比较CPI——带立即数比较说明:该指令完成寄存器Rd和常数的比较操作。
寄存器的内容不改变。
该指令后能使用所有条件转移指令。
操作:Rd-K语法:操作码:程序计数器:CPIRd,K16≤d≤31,0≤K≤255PC✍PC+1例子:(实践操作程序4463.ASM)5.带立即数与ANDI——立即数逻辑与;全1为1,有0即0说明:寄存器Rd的内容与常数逻辑与,结果送目的寄存器Rd。
用寄存器点亮led灯实验报告实验名称:用寄存器点亮LED灯。
实验目的:了解单片机的IO口的使用方法,掌握AVR单片机寄存器的使用方法,掌握用寄存器实现IO口输入输出的方法。
实验原理:单片机的IO口的实际是一个双向I/O,它的输出/输入状态是通过寄存器来设置的。
在AVR单片机上,它的IO口可以通过特定的寄存器来读写,这些寄存器包括:DDRX、PORTX和PINX。
其中,DDRX寄存器是用来设置端口方向的,即设置该端口是输入还是输出;PORTX寄存器是用来控制端口输出电平,即通过该寄存器来设置IO口的高低电平;PINX寄存器是用来读取端口输入的状态,即读取该口上输入的电平状态。
实验器材:1.AVR系列单片机开发板。
2.3个跳线。
3.1个LED灯。
4.1个220欧姆电阻。
实验步骤:1.将220欧姆电阻与LED灯串联,然后将LED的长脚连接到PB5的IO口上。
2. 打开AVR-GCC编译器,新建ATmega8程序,并将以下代码复制到编译器中:#include <avr/io.h>。
#include <util/delay.h>。
int main(void)。
DDRB=0b00100000;//PB5设置为输出。
PORTB=0b00100000;//PB5输出高电平。
while(1)。
PORTB^=0b00100000;//PB5输出反转状态的电平。
_delay_ms(1000); // 延时1s。
}。
return 0;。
}。
3.将编译完成的代码烧录到AVR单片机开发板上。
实验结果:结论:本次实验通过掌握AVR单片机的寄存器IO口的使用方法,成功地实现了用寄存器点亮LED灯的目的,进一步巩固了掌握AVR单片机开发的相关知识和技能。
产品特性•高性能、低功耗的 8位AVR®微处理器•先进的RISC结构–131 条指令 – 大多数指令执行时间为单个时钟周期–32个8位通用工作寄存器–全静态工作–工作于16 MHz时性能高达16 MIPS–只需两个时钟周期的硬件乘法器•非易失性程序和数据存储器–16K 字节的系统内可编程Flash擦写寿命: 10,000次–具有独立锁定位的可选Boot代码区通过片上Boot程序实现系统内编程真正的同时读写操作–512字节的EEPROM擦写寿命: 100,000次–1K字节的片内SRAM微控制器–可以对锁定位进行编程以实现用户程序的加密•JTAG 接口(与IEEE 1149.1标准兼容)–符合JTAG标准的边界扫描功能–支持扩展的片内调试功能–通过JTAG接口实现对Flash、EEPROM、熔丝位和锁定位的编程•外设特点–两个具有独立预分频器和比较器功能的8位定时器/计数器–一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器–具有独立振荡器的实时计数器RTC–四通道PWM–8路10位ADC8 个单端通道TQFP封装的7个差分通道2个具有可编程增益(1x, 10x, 或200x)的差分通道–面向字节的两线接口–两个可编程的串行USART–可工作于主机/从机模式的SPI串行接口–具有独立片内振荡器的可编程看门狗定时器–片内模拟比较器•特殊的处理器特点–上电复位以及可编程的掉电检测–片内经过标定的RC振荡器–片内/片外中断源–6种睡眠模式: 空闲模式、ADC噪声抑制模式、省电模式、掉电模式、Standby模式以及扩展的Standby模式•I/O和封装–32 个可编程的I/O口–40引脚PDIP封装, 44引脚TQFP封装,与44引脚MLF封装•工作电压:–ATmega16L:2.7 - 5.5V–ATmega16:4.5 - 5.5V•速度等级–0 - 8 MHz ATmega16L–0 - 16 MHz ATmega16•ATmega16L在1 MHz, 3V, 25°C时的功耗–正常模式: 1.1 mA–空闲模式: 0.35 mA–掉电模式: < 1 µA2ATmega16(L)2466G–AVR–10/03引脚配置Figure 1. ATmega16的引脚声明本数据手册的典型值来源于对器件的仿真,以及其他基于相同产生工艺的 AVR 微控制器的标定特性。
SREG | I | T | H | S | V | N | Z | C |// 状态寄存器SREGI : 全局中断使能T : 位复制存储位H : 半进位标志位表示算术运算发生了半进位S : 符号位S为负数标志N与2的补码溢出标志V的异或V : 2的补码溢出标志位N : 负数标志位Z : 零标志位C : 进位标志位OSCCAL |CAL7 | CAL6 | CAL5 | CAL4 | CAL3 | CAL2 | CAL1 | CAL0 |//振荡器标定寄存器OSCCAL OSCAL数值最小频率,标称频率的百分比(%)最大频率,标称频率的百分比(%)0x00 50 1000x7F 75 1500xFF 100 200MCUCR | SM2 | SE | SM1 | SM0 | ISC11 | ISC10 | ISC01 | ISC00 | //MCU控制寄存器MCUCR SM2:0 休眠模式000 空闲模式(停止CPU_clk 和FLASH_clk)001 ADC噪声抑制模式(停止IO_clk CPU_clk 和FLASH_clk)010 掉电模式(停止所有时钟,只有异步模块可以继续工作)011 省电模式100 --101 --110 Standby 模式(仅在使用外部晶振货谐振器时,Standby模式才可用)111 扩展Stabdby模式SE 休眠使能ISCx1:0 说明00 INTx为低电平产生中断请求01 INTx上的任意跳变产生中断请求10 INTx上的下降沿产生中断请求11 INTx上的上升沿产生中断请求MCUCSR | JTD | ISC2 | -- | JTRF | WDRF | BORF | EXTRF | PORF |//MCU控制和状态寄存器MCUCSR JTD 禁止JTAG 接口ISC2 中断2触发方式控制位(0-下降沿中断1-上升沿中断)JTRF JTAG 复位标志WDRF 看门狗复位标志BORF 掉电检测复位标志EXTRF 外部复位标志PORF 上电复位标志GICR | INT1 | INT0 | INT2 | -- | -- | -- | IVSEL | IVCE |// 通用中断控制寄存器INT1 使能外部中断请求1INT0 使能外部中断请求0INT2 使能外部中断请求2IVSEL 中断向量选择IVCE中断向量修改使能GIFR | INTF1 | INTF0 | INTF2 | -- | -- | -- | -- | -- | // 通用中断标志寄存器INTF1 外部中断标志1INTF0 外部中断标志0INTF2 外部中断标志2SPMCR | SPMIE | RWWSB | -- | RWWSRE | BLBSET | PGWRT | PGERS | SPMEN |//保存程序存储器控制寄存器SPMIE SPM 中断使能RWWSB RWW 区忙标志RWWSRE RWW 区读使能BLBSET Boot 锁定位设置PGWRT 页写入PWERS 页擦除SPMEN 存贮程序存储器使能OCDR | MSB/IDRD | | | | | | | LSB | // 片上调试寄存器SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器ADTS[2:0] ADC自动触发源位000 连续转换模式001 模拟比较器010 外部中断请求0011 定时器/计数器0比较匹配100 定时器/ 计数器1溢出101 定时器/计数器比较匹配B110 定时器/计数器1溢出111 定时器/计数器1捕捉事件ACME 模拟比较器多路复用器使能0 AIN1 连接到比较器的负极输入端1 ADC 多路复用器为模拟比较器选择负极输入PUD 禁用上拉电阻PSR2 预分频复位T/C2PSR10 T/C1 与T/C0 预分频器复位//***********************// PORT端口相关寄存器//******************************// PORTA | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 数据寄存器DDRA | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 数据方向寄存器PINA | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 端口输入引脚PORTB | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |DDRB | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PINB | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PORTC | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |DDRC | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PINC | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PORTD | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |DDRD | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |PIND | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |//***********************// USART串口相关寄存器//**************************// UDR | RXB7 | RXB6 | RXB5 | RXB4 | RXB3 | RXB2 | RXB1 | RXB0 |// 接收数据缓冲寄存器| TXB7 | TXB6 | TXB5 | TXB4 | TXB3 | TXB2 | TXB1 | TXB0 |// 发送数据缓冲寄存器UCSRA| RXC | TXC | UDRE | FE | DOR | PE | U2X | MPCM | // USART 控制和状态寄存器A RXC USART 接收结束标志TXC USART 发送结束标志UDRE USART 数据寄存器空标志FE 帧错误标志DOR 数据溢出标志PE 奇偶校验错误标志U2X 倍速发送MPCM 多处理器通信模式UCSRB | RXCIE | TXCIE | UDRIE | RXEN | TXEN | UCSZ2 | RXB8 | TXB8 |//USART 控制和状态寄存器B RXCIE 接收结束中断使能TXCIE 发送结束中断使能UDRIE USART 数据寄存器空中断使能RXEN 接收使能TXEN 发送使能UCSZ2 字符长度[2]RXB8 接收数据位8TXB8 发送数据位8UCSRC | URSEL | UMSEL | UPM1 | UPM0 | USBS | UCSZ1 | UCSZ0 | UCPOL |//USART控制和状态寄存器CURSEL 寄存器选择0 UBRRH1 UCSRCUMSEL USART 模式选择0 异步模式1 同步模式UPM1 UPM00 0 禁止0 1 保留1 0 偶校验1 1 奇校验USBS 停止位选择0 停止位数为11 停止位数为2UCSZ2 UCSZ1 UCSZ0 字符长度0 0 0 50 0 1 60 1 0 70 1 1 81 0 0 保留1 0 1 保留1 1 0 保留1 1 1 9UCPOL 时钟极性UCPOL 发送数据的改变(TxD 引脚的输出) 接收数据的采样(RxD 引脚的输入)0 XCK上升沿XCK下降沿1 XCK下降沿XCK上升沿UBBRH | URSEL | ————| ————| ————| Bit11 | Bit10 | Bit9 | Bit8 | // 波特率寄存器高4位UBBRL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 波特率寄存器第8位使用模式波特率计算公式UBBR值计算公式异步正常模式(U2X=0)Baud = F(osc)/16(UBBR+1) UBBR = F(osc)/16Baud - 1异步倍速模式(U2X=1)Baud = F(osc)/8(UBBR+1) UBBR = F(osc)/8Baud - 1同步主机模式Baud = F(osc)/2(UBBR+1) UBBR = F(osc)/2Baud - 1//***********************// SPI相关寄存器 //******************************//SPCR | SPIE | SPE | DORD | MSTR | CPOL | CPHA | SPR1 | SPR0 | // SPI控制寄存器SPIE 使能SPI中断位SPE 使能SPI位DORD 数据次序0 数据的MSB首先发送1 数据的LSB首先发送MSTR 主从选择0 从机模式1 主机模式CPOL 时钟极性CPOL 起始沿结束沿空闲时的SCK0 上升沿下降沿低电平1 下降沿上升沿高电平CPHA 时钟相位CPHA 起始沿结束沿0 采样设置1 设置采样SPR[1:0] SPI时钟速率选择位SPR2x SPR1 S PR0 S CK频率0 0 0 focs/40 0 1 fosc/160 1 0 fosc/640 1 1 fosc/1281 0 0 fosc/21 0 1 fosc/81 1 0 fosc/321 1 1 fosc/64SPSR | SPIF | WCOL | -- | -- | -- | -- | -- | SPI2X | // SPI状态寄存器SPIF SPI中断标志WCOL 写碰撞标志SPI2X SPI倍速位(若为主机SCK可达fosc/2 若为从机则只能保证fosc/4)SPDR | MSB | -- | -- | -- | -- | -- | -- | LSB | //SPI数据寄存器写寄存器将启动数据传输,读寄存器将读取寄存器的接收缓存器//***********************// ADC串口相关寄存器//**************************// ADMUX | REFS1 | REFS0 | ADLAR | MUX4 | MUX3 | MUX2 | MUX1 | MUX0 | //ADC 多工选择寄存器REFS1 REFS0 参考电压选择0 0 AREF 、内部Vref关闭0 1 A Vcc AREF 引脚外加滤波电容1 0 保留1 1 2.56V 片内基准电压源,AREF引脚外加滤波电容ADLAR ADC转换结果左对齐0 转换结果右对齐1 转换结果左对齐MUX[4:0] 单端输入正差分输入负差分输入增益00000 ADC000001 ADC100010 ADC200011 ADC300100 ADC400101 ADC500110 ADC600111 ADC701000 ADC0 ADC0 10x01001 ADC1 ADC0 10x01010 ADC0 ADC0 200x01011 ADC1 ADC0 200x01100 ADC2 ADC2 10x01101 ADC3 ADC2 10x01110 ADC2 ADC2 200x01111 ADC3 ADC2 200x10000 ADC0 ADC1 1x10001 ADC1 ADC1 1x10010 ADC2 ADC1 1x10011 ADC3 ADC1 1x10100 ADC4 ADC1 1x10101 ADC5 ADC1 1x10110 ADC6 ADC1 1x10111 ADC7 ADC1 1x11000 ADC0 ADC2 1x11001 ADC1 ADC2 1x11010 ADC2 ADC2 1x11011 ADC3 ADC2 1x11100 ADC4 ADC2 1x11101 ADC5 ADC2 1x11110 1.22V(VBG)11111 0V(GND)ADCSRA | ADEN | ADSC | ADATE | ADIF | ADIE | ADPS2 | ADPS1 | ADPS0 | // ADC控制和状态寄存器A ADEN ADC使能位ADSC ADC开始转换位ADATE ADC自动触发使能位ADIF ADC中断标志位ADIE ADC中断使能位ADPS[2:0] ADC预分频选择位ADPS[2:0] 分频因子000 2001 2010 4011 8100 16101 32110 64111 128ADCH | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // ADC数据寄存器高位ADCL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // ADC数据寄存器低位SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器ADTS[2:0] ADC自动触发源位ADTS[2:0] 触发源000 连续转换模式001 模拟比较器010 外部中断请求0011 定时器/计数器0比较匹配100 定时器/ 计数器1溢出101 定时器/计数器比较匹配B110 定时器/计数器1溢出111 定时器/计数器1捕捉事件//***********************// 模拟比较器相关寄存器//**********************// SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器ACME 模拟比较器多路复用器使能0 AIN1 连接到比较器的负极输入端1 ADC 多路复用器为模拟比较器选择负极输入ACSR | ACD | ACBG | ACO | ACI | ACIE | ACIC | ACIS1 | ACIS0 | // 模拟比较器控制和状态寄存器ADC 模拟比较器禁用ACD 置位时,模拟比较器的电源被切断ACBG 选择模拟比较器的能隙基准源ACBG 置位后,模拟比较器的正极输入由能隙基准源所取代ACO 模拟比较器输出ACI 模拟比较器中断标志ACIE模拟比较器中断使能ACIC 模拟比较器输入捕捉使能ACIS[1:0] 模拟比较器中断模式选择ACIS1 ACIS0 中断模式0 0 比较器输出变化即可触发中断0 1 保留1 0 比较器输出的下降沿产生中断1 1 比较器输出的上升沿产生中断模拟比较器复用输入ACME ADEN MUX[2:0] 模拟比较器负极输入0 x xxx AIN11 1 xxx AIN11 0 000 ADC01 0 001 ADC11 0 010 ADC21 0 011 ADC31 0 100 ADC41 0 101 ADC51 0 110 ADC61 0 111 ADC7//***********************// 外部中断相关寄存器//**************************// MCUCR | SM2 | SE | SM1 | SM0 | ISC11 | ISC10 | ISC01 | ISC00 | // MCU控制寄存器ISx1 ISx0 说明0 0 INTx为低电平产生中断请求0 1 INTx上的任意跳变产生中断请求1 0 INTx上的下降沿产生中断请求1 1 INTx上的上升沿产生中断请求MCUCSR | JTD | ISC2 | -- | JTRF | WDRF | BORF | EXTRF | PORF | // MCU控制和状态寄存器ISC2 中断2触发方式控制位0 下降沿触发中断1 上升沿触发中断GICR | INT1 | INT0 | INT2 | -- | -- | -- | IVSEL | IVCE | // 通用中断控制寄存器INT1 使能外部中断请求1INT0 使能外部中断请求0INT2 使能外部中断请求2GIFR | INTF1 | INTF0 | INTF2 | -- | -- | -- | -- | -- | // 通用中断标志寄存器INTF1 外部中断标志1INTF0 外部中断标志0INTF2 外部中断标志2//***********************// Timer0相关寄存器//**************************//TCCR0 | FOC0 | WGM00 | COM01 | COM00 | WGM01 | CS02 | CS01 | CS00 | //T/C0 控制寄存器FOC0 强制输出比较WGM01:0 波形产生模式WGM01:0 T/C的工作模式 TOP OCR0更新时间 TOV0的置位时刻00 普通0xFF 立即更新MAX01 PWM,相位修正0xFF TOP BOTTOM10 CTC OCR0 立即更新MAX11 快速PWM 0xFF TOP MAXCOM01:0 比较匹配输出模式COM1:0 比较输出模式,非PWM 模式比较输出模式,快速PWM 模式比较输出模式,相位修正PWM 模式00 ----------------- 正常的端口操作,不与OC0 相连接--------------------------01 比较匹配发生时OC0 取反保留10 比较匹配发生时OC0 清零比较匹配OC0清零,计到TOP时OC0置位升序计数匹配清零OC0;降序计数匹配置位OC011 比较匹配发生时OC0 置位比较匹配OC0置位,计到TOP时OC0清零升序计数匹配置位OC0;降序计数匹配清零OC0CS02:0 时钟选择CS2:0 时钟选择000 无时钟,T/C 不工作001 clk/1 ( 没有预分频)010 clk/8011 clk/64100 clk/256101 clk/1024110 时钟由T0 引脚输入,下降沿触发111 时钟由T0 引脚输入,上升沿触发TCNT0 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // T/C0寄存器OCR0 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 输出比较寄存器TIMSK | OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | OCIE0 | TOIE0 | // T/C中断屏蔽寄存器OCIE0 T/C0 输出比较匹配中断使能TOIE0 T/C0 溢出中断使能TIFR | OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOV0 | // T/C中断标志寄存器OCF0 输出比较标志0TOV0 T/C0 溢出标志SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器PSR10 T/C1 与T/C0 预分频器复位//***********************// Timer1相关寄存器//**************************//TCCR1A | COM1A1 | COM1A0 | COM1B1 | COM1B0 | FOC1A | FOC1B | WGM11 | WGM10 | // T/C1 控制寄存器ACOM1A1:0 通道A 的比较输出模式COM1B1:0 通道B 的比较输出模式比较输出模式,非PWMCOM1A1:0/COM1B1:0 说明00 普通端口操作,非OC1A/OC1B 功能01 比较匹配时OC1A/OC1B 电平取反10 比较匹配时清零OC1A/OC1B( 输出低电平)11 比较匹配时置位OC1A/OC1B ( 输出高电平)比较输出模式,快速PWMCOM1A(B)1:0 说明00 普通端口操作,非OC1A/OC1B 功能01 WGM13:0=15:匹配时OC1A 取反,OC1B不占用物理引脚.WGM13:0为其它值时为普通端口操作,非OC1A/OC1B功能10 比较匹配时清零OC1A/OC1B,OC1A/OC1B在TOP 时置位11 比较匹配时置位OC1A/OC1B,OC1A/OC1B在TOP 时清零比较输出模式,相位修正及相频修正PWM 模式COMA(B)1:0 说明00 普通端口操作,非OC1A/OC1B 功能01 WGM13:0=9或14: 比较匹配OC1A取反,OC1B不占用物理引脚.WGM13:0为其它值时为普通端口操作,非OC1A/OC1B功能10 升序记数比较匹配清零OC1A/OC1B,降序记数比较匹配置位OC1A/OC1B11 升序记数比较匹配置位OC1A/OC1B,降序记数比较匹配清零OC1A/OC1BFOC1A 通道A 强制输出比较FOC1B 通道B 强制输出比较FOC1A/FOC1B只有当WGM13:0指定为非PWM模式时被激活WGM11:0 波形发生模式模式 WGM1[3:0] 定时器/ 计数器工作模式计数上限值TOP OCR1x 更新时刻TOV1 置位时刻0 0000 普通模式0xFFFF 立即更新MAX1 0001 8位相位修正PWM 0x00FF TOPBOTTOM2 0010 9位相位修正PWM 0x01FF TOPBOTTOM3 0011 10位相位修正PWM 0x03FF TOPBOTTOM4 0100 CTC OCR1A 立即更新MAX5 0101 8位快速PWM 0x00FF TOPTOP6 0110 9位快速PWM 0x01FF TOPTOP7 0111 10位快速PWM 0x03FF TOPTOP8 1000 相位与频率修正PWM ICR1 BOTTOMBOTTOM9 1001 相位与频率修正PWM OCR1A BOTTOMBOTTOM10 1010 相位修正PWM ICR1 TOPBOTTOM11 1011 相位修正PWM OCR1A TOPBOTTOM12 1100 CTC ICR1 立即更新MAX13 1101 保留–––14 1110 快速PWM ICR1 TOPTOP15 1111 快速PWM OCR1A TOPTOPTCCR1B | ICNC1 | ICES1 | –| WGM13 | WGM12 | CS12 | CS11 | CS10 | // T/C1 控制寄存器BICNC1 输入捕捉噪声抑制器ICES1 输入捕捉触发沿选择0 下降沿触发1 上升沿触发WGM13:2 波形发生模式见TCCR1A 寄存器中的描述CS12:0 时钟选择000 无时钟源(T/C停止工作)001 clk(无预分频)010 clk/8011 clk/64100 clk/256101 clk/1024110 外部T1 引脚,下降沿驱动111 外部T1 引脚,上升沿驱动TCNT1H | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // T/C1 技术寄存器TCNT1L | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |OCR1AH | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // 输出比较寄存器1AOCR1AL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |OCR1BH | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // 输出比较寄存器1BOCR1BL | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |ICR1H | Bit15 | Bit14 | Bit13 | Bit12 | Bit11 | Bit10 | Bit9 | Bit8 | // 输入捕捉寄存器1ICR1L | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |TIMSK | OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | OCIE0 | TOIE0 | // T/C中断屏蔽寄存器TICIE1 T/C1 输入捕捉中断使能OCIE1A 输出比较A 匹配中断使能OCIE1B T/C1 输出比较B 匹配中断使能TOIE1 T/C1 溢出中断使能TIFR | OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOV0 | // T/C中断标志寄存器ICF1 T/C1 输入捕捉标志位OCF1A T/C1 输出比较A 匹配标志位OCF1B T/C1 输出比较B 匹配标志位TOV1 T/C1 溢出标志SFIOR | ADTS2 | ADTS1 | ADTS0 | -- | ACME | PUD | PSR2 | PSR10 | // 特殊功能I/O寄存器PSR10 T/C1 与T/C0 预分频器复位//***********************// Timer2相关寄存器//**************************//TCCR2 | FOC2 | WGM20 | COM21 | COM20 | WGM21 | CS22 | CS21 | CS20 |FOC2 强制输出比较WGM21:0 波形产生模式模式 WGM21:0 T/C工作模式TOP OCR2的更新时间TOV2的职位时刻0 00 普通0xFF 立即更新MAX1 01 相位修正PWM 0xFF TOP BOTTOM2 10 CTC OCR2 立即更新MAX3 11 快速PWM 0xFF TOP MAXCOM21:0 比较匹配输出模式*比较输出模式,非PWM 模式COM21:0 说明00 正常的端口操作,不与OC0 相连接01 比较匹配发生时OC0 取反10 比较匹配发生时OC0 清零11 比较匹配发生时OC0 置位*比较输出模式,快速PWM 模式COM21:0 说明00 正常的端口操作,不与OC0 相连接01 保留10 比较匹配发生时OC0 清零,计数到TOP 时OC0 置位11 比较匹配发生时OC0 置位,计数到TOP 时OC0 清零*比较输出模式,相位修正PWM 模式COM21:0 说明00 正常的端口操作,不与OC2 相连接01 保留10 在升序计数时发生比较匹配将清零OC2 ;降序计数时发生比较匹配将置位OC211 在升序计数时发生比较匹配将置位OC2 ;降序计数时发生比较匹配将清零OC2CS22:0 时钟选择000 无时钟,T/C不工作001 clk(t2s)(无预分频)010 clk(t2s)/8011 clk(t2s)/32100 clk(t2s)/64101 clk(t2s)/128110 clk(t2s)/256111 clk(t2s)/1024TCNT2 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 定时器/ 计数器寄存器OCR2 | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // 输出比较寄存器ASSR | -- | -- | –- | -–| AS2 | TCN2UB | OCR2UB | TCR2UB | // 异步状态寄存器AS2 异步T/C2AS2为"0”时T/C2由I/O时钟clkI/O驱动;AS2为"1”时T/C2由连接到TOSC1引脚的晶体振荡器驱动TCN2UB T/C2 更新中OCR2UB 输出比较寄存器2 更新中TCR2UB T/C2 控制寄存器更新中TIMSK | OCIE2 | TOIE2 | TICIE1 | OCIE1A | OCIE1B | TOIE1 | OCIE0 | TOIE0 | // T/C中断屏蔽寄存器OCIE2 T/C2 输出比较匹配中断使能TOIE2 T/C2 溢出中断使能TIFR | OCF2 | TOV2 | ICF1 | OCF1A | OCF1B | TOV1 | OCF0 | TOV0 | // T/C中断标志寄存器OCF2 输出比较标志2TOV2 T/C2 溢出标志SFIOR | ADTS2 | ADTS1 | ADTS0 | –- | ACME | PUD | PSR2 | PSR1 | // 特殊功能IO寄存器PSR2 预分频复位T/C2//***********************// EEPROM相关寄存器//**************************// EEARH | ----- | ----- | ----- | ----- | ----- | ----- | ----- | EEAR8 | // EEPROM 地址寄存器EEARL | EEAR7 | EEAR6 | EEAR5 | EEAR4 | EEAR3 | EEAR2 | EEAR1 | EEAR0 |EEDR | Bit7 | Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 | // EEPROM数据寄存器EECR | -- | -- | -- | -- | EERIE | EEMWE | EEWE | EERE | // EEPROM 控制寄存器EERIE 使能EEPROM 准备好中断EEMWE EEPROM 主机写使能EEWE EEPROM 写使能EERE EEPROM 读使能//***********************// TWI相关寄存器//******************************// TWBR | TWBR7 | TWBR6 | TWBR5 | TWBR4 | TWBR3 | TWBR2 | TWBR1 | TWBR0 | // TWI比特率寄存器TWCR | TWINT | TWEA | TWSTA | TWSTO | TWWC | TWEN | –---- | TWIE | // TWI控制寄存器TWINT TWI中断标志TWEA 使能TWI应答TWSTA TWI START状态标志TWSTO TWI STOP状态标志TWWC TWI写碰撞标志TWEN TWI使能TWIE 使能TWI中断TWSR | TWS7 | TWS6 | TWS5 | TWS4 | TWS3 | –| TWPS1 | TWPS0 | // TWI状态寄存器TWS7:3 TWI状态TWPS:0 TWI 预分频位00 101 410 1611 64TWDR | TWD7 | TWD6 | TWD5 | TWD4 | TWD3 | TWD2 | TWD1 | TWD0 | // TWI 数据寄存器TWAR | TWA6 | TWA5 | TWA4 | TWA3 | TWA2 | TWA1 | TWA0 | TWGCE | // TWI 从机地址寄存器TWA6:0 TWI 从机地址寄存器TWGCE 使能TWI广播识别//***************************************************************************************//。