没有仿真器的条件下如何开发AVR

发布者:calmrs最新更新时间:2011-11-25 关键字:开发AVR 手机看文章 扫描二维码
随时随地手机看文章

在开发单片机程序时,有许多人依赖于仿真机,一旦离开了仿真机开发程序
时就感觉无从下手。其实对FLASH存贮器单片机,不要仿真机也能方便快速地
开发程序。具体可以从以下几方面入手:
一、编译工具
您有没有在写汇编程序时,标错一个标号而浪费您大把时间找错或跳转偏移
量过大而不得不改动程序结构的经历。其实您如果使用高级语言开发程序,就不
会有这样的痛苦。
在开发程序时,除了建立一个良好的开发文档外,编译工具的选择也很重要。
有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空
间,其实这是一种误解。对一个熟悉某种单片机的汇编高手而言,他能写出比高
级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片
机,您能保证一定可以写出比高级语言更简练的代码吗?
高级语言的优越性是汇编语言不能比的:
1、程序移植方便
2、程序的坚固性
3、对数学运算的支持
4、条理清晰的结构化编程,程序的可维护性。
现在的高级语言编译器(如C编译器)已可以产生代码效率很高的机器代
码,因此建议大家能用高级语言实现的程序尽可能使用高级语言写,在对速度和
时序要求特严的场合可以采用混合编程的方法来解决。
二、善用模拟仿真环境
现在许多单片机都提供模拟仿真环境,如AVR单片机提供AVRSTUDIO模
拟仿真环境。
ATMEL的AVRSTUDIO是一个开发AVR单片机的集成开发环境,其支持
高级语言和汇编语言的源代码级模拟调试。在模拟仿真条件下调试算法、程序流
程等可以说和硬件仿真机是没有区别的;而调试延时程序、计算一段程序运行所
花的时间等方面,可以说比硬件仿真机更方便,因为许多仿真机(如JTAG ICE)
是无法提供程序运行时间等调试参数的。
另外,对I/O端口、定时器、UART、中断等,在AVRSTUDIO中均可实现
模拟仿真,用户也可以分析内存的使用情况。
三、善用目标板上的硬件资源
在许多目标板上均有LED、数码管、RS232等附件,其实利用好这些附件
就能完成程序的开发。
我们使用仿真机的目的是要观察单片机内部的状态,而利用这些附件和
FLASH存贮器多次可擦写的特点,完全可以观察到单片机内部的状态。
AVR单片机是支持ISP的FLASH单片机,开发时可以通过下载电缆将其和
PC连成一个整体,在程序编译完后立刻下载到目标MCU 中运行。这些在需要
观察内部状态时,可以程序的适当位置加入少部分代码,让MCU 的内部状态通
过LED、数码管等显示出来,在有RS232通信的应用中,甚至可以直接将内部
状态送到PC机,在PC机上可以用串口调试器等一些超级终端来显示数据。有
许多高级语言开发环境本身就提供了超级终端。





-------------------------------------------------------------第 2 页


双龙电子
四、举例
在开发ATMEGA8 的I2C应用例程时,我们就使用了这种方法。
首先我们初始化UART,可以看出初始化UART只需要很少的几行代码,在
完成程序后将可以将其删除,如果你的程序本身就需要初始化UART,那就没有
一行多余的代码了。
void uart_init(void)
{
UCSRB=(1< UBRRL=(fosc/16/(baud+1))%256;
UBRRH=(fosc/16/(baud+1))/256;
UCSRC=(1< }
然后我们可以写一个putchar函数,也可以直接使用标准输入输出库中的
putchar函数。
void putchar(unsignedchar c)
{
while (!(UCSRA&(1< UDR=c;
}
接下来只要在需要调试的程序部分调用putchar函数就可以将一些状态送PC
机显示了。如要观察I2C中断程序中TWSR寄存器的值,只要在I2C中断程序
中插入两行代码就可以了。
#pragma interrupt_handler TWI_ISR:iv_TWI
void TWI_ISR(void)
{
unsigned char temp=TestAck();
putchar(temp);
switch (temp)//调试完后,本行改为switch(TestAck()),删除上面两行就可以了。
{
case SR_SLA_ACK:{fill_rece();TWI_STATE=TWI_RD;Twi_ACK();break}
.
.
.
}
}
在PC机的超级终端软件中,设置波特率、数据格式后打开串口就可以观察
TWSR寄存器的状态值了。

关键字:开发AVR 引用地址:没有仿真器的条件下如何开发AVR

上一篇:AVR的SD卡接口程序
下一篇:基于AVR单片机的智能信息记录仪设计

推荐阅读最新更新时间:2024-03-16 12:47

MPLAB® X集成开发环境现已支持AVR®单片机
通常使用Microchip的PIC®单片机(MCU)并利用MPLAB生态系统进行开发工作的设计人员现在可以轻松评估AVR® MCU并将其融入到应用中。今天,随着美国微芯科技公司(Microchip Technology Inc)推出MPLAB® X集成开发环境(IDE)5.05版,目前暂属测试版,可支持大部分AVR MCU。未来的MPLAB版本还将加入更多增强的功能以及对其他AVR MCU的支持。当前和未来的AVR器件将继续受Atmel Studio 7和Atmel START支持。 MPLAB X IDE 5.05版提供跨平台且可扩展的统一开发体验,兼容Windows®、MacOS®和Linux®操作系统,设计人员可以
[嵌入式]
MPLAB® X集成<font color='red'>开发</font>环境现已支持<font color='red'>AVR</font>®单片机
linux 下面avr开发环境的安装
(1)安装开发工具链 yum install avr-* 会安装以下的工具 avr-gcc-4.7.2-1.fc17.i686 avr-libc-1.8.0-2.fc17.noarch avr-binutils-2.23.1-1.fc17.i686 avr-gcc-c++-4.7.2-1.fc17.i686 avr-gdb-7.1-4.fc17.i686 avr-libc-doc-1.8.0-2.fc17.noarch (2)安装(usbkey boot loader) yum install dfu-programmer (3)安装(avrdude) yum install avrdude (4)安装调试工具硬件驱动()
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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