avr单片机用什么编程?avr单片机编程方式是什么

发布者:温馨时光最新更新时间:2019-12-12 来源: elecfans关键字:avr单片机  编程  编程方式 手机看文章 扫描二维码
随时随地手机看文章

  本节将详细介绍AVR单片机的流行编程方式,并略述其工作原理,旨在让AVR爱好者根据自己的需要选择或制作恰当的编程工具。下面我们一起来看看avr单片机编程方式讲解。

  1、avr单片机用什么编程?

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


  对于初学者,建议使用ICC AVR.用ICC编辑了工程文件,然后在下载并在线仿真调试时,要用AVR studio。JTAG仿真器,作为AVR最小系统版和电脑的串口的链接点,能做到在线仿真和下载程序。这是常用的组合。

  2、AVR编程方式介绍

  本节将详细介绍AVR单片机的流行编程方式,并略述其工作原理,分析其优缺点,旨在让AVR爱好者根据自己的需要选择或制作恰当的编程工具。

  2.1 STK200/300并口ISP编程方式

  这是比较常用的编程方式,目前大多台式机都有打印口(并口),如图2-1所示:

avr单片机用什么编程?avr单片机编程方式是什么

  图2.1 PC机的打印口


  一般来说,PC机并口电路由74LS373(数据锁存器)和74LS240(状态缓冲器)组成。对于LPT1来说,数据锁存器74LS373的I/O地址为378H,该端口称为数据端口,而状态缓冲器74LS240的地址为379H,该端口成为状态端口。其中,数据端口可读可写,而状态端口只可读。根据并行接口的特点制作的AVR下载工具硬件电路简单,配合PC端的下载软件即可完成对AVR单片机的编程。


  既然是通过串行方式编程,则需要使用AVR的SPI串行外设接口。有兴趣的朋友可以学习一下通过SPI接口下载编程的时序图(如图2.2所示)。在这里就不赘述了。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.2 SPI下载编程时序图


  了解了下载编程的时序,我们就可以在PC端编写相应的上位机,通过并口模拟这个时序,利用AVR单片机的SPI接口对其进行编程,当下比较流行的上位机软件是双龙公司http://www.sl.com.cn),目前的版本为1.7.0.16,除了支持利用并口进行ISP编程(AVRISP)外,还支持USBISP,JTAGMKII等方式。如图2.3所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.3 双龙ISP编程软件


  从其界面可以看出,SLISP实现了完整的下载功能:配置熔丝位,烧录Flash,烧录EEPROM等。在配置熔丝位的时候要尤其注意与AVR时钟相关的熔丝设置,避免因选择了错误的时钟源而锁死MCU。


  有了现成的上位机软件,那么这个工具的硬件是如何设计的呢?千万不要想得太复杂,既然上位机已经替我们完成了SPI下载时序的模拟和数据的读写,我们只要搭好并口和AVR 硬件SPI接口之间的“桥梁”就可以了。


  目前常见的并口下载线都有一块74HC244(如图2.4所示),该芯片为八缓冲器,三态输出,由目标机电源供电。该芯片有两个输出使能(OE)引脚(低电平有效),这样,我们可以做到在下载时使能输出,而下载完成后,拉高两个OE引脚,使74HC244各缓冲器处于高阻态,相当于拔除了下载线,从而真正实现了在线编程;除此之外,74HC244还有增大并口驱动能力的作用,如果没有74HC244,若AVR的SPI硬件接口上接有负载元件,很有可能导致下载失败,而有了缓冲器,驱动能力变大,就能成功下载程序。并口的引脚定义如图2.4所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.4 74HC244和并口DB25引脚定义


  并口和AVR SPI接口的连接方式要符合PC端所使用的上位机对硬件连接的定义。双龙SLISP要求的硬件连接方式如图2.5所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.5 并口ISP硬件接口连接
