51单片机与AVR和PIC单片机之间的比较

发布者:epsilon15最新更新时间:2020-01-06 来源: elecfans关键字:51单片机  AVR  PIC单片机 手机看文章 扫描二维码
随时随地手机看文章

我觉得51比较好。因为51是比较标准的复杂指令单片机,通过学习51可以比较全面掌握单片机和通用CPU知识,达到触类旁通的目的(Z80也不错,可惜有些过时了,开发工具也很落后)。而PIC是一种精简指令系统,虽然机器码好懂,但是局限性较大,就是说会过分偏重理解MicroChip的设计思想。其实全面掌握单片机技术较用精某一种芯片来得划算(不要被某一个公司捆住思想)。


类似PIC的芯片很多,比如AVR、MSP430、Z8等,掌握51的结构和指令系统之后理解这些单片机的原理就很容易。而反过来也许就要各个击破。
 

51单片机与AVR和PIC单片机之间的比较

还有一些理由:

就芯片而言:51单片机有非常低廉的价格和数不胜数的衍生芯片系列,这些产品从低速(1MPS)到高速(30MPS)几乎涵盖整个自控领域。新芯片价格从5元到数百元都有,当然还有大量拆机片供应,很方便自学和自助实验。


就开发工具而言:51有完全免费的C语言编译器和实时任务系统,当然还有随手可得的大量评估版(包括D版)世界顶级开发工具,比如:KEIL / Tasking / HITech / Resonance / Franklin(Resonance前身)。当然在非盈利前提下领略这些大气的开发环境无疑对培养系统化的思维方式和细致入微的洞察能力有较大的帮助。


就调试工具而言:51系列的仿真器是最便宜的,也是种类最多的。


就PIC系列而言:

单一芯片的用途比较有限,受机器自身容量限制较大,即通用性稍差。这也是MicroChip的产品线非常长的原因。当然MicroChip的这一思想对商业运作十分有利,在成本/性能和量产方面与用户的结合点很好。


还有PIC的指令系统有一定的缺陷,常用户最有感觉,使人不得不陷入MicroChip的芯片选型迷宫,经常在小问题上犹豫不决。


在国内:PIC的价格也是阻碍其大量应用的致命原因,供货种类不够充足。


所以我觉得:

先学习通用单片机,就是51系列,然后结合具体应用需求选择学习其他常用单片机。做到灵活思考,灵活选择。比如当需要少量开关量资源时使用89C2051,需要简单A/D资源时选择PIC16F873,需要大量I/O时考虑89C52;需要低速时尽量考虑51系列,需要中速时考虑PIC系列,需要高速时考虑90S AVR系列,需要甚高速时返回来考虑51兼容的SOC系列。而需要低功耗时考虑MSP430系列。


顺便说一句,大家常说的PIC16F74/84完全可以用89C2051替代,因为一般的设计方案中都留有速度余量,且这几种芯片都没有A/D,其基本结构类似。而为了使用PIC就不得不使用纯汇编(编译器难寻),而用51系列就可以从容使用C代码,还有RTOS的支持。


最后建议一下:就速度而言,PIC不是最好的,AVR系列做到了类单周期指令和流水线操作,在同一功耗下AVR比PIC快得多,而价格便宜得多(当然比低档51系列稍贵),AVR是一种值得注意的新机型。


尽管做项目时应尽量使用C,但是为了用好C就必须先学习汇编,学完51系列规整的汇编体系后再领略各个小厂家自己的汇编环境真有游刃有余的感觉。我不得不佩服Intel在CPU技术方面的学识和规划能力,不愧是计算机界的巨人

关键字:51单片机  AVR  PIC单片机 引用地址:51单片机与AVR和PIC单片机之间的比较

上一篇:如何采用PIC单片机的C代码来控制LED闪烁
下一篇:PIC单片机如何从汇编转向PICC

推荐阅读最新更新时间:2024-11-05 16:58

