AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(Reduced Instruction Set CPU) 精简指令集高速8位单片机。可以广泛应用于计算机外部设备、工业实时控制、仪器仪表、通讯设备、家用电器等各个领域。AVR单片机是 Atmel 公司 1997 年推出的 RISC 单片机。RISC(精简指令系统计算机)是相对于CISC(复杂指令系统计算机)而言的。RISC 并非只是简单地去减少指令,而是通过使计算机的结构更加简单合理而提高运算速度的。

AVR单片机ATmega16的主要特点:

1) 采用 RISC 结构的AVR内核单片机。

131 条机器指令, 大多数指令为单个系统时钟周期执行的指令;

32 个 8 位通用工作寄存器;

全静态工作方式(Fully Static Operation)。

工作在 16 MHz 时具有 16 MIPS 的性能。(注: ATmega16L 系列最大工作频率为 8 MHz);

内部配备有 2 个时钟周期的硬件乘法器。

2)片内自带大容量, 非易失的程序和数据存储器

16KB 在线可编程(ISP, In-System Programming)Flash 程序存储器(擦写次数》10 000), 采用 Boot load 技术支持IAP(In-Application Programming)功能。

1KB片内 SRAM 数据存储器, 可以实现 3 级锁定的程序加密;

512 字节片内 ISP 的EEPROM 数据存储器(擦鞋次数》100 000);

3) 片内含JTAG接口

支持符合 JTAG 标准(与IEEE 1149.1 标准兼容)的边界扫描功能, 用于芯片检测;

支持扩展的片内在线调试功能;

可通过 JTAG 接口对片内 Flash, EEPROM, 熔丝位和加密锁定位实现下载编程;

4) 外围接口

2 个带有分别独立和可设置预分频的 8 位定时/计数器;

1 个带有可设置预分频器, 具有比较, 捕捉功能的 16 位定时/计数器;

片内含独立振荡器的实时时钟 RTC;

4 路 PWM 通道;

8 路 10 位 ADC;

面向字节的两线接口 TWI(Two—Wire Serial Interface, 完全兼容 IIC 总线硬件接口);

1 个可编程, 增强型全双工, 支持同步/异步通信的串行接口 USART;

1 个可工作于主机/从机模式的 SPI (Serial Peripheral Interface Bus)串行接口(支持 ISP 程序下载);

片内集成模拟比较器;

片内含有可编程的具有独立片内震荡期的看门狗定时器 WDT;

5) 其他特点

内含上电复位电路以及可编程的掉电检测复位电路 BOD(Brown-out Detection);

片内含有 1/2/4/8 MHz 经过标定的, 可校正的 RC 震荡器, 可作为系统时钟使用;

21 种内外部中断源;

6 种休眠模式(空闲模式、ADC 噪声抑制模式、省电模式、掉电模式、Standby 模式以及

扩展的Standby 模式), 支持节电方式工作;

工作电压: ATmega16L 为 2.7~5.5V, ATmega16 为 4.5~5.5V;

运行速度: ATmega16L为 0~8MHz, ATmega16为0~16MHz;

功耗指标: ATmega16L 工作在 1MHz, 3V, 25摄氏度时: 典型功耗为 1.1mA, 空闲模式为 0.35mA, 掉电模式为 《 1uA;

AVR 单片机的内部结构框图:

avr单片机工作经验总结

AVR与传统类型的 相比,除了必须能实现原来的一些基本的功能,其在结构体系、功能部件、性能和可靠性等多方面有很大的提高和改善。

但使用更好的器件只是为设计实现一个好的系统创造了一个好的基础和可能性,如果还采用和沿袭以前传统的硬件和软件设计思想和方法的话,是不能用好AVR的,甚至也不能真正的了解AVR的特点和长处。

功能越好的器件,需要具备更高技术和能力的人来使用和驾驭它。就象一部好的F1赛车,只有具备高超技术的驾驶员才能充分体会到车的特点,并能最大限度的发挥出车的性能。