avr单片机用什么编程?avr单片机编程方式是什么

  图2.6 并口ISP编程器硬件原理图


  注意,硬件图中使用并口的PIN4和PIN5作为74HC244的使能信号,以达到编程完成后隔离AVR和下载器的目的。


  STK200/STK300是ATMEL公司早期推出的一种烧写程序的方式,故而支持的AVR型号比较少,烧录速度也比较低,且不支持AVR Studio;此外,随着笔记本的普及和USB技术的发展,PC并口的使用频率越来越低,所以,此类烧录方法将会最终退出历史舞台。不过,由于其硬件电路简单,编程方式实现容易,至今仍有很多AVR爱好者使用该方式。

  2.2 STK500/AVRISP编程方式

  STK500是ATMEL最推荐的编程方式,由于采用了ATMEL官方的STK500固件,该类编程工具可以烧写全系列的AVR,烧写速度相对并口ISP方式来说要快不少,并且,基于STK500烧录方式的编程工具支持AVR Studio。在这里,我们介绍国外AVR发烧友制作的一款基于ATmega8和STK500烧写方式的编程工具。


  在Our AVR论坛上,马潮老师有一篇帖子详细说明了该工具的制作,并提供了全部资料,有兴趣的朋友可以访问AVRISP制作完整资料以获得更多信息。该工具不支持BaseCOM AVR,ICCAVR,CodeVisionAVR直接下载,而并口ISP则可以,这不能不说是一个遗憾。基于STK500的这款编程工具只支持AVR Studio,并且编程下载速度无法自动调节,但是,时下的大多笔记本都没有并口,所以这还是一个比较好的方案。此外,该工具需要在系统中安装上层驱动,有XP和VISTA的驱动。经测试,能够完美支持。注意,大家要安装微软原版的,未经阉割的操作系统,否则可能造成安装了驱动文件,但编程工具无法使用。


  该编程工具的硬件电路图如图2.7所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.7 AVRISP硬件电路原理图


  从硬件电路可以看出,该工具需要的外设较少:电源芯片HT7536一片,Mega8一片,晶振一枚,电阻电容若干,完全可以自制,在AVRISP制作完整资料一文中,马潮老师也给出了固件和上层驱动,把固件烧录入Mega8,安装好上层驱动以后即可使用。制作完成的实物如图2.8所示。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.8 AVRISP实物图


  硬件电路制作完成后,将JP短接,使用其他的编程器(如并口ISP),将10PIN的编程接口插入AVRISP的编程口。编程前注意配置熔丝位:掉电检测电压为2.7V,开启BOD,系统时钟选为高频外部晶体,满幅振荡。如图2.9所示

avr单片机用什么编程?avr单片机编程方式是什么

  图2.9 AVRISP熔丝位设置


  设置好熔丝位,将程序烧录入ATmega8后,将AVRISP的USB口和PC相连,系统会提示发现新硬件,这里以Windows XP SP3为例说明驱动安装方法,如图2.10,图2.11,图2.12所示。注意选择“从列表或指定位置安装”

avr单片机用什么编程?avr单片机编程方式是什么

  图2.10 AVRISP驱动安装步骤一
avr单片机用什么编程?avr单片机编程方式是什么

  图2.11 AVRISP驱动安装步骤二
avr单片机用什么编程?avr单片机编程方式是什么

  图2.12 AVRISP驱动安装步骤三


  安装好驱动好以后,我们可以在设备管理器中看到名为“USBASP-ISP”这个设备,也就是AVRISP编程器,该设备在“端口(COM和LPT)”分支下,上层驱动将编程器虚拟为一个串口,使用时注意将其串口号的范围更改至“COM1~COM9”中的任意一个,如图2.13所示。因为AVR Studio仅支持这9个串口编程设备。注意不要使用USB HUB(USB集线器)连接AVRISP,否则会造成安装好驱动后,编程器却无法使用的后果。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.13 设备管理器中的USBASP-ISP


  双击这个设备,可以在“端口设置”选项卡中的“高级”选项中修改其串口号。安好驱动,设置好串口以后,我们就可以使用AVR Studio来下载程序了。打开AVR Studio,选择STK500编程方式,选择串口号,如图2.14所示(或点击Tools→Program AVR→Auto Connect)。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.14 使用AVR Studio下载程序


  成功连接后,将弹出如图2.15所示的对话框,注意,上文提到,该工具不能自动调节下载速度,因此,我们要手动修改下载速率,注意下载速度不能超过被编程的AVR芯片的时钟速率的1/4,否则AVR Studio会弹出错误对话框提示你降低编程速度。在下拉菜单中修改好下载速度后,注意点击Write按钮保存设置,然后单击Close退出。

