找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 40111|回复: 88
打印 上一主题 下一主题
收起左侧

远离51单片机珍惜脑浆

  [复制链接]
跳转到指定楼层
#
ID:65608 发表于 2014-9-1 01:10 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
在遥远的80年代,8051以内部晶体振荡器、定时器,串行口,准双向IO等特色一举战胜了Z80,而后者需要外置PIO、CTC、SIO等40脚的芯片。

8051只用了一片外置地址锁存器解决了外部存储器的访问。

Z80构成需要“单板”,而8051构成只需一片,故“单片机”的美名一直延续了30年之久,真可谓“单片龟”!!!

几十年来大学一直以8051为模版教授“单片机”,估计还会延续数年。

随着时间的推移与技术的进步,8051“单片机”之父的美名早已不复存在,AVR,PIC等众多“单片机”都曾尝试挑战8051的霸主地位,但都无功而返……

“失败”原因很多,菜农认为其中一个环节常常被大家忽略:专用厂家专用指令。

各厂家为了简化汇编指令集,都在指令集中嵌入了IO及访问地址等,故每学习一种MCU就必须熟悉或了解其指令集。而8051由于教育的普及,故提到“汇编语言”就会首先想到8051指令集。

随着ARM介入MCU领域,上述问题彻底改观。

首先ARM不是MCU厂家,故其指令集不可能包含各厂家的外围模块,并且32位或16位指令集中不可能包含32位的立即数(如GPIO和分支地址),故对应操作必须间接寻址即指针操作。

对于反汇编而言,首要问题是解决数据和代码的分离,其次是从指令中得到GPIO信息从而证实硬件管脚的作用。

故专用厂家的MCU厂家的指令代码最容易反汇编,至少理论上可以100%被反汇编。

据解密界业内人士透露,这些MCU都可以被芯片解密!特别是8051。再结合菜农的超级反汇编,几乎从未失手过……

而ARM系列则不同,即使给你机器代码,理论上也无法反汇编!

因为干什么都是指针操作,故反汇编出来也是一堆乱码!

ARM的出现,特别是Cotex-M系列的出现,其价位早已逼近MCU,特别是各厂家众多的外围模块,其性价比远远超越8051,而8051必须扩展其外围模块或用模拟IO软件实现。

故菜农强烈呼吁:远离51珍惜脑浆!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩1
回复

使用道具 举报

88#
ID:712097 发表于 2026-8-12 10:27 | 只看该作者
这不是二选一的单选题,51有51的应用市场,32有32的范围,各有优缺点。适合自己的就是最好的。
回复

使用道具 举报

87#
ID:247571 发表于 2026-7-29 02:48 来自触屏版 | 只看该作者
尺有所短,寸有所长。看问题要多方面看,不要只强调功能强大,要看实际情况。存在即道理,不需要太多理由。
回复

使用道具 举报

86#
ID:1075398 发表于 2026-7-15 09:49 | 只看该作者
51也在进化,别的不知道,就消费电子来说,很多很多产品的功能都比较简单,8位的芯片足够用了,当然,钱多非要用贵的也是你的自由。
回复

使用道具 举报

85#
ID:1146155 发表于 2026-7-14 22:17 来自触屏版 | 只看该作者
stc那么出名 在很多产品看不到stc
回复

使用道具 举报

84#
ID:1157301 发表于 2025-8-1 13:48 | 只看该作者
成本问题,有些很低端的产品还是会用51来做
回复

使用道具 举报

83#
ID:1156607 发表于 2025-7-19 08:21 | 只看该作者
低端的应用大部分用51,便宜是王道,防抄有各种办法,51的岗位多,便工资不高。
回复

使用道具 举报

82#
ID:469589 发表于 2025-6-16 08:55 | 只看该作者
admin 发表于 2014-9-2 14:30
我觉得8051就像是和 80386一样 ,会长期占据  ...

反对!
我是个电子爱好者,多次想系统学点51单片机,由于工作原因,一直没如愿,之前封闭3个月中,我花了一周时间,就入门了STM32,3个月里,从点灯到ADC,从通讯到DMA,基本贯通。
首先声明,我是外行,开始连C是什么平台都不知道,现在也不知道,但大小项目已经做了很多,都是独立完成的,当然,电子爱好者一般硬件功底都不差,这也许是入门简单的一个前提。
回复

使用道具 举报

81#
ID:119977 发表于 2025-6-13 08:14 | 只看该作者
存在即合理   各有优劣   
回复

使用道具 举报

80#
ID:1110477 发表于 2025-4-18 04:50 | 只看该作者
夏国特 发表于 2019-4-17 11:07
教学是要循序渐进的。对于学习过计算机组成原理的童鞋来说,学习ARM如同看小说。可是对于很多一般学习的教 ...