PIC单片机软件开发技巧
笔者的项目是有关机器人控制的实现。控制部分采用PICl6F7X系列单片机,运用汇编语言编程,运行速度较快,能够达到系统的要求。在这里使用的大多是数字信号的控制,电机的控制只有开和合两种状态。在动作的过程中需要两只手臂、身体、头部、脚部等的协调动作。整个控制系统比较复杂,因而在PIC程序编写和空间分配方面需要注意一些问题。 1 动作标志位的使用 在整个控制中,组合的动作很多,当所有动作定位都通过光电开关控制时,在程序编写上就有一些问题。如要求左手上升到鼓掌位、右手上升到举手位(手初始位置在最下的放下位),光电开关0有效(即为0时是挡住),到达正确位置。用简单的理解可以写成下面的程序: list P=16c73
[应用]
初学51单片机指令快速记忆法
学习单片机,除了搞清单片机内部功能、存储空间分配及I/O接口外,还应掌握其指令系统。MCS-51共有111条指令,现介绍我们总结出的快速记忆MCS-51指令的方法,供大家参考。 大家都知道,汇编语言指令由操作码、操作数两部分组成。MCS-51使用汇编语言指令,它共有44个操作码助记符,33种功能,其操作数有#data、direct、Rn、@Ri等。这里先介绍指令助记符及其相关符号的记忆方法。 一、助记符号的记忆方法 1 表格列举法    把44个指令助记符按功能分为五类,每类列表记忆。此处从略,请读者自己总结。 2 英文还原法 单片机的操作码助记符是该指令功能的英文缩写,将缩写还原成英语原文,再对照汉语有助于理解其助记符含义,从而加
[单片机]
8051单片机在线升级软件的实现方法
本文通过对8051单片机的特点分析,提出了一种低成本的方法,使其软件可以利用系统已有的通信链路在线升级。 1 基本原理   类似于其他引导装载升级程序的方法,在系统中必须始终存在一段用于程序装载的代码(bootloader),该代码在启动时被运行。其基本功能是根据外部条件来判断是运行现有版本的程序还是从主机下载新程序。8051具有选择执行片内或者片外程序的功能,而对片内E2PROM编程过程相对比较复杂,因此这里将程序引导装载代码烧结在内部程序空间中,并不准备改变;而将系统应用程序存放在片外一编程相对简单和独立的E2PROM内,是随时可以更新的部分。通过外围电路的支持,单片机上电复位时首先执行片内的装载程序,如图1所示。该装载代码
[单片机]
80<font color='red'>51单片机</font>在线升级软件的实现方法
51单片机实现单键重复的按键检测
/***************************************************************************** Copyright: 2013-07-27.version1.0 File name: key.c Description: 自己做的单键识别实现重复按键功能 Author: Version: version1.0 Date: 2013.7.27 History: 无 *******************************************************/ #include reg51.h sbit key=P0^0; int num=0; /****
[单片机]
基于51单片机的智能小车设计
O 引言 在现有玩具电动车的基础上,加装光电检测器,实现对电动小汽车的速度、位置、运行状况的实时测量,并将测量数据传送至单片机进行处理,然后由单片机根据所检测的各种数据实现对电动车的智能控制。 1 直流调速系统采用PWM调速 直流调速系统采用晶闸管的直流斩波器与整流电路。晶闸管不受相位控制,而是工作在开关状态。当晶闸管被触发导通时,电源电压加到电动机上,当晶闸管关断时,直流电源与电动机断开,电动机经二极管续流,两端电压接近于零。脉冲宽度调制(Pulse Width Modulat-ion),简称PWM。脉冲周期不变。只改变晶闸管的导通时间,即通过改变脉冲宽度来进行直流调速。 脉宽调速也可通过单片机控制继电器的闭合来实
[单片机]
基于<font color='red'>51单片机</font>的智能小车设计
TLV5616 51单片机 驱动 程序
========================================第1页======================================== #include reg51.h // 通用的头文件定义 #include intrins.h #define uchar unsigned char #define uint unsigned int //* 函数声明 void tlv5616_da(uint da); //DA 转换函数 //tlc5615 的信号线 sbit tlv5616_clk=P0^2; //TLC5615
[单片机]
AVR c语言的位操作
位操作 一个共同的任务是编程微控制器 MCU打开或关闭IO 寄存器的一些位bit 很幸运标准C 有较好的和适用的位操作功能而没有借助于汇编指令或其它非标准C 结构C 定义了一些按位进行的运算是很有用的 a | b – 按位或 这个表达式指示中a 被表达式中的b 按位进行或运算这惯用于打开某些位尤其常用|=的形式 例如PORTA |= 0x80; // 打开位7 (最高位) a & b – 按位与 这个运算在检查某些位是否置1 时有用例如 If ((PORTA & 0x81) == 0) // 检查位7 和位0 注意圆括号需要括在&运算符的周围因为它和= = 相比运算优先级较低这是C 程序中很多错误的原因之一 a ^ b – 按位异
[单片机]
51单片机教程:单片机寻址方式与指令系统
通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051单片机的指令部份。 一、概述 1、指令的格式 我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难我们人了,太难记了,于是有另一种格式,助记符格式,如MOV P1,#0FFH,这样就好记了。 这两种格式之间的关系呢,我们不难理解,本质上它们完全等价,只是形式不一样而已。 2、汇编 我们写指令使用
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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