详细比较AVR和单片机区别以及编程区别.docx
- 文档编号:2020023
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:21
- 大小:447.97KB
详细比较AVR和单片机区别以及编程区别.docx
《详细比较AVR和单片机区别以及编程区别.docx》由会员分享,可在线阅读,更多相关《详细比较AVR和单片机区别以及编程区别.docx(21页珍藏版)》请在冰豆网上搜索。
详细比较AVR和单片机区别以及编程区别
编程与移植常见问题:
51单片机的程序移植到avr单片机应该怎样移植注意什么问题?
答:
如果是C语言的话,有限关键字会有改变,头文件要重新写,函数的一些写法会有所改变,AVR的编译器很多,每种编译器都有自己的独特写法,要先了解编译器后在做移植,成功率会更高。
另外,先要选择好编译器,C编译器如GCC,ICC,CVAVR,IAR等,看你选哪种编译器,汇编编译器如AVRStudio。
头文件不需要自己写,每种编译器有自带的头文件,你只要#include就可以了。
不过要include对。
51程序(针对keil编译器)和AVR程序(上述的一些编译器,如GCC)最主要的不同:
1,因为51的io口为准双向io,所以对io口的操作不用设置io的方向,而AVR是双向io,每次对io操作,如输出输入都要对io的方向进行设置。
2,关键字不同,code是keilc51的非标准写法,如果AVR要使用常量,可以用const关键字取代。
还有data关键字取消,也就是说什么data,idata,xdata,pdata都不可以使用。
相对来说avr的编译器比较接近标准c。
3,51可以位操作,但是avr基本不使用位操作,因为avr可以位操作的区域比较少,所以sbit,bit什么的只有在51出现,avr不可以使用,除非你自己定义一个结构体。
4,中断的写法,这个每个编译器基本都不一样,呵呵,比如iar会使用#pragma关键字,gcc有固定的函数入口ISR(中断向量)。
avr比51强大很多,比如移植spi的程序,你可以自己写个avr的spi程序来取代,而不用像51一样io模拟。
以上是我暂时能想到的比较大的区别,移植起来首先要注意的地方,如果还有疑问,你可以追问的。
2)单片机AT89S51和AT89C51的区别
89S51相对于89C51增加的新功能包括:
--新增加很多功能,性能有了较大提升,价格却基本不变,甚至比89C51更低!
--ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能。
--工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。
--具有双工UART串行通道。
--内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。
--双数据指示器。
--电源关闭标识。
--全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。
--兼容性方面:
向下完全兼容51全部字系列产品。
比如8051、89C51等等早期MCS-51兼容产品。
也就是说所有教科书、网络教程上的程序(不论教科书上采用的单片机是8051还是89C51还是MCS-51等等),在89S51上一样可以照常运行,这就是所谓的向下兼容。
比较结果:
就如同INTEL的P3向P4升级一样,虽然都可以跑Windows98,不过速度是不同的。
从AT89C51升级到AT89S51,也是同理。
和S51比起来,C51就要逊色多了,实际应用市场方面技术的进步是永远向前的。
AT89S51内含flash支持并口isp(在系统编程),用isp线在线路板上即可编程,不用专门的编程器。
AT89C51只带EEPROM,只能在编程器编程,编程次数寿命不如AT89S51。
主要是程序写放方式不同,AT89C51要放在编程器上写入程序,AT89S51还可以在电路的低电压、高性能CMOS8位微处理器,俗称单片机。
AT89C2051是一种带2K字节。
从编程的角度来讲,这两个是没区别的,编程语言语法等都是一样的。
从烧录的角度来讲,AT89S51支持在线可编程,也就是说可以通过电脑的串口直接烧录(当然,需要电平匹配,要加一块232芯片),而AT89C51需要用专门的烧录器烧录。
单片机之间的比较
AT89S51系列单片机
1简介
1980,英特尔公司开发出一种简易的8031CPU,在当时该CPU性能不比8086差很多,但价格较便宜,因此被很多低端应用选中。
由于市场看好,ATMEL公司购买了8031的内核,把Flash存储器和加强型IO口融入进去开发出了AT89系列单片机。
所有兼容8031指令和内核相似的单片机统称为51单片机,它是目前应用最广泛的8位单片机之一。
因51单片机结构简单,指令易学,应用广泛,因此是初学单片机首选机型。
如果有人想不学51,直接学AVR,那么此人一定会遇到很多难题,困惑和郁闷将伴随着学习过程。
如果学了51再学AVR和其他单片机,人们会发现“所谓单片机都不过如此”。
2性能
根据任务具体需要选择最合适的单片机,使单片机资源充分利用,使系统性价比达到最高,同时兼顾未来扩展需要,不一味追求高性能单片机,这就是选单片机的原则。
AT89S51有4K的Flash程序存储器,128字节的RAM,32条IO口,中断系统具有6个中断源、5个终端矢量、2个中断优先级的中断结构;串行口是一个全双工的串行通信口;AT89S51的电源电压为4.0-5.5V,AT89LS51的电源电压为2.7-4.0V;振荡器频率0-33MHz(AT89S51),0-16MHz(AT89LS51);有ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。
是一个强大易用的功能。
AT89S52程序储存器容量为8KB,还有AT89S55,ROM容量更大。
有很多公司生产了很多扩展型51系列单片机,有的带有AD转换器,有的带有比较器,有的带有PWM,读者可以根据自身需要选择合适的51单片机,但要注意他们的管脚定义和编程方式。
3使用方法
AT89S51适于做单片机学习板、电子时钟、超声波测距仪等不需要采集模拟量和控制大功率外部元件的电路。
S51与过去的C51的区别在于S51支持ISP在线编程,即C51需要几百元的编程器编程,而S51仅需一条25针并口线和非常简单的转换电路即可接在台式电脑打印机接口烧程序,下载烧程序小软件即实现可对S51单片机编程。
对51单片机编程一般选用Keil软件,可采用C语言或者汇编语言,编完程后选择输出HEX文件,然后用烧程序小软件读取HEX文件,再烧写到单片机中。
4实践经验
A刚开始看书时,按照书上的电路图连线然后通电调试,但总不成功,将自己的电路和书上的电路仔细对照发现不了问题。
原因在于很多书上的电路图都是“简化图”,即省略了一些电路,而这些被省略的电路却关乎系统的运行。
比如,当单片机书讲到AD转换电路,给出的电路图多省略了晶振和复位电路,按照AD转换电路图搭出来的系统自然不能运行。
B51单片机P0口输出信号时需要上拉电阻,我经常忘记加电阻,导致电路不好使。
C51单片机31引脚需要接正极,以选择采用内部程序存储器。
如果忘记给这个引脚以正确的电压,你的单片机可能不能执行程序。
4应用举例
欢迎光临理工科学,发帖得花花……
云淡~风轻
龙鱼
一个人的远行
∙发短消息
∙加为好友
云淡~风轻(小七)当前离线
一个人的远行
UID
78075
帖子
1019
精华
0
阅读权限
100
在线时间
111小时
注册时间
2007-10-15
最后登录
2012-1-11
经验值1019
美味虾189
注册日期2007-10-15
最近登陆2012-1-11
状态
2010-9-221:
21
tT
#2
四爱好者制作机器人首选AVR系列单片机
1简介
AVR单片机是1997年由ATMEL公司研发出的增强型内置Flash的RISC(ReducedInstructionSetCPU)精简指令集高速8位单片机。
高可靠性、功能强、高速度、低功耗和低价位一直是衡量单片机性能的重要指标,而AVR单片机是典型高性能单片机。
早期单片机,比如51单片机为了提高可靠性(防止数据误读或跑飞)采用较高的分频系数对时钟分频,使得指令周期长,执行速度慢。
例如51单片机需要12个晶振周期才能组成1个机器周期,而且很多指令需要2个机器周期才能执行。
AVR单片机的推出,彻底打破这种旧设计格局,废除了机器周期,采用精简指令集,取指周期短,又可预取指令,实现流水作业,故可高速执行指令。
AVR单片机在12个晶振周期中能执行12条指令,从这个角度看,如果晶振频率相同,AVR的速度是51的12倍到24倍。
AVR有32个通用寄存器,在进行大量复杂运算时,AVR的32个寄存器可相当于51的32个累加器,克服了51系列单片机只有单一累加器数据处理造成的瓶颈现象,在复杂运算时速度比51快5倍以上。
由此可看出,51与AVR相比是多么慢,AVR是多么快。
AVR系列单片机多内部集成了多路AD转换器、电压比较器、ISP、I2C、JTAG总线电路、UART串口、大功率IO口、看门狗等实用电路,并且很多AVR单片机型号有EEPROM、FLASH、SRAM三种存储器,可以实现实时修改程序存储器中的内容,即AVR单片机可以自己修改自己的程序。
同时AVR一般能工作在宽电压范围(2.7~6.0V),有的居然可以在1.8V电压下工作。
以上这些性能只是AVR众多性能中的一部分,然而已经让51系列单片机望尘莫及了。
如此高性能的单片机价格居然和51单片机差不多,比如ATmega8价格为8元左右,ATmega16在13元左右,这是AVR有极高性价比的真实写照。
2性能
AVR家族人丁兴旺,包括ATinyAVR(微小型)、低功耗类、ATmegaAVR高中低档5类单片机。
它们都基于同一核心技术,但在内部集成的电路多少上有不同。
不论你要做电子手表还是视频处理,都有一款合适的AVR单片机能满足你的需要。
本文只列出ATmega16中档单片机的性能:
16KB的FLASH程序存储器;512B的EEPROM;1KB的SRAM;32个快速寄存器;32个大功率IO口;20个中断;2个外部中断口;有SPI、SUART、I2C总线接口;2个8位定时器;1个16位定时器;3个PWM通道;有实时时钟RTC;8个10位AD通道;电压比较器;看门狗;内置时钟振荡器;JTAG接口;ISP在线编程;电压范围为2.7V-5.5V;外部时钟晶振0-16MHz;有PID和多种贴片封装。
AVR的IO口能输出20mA和吸收40mA的电流,不仅可直接驱动LED,甚至可直接驱动微型直流减速电机。
而且AVR的IO口可编程设置成输入、输出、高阻态状态,是真正的3态IO口。
和51相比使用AVR开发产品你会发现前所未有的方便和自由。
AVR单片机可上操作系统,比如UCOS2、Linux等,自主编程实现操作系统功能也很容易。
根据任务具体需要选择最合适的单片机,使单片机资源充分利用,使系统性价比达到最高,同时兼顾未来扩展需要,不要一味选用高性能单片机,这就是选单片机的原则。
用ARM+操作系统做超声波测距仪——杀鸡用了牛刀。
用AVR中档单片机做机器视觉——有些吃不消。
如果把它们调换一下,一切就恰到好处了。
3使用方法
学AVR单片机的好书是《AVR单片机嵌入式系统原理与应用实践》,封面见下图。
AVR一般采用CVAVR编程软件编程,也可用GUNGCCAVR、AVRStudio软件编程。
可采用汇编或C语言编程。
烧程序前先输出HEX文件,然后用SLISP(双龙ISP)软件加载,再通过ISP编程线或者25针并口连接线烧入AVR单片机,支持在线编程。
由于AVR单片机最小系统很简单,就是电源+晶振(可不用)+LED+ISP接口
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 详细 比较 AVR 单片机 区别 以及 编程