麻烦问一下牛皮糖是谁?新唐吗?
回复

使用道具 举报

79#
ID:1110477 发表于 2025-4-18 04:45 | 只看该作者
admin 发表于 2014-9-2 14:30
我觉得8051就像是和 80386一样 ,会长期占据中国的教科书的,因为他简单,如果新生一开始就接触 arm的 m0  ...

大学里都不应该教80386,多难呀,我学的是8086/8088微机原理和汇编语言,相对简单易懂,反正都不会拆机学电路
回复

使用道具 举报

78#
ID:23640 发表于 2024-6-28 08:51 | 只看该作者
如果有一天楼主能破ARM程序了,是不是又叫人远离ARM了
回复

使用道具 举报

77#
ID:1088185 发表于 2024-4-21 22:09 | 只看该作者
作为一合格的码农业, 高档低档的MCU你都应该有能力驾驭, 用32位的就比用51的高级是个非常非常错误的想法。
比如, 简单的翻转IO
回复

使用道具 举报

76#
ID:599366 发表于 2024-2-8 10:18 | 只看该作者
王师13631676419 发表于 2019-12-25 16:55
但如果把M0或者M3搞懂。8051就很好理解吧

并不会
回复

使用道具 举报

75#
ID:137736 发表于 2024-2-5 18:21 | 只看该作者
popuple 发表于 2018-6-27 09:31
在没有51的情况下如何入门?希望有大神发个话。

如果会C语言,直接转arm也行。不会,从8051入门更简单,也能深入领会。当然,快速入门可选Arduino,学不深入。
回复

使用道具 举报

74#
ID:71233 发表于 2023-9-29 07:52 | 只看该作者
听说ARM也可以读出里面的ROM代码,虽然很难反编译。
回复

使用道具 举报

73#
ID:467496 发表于 2023-8-23 17:25 | 只看该作者
业余的玩家简单的需求或者需要直接访问硬件的需求使用51单片机,再复杂一点的直接用PC上面的编程软件应用,比STM强大的不是一点点。基本不需要搞STM
回复

使用道具 举报

72#
ID:224580 发表于 2023-8-23 14:12 | 只看该作者
还是先有51单片机功底才学习M0,进步快很多。
回复

使用道具 举报

71#
ID:165291 发表于 2023-7-28 10:51 | 只看该作者
各有优点,51成本低,简单项目推荐
回复

使用道具 举报

70#
ID:479880 发表于 2023-6-30 17:20 | 只看该作者
51单片机入门很不错,简单应用也尚可;不过,51的栈空间少得可怜,复杂一点的项目,需要定义很多的函数,栈空间不够,很痛苦。所以,项目中尽量使用cortex-m3这类栈空间大的单片机。
回复

使用道具 举报

69#
ID:119977 发表于 2023-6-13 17:28 | 只看该作者
存在就是有道理的 , 没有意义的东西历史会抛弃
回复

使用道具 举报

68#
ID:747496 发表于 2023-6-10 15:20 | 只看该作者
入门可以,帮助小白认识单片机确实很好,但是不要太纠结于汇编指令,了解一下就可以了,如果太关注于底层的汇编指令,很有可能走火入魔,做大一点的项目就麻烦大了。
回复

使用道具 举报

67#
ID:1064915 发表于 2023-4-29 08:50 | 只看该作者
51还没有学会
回复

使用道具 举报

66#
ID:605585 发表于 2023-4-25 14:08 | 只看该作者
admin 发表于 2014-9-2 14:30
我觉得8051就像是和 80386一样 ,会长期占据中国的教科书的,因为他简单,如果新生一开始就接触 arm的 m0  ...

赞同,我也这么认为,当年我在大学里学51的时候都感觉挺难的,(当初学的是汇编,如果学c语言编程的话也不会抵触了),如果一开始就学arm会根基不牢,地动山摇;能坚持学下来的应该会是小部分人。
回复

使用道具 举报

65#
ID:396377 发表于 2023-3-10 07:57 | 只看该作者
CWKQL 发表于 2018-5-1 06:01
各显其能,不能以一言蔽之,阿门

你这厮,说的好
回复

使用道具 举报

64#
ID:247571 发表于 2023-2-28 09:22 | 只看该作者
只有楼主思想喜新厌旧,arm有arm的好,51有51的优势。看不透的人,自以为高人一等。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

63#
ID:663162 发表于 2022-11-25 11:28 | 只看该作者
8051不可能消失,我觉得它还会发光发热,因为很多时候并不需要ARM这类高性能芯片,例如简单的逻辑控制,8051的寄存器控制速度其实并不慢,关键是简单,让指令变的简单,越是简单的东西,往往越好用。
回复

使用道具 举报

62#
ID:77589 发表于 2022-11-23 17:34 | 只看该作者
存在即合理,各有各的应用场合!!!!
回复

