AVR单片机一些学习笔记.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《AVR单片机一些学习笔记.docx》由会员分享,可在线阅读,更多相关《AVR单片机一些学习笔记.docx(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、AVR单片机一些学习笔记下面是自己在学习AVR单片机时的学习经验,提供出来给大家,一起学习。1、AVR单片机采用RISC架构,8051单片机采用CISC架构。前者速度为后者 的24倍,为流水线操作指令。2、AVR单片机有32个通用寄存器(地址在RAM区从$0000开始到$001F),其中 有6个(最后6个)合并为3个16位的X,Y,Z寄存器,用来存放地址指针,Z寄 存器还可以寻址程序存储器。3、哈佛结构,131条机器指令。4、延迟开机功能。5、内部自带RC振荡器,可提供1/2/4/8MHZ的工作时钟。6、FLASH+EEPROM+SRAM+SPI+USART+TWI+PWM+RTC+10 位
2、ADC+模拟 比拟器+JTAG。7、堆栈指针向下增长,51单片机向上增长。8、程序存储器按字来访问,擦除和写入以页为单位。9、复位时,所有的I/O 处于没有上拉电阻的输入状态(高阻)。10、没有中断优先级控制寄存器,由中断向量表的地址决定优先级(地址越低, 优先级越高)。11、PORTB |= (12)D2 置 1, P0RTB&=(1 FLASH分两段:引导程序段(BootProgram Section) +应用程序段 (Application Program Section) o BPS 中可以使用 SPM 指令实现 IAP 功能。13、中断向量表位于FLASH程序存储器的最前面。14、1
3、/0空间为连续的64个I/O寄存器空间,在数据存储器空间的映射地址 为$0020飞005F。访问1/0寄存器的两种方式:IN, OUT指令+对SRAM访问指令。15、单独的AVcc用于给PORTA的ADC做AREF。16、13位的程序计数器PC,正好满足16KB的寻址。17、AVR对片内SRAM的访问需要2个时钟周期。19、状态寄存器SREG:I:全局中断使能位。置1, CPU可以响应中断;清0, CPU禁止响应中断。清0 时,单独的中断触发控制的值保持不变。并且中断响应后,I由硬件清0(手动 置1实现中断嵌套),由RETI置1再响应其他中断。T:位复制存储。BLD, BSTo可以将通用寄存器
4、组中的任何一位复制到T中,反 过来也可以。II:半进位标志位。用于BCD的运算。S:符号标志位。S=NV。不管溢出与否(溢出后N的表示就不正确了!),但S 总是能正确的表示计算结果的符号。V: 2的补码溢出标志位。溢出时,N取反才是真正的结果符号。N:负数标志位。直接取自运算结果的最高位。Z:零值标志位。运算结果为0,置1。C:进/借位标志。20、MCUCSR可以查看复位原因。21、掉电检测(B0D)复位,2.7V阈值,具有迟滞效应(间隙特性?)22、在FLASH的$0000H存放的是一条JMP或者RJMP指令,用来跳转到正式代 码入口。$0002H0028H(针对中断向量为一个字的,如果中断
5、向量为两个字 $0002H1)050H)存放的是中断向量表,20个中断口算上第一个复位中断为21 个,主程序开始在$002AH。23、硬件开发工具:软件模拟仿真器,实时在板仿真器(ICE),实时在片仿真 器(JTAG) o24、每组I/O 口配置三个寄存器用来表征他们的状态:方向控制寄存器 DDRx(Data Direction Register),数据寄存器 PORTn,输入引脚寄存器 PINx。25、DDRx=l, I/O 口处于推挽输出工作方式,PORTn为1输出20mA电流,为0 吸纳20mA电流。DDRx=0, 1/0 口处于输入工作方式,将PINx中的电平读入 到DB上(PORTn
6、用来设置是否使用内部上拉电阻,1为使用,0为不使用)在 SFIOR中有一位PUD, PUD=1全部1/0上拉电阻无效,PUD=0,上拉取决于 PORTn的设置。26、使用1/0 口时、一定要先配置1/0 口 首先配置DDRx,确定1/0 口是输 入还是输出。根据实际情况,输入时需要配置是上拉还是下拉(上拉就是默认输 入是高电平,下拉就是默认输入是低电平)。27、1/0 口输入方式时,应该读取的是PINx的值。28、输出口操作:PORTA |= (1 PORTA &= (1 PORTAx) / 位置低PORTA = (1 输入口操作:PINA & (1 PORTAx) / 位读取29、有三个外部
7、中断(INTO, INTI, INT2),其中TNT2只支持边缘触发30、满足中断条件,AVR硬件自动将相应的中断标志位置1,并且由硬件自动 清除(仅对于局部中断有此功能,当然也可以手动软件清除,清除的方法是写 1),硬件也同时自动清除I标志位(缺省不能进行中断嵌套,SEI将I置1,使 能中断嵌套功能)。31、退出中断后,AVR至少要再执行一条指令后才能去响应其他被挂起的中断。32、中断响应至少需要4个CK才能开始运行中断向量表中的跳转指令(清I, 清中断标志位,压栈PC,中断向量送入PC),至于要真正开始运行用户的代码, 至少需要67个CK。中断返回RETI也需要4个CK(弹出PC,置SRE
8、G中的I为 Do33、在使能中断允许位之前,最好先将对应中断源的中断标志位清除,为了防 止在使能时,会立马产生一次“多余”的中断。34、INTO, INT1支持四种形式的中断触发:上升沿,下降沿,任意电平变化, 低电平(不带中断标志位,低电平并不影响INTFO和INTF1的值(保持为0)。 INT2只支持异步的上升沿和下降沿触发(常用作唤醒MCU功能)。35、中断初始化步骤:配置中断触发类型(MCUCR,MCUCSR),使能对应的中断 (GICR),清除对应的中断标志位(GIFR),使能全局中断全sm( “SEI”)。AVR STUDI06中的中断写法:SIGNAL(xx) ) (x为中断向量
9、号)或者ISR(xx) 。36、T/CO和T/C2可产生PWM,频率发生器,外部事件计数器(仅T/CO), 10位 时钟预分频器,溢出和比拟匹配中断源,允许用32. 768kHz晶体作为独立的计 数时钟源(仅T/C2)。37、时钟源和51单片机差不多:(CS 2:0共八种选择),停止计数,上升沿或 下降沿,10 位预分频器(1/1, 1/8, 1/64, 1/256, 1/1024)。38、TCNTO (8位)寄存器用来存放计数数值,如果在计数器运行期间写入数值, 那么在下一个定时时钟周期中会阻塞比拟匹配(丧失一次TCNTO和OCRO的匹配 操作)。39、OCRO中的数据会一直和TCNTO中的
10、数值进行比拟,如果匹配,将产生一 个比拟匹配的中断申请或者改变0C0的输出逻辑电平。40、TIMSK 中的 0CIE0 (OutputCompare Interrupt Enable), TOIE (Timer Overflow Interrupt Enable)分别为比拟匹配中断允许标志位和溢出中断允许 位,当I被置位时,满足条件即可触发对应的中断。41、TIFR 中的 0CF0(0utputCompare Flag)和 TOVO (Timer Overflow)分别为比 较匹配标志位和定时器溢出标志位。42、TCCR中的WGM1:O决定T/CO的四种工作方式:普通模式,比拟匹配时定 时器清
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AVR 单片机 一些 学习 笔记
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内