和记娱乐


网站导航

联系我们

和记娱乐

联系人: 

电 话:021-64057486

公司网址:http://www.happy123456789.com

   址:成都市松江区漕河泾松江新兴产业园区研展路丰产支路55号B座803室

邮编:201165


通信知识

您的当前位置: 和记娱乐主页 > 通信知识 >

高手总结!AVR单片机学习笔记

发布日期:2019-11-10 08:26 来源:和记h88 发布人:和记娱乐 点击:

  个通用寄存器(地址在RAM区从$0000开始到$001F),其中有6个(最后6个)合并为3个16位的X,Y,Z寄存器,用来存放地址指针,Z寄存器还可以寻址程序存储器

  14、I/O空间为连续的64个I/O寄存器空间,在数据存储器空间的映射地址为$0020~$005F。访问I/O寄存器的两种方式:IN,OUT指令+对SRAM访问指令

  I:全局中断使能位。置1,CPU可以响应中断;清0,CPU响应中断。清0时,单独的中断触发控制的值保持不变。并且中断响应后,I由硬件清0(手动置1实现中断嵌套),由RETI置1再响应其他中断

  S:符号标志位。S=N⊕V。不管溢出与否(溢出后N的表示就不正确了!),但S总是能正确的表示计算结果的符号

  21、掉电检测(BOD)复位<BODEN>,2.7V阈值,具有迟滞效应(间隙特性??)

  22、在FLASH的$0000H存放的是一条JMP或者RJMP指令,用来跳转到正式代码入口。$0002H~0028H(针对中断向量为一个字的,如果中断向量为两个字$0002H~0050H)存放的是中断向量表,20个中断口<算上第一个复位中断为21个>,主程序开始在$002AH

  24、每组I/O口配置三个寄存器用来表征他们的状态:方向控制寄存器DDRx(Data Direction Register),数据寄存器PORTn,输入引脚寄存器PINx。

  25、DDRx=1,I/O口处于推挽输出工作方式,PORTn为1输出20mA电流,为0吸纳20mA电流。DDRx = 0,I/O口处于输入工作方式,将PINx中的电平读入到DB上(PORTn用来设置是否使用内部上拉电阻,1为使用,0为不使用)在SFIOR中有一位PUD,PUD=1全部I/O上拉电阻无效,PUD =0,上拉取决于PORTn的设置

  26、使用I/O口时,一定要先配置I/O口。首先配置DDRx,确定I/O口是输入还是输出。根据实际情况,输入时需要配置是上拉还是下拉(上拉就是默认输入是高电平,下拉就是默认输入是低电平)

  30、满足中断条件,AVR硬件自动将相应的中断标志1,并且由硬件自动清除(仅对于部分中断有此功能,当然也可以手动软件清除,清除的方法是写1),硬件也同时自动清除I标志位(缺省不能进行中断嵌套,SEI将I置1,使能中断嵌套功能)

  32、中断响应至少需要4个CK才能开始运行中断向量表中的跳转指令(清I,清中断标志位,压栈PC,中断向量送入PC),至于要真正开始运行用户的代码,至少需要6~7个CK。中断返回RETI也需要4个CK(弹出PC,置SREG中的I为1)

  33、在使能中断允许位之前,最好先将对应中断源的中断标志位清除,为了防止在使能时,会立马产生一次“多余”的中断。

  34、INT0,INT1支持四种形式的中断触发:上升沿,下降沿,任意电平变化,低电平(不带中断标志位,低电平并不影响INTF0和INTF1的值(保持为0))。INT2只支持异步的上升沿和下降沿触发(常用作MCU功能)

  35、中断初始化步骤:配置中断触发类型(MCUCR,MCUCSR),使能对应的中断(GICR),清除对应的中断标志位(GIFR),使能全局中断(asm(“SEI”))。AVR STUDIO6中的中断写法:SIGNAL(xx){}(x为中断向量号)或者ISR(xx){}

  36、T/C0和T/C2可产生PWM,频率发生器,外部事件计数器(仅T/C0),10位时钟预分频器,溢出和比较匹配中断源,允许用32.768kHz晶体作为的计数时钟源(仅T/C2)

  37、时钟源和51单片机差不多:(CS[2:0]共八种选择),停止计数,上升沿或下降沿,10位预分频器(1/1,1/8,1/64,1/256,1/1024)

  38、TCNT0(8位)寄存器用来存放计数数值,如果在计数器运行期间写入数值,那么在下一个定时时钟周期中会阻塞比较匹配(丢失一次TCNT0和OCR0的匹配操作)

  39、OCR0中的数据会一直和TCNT0中的数值进行比较,如果匹配,将产生一个比较匹配的中断申请或者改变OC0的输出逻辑电平

  42、TCCR中的WGM[1:0]决定T/C0的四种工作方式:普通模式,比较匹配时定时器清0,两种PWM模式。COM[1:0]比较匹配输出方式的作用取决于T/C0的工作方式。普通模式(WGM[1:0]=0):计数到0xFF会产生溢出中断,TOV0置1。比较匹配清0计数器CTC模式(WGM[1:0]=2):f=f(IO)/(2N(1+OCR0)),TCNT0和OCR0匹配,匹配后TCNT0清0重新计数,同时置OCF0为1,便于产生中断。在中断中改变OCR0的值,在OC0中可以输出可变的高低电平信号。快速PWM模式(WGM[1:0]=3):f=f(IO)/(256N),TCNT0从0计数到0xFF,然后重新开始计数,如果匹配OCR0则根据COM[1:0]中的设置值分别置位或者清0OC0,以此来输出PWM波形。相位可调PWM模式(WGM[1:0]=1):双向计数器,所以最高PWM频率比快速PWM模式慢了一半。

  44、T1定时器在读取数据时,先读低八位,再读高八位。在写入数据时,先写高八位,再写低八位。就像对高位压栈一样。

  45、由于T1可以修改计数器的上限值(TOP),所以可以产生频率可变的PWM波形,而T0/T2定时器无法做到这一点

  47、T1输入捕捉功能:触发信号由ICP1输入或者又模拟比较器AC0输入。触发时,TCNT1的值被写入到ICR1中置位ICF1。此外,ICNC(Input Capture NoiseCanceler)为噪声功能,实现原理就是延迟4个CK检测电平变化,如果连续4个CK不变,则认为是真正的触发。ICES(Input Capture Edge Select)为触发边缘的选择,0为下降沿,1为上升沿

  49、AVCC为ADC模块的电源。参考电源可选择片内2.56V,AVCC或者外部参考电源

  52、ADC模块在使能ADATE(自动触发转换)后,利用T0的溢出中断来触发开始转换,一定要T0的中断允许位(TOIE0),否则无法触发转换

  53、一次正常的ADC转换过程需要13个采样时钟,假定ADC采样时钟频率为200kHZ,那么最高的采样频率为200kHZ/13=15.384kHZ,所以由香农,被测信号的最高频率为7.7kHZ

  56、UCSRA中的UDRE(U Data Register Empty)置1时(数据寄存器为空),UDR才能够被写入,一旦被写入,硬件自动将其中的内容送到TXD上串行移出。RXD和TXD均可以产生相应的中断,并在进入中断后标志自动清0。

  57、由于UBRRH (U Baud Rate Register)和UCSRC的物理地址相同,只是在最高位URSEL的不同,而写操作和读操作的对象不同。当URSEL为0时,对象为UBRRH;当URSEL为1时,对象为UCSRC。(读UCSRC时,需要连续读两次才能得到结果,第一次读的是UBRRH的值)

  59、如果UCSRA中的FE,PE,DOR在RXC中断中需要读出进行错误检测,那么一定要先读UCSRA再读UDR

  60、串行外设接口(Serial Peripheral Intece,SPI.飞思卡尔公司提出),两线串行接口(Two-wireSerial Intece,TWI)。SPI一般有四根信号线:MOSI,MISO,SCLK,/SS.可以想象一下主机和从机从MOSI到MISO收尾相连形成环(本质就是串行移位呗~),当数据全部交换完毕后,主机拉高/SS,停止SPI传输。这就是为什么SPI比TWI(I2C)快的原因:因为数据是全双工,并且数据走不同的通道。

  61、SPI有四种工作模式,取决于同步时钟的极性(Clock Polariy)和同步时钟的相位(Clock Phase)2个参数。

  63、数据寄存器SPDR。在读SPDR时,读取的是缓冲寄存器内容;写SPDR时,写到移位寄存器中。一旦将数据写入SPDR,硬件自动传输一次SPI通信,如果中断允许,则进入SPI中断。

  65、TWI工作在被控模式时,CPU频率fcpuclock必须大于TWI时钟线SCL频率的16倍。SCL的频率: (在主机模式下,TWBR应大于10.另外特别需要注意的一点:指的不是4的TWPS次方,应该是按照分频表格,将表格中的1,4,16,64替换整体)

  66、TWINT中断标志位,当其被置位时,时钟线SCL被拉低,并且执行中断向量时,标志不会清0,只能靠手动软件清0。

  67、如果TWINT被置位,表示正在传送数据,此时如果写入TWDR,那么TWWC(写冲突)会被置位。也就是说当TWINT被置位时,TWDR应该保持稳定,这和I2C的协议是一致的。

  68、TWAR(地址寄存器)的高7位用于存储自己的地址,最后一位TWGCE(TWI General Call Recognition Enable)为地址匹配成功使能位。如果地址匹配成功,将会产生一次TWI中断

  70、CKOPT当系统频率较高时或者要求抗干扰能力强,设置为1。如果系统频率低,设置为0,这样可以减少电流的损耗。

  71、片内EEPROM,执行读操作时,CPU停止运行4个时钟周期。而在执行写操作时,CPU停止运行2个时钟周期

      和记娱乐,和记h88,h88平台官网