2020年 05月 12日 星期二
您的位置: 威廉希尔主页 > 单片机技术 >

AVR单片机的主要特性及应用解析

来源:未知     作者:威廉希尔     发布时间:2020-05-10 08:36         

  AVR单片机是ATMEL公司研发的增强型内置Flash的RISC精简指令集高速8位单片机,设计时吸取了8051及PIC单片机的优点,具备单时钟周期执行一条指令的能力,运行速度高达1Mips/MHz。AVR单片机可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。

  AVR单片机硬件结构采取8位机与16位机的折中策略,即采用局部寄存器存堆(32个寄存器文件)和单体高速输入/输出的方案(即输入捕获寄存器、输出比较匹配寄存器及相应控制逻辑),提高了指令执行速度,克服了瓶颈现象,增强了功能;同时又减少了对外设管理的开销,相对简化了硬件结构,降低了成本。AVR单片机在软/硬件开销;速度、性能和成本诸多方面取得了优化平衡,是一种高性价比的单片机。

  1.内嵌高质重的Flash程序存储器,可反复擦写,支持ISP和IAP,便于产品的调试、开发、生产、更新。内取长寿命的EEPROM,可长期保存关键数据,避免断电丢失。片内具有大容量的RAM,有效支持使用高级语言开发系统程序。

  2.高速度、低功耗,具有SLEEP(省电休眠)功能。每一指令执行速度可达50ns(20MHz),而耗电则在l~2.5mA之间(典型功耗,WDT关闭时为lOOnA),AVR运用Harvard结构概念(具有预取指令功能),即对程序存储和数据带有不同的存储器和总线当执行某一指令时,下一指令被预先从程序存储器中取出,这使得指令可以在每一个时钟周期内被执行。AVR单片机可宽电压运行(2.7~5V),抗干扰能力强,可降低一般8位机中的软件抗干扰设计工作量和硬件的使用量。

  3.AVR单片机的I/0线全部带可设置的上拉电阻,并行I/0口输入输出特性与PIC的HI/LOW输出及三态高H1-Z输入类似外,也可设定类同8051系列内部拉高电阻作输入端的功能,可单独设定为输入/输出、可设定(初始)高阻输入。使得I/0口资源灵活、功能强大、利用充分。AVR的I/0口是线口的输入/输出线.AVR单片机片内具备多种的时钟分频器,分别供URAT、IIC、SPI使用。其中与8/16位定时器配合的具有多达10位的预分频器,可遗过软件设定分频系数提供多种档次的定时时间。AVR单片机中的定时器/计数器(单)可双向计数形成三角波,再与输出比较匹配寄存器配合,生成占空比可变、频率可变、相位可变方波的脉宽调制输出PWM。

  5.工业级产品,具有大电流(灌电流)lO~20mA或40mA(单一输出),可直接驱动SSR或继电器。内置的看门狗定时器(WDT)用于防止程序跑飞,提高产品的抗干扰能力。

  已超功能精简指令。具有32个通用工作寄存器(相当于8051单片机中的32个累加器),克服了单一累加器在数据处理时造成的瓶颈现象。

  8.像8051一样,AVR有多个固定中断向量入口地址,因此可快速响应中断,而不会像PIC一样所有中断都在同一向量地址,需要以程序判别后才可响应。

  9.AVR单片机有自动上电复位电、的看门狗电、低电压检测电BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了系统的可靠性。

  10.有串行异步通讯UART,不占用定时器和SPI传输功能,因其高速,故可以工作在一般标准整数频率,而波特率可达576Ko11.有多通道10位AID转换器及实时时钟RTC。

  AVR单片机技术体现了单片机集多种器件(包括FLASH程序存储器、看门狗、EEPROM、同/异步串行口、TWI、SPI、AID模数转换器、定时器/计数器等)和多种功能(增强可靠性的复位系统、降低功耗抗干扰的休眠模式、品种多门类全的中断系统、具输入捕获和比较匹配输出等多样化功能的定时器/计数器、具替换功能的I/0端口……)于一身,充分体现了现代单片机技术向“片上系统SoC”过渡的发展方向。

  学习一种新的单片机技术,实验与实践是必不可少的,否则只能是纸上谈兵。学习AV只用到的实验工具及器材如下:

  AVRStudio是一个Atmel公司开发的集项目管理、程序汇编、程序调试、程序下载、JTAG仿真等功能干一体的集成开发。但AVRStu-dio不支持C语言编译,因此,当我们用C语言开发AVR单片机时,需先用ICCAVR编写C语言并进行编译,然后使用AVRStudio打开编译生成的文件,进行程序的仿真调试。下图为SVRAStudio的工作界面。

  AVR单片机JTAG仿真器为经典的AVR仿真器,支持的芯片为:ATmega128、ATmega128L、ATmega16、ATmega162、ATmega162V、ATmega165、ATmega165V、ATmega169、ATmega169V、ATega16L、ATmega32、ATmega323、ATmega323L、ATmega32L、ATmega64、ATmega64L。右图为AVR单片机JTAG仿真器外型。

  并口下载器低价、可靠、实用,支持AVR单片机及AT89S51/52单片机。是下载程序时必用的工具。

  本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

  为什么AVR单片机需要写1作为清0中断标志位关于“为何AVR使用写1作为清0中断标志位的手段”这个问题我看过很多的相关资料。在AVR的手册中并没有给出为什么的解释,只是强调了“写1清0中断标志位”。同时我也看到很多新的芯片,如DSP等,也是采用写1清零标志位的。但没有找到更专业的,或从根源上的说明,如果那位有这方面的知识或资料,欢迎深入的讨论学习。下面是我个人的分析和解释,供参考。1、首先从硬件上的考虑,通常的读写处理单元是以8BIT字节为单位的,因为数据总线位的倍数。这样对位的操作就不方便,不能直接写1位(会改变其它的位),需要先读到寄存器,然后改动1位,最后回写,需要更多的时间。2、对于RAM操作一般采用直接写的方式,所以对RAM基本上没有直接的位操作指令。而对发表于2020-04-18

  #includeiom16v.h#includemacros.h#define uchar unsigned char#define uint unsigned int#define beep_0 (PORTD = PORTD&0x7F)#define beep_1 (PORTD = PORTD0x80)#define RS_0 PORTC &= ~(1PC0)#define RS_1 PORTC = (1PC0)#define RW_0 PORTC &= ~(1PC1)#define RW_1 PORTC = (1

  在AVR单片机烧写的过程中,难免有弄错熔丝位的时候,结果是AVR单片机无法读写了!这时我们该怎么办呢,将昂贵的芯片丢掉,再用一块新的。其实这一般是没有必要的,写错熔丝位而导致单片机不能读写,一般不外乎(个人)设设置错了时钟模式,比如说本来是用内部晶振的,结果弄成了外部晶振,而单片机的外部有没有接晶振,这时单片机没有了时钟信号,当然就没有办法在读写了,估计大家也猜到了怎么办了吧,是的,就是由外部提供时钟源。有第一张图的时钟选择,我们就知道我们得准备多种时钟源:高频石英/陶瓷晶振,这个直接接在 单片机 晶振就可以了,注意频率不要太高,4~5M的就可以了,不放心的线P的电容也行!低频晶振,和的插补多,也就

  ,因此需要较复杂的控制逻辑,本文采用CPLD器件EPM7128来解决这一问题,通过软件编程简化硬件设计。处理器及外围控制电处理器部分是系统的核心,它具有控制和处理两个功能。外围控制接口电包括讯响部分、空调控制显示部分和串口电。电源电设计以尽量减小功耗为目的,整个系统采用了两种供电电源:3.3V 和 5V。3.3V稳压模块采用的是CZ1585CT,5V稳压模块采用的是MC7805T。由于现在稳压电源集成度比较高,电组成也比较简单,在此就不给出原理图了。软件程序的设计由于整个系统有 单片机 的控制与数据处理,也有PC机的图形处理,还有接口逻辑设计,因此软件调试既包括AVR单片机程序调试,也包括PC机程序的调试

  采用了在ATmega16引脚XTAL1和XTAL2上外接由石英晶体和电容组成的谐振回,并配合片内的OSC(Oscillator)振荡电构成的振荡源作为系统时钟源的。更简单的电是直接使用片内的4M的RC振荡源,这样就可以将C1、C2、R2和4M晶体省掉,引脚XTAL1和XTAL2悬空,当然此时系统时钟频率精准度不如采用外部晶体的方式,而且也易受到温度变化的影响。AVR的复位源和复位方式:复位是单片机芯片本身的硬件初始化操作,例如,单片机在上电开机时都需要复位,以便CPU以及其它内部功能部件都处于一个确定的初始状态,并从这个初始状态开始工作。AVR单片机的复位操作,其主要功能是把程序计数器PC初始化为$0000(指非BOOT

  使用一体化的红外接收头,直接就解码出来了,平时红外接收头输出的是高电平,当有红外数据的时候,就会根据发送的红外数据有相应的电平转换。大家可以随便找个遥控板,测一下红外接收波形,看看高低电平的表示,便于计数及接收步骤。这次用的遥控板的红外协议是这样的:0.6ms高电平+0.48ms低电平表示0,接收解码出来是0.6ms低电平+0.48ms高电平。0.6ms高电平+1.66ms低电平表示1,接收解码出来是0.6ms低电平+1.66ms高电平。调制38kHz,占空比1/3.遥控发送数据先是9ms高电平,4.5ms低电平,然后是两个字节的识别码,接着是一个字节的数据和一个字节的数据反码。单片机解码0和1只用计数接收到的低电平长度就行了

  ADI基于ADPD188BI的烟雾探测器集成解决方案 有直播 5月13日上午10:00-11:30 为您揭晓!

  STM32MP1系列通用型MPU, 集成双 Arm® Cortex®-A7和 Cortex®-M4 内核

  汽车电子消费电子数据处理视频教程电子百科其他技术STM32MSP430单片机资源下载单片机习题与教程市海淀区知春23号集成电设计园量子银座1305电线

      威廉希尔