AVR具有上手入门快,开发方便简单的特点,但要充分体会和发挥AVR的优点,还需要应用工程师本身的硬软件设计开发能力的不断学习、实践提高。

“外行看热闹,内行看门道”,对于有一定基础的和单片机系统设计开发的工程师,不妨先简单尝试一下AVR。

开发环境与工具:PC+下载线+实际的系统板

PC上的开发软件:

AVR Studio(Free)汇编+汇编调试+高级语言调试+软件仿真

ICC、CVAVR、BASCOM-AVR 高级语言程序开发+程序下载。其中一个购买正版全功能,作为主要的开发环境,其它使用DEMO版,作为辅助及参考。

AVR ISP下载线:

STK200 and STK200+ and STK300 ISP programmer。通过PC的打印机口,采用ISP技术将系统运行代码(HEX、BIN)和数据写入AVR芯片的Flash和EEProm中,编程AVR的配置熔丝位和加密位。支持决大多数的AVR芯片、以及ATMEL的51兼容芯片89S8252、89S52等。在ICC、CVAVR、BASCOM-AVR、BASCOM-8051中都内含对该下载线的支持程序。免费专用的下载程序:SLISP、PonyProg2000等。

尽量不使用仿真器的建议:

在开发和调试系统程序时,有许多人完全依赖于仿真器,一旦离开了仿真器时就感觉无从下手。其实,由于AVR的Flash存贮器可方便的使用ISP技术在线的多次擦写,因此建议尽量不使用(依赖)仿真器来开发和调试程序。

在实际开发过程中,程序的调试可以从下几方面入手:

现在的高级语言编译器(如C编译器)可以产生效率很高的机器代码,因此建议大家尽量使用高级语言编写系统程序。

使用Atmel公司提供AVR Studio软件模拟仿真环境,以及其他的软件模拟仿真环境(BASCOM-AVR)。

尽可能使用高级语言编写系统程序。

利用目标板上的、LCD或异步串口。见附件“没有仿真器的情况下如何开发AVR”的介绍。

提高的合理性:

尽量合理和充分使用AVR片内的资源,如EEPROM、A/D、内部的RC振荡源。

尽量采用连接的外围器件,大容量的存储器、LCD控制器、打印机、不用8279(LED数码管+键盘)而使用7279等。除了必须外扩RAM(如语音和图象),一般不提倡使用并行扩展(573+译码电路),减小硬件和连线以及PCB板上错误的出现概率,同时也提高了系统的可靠性。并行扩展向串行扩展是发展趋势。现在有大量的新的外围器件采用高速的,如A/D、D/A、RTC、存储器等。

尽量使用以及在目标板上预留ISP程序下载接口,或使用IAP技术。

优点:ISP接口与I/O的兼容性比JETAG好。

缺点:不能在线调试

注意和掌握AVR配置熔丝位的使用:

系统晶振的选择

.BOD的使用

启动延时

.Mega8的PC6引脚,RESET与通用I/O的转换

.JETAG接口和通用I/O的转换

启动向量的转换,BOOT-LOAT区大小的设置

提高硬件可靠性的考虑:

。尽量采用片内晶体、采用低频率的系统时钟、的输出小幅度。

。选择合适的启动延时参数

。使用BOD、片内的看门狗

。合理休眠方式的使用

。不用I/O口设定输出低电平

。利用内部的EEProm和寄存器MCUCSR判断复位标志,进行不同的处理

提高软件设计的能力和水平:

尽量合理采用高级语言设计编写系统程序。有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空间,其实这是一种误解。对一个有经验的,而且非常熟悉某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗?

高级语言的优越性是汇编语言不能比的:

。程序移植方便

。程序的坚固性

。数学运算的支持

。条理清晰的结构化编程,程序的可维护性。

。可协同开发软件,开发周期短。

