什么是AVR单片机,AVR单片机的特点优势有哪些
一、 AVR单片机简介
1.1、AVR的诞生
AVR单片机是ATMEL公司在1997年研发的增强型内置Flash的RISC精简指令集高速单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。
1.2、AVR的特点
采用RISC精简指令系统
RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC 并非只是简单地去减少指令,而是通过将计算机的结构变得更加简单合理来提高计算机的运算速度,目前市面上常见的微控制器大部分都使用的是RISC指令集,包括AVR以及ARM等。RISC优先选取使用频率最高的简单指令,避免复杂指令,并固定指令宽度,减少指令格式和寻址方式的种类,从而缩短指令周期,提高运行速度。由于AVR 采用RISC的这种结构,使AVR系列单片机都具备了1MIPS/MHz(百万条指令每秒/兆赫兹)的高速处理能力。可以适用于对计算能力要求更高的场景下。
采用内嵌高质量的Flash程序存储器
高质量的Flash擦写方便,支持ISP和IAP,便于产品的调试、开发、生产、更新。内嵌长寿命的EEPROM可以长期保存关键数据,避免断电丢失。片内大容量的RAM不仅能满足一般场合的使用,同时更有效的支持使用高级语言开发系统程序,并可像MCS-51单片机那样扩展外部RAM。
I/O管脚全部带可设置的上拉电阻
这样的话可以单独设定为输入/输出、可设定(初始)高阻输入、驱动能力强(可省去功率驱动器件)等特性,使的得I/O口资源灵活、功能强大、可充分利用。
片内具备多种独立的时钟分频器
可分别供URAT、I2C、SPI使用。其中与8/16位定时器配合的具有多达10位的预分频器,可通过软件设定分频系数提供多种档次的定时时间。
增强性的高速USART
具有硬件产生校验码、硬件检测和校验、两级接收缓冲、波特率自动调整定位、屏蔽数据帧等功能,提高了通信的可靠性,方便程序编写,更便于组成分布式网络和实现多机通信系统的复杂应用,串口功能大大超过MCS-51单片机的串口,并且由于AVR单片机速度快,中断服务时间短,故可实现高波特率通讯。
稳定的系统可靠性
AVR单片机有自动上电复位电路、独立的看门狗电路、低电压检测电路BOD,多个复位源(自动上下电复位、外部复位、看门狗复位、BOD复位),可设置的启动后延时运行程序,增强了嵌入式系统的可靠性。
二、 AVR单片机系列简介
AVR单片机系列齐全,可适用于各种不同场合的要求,共有3个档次,分别为:
低档Tiny系列:主要有Tiny11/12/13/15/26/28等;
中档AT90S系列:主要有AT90S1200/2313/8515/8535等;(正在淘汰或转型到Mega中)
高档ATmega:主要有ATmega8/16/32/64/128(存储容量为8/16/32/64/128KB)以及ATmega8515/8535等。
AVR器件引脚从8脚到64脚不等,还有各种不同封装可供用户根据实际情况进行选择选择。
三、 AVR单片机的优势
哈佛结构,具备1MIPS / MHz的高速运行处理能力;
超功能精简指令集(RISC),具有32个通用工作寄存器,克服了如8051 MCU采用单一ACC进行处理造成的瓶颈现象;
快速的存取寄存器组、单周期指令系统,大大优化了目标代码的大小、执行效率,部分型号FLASH非常大,特别适用于使用高级语言进行开发;
作输出时与PIC的HI/LOW相同,可输出40mA,作输入时可设置为三态高阻抗输入或带上拉电阻输入,具备10mA-20mA灌电流的能力;
片内集成多种频率的RC振荡器、上电自动复位、看门狗、启动延时等功能,外围电路更加简单,系统更加稳定可靠;
大部分AVR片上资源丰富:带E2PROM,PWM,RTC,SPI,UART,TWI,ISP,AD,Analog Comparator,WDT等;
大部分AVR除了有ISP功能外,还有IAP功能,方便升级或销毁应用程序。
四、 AVR单片机的应用
基于AVR单片机的优秀的性能与以上的特点,可以看出,AVR单片机目前可以适用于大部分嵌入式应用场景中,同时由于AVR单片机的封装形式多样,可以用于教学当中,例如使用双列直插型单片机可以让学生自己动手设计焊接一个单片机的最小系统,学习软硬件技术。
干货|教你DIY自动控制电源开关的鼠标
无线鼠标使用很方便,但是电池不太耐用,即使是充电电池,也需要充电。很多鼠标带有电源开关,可以关闭电源节省电池能量,但是使用后也会容易忘记关闭开关,造成浪费。虽说大部分鼠标都有自动休眠功能,但是看起来休眠的效果并不理想,试过多个2.4G无线、蓝牙鼠标,都经常被电池问题困扰,没有找到一个合适的,于是就想自己改造一下。
理想情况下,拿起鼠标就可以使用,放下鼠标一段时间后,就自动切换电源,这样无论鼠标的低功耗功能是否足够好,都不会损耗电池了,使用起来比较省心。正好有一个闲置的蓝牙鼠标,就动手进行了改造了一番。
这个鼠标是最常见的公模鼠标了,它使用1节14550锂电池供电,可能是电池容量小,加上通常没有关闭电源开关,所以一般情况下,充电一次可以使用7-15天(与使用频率有关)。
鼠标很容易拆,将电池取下后,就可以看到固定螺丝。这个鼠标只用1个螺丝固定,在鼠标脚垫下没有螺丝(有些鼠标可能有,后面两个鼠标脚垫处有螺丝柱)。取下螺丝后,就很容易将鼠标上盖和底部分离,看到里面的主板了。
要实现前面的想法,其实不难,只需要一个低功耗单片机(现在大部分单片机都可以),一个触摸按键芯片,一个P-MOS管就可以。使用触摸按键芯片检测手接触鼠标,当接触鼠标后就会输出信号,单片机检测到这个信号后,就控制MOS管导通,给鼠标供电;当信号消失(手离开),延时一段时间后切断电源,就可以自动节省电池能量。有的单片机支持大电流输出引脚(输出电流不小于50mA),那么MOS也可以省掉。
确定了基本方案,下一步就是选择合适的元件了。一节锂电池的电压范围在2.7-4.2V,因此需要选择一个支持2.7-5V的单片机,否则还需要增加一个LDO防止电压超出范围。MOS和触摸芯片也是如此,需要选择合适电压范围的。这些元件还是比较容易找到的,相信大家都有一些自己熟悉的。不过DIY的乐趣在于尽量使用少的成本和现有的东西,而不是花很多钱去买一个现成的,因此到杂物箱中找了找,找出了下面几个元件,正好可以满足要求:
ATTiny13V,8引脚的AVR单片机TTP223,单触摸传感器SI2301,P-MOSATTiny13V是8引脚的单片机,最大10M主频,1KB flash,64B ram和64B eeprom。休眠时功耗大约是5uA(看门狗使能)。
TTP223是一个SOT23-6封装的芯片,支持多种方式输出和自校正。为了让程序简单,这里使用了直接输出方式,低电平有效。因此需要将TOG接地,而AHLB接VCC。
SI2301就是一个普通MOS,其它类似型号都可以使用。
AVR单片机好几年没有用过了,顺便把编程器找出来,这还是以前DIY的,使用了AVRUSB方式。为此还把安装了XP的旧计算机找出来,因为win7以后的系统都不能直接使用AVRUSB。
因为没有(也不需要)仿真器,因此程序就使用了proteus,可以在proteus中仿真、编写代码、模拟运行、设置断点,模拟运行结果正常,一般就没有大问题了。
好长时间不用AVR,一些用法都忘记了。好在有以前写的通用驱动层,不看手册也很快就完成了功能。使用一个IO做触摸检测,一个IO做MOS控制。单片机平时休眠,通过WDG定时唤醒,休眠时功耗应该低于20uA。以前还体会不深,现在就越来越感到一个好的HAL是非常重要的。
将程序先下载到单片机,然后将信号线焊接上去,就完成了。使用了一个长导线作为触摸感应,并将它固定到上盖下方位置。
安装电池后运行,效果不错,灵敏度也很高。就是使用中发现延时关闭电源的时间稍短了一点,程序中设计的是5秒,有时拿东西是电源就关闭了,以后改为10-30秒可能更好。
后记:
第一次安装后运行发现了一个问题,TTP223输出不能拉到0V,只有2.8V。检查发现程序中使能了IO的上拉电阻,关闭上拉后就正常了。如果要更好的防止干扰,可以使用多路触摸信号进行控制,在多个信号同时有效时,才打开电源,这样效果更好。对于1节AA电池供电的鼠标,因为电压范围是0.9-1.5V,上面的元件就不能使用了。因此需要选择合适的元件,或者使用升压方式。相关问答
arduino和 单片机 的区别?Arduino的核心是一块AVR单片机,单片机就是一个芯片,而Arduino是一套软硬件都封装了的模块。肯定是学单片机啊,Arduino也就是玩玩而已,真正有技术含量有产品应...
单片机 arduino哪个好?1.arduinoArduino的开发一般是一套以AVR单片机为核心控制器的硬件(开发板),还有配套他们的开发环境ArduinoIDE。简单来说呢就是arduino是对单片机的二次封装,...
单片机 和ARM有什么区别?欢迎大家关注狗哥,学习更多单片机干货1、单片机指单芯片上集成了控制器、存储器以及如定时器、SPI、IIC等外部设备于一体的片上系统,可以用来执行复杂的功能,...
Arduino,C51,STM32和ARM等有什么联系和区别?ARM是指架构,这是指代用ARM架构开发的一类单片机或者SOC。例如手机处理器,也比如后面要说的STM32。ARM架构分很多种,比如COTEXA系列也就是高端系列,基本上...二...
谈谈你对 单片机 的认识?从大一的时候在大学图书馆看到关于AVR单片机的书籍,到参加竞赛、工作,我和单片机已经打了六七年的交道了吧。其间我都是在做产品的软件开发,与硬件工程师合作...
CPLD_JTAG接口的 封装 ???-ZOL问答CPLD的JTAG是标准的,你在网上搜一下就找到了至于封装,我是自己画的,是引脚间距...具体AVR那款单片机支持JTAG方式还要看你选型芯片是否支持。JTAG只是定义了芯...
arduino与stm32 单片机 ,谁的功能强大?ST的单片机性能强大、成本低、产品线广,在国内比较售欢迎。如下图所示,是STM32F103C8T6,封装为LQFP-48.结论:STM32单片机是芯片。2.什么是arduinoarduino....
能给我说一下!!零基础学PLC自动化编程培训正规培训学校,PL...[回答]西区这边没有,我朋友之前学都是去火炬那间叫名师高徒的学校学的,老师还介绍工作。火炬开发区有一家叫名师高徒的学校,是专门教这些的.学了单片机后...
为什么建议大家要学习arduino?因为Arduino是基于Processing开发的,简单易用,并且足够灵活。Arduino语言是基于Wiring语言开发的,是对AVR-GCC库的二次封装,不需要太多的单片机知识,不管是...
STM32是什么啊,是32位的 单片机 吗 - 135****2256 的回答 - 懂得stm32是一种32位的单片机。单片机是嵌入式系统中最常用的核心部件,stm32本质上也是一种单片机。从事嵌入式方面工作,如果有一定的基础,可以从STM32...