没有仿真器的情况下如何开发AVR

如题所述

一、尽量使用高级语言开发系统程序 您有没有在写汇编程序时,标错一个标号而浪费您大把时间找错或跳转偏移量过大而不得不改动程序结构的经历。其实您如果使用高级语言开发程序,就不会有这样的痛苦。 在开发程序时,除了建立一个良好的开发文档外,使用语言的选择也很重要。有许多人认为使用汇编写程序比较精简,而用高级语言开发会浪费很多程序空间,其实这是一种误解。对一个有经验的,而且非常熟悉某种单片机的汇编高手而言,他是能写出比高级语言更精简的代码。而对汇编不是很熟的开发者、或突然更换了一种新的单片机,您能保证一定可以写出比高级语言更简练的代码吗? 高级语言的优越性是汇编语言不能比的:
1、程序移植方便
2、程序的坚固性
3、对数学运算的支持
4、条理清晰的结构化编程,程序的可维护性
5、开发周期短
现在的高级语言编译器(如C编译器)已可以产生代码效率很高的机器代码,因此建议大家能用高级语言实现的程序尽可能使用高级语言写,在对速度和时序要求特严的场合可以采用混合编程的方法来解决。
二、更多的使用软件模拟仿真环境 现在许多单片机都提供软件模拟仿真环境,如AVR单片机就可以在ATMEL公司提供的AVR STUDIO开发平台的模拟仿真环境中进行软件的模拟调试。BASCOM-AVR还提供了更加人性化和配合外部图形界面(键盘、标准LCD显示器等)的软件模拟调试环境。 ATMEL的AVR STUDIO是一个开发AVR单片机的集成开发环境,其支持高级语言和汇编语言的源代码级软件模拟调试。在模拟仿真条件下调试算法、程序流程等可以说和硬件仿真机是没有区别的;而调试延时程序、计算一段程序运行所花的时间等方面,可以说比硬件仿真器更方便,因为许多仿真机(如JTAG ICE)是无法提供程序运行时间等调试参数的。 另外,对I/O端口、定时器、UART、中断响应等,在AVR STUDIO中均可实现模拟仿真,用户也可以采用软件的单步运行、设置断点等手段,分析内存和查看AVR中所有的硬件资源的数据以及使用情况。 学会使用和以软件模拟仿真为主、已硬件仿真配合的系统开发调试手段可以大大提高项目的开发效率,缩短开发周期。因为,一旦系统整体设计完成,硬件PCB板的设计和制作同软件系统的开发可同时进行。当硬件系统板完成后,软件总体的架构也已经调试完成,既可进行实际的调试阶段。
三、善用目标板上的硬件资源 在许多系统目标板上均有LED、数码管、RS232等附件和接口,其实利用好这些附件接口,也能实现和完成程序的调试开发。 我们使用仿真器的目的是要观察单片机内部的状态和数据,利用这些附件和FLASH存贮器多次可擦写的特点,完全可以观察到单片机内部的状态。 AVR单片机是支持ISP的FLASH单片机,开发时可以通过下载电缆将其和PC连成一个整体,在程序编译完后立刻下载到目标MCU中运行。在需要观察单片机内部状态时,可以程序的适当位置加入少部分代码,把MCU的内部状态和数据通过LED、数码管等显示出来。在有RS232通信接口的应用中,可以直接将需要观察的MCU内部状态送到PC机,在PC机上用串口调试器等一些超级终端来显示数据。现在大部分的开发环境本身就提供了超级终端,如ICC、CVAVR、BASC0M-AVR等。 由于单片机采用了支持ISP的Flash技术,因此采用高级语言开发系统程序,更多的以软件模拟仿真技术,加上使用串口输出调试数据的开发手段已成为开发单片机和嵌入式系统(如32位ARM的COMMAND调试手段等)的流行和高效的方法。
四、举例在开发AVR的I2C应用例程时,使用串口输出调试数据的方法介绍。
首先初始化UART。可以看出初始化UART只需要很少的几行代码,在完成程序调试后将可以将其删除。如果你的系统程序本身就需要使用串口,那么初始化UART就没有一行多余的代码了。
void uart_init(void){UCSRB=(1
温馨提示:内容为网友见解,仅供参考
无其他回答

没有仿真器的情况下如何开发AVR
一、尽量使用高级语言开发系统程序 您有没有在写汇编程序时,标错一个标号而浪费您大把时间找错或跳转偏移量过大而不得不改动程序结构的经历。其实您如果使用高级语言开发程序,就不会有这样的痛苦。 在开发程序时,除了建立一个良好的开发文档外,使用语言的选择也很重要。有许多人认为使用汇编写程序比...

AVR开发板一定要仿真器吗
仿真是为了观察程序运行的状况,比如你可以观察运行一条程序,或者一个函数之后板子的变化或者寄存器的值的更改,这样有利于发现问题,解决问题 程序设计时BUG 是不可避免的,所以,仿真 是必要的 如果只是简单的IO控制什么的,则没有必要

单片机 本人想学AVR,前辈给指点点路
首先,C语言必须得会的,其次的话最好买块开发板,不买也可以,自己搭,要不就买块最小系统板,再买个AVR的JTAG仿真器,ISP只能下载程序不能仿真,推荐用ATMEGA16性价比高,还支持JTAG仿真,在网上搜视频,学着编!也可以在淘宝上花几块钱买些AVR的视频与资料!买开发板最快,但是成本高,自己搭也是...

请问单片机的开发板和仿真器有什么区别?
所以我建议,有机会的话尽量使用“可以使用仿真器的开发板和仿真板”,对我们的编程思维和调试方法都会有很大的帮助的。负载的系统,没有仿真板和仿真器根本不可能做出来的。

学单片机的话还要买仿真器和编程器吗?
仿真器不必要买,至少我现在学单片机1年多没买过,但是买了必然有它的好处,可是太贵了 至于编程器,AT89S系列、大部分AVR都可以通过ISP下载,并口ISP极为好做,一块74芯片就够了,至于EEPROM的烧写,自己做一个,练一练焊工也是好的吗,我就是自己做的,见我的博客,里面有介绍 http:\/\/blog....

AVR单片机用哪个编译器好
我用ICCAVR编译器,个人认为不错,好像AVR单片机编译器不能和protues一起仿真!

怎么样学好AVR?
一开始,你可以选择icc这个编译软件,他的环境友好,容易上手,你可以买这本书《ATmega8原理及应用手册》清华大学出版社,里面就有介绍ICC的一些使用,最好手上有些工具比如仿真器,学习板,当然你可以自己做,不过你可以去买,节约时间,用www.waveshare.net,里面的东西很适合初学者 ...

AVR单片机仿真器是什么_avr单片机原理及测控工程应用
AVRStudioGCC组成的可以直接仿真;如果是其他的编译器,比如ICC,可以用AVRStudio打开ICC环境下生成的*.aps文件,一样能仿真,要是初学者,可以下一些视频教程看看。--- .aps是工程文件,cof好像是硬件仿真要的,两个月没弄这个了,忘了

怎么学好AVR单片机
一开始,你可以选择icc这个编译软件,他的环境友好,容易上手,你可以买这本书《ATmega8原理及应用手册》清华大学出版社,里面就有介绍ICC的一些使用,最好手上有些工具比如仿真器,学习板,当然你可以自己做,不过你可以去买,节约时间,我用的是这个www.waveshare.net,里面的东西很适合初学者 ...

想学单片机,需要单片机开发板吗?
“hello world”的串口通信例子应该尽早调通,在没有仿真器的情况下,串口就是最好的调试工具,一个高人曾指点我:拿到一个处理器,首先要做的就是打通串口。串口一通就好比一个习武之人打通了全身筋脉,再学其它武功就会易如反掌。定时器是单片机非常重要的资源,其使用方法一定要整清楚。高人说过,没...

相似回答
大家正在搜