现在的高级语言编译器(如C编译器)已可以产生代码效率很高的机器代码,因此建议大家能用高级语言实现的程序尽可能使用高级语言写,在对速度和时序要求特严的场合可以采用混合编程的方法来解决。

更深入和全面的掌握各种串行通信协议的规程:

目前以大量的使用串行接口外围芯片和各种通信接口,如RS232、两线(I2C)、三线(SPI)、单、USB、CAN、TCP/IP等。开发人员和程序员应了解低层协议,熟悉硬件怎样和如何实现低层协议,如何定义可靠的上层应用协议,以及低层协议驱动同上层应用协议之间的(中间层软件的实现)等。

硬件工程师的软件编写能力要提高,采用标准程序编写方式、完善的软件整体框架的设计、良好的数据结构和程序结构系统。(计算机软件专业的程序设计员对硬件不熟悉、大部分是在操作系统支持下编写软件,对低层接口和协议的驱动层以及接口也不了解,往往也编写不出好的单片机系统程序。)

通信接口的编写应尽量

采用中断+缓冲区,

分层+结构化设计,

尽量不使用轮循方式(降低AVR的效率)。参见URAT(RS232)驱动+中间层软件示例。

采用好的系统设计模式:

尽量不使用传统的前后台(中断)系统设计模式,任务之间相互影响和干扰,无法定时操作。如设计一个采用动态扫描方式驱动的8位LED数码管显示+动态扫描的4*4。

采用TimeTip+状态机设计+CASE结构,实现多任务并行运行系统设计方法。或时间触发式的系统设计。(见:《时间触发嵌入式系统设计模式》中国电力出版社 2004.6)

移植小型,如UCOS-II。在网上有些免费的基于AVR的简洁的操作系统。

提高C语言的编程能力和软件应用水平:

熟悉和用好C中的数据结构体、指针应用、内存管理等较高级的应用。

熟悉和了解你所使用的高级语言开发平台的特点。这些平台是针对某一类处理器的,包含许多特殊的不兼容的语句和扩展的结构、语句、函数等。尽管使用方便,但由于其不透明性和时间的不确定性,因此要合理使用。如C中的getchar()、putchar()等。

AVR有多个开发平台,每个都有其特点和不足。能够综合使用这些平台,相互互补,能够提高开发效率。如通过ICC、CVAVR的程序生成器CodeWizard学习和了解AVR的硬件设置,简化计算,快速的生成程序基本模块,如“一个URAT(RS232)低层驱动+中间层软件示例”。

单片机 架构 程序 经验总结_avr单片机工作经验总结相关推荐

  1. 帮公司面试了一个30岁培训班出来的程序员,没啥工作经验...

    首先,我说一句:培训出来的,优秀学员大有人在,我不希望因为带着培训的标签而无法达到用人单位和候选人的双向匹配,是非常遗憾的事情. 最近,在网上看到这样一个留言,引发了程序员这个圈子不少的轰动. &qu ...

  2. 程序员伪造一年工作经验_试火—如何伪造程序员

    程序员伪造一年工作经验 2017年9月6日 (6 September 2017) Sweat is running down my face. I'm staring down a blank sub ...

  3. 单片机 架构 程序 经验总结_单片机“死机”了怎么办?看看一个资深工程师的经验总结...

    原标题:单片机"死机"了怎么办?看看一个资深工程师的经验总结 单片机(Microcontroller,MCU) 又称为微控制器或嵌入式控制器,体积虽小,但使用方便,应用范围广泛,在 ...

  4. 单片机 架构 程序 经验总结_收藏!牛人总结的单片机应用程序架构

    工作中经过摸索实验,总结出单片机大致应用程序的架构有三种: 1. 简单的前后台顺序执行程序,这类写法是大多数人使用的方法,不需用思考程序的具体架构,直接通过执行顺序编写应用程序即可. 2. 时间片轮询 ...

  5. 「女程序员」JAVA面试经验(3年左右工作经验)

    前言 致那些迷茫的JAVA面试者(特别是南京的1-4年经验),致那些奋发的年轻人,致自己.写这篇博文主要也是对我的成长道路的记录,面试受挫后的反思,及对自己的勉励. 本人介绍:3年多经验的程序员,坐标 ...

  6. 计算机三年工作经验和研究生,三年工作经验和读三年研究生到底哪个更值?这个回答很权威...

    三年工作经验和读三年研究生到底哪个更值?这个回答很权威. 又到了毕业季,很多大学生朋友总会问我一件事情,那就是读研和工作,到底哪个会让自己更有竞争力一些呢? 其实这个问题得分人,分专业来看. 如果是三 ...

  7. 没有工作经验找it_没有工作经验怎么找工作?

    刚从学校毕业的求职者,往往面试一听到问工作经验,就霜打的茄子,蔫了.不乏愤愤不平喊冤的,"都要有经验的,不给我们工作机会怎么能有经验"?回答有的牵强附会,有的文不对题,更有甚者直言 ...

  8. pic单片机延时程序C语言,PIC单片机C语言延时程序和循环子程序实现方法

    PIC单片机C语言延时程序和循环子程序实现方法 很多朋友说C中不能精确控制延时时间,不能象汇编那样直观. 其实不然,对延时函数深入了解一下就能设计出一个理想的框价出来. 一般的我们都用 for(x=1 ...

  9. c51单片机蜂鸣器程序C语言响,单片机蜂鸣器响生日快乐编程程序

    单片机蜂鸣器响生日快乐编程程序 #include #define   uint   unsigned int #define   uchar  unsigned char sbit      spea ...

最新文章

  1. R筛选dataframe时间范围内的数据
  2. Linux下部署开源版“禅道”项目管理系统
  3. 蚂蚁金服移动端可视化解决方案 F2 3.2 正式发布
  4. 运筹作业题:一个正三角形平面,在三个角的部分减去一部分,然后沿着剪开部分折叠起来,使折叠后的三棱台体积最大
  5. 用java读取word2003和word2007的内容
  6. android中获取应用程序(包)的信息,Android中获取应用程序(包)的信息PackageManager的使用(一).doc...
  7. 样式处理——去除无用样式
  8. 转 Linux查看文件编码格式及文件编码转换
  9. [JavaScript] 防止页面被嵌入Iframe
  10. VMware visio制图形状大全
  11. 计算机组装与维修blos,计算机组装与维护标准教程 设置bios参数.pptx
  12. MODIS数据的简介和下载(一)——MODIS数据简介
  13. 其他计算机找不到共享打印机驱动程序,win10连接共享打印机时“找不到驱动程序”怎么解决_win10连接共享打印机时“找不到驱动程序”处理方法...
  14. USB Repair v8.1.3.1285 – USB 修复工具
  15. 怎么提高文公写作水平?公文写作请示类模板
  16. SolidWorks、inventor、UG...我该学哪个?主流三维机械设计软件对比
  17. 一份Slide两张表格带你快速了解目标检测
  18. 学计算机专业必须马上买笔记本吗,大学生刚刚进入学校,需要购买笔记本电脑吗?听听学姐的建议吧...
  19. 第一章概述-------第一节--1.2互联网概述
  20. MybatisPlusException: Your property named “xxx“ cannot find the corresponding database column name!

热门文章

  1. Chemdraw 打开分子后在手性中心边上出现abs标签,怎么去除?
  2. I-CUBE-LRWAN代码阅读笔记:软件组织架构
  3. 压缩解压和tar命令
  4. 天源财富:鸿海携手国巨成立国瀚半导体,开发低于2美元的功率与模拟芯片
  5. 从刷支付宝乘地铁谈起,浅议大数据时代的隐私安全
  6. 14.1 Kahn算法
  7. 阅读芯片手册及硬件原理图的方法
  8. 2020年中级数据库系统工程师考试笔记14—标准化和知识产权基础知识
  9. 高级Java工程师要求
  10. Java字符串模板格式化汇总8法(附性能对比)