avr单片机用什么编程?avr单片机编程方式是什么

  图2.15 AVRISP下载速率的设置


  设置完成后,单击“Program”选项卡,在“Flash”一栏,浏览到需要下载的*.hex文件,单击Program,即可完成编程操作,速度还是比较快的。

关键字:avr单片机  编程  编程方式 引用地址:avr单片机用什么编程?avr单片机编程方式是什么

上一篇:ARM和单片机AVR的区别
下一篇:AVR单片机有什么优点_为什么要选择AVR单片机

推荐阅读最新更新时间:2024-11-11 14:36

编程多路开关系统设计
相对于有线遥控,无线遥控不受距离的影响,完全消除了拖缆式遥控装置所带来的故障隐患,给人们的日常工作和生活带来了更多的便利。随着数字处理技术的快速发展,无线数字通信技术日趋成熟,其抗干扰能力强和易于对数字信号进行各种处理等优点,使得无线遥控系统的抗干扰性能逐步提高,安全性能大大改善。目前的无线遥控领域主要有超声波遥控、红外线遥控及无线电遥控。相对于超声波遥控和红外线遥控, 无线电遥控是利用无线电信号在空气中传播,根据无线电波的频率来遥控,可穿透一定的障碍物,传播距离较远,因此成为无线遥控领域的首选,在国防、军事、科研和日常工作生活领域应用越来越广。 采用Silicon Laboratories 研制的无线发射芯片Si4010
[单片机]
可<font color='red'>编程</font>多路开关系统设计
利用Arduino IDE对ATMEGA8等单片机编程
 为什么希望使用Arduino IDE 对于ATMEGA8进行编程?也许下面三个理由中都可能打动你: Using a cheaper AVR microcontroller Require an AVR microcontroller with more or even less pins than ATmega328 You have all kinds of AVR except ATmega328