使用道具 举报

61#
ID:228452 发表于 2022-11-15 07:34 | 只看该作者
In 1981, Intel introduced an 8-bit microcontroller called the 8051

It is only CPU on market valid today after 40.. years

Workhorse of industry , just  excellent  CPU if you know how

to use it , if not 10 GHZ   1000 cores will not solve problems ...
回复

使用道具 举报

60#
ID:875095 发表于 2022-10-30 00:35 | 只看该作者
适合入门的是经典51系列,新的芯片,外设寄存器数量方面看着已经与ARM核的差别不大了,而且有个天生的缺陷,串口,时钟为了兼容经典51,在寄存器组织上是真心有点散。
回复

使用道具 举报

59#
ID:78835 发表于 2022-10-7 08:23 | 只看该作者
感觉越高级的东西,越容易使用,图形化操作,隔离了寄存器,甚至比51单片机还简单。例如STM32Cube
回复

使用道具 举报

58#
ID:824308 发表于 2022-10-7 06:59 | 只看该作者
单片机是拿来用的, 不只是学习机, 学习是为了用它, 简单有简单的用处,  能简单的地方决不复杂化, 有的应用则要更好的MCU, 应用才是学习, 开发的动力. 不要简单的说那个好, 那个不好, 合用就好.
回复

使用道具 举报

57#
ID:328014 发表于 2020-10-16 00:09 | 只看该作者
屎涕粪粥 发表于 2020-10-15 23:27
小白请教一下M0和M3对于软件开发来说有什么区别?我只知道是指令集M3更大,但是指令集不是汇编层面的东西吗 ...

M0的市场定位本来就是用来取代51单片机的,性能较低,资源也少

性能:
Cortex-M0 基于32 位架构,利用一个
通过MULS 指令直接与内核相连的32×32 位硬件乘
法器,恩智浦M0 指令模式可以在单个周期中对两个
32 位字进行乘运算.
最高频率50MHZ-

Cortex-M3处理器的核心是基于哈佛架构的3级流水线内核,
该内核集成了分支预测,单周期乘法,
硬件除法等众多功能强大的特性
最高频率已经达到150MHZ+
回复

使用道具 举报

56#
ID:829334 发表于 2020-10-15 23:27 | 只看该作者
小白请教一下M0和M3对于软件开发来说有什么区别?我只知道是指令集M3更大,但是指令集不是汇编层面的东西吗。在MDK中用C语言开发的时候,是M0和M3有什么本质区别吗?

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

55#
ID:787739 发表于 2020-10-14 12:43 | 只看该作者
8051很容易入门,本来产品就用几个简单的控制破解了一没有意义啊,自己开发都想通还破解干什么。
回复

使用道具 举报

54#
ID:368534 发表于 2020-10-10 10:05 | 只看该作者
而对于ARM的M0或者M3来讲,的确是不错的IP,国内也有不少集成电路的厂家在使用,譬如兆易,华大等等,现在的价格基本跟51可以一拼了,32位的加减乘除全部实现(M0没有除法),但是,最近老美针对中国的贸易战,让人对ARM不免有些担心,华为就是典型的例子,下面就是其他中小公司了,本人之前的项目都是有兆易的GD32,M23的IP,不过下一步已经慢慢转用RISC_V的IP了,像GD32VF103,CH32V103,都是32位的,都是国内的IP,用的放心。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

53#
ID:368534 发表于 2020-10-10 09:54 | 只看该作者
51是基础,对于速度要求不高的项目,完全可以胜任,最遗憾的是其运算只能达到8位,而现实中,起码达到16位的才能算马马虎虎,最好能达到32位的运算,当然也可以用编程的方法实现32位运算,但是太麻烦而且执行时间太长了,幸运的是,能实现32位运算的51单片机也出来了,像中颖的79f1611,还有STC8,等等,甚至有些8位机都内置函数外设了,只要价格合理,8位机也有存在的基础。

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

52#
ID:809311 发表于 2020-8-13 11:46 | 只看该作者
admin 发表于 2014-9-2 14:30
我觉得8051就像是和 80386一样 ,会长期占据中国的教科书的,因为他简单,如果新生一开始就接触 arm的 m0  ...

我也觉得。
回复

使用道具 举报

51#
ID:246133 发表于 2020-8-13 11:10 | 只看该作者
各有各的用处,各有各的舞台,只是舞台大小问题,看在哪个方面更实用而已。51还不至于到淘汰的地步,ARM确实舞台广阔。
回复

使用道具 举报

50#
ID:774631 发表于 2020-6-17 09:11 | 只看该作者
现在的大学课程已经逐渐转变到STM32了
回复

使用道具 举报

49#
ID:718725 发表于 2020-6-5 20:51 | 只看该作者
学校教什么,到了社会也跟着用了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表