我有幸接触了几款单片机,并用它们做了一些项目。现在想做个小总结,谈一下自己用各种单片机的感受。仅是个人意见,仁者见仁智者见智。
传统51,我想我就不多说了,适合菜鸟入门,容易上手,价格一般(从性价比方面说)。
缺点:解密容易(传统51说:谁让咱出道早呢,大家都研究我,哎!哭......)一般功能也有,, 但AD、eeprom等功能要靠扩展,增加硬件和软件负担。
IDE环境推荐 keil。编程器自己自制ISP下载线就行,好做,成本5元左右。
PIC:我就是学这款单片机入门的,pic的好处就是各个型号的兼容性强,学好了PIC16f877a,16系列的就OK了,别的型号要用的时候拿出2分钟看看数据手册就行了。12系列 16系列 18系列也是充分的向下兼容。功能全,型号多,适于选型分析,抗干扰能力强(尤其在汽车里PIC的片子是经常用到的,这足以证明其抗干扰能力强)
缺点:解密容易(pic说:我出道也很早啊,人家也研究我不少年了,我和奥尼尔是英雄相惜啊!),PIC16系列单片机价格贵(从性价比方面说;但其PIC18、30系列的性价比还是不错的)。
IDE环境:推荐picc+mplab。编程器可自制JDM原理的编程器,自制难度一般,成本12元左右。
avr mega系列:价格便宜(从性价比方面说),硬件结构适合C语言编程,功能齐全,不容易解密。抗干扰能力强(军工产品里经常见到,可见其抗干扰能力强)。型号之间兼容性一般。应该说是比较满意的片子了。ATMEL公司的产品,用的放心,开发工具都很全也很正规。背靠大树好乘凉啊!其定时器和串口有加强型的,功能更强大。在加上TWI,SPI,EEPROM等,该有的都全了,而且功能也强大。
缺点:功能寄存器多,不适合初学者----通过个人努力此缺点就不是缺点了--各位加油!
IDE:推荐CVAVR+studio 其实icc 、gcc、IAR等也不错,大家自己斟酌。编程器自己自制ISP下载线就行,好做,成本5元左右。
stc 51系列:价格便宜(从性价比方面说),功能多,抗干扰能力强(如根据宏晶所说,那stc的抗干扰能力就是超强,超屌.),eeprom大,出厂时程序引导区就已经加密,并且stc解密的市面价格在1.5w到2.5w之间,可见解密难度大,在一定程度上保护了单片机工程师的利益和产品开发商的利益。生产时就已经考虑到与传统51的兼容问题,兼容做的很好,又增加了许多功能,软复位功能我比较喜欢。
缺点:资料就是宏晶网上的资料,资料少,不适合初学者---我指学习它自己增加的功能。STC12系列宏晶没给出keil驱动。工具支持没有自己的,要用keil的,在深层应用上会出现隐患。
IDE:keil 头文件:宏晶网站上有,或者用at89x52.h,新的寄存器自己定义一下就行或者自己写一个头文件(推荐)。在keil选择单片机选项框中可以选择其它比较接近的片子,也可以下载stc的keil驱动程序,不过里面只有STC89系列的片子。串口编程很方便,只需RS232的电路(无论是对于初学者还是产品开发调试)。
综合评分(凭自己的感觉打的分,没有什么权威性,具体到型号;单片机选型还是要根据项目的参数要求来确定):
AT89S51 : 70
PIC12F675: 65
PIC16F73: 70
PIC16F877A: 85
ATmega8: 95
ATmega16: 90
STC89C51: 80
STC12C2052: 75
STC12C2052AD: 75
最后在说一句,现在芯片都涨价了,尤其是avr(厂家限量供货和商家炒片子两个原因),也不知道什么时候价格才能降下去
先弄清这些“单片机”的基本特点才能比较。51是传统8位单片机,对单片机的发展奠定了基础,如今仍有许多兼容型号,但性能提高很多,AVR是现今的主流8位单片机,据说出货量最多,和许多增强型51单片机性能相当,PIC也是8位单片机,在可靠性、抗干扰方面更胜一筹,MSP430是当今一枝独秀的16位单片机,ARM是当今比较先进的32位单片机架构,有许多厂商生产基于ARM架构的单片机,大有取代8位和16位的趋势。DSP不是单片机,专门进行复杂的数字运算。
李工的经验,有如下几点不同,希望你供你参考。
1.51是8位单片机,而stm32是32位单片机。时钟方面stm32运行频率更高,性能更好。两种单片机性能差别比较大。
2.片上资源不一样。简单讲stm32单片机外设丰富,比如串口,I2c等。stm32单片机片上flash和RAM更大。以后升级功能,改进功能的空间大。如果考虑以后功能升级,建议考虑stm32.
3.成本上应该是51单片机要便宜一些。
4.stm32单片机开发资料和参考程序比较多,有库函数,应用起来方便。51单片机更多直接操作寄存器,开发不方便。
我是北漂李工,一个北漂8年的程序员。
在项目开发过程中,我们经常会遇到需要单片机选型,所以我们常常会根据项目功能需求来选择合适的单片机品牌和型号。常见的51内核单片机和STM32单片机也会是我们主要考虑的型号。
STM32与51单片机的参数差异 STM32与51单片机软件开发难度差异
STM32使用寄存器比51单片机要多很多,其配置比51复杂,而且中断逻辑,时钟配置使能控制等很多概念都是51单片机中所没有的,再加上stm32很多功能如USB,FSMC。等等功能,其功能更加强大,虽然官方提供了开发固件库和相关开发辅助工具,但很多时候,遇到bug调试难度也加大了很多。
stm32固件库很多实用结构体和指针变量,很多在51单片机开发过程不太注重结构体与指针的使用,那么在STM32开发过程中,就难以理解其固件库的运用逻辑。
STM32与51单片机的性价比差异
STM32比51处理速度快,外设功能丰富强大,所以价格普遍比51单片机偏贵,在项目选型过程中,需要根据项目功能需求,选择合适的单片机,如果是51单片机能用,那么考虑项目成本,肯定是不能选择STM32,如果51单片机不能用,即使再便宜,也用不了。
总之, 作为单片机开发工程师,需要能够进行一定的器件选型能力,这个也是必备的专业技能。
搞多了开发,你会发现其实用什么真的不重要,只要你会用就行。单片机好比一个精密机床,你要想加工一件作品,你用任何品牌的机床都可以,关键点是这个机床你会不会用,了解通透程度如何。不同品牌机床操作方法肯定大同小异,不会差别很多,你会用一种,另外一种不用看手册,也能猜出个七八分。机床这样,编程也是这样,给你个51,你应该能控制全世界。
首先如果同一个项目可以用51和STM32同时开发,就不建议使用STM32了,51成本更低。
STM32和51单片机不同点有很多:
1.开发方式不同
51单片机一般是直接操作寄存器,STM32主要操作库函数编程
2.系统资源不同
一般而言STM32资源要比51单片机更多
3.开发环境可能不同
51和STM32一般来讲都可以在Keil下开发,但STM32有更多中选择,可以在Linux下面开发,windows Esplise下开发,甚至直接用VSCode + 插件方式开发。
4.操作系统区别
一般而言,51单片机不支持操作系统,STM32支持各种主流操作系统,STM32开发起来更容易,可以很方便的利用系统实现各种场景下的应用,51单片机由于没有操作系统,开发起来有一定阻碍,甚至有时候必须要做出部分功能的牺牲才能达到整体功能的和谐运行。
5.后期维护方式可能不同
STM32资源足够多,可以写一个bootloader程序来完成之后的系统升级工作,不需要拆机就可以完成固件的升级,而51单片机则不可以。
STM32系列单片机分为CORTEX M0,M1,M4内核,个人觉得STM32F0系列的从性价比,功能上可以完全替代51单片机,而且性能更好。当然也可以使用51,价格更便宜一些,,但是要做功能复杂一些的产品,51系列的单片机是不能满足的,比如驱动RGB 屏,至少要用STM32F429,支持LTDC接口,而且需要外扩内存,支持FMC接口,比如要做数字音频,要支持I2S ,比如要做USB传输,要支持USB ,要移植操作系统,文件系统等等,要看CPU 的资源等等,总之,要根据所做的项目看CPU的资源是否满足要求是非常重要的,这要再设计前期靠考虑周到,否则,项目做到一半发现资源不够,需要重来是很郁闷的事情。
做产品要考虑成本,几毛钱就能搞定的,没必要几块甚至几十块。一般来讲,价格越贵的,资源越多,使用起来越简单,随心所欲。简而言之,价格越低,资源越少的单片机,完成项目的难度越大,需要优化代码和算法。
在stm32之前是8051的天下,silabs的c8051f外设相当的强大。硬件不错,可惜代码不够多。atmel的代码比较多,可惜芯片不够强大。
stm32一出,横扫天下,要硬件有硬件,要软件有软件,价格便宜量又足,连低端产品都用他。
电动自行车控制器都用它,无刷电机都用它。
stm32是史上最广泛使用的单片机。
只要资源够用,都可以,20年前我用8051,现在用stm32。stm32方便些,可以在线调试。我现在开发东西复杂一点的,用stm32 1系列和4系列。简单一点的用stm8s一块多钱的样子。
我觉得你的问题对比对象不太对,一般能用51的项目用stm8或者avr即可。一般来说stm32比51强太多了,无论是性能和价格都没有可比性。
所以在我看来开发上没有什么太大不同,无非就是开发环境不一样,如果代码规范的话很容易进行互相移植(最近芯片涨价严重,我们公司正在换国产),而所谓的外设(uart iic spi等等)其实没有太大区别。
但是在生产上差别就出来了,主要在于交货能力,一般而言同为一级代理采购物料,st的交货能力要比stc的强(当然最近行情st也不行了,交期干到了9月份)。所以如果你的产品是主力长期货,建议选择交货能力强的。
我就记得51单片机放不了几个变量就超出了。复杂点的程序都很难写。
最常见的几款单片机性能对比的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:最常见的几款单片机性能对比