[单片机]
利用Arduino IDE对ATMEGA8等单片机<font color='red'>编程</font>
C51编程25-应用篇(单片机与电脑端实现wifi通讯)
本文实现单片机使用ESP-01S wifi模块与电脑端进行数据通讯。 设置wifi模块波特率 由于ESP-01Swifi模块默认波特率是115200,51单片机通常的波特率设置在9600.因此需要设置wifi模块的波特率。设置如下。 连接串口调试助手(可以使用安信可助手,或者其他串口调试助手),通过串口发送数据给wifi模块进行设置。 \波特率为9600 8个数据位 1位停止位,0位校验位,0 关闭流控 AT+UART_DEF=9600,8,1,0,0 注:在使用友善串口助手发送命令时,需要按回车键后,再点击发送否则命令会识别失败 建议使用安信可串口调试,里面自带命令,链接如下。 AiThin
[单片机]
C51<font color='red'>编程</font>25-应用篇(单片机与电脑端实现wifi通讯)
Part10-C语言环境初始化-C与汇编混合编程lesson4
1、为什么要混合编程 汇编语言:执行效率高;编写繁琐; 执行效率高;能够更直接地控制处理器。 c语言:可读性强,移植性好,调试方便。 1、汇编调用c函数 2、c调用汇编函数 汇编语言定义的函数(标号),需要把它定义为全局的。 在start.s中修改 在main.c中修改 3、c内嵌汇编 1、格式 输出部分:在使用汇编语句过程中,可能会把c语言中的变量的值修改了,就把这些变量放在这个部分。 输入部分:是在使用汇编时,从c语言中拿到一些参数来使用。 破坏描述部分:就是修改了某些寄存器的值,然后把对应寄存器放在这里 2、范例 这里的%0表示0号参数,汇编语句的作用是把%0处的参数写入c1寄存器,那么这个%0来自于输入
[单片机]
Part10-C语言环境初始化-C与汇编混合<font color='red'>编程</font>lesson4
AVR单片机教程——矩阵键盘
开发板上有4个按键,我们可以把每一个按键连接到一个单片机引脚上,来实现按键状态的检测。但是常见的键盘有104键,是每一个键分别连接到一个引脚上的吗?我没有考证过,但我们确实有节省引脚的方法。 矩阵键盘 这是一个4*4的矩阵键盘,共有16个按键只需要8个引脚就可以驱动。我们先来看看它的原理。 每个按键有两个引脚,当按键按下时接通。每一行的一个引脚接在一起,分别连接到左边4个端口,称为“行引脚”;每一列的另一个引脚接在一起,分别连接到右边的4个端口,称为“列引脚”。这就是矩阵键盘内部的电路连接方式。 那么如何驱动它呢?首先我们简化一下,只考虑第一排: 这样就很简单了吧,只要让行引脚保持低电平,4个列引脚设置为输入并开启
[单片机]
<font color='red'>AVR单片机</font>教程——矩阵键盘
美国一半码农都没有计算机学位,学编程一定要上大学?
     TNW中文站 4月24日报道 去年,美国的程序员问答网站Stack Overflow曾向用户提问,他们是否有计算机科学专业的学位。在这项“2015年开发者调查”中,26086名程序员中有近一半回答称,他们没有计算机科学学位。 这是否意味着,不需要大学学位就可以成为程序员?简而言之,答案是肯定的。不过,对非专业出身的人士来说,程序员之路要相对困难。 人力资源机构Robert Half Technology高级总监约翰·里德(John Reed)表示,许多知名科技公司用大学学历作为门槛来过滤求职者简历。例如,谷歌(微博)不会面试没有计算机科学学位的入门级工程师。 如果情况如此,那么为何许多程序员没有计算机科学
[手机便携]
基于AVR单片机和温度传感器实现智能温控系统的设计
引言 在工农业生产和日常生活中,温度的测量及控制越来越重要。传统的温度控制系统采用热敏电阻器或热电偶测量温度,但是由于模拟温度传感器输出的是模拟信号,必须经过A/D转换等环节才能获得数字信号,再加上这种温度采集电路有时需要冷端补偿电路,这样增加了电路的复杂性,且电路易受干扰,使采集到的数据准确性不高。随着技术的发展,目前国际上新型温度传感器已从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展。智能化温度传感器DS18B20将温度传感器、寄存器、接口电路集成在一个芯片中,能直接输出数字信号。本论文设计了以ATmega16单片机和DS18B20为主构成的智能温控系统,该系统的温度启控点可以根据用户需要而自行设定。 1、 系统
[单片机]
基于<font color='red'>AVR单片机</font>和温度传感器实现智能温控系统的设计
单片机C语言编程基础源码六则
  1.某单片机系统的P2口接一数模转换器DAC0832输出模拟量,现在要求从DAC0832输出连续的三角波,实现的方法是从P2口连续输出按照三角波变化的数值,从0开始逐渐增大,到某一最大值后逐渐减小,直到0,然后再从0逐渐增大,一直这样输出。试编写一函数,使从P2口输出的值产生三角波,并且使三角波的周期和最大值通过入口参数能够改变。   #include #define DAC0832 XBYTE void san(unsigned char max1,unsigned char zhou1)   { unsigned char i,j,max,zhou;max=max1;zhou=zhou1;while(1)   { f
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved