iwqt1983 发表于 2014-11-19 18:48:34

向51单片机说再见 (转)

向51单片机说再见
http://www.21ic.com/app/mcu/201410/604925.htm
最近在访问论坛时看到好多人在讨论51单片机,有人说51单片机应该学习,它是基础;也有人说51单片机是过时的产品,现在产品应用已经不再选用了,也就失去了学习的必要性。从最初的51单片机学起,工作多年后现在基本应用32位MCU做项目,笔者觉得是时候向51单片机说再见了。
51单片机的辉煌过去
51单片机指MCS-51系列单片机,CICS指令集。由Intel公司开发,其结构增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源,内有128个RAM单元及4K的ROM。其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。目前国内的51单片机市场主要为国产宏晶的产品STC系列其号称低功耗,稳定与廉价的特点。
学习51单片机的误区
误区1:51单片机是学习的基础
“51单片机是学习的基础”这句话本身并没有错。在我读本科的时候,当时它无疑是学习的基础——毕竟那时没有更高级的单片机可以供使用,国内更没有更高级的教材供参考,老师的水平也是参差不齐,而51单片机正符合这样的需求,不仅有大量的成型的教材,广泛的示例,当时工作的实际项目也是51单片机为主,于是51单片机理所当然的成为当时的学习基础。要知道笔者读本科的时候是2004年,即10年前的东西。按照莫尔定律,电子行业每18个月更新换代,10年前的技术现在已经更新了6代了——事实也确实如此。
目前32位Crtex-M系列单片机的各种教程已经普及,其学习的难度不断降低。以意法半导体公司的STM32F系列单片机来说,意法半导体在推广产品初期大量赠送了核心板。免费赠送的核心板不仅有流行的32位Cortex-M系列微处理器,更在板上集成在线调试器。随机附赠的光盘或者链接更是提供了大量的示例源代码。我们只需要安装开发环境即可直接编译与下载调试。这时,如果再说51单片机是学习嵌入式的基础肯定是不合时宜了。
误区2:51单片机可以学习寄存器的操作
51单片机可以学习寄存器的操作,这一点儿是不容置疑的。我们分析一下其更深层的原因。在MSC-51单片机的编程环境中,最初是以汇编语言为主要编程语言。要知道汇编语言就是直接操作寄存器的,汇编语言是无法做到C语言的函数调用与封装的。如果说51单片机是以操作寄存器为优点,我觉得更应该说51单片机操作寄存器是一种无奈,是只有一个选项的选择题。
我们现在的Cortex-M系列单片机就无法学习寄存器了吗?显然不是。在硬件设计中,硬件的操作方式就是寄存器的操作,但是其实现却是可以不同。各微处理器提供的C语言库函数包其实质就是将操作寄存器的指令进行了C语言环境下的封装。我们这里用ST官方库函数举一个示例:
void USART_Init (USART1, *USART_InitStruct);//实现串口1的初始化,简单明了,无需注释
笔者在这里也想举一个示例来说明寄存器操作的步骤,但是操作寄存器实在是太复杂了,笔者不想去浪费时间去整理了。
通俗易懂的C语言,方便移植的C语言与硬件平台相对应的编译器联合,就能完成硬件的操作。有了简单、方便的方式,我们为什么还要考虑繁琐,复杂的汇编语言与寄存器操作呢?
误区3:51单片机的成本低
成本都是左右应用的主要因素。项目的立项主要考虑成本,销售的定价主要成本。低成本的方案才会在市场里占有优势。可是,51单片机真就是最低成本了吗?非也。现在按照功能划分,部分Cortex-m0系列的32位单片机的成本也能做3元人民币。其性能已经是51单片机的好几倍了,而且更容易开发与维护。
还有另外一个成本:开发难度成本。51单片机不支持在线调试,有一些问题在编程初期没有发现,只有与硬件连接后才会显现出现来,例如控制操作中经常用到的延时。这时在线调试的巨大优势就体现出来了,它可以极其方便的查看微处理器当时的状态,使得问题的分析变得简单而透明。从而,有效降低开发的难度,缩短开发周期,节约开发资金。
误区4:51单片机入门简单
51单片机入门简单?我对于这个观点持保留意见。想要入门51单片机,我不仅熟悉该款单片机外设,而且还要充分了解寄存器的某位的意义。对于时钟,定时器的配置必须了如指掌。这样无疑会增大我的学习难度与熟悉的周期。如果我们使用32位单片机的库函数模式,我们只需要具备C语言的知识,了解API函数,直接看已经注释过的寄存器意思即可,不需要了解其底层的硬件实现,更不需要了解某个寄存器某个指定位的意义了。这样,减少了我的工作量,从而降低了开发难度。你说是51单片机入门简单,还是32位Cortex内核微处理器简单?
嵌入式系统的学习是非常枯燥而又有挑战性的事情。由于与实际的硬件直接连接,不仅要考虑编写的正确性,而且还要考虑硬件的可靠性。这时,简单、高效的软件编写就变向的降低我们开发难度与风险。51单片机已经是明日黄花,向前看才是发展。是时候向51单片机说再见了!

饭桶 发表于 2014-11-19 18:51:53

21上的扯淡   

flotox 发表于 2014-11-19 18:52:27

想当初自己用51做项目的时候,寄存器滚瓜烂熟,现在用M3出了问题都不知道怎么找了

fhslh 发表于 2014-11-19 18:59:00

照这么下去,码农要来抢电工的饭碗了,电工要有危机感了

gzfslt 发表于 2014-11-19 19:00:49

陈腔滥调了。。。我觉得51会伴随着C语言共同再渡过至少10年的。。。

xl1736 发表于 2014-11-19 19:04:48

51简单,没有基础哪来上层建筑?

Puppey 发表于 2014-11-19 19:31:17

{:smile:} 槽点很多

就在今天 发表于 2014-11-19 19:35:15

{:smile:}是时候说再见了

chengz 发表于 2014-11-19 19:36:01

各有各的市场,

afeionline 发表于 2014-11-19 19:44:40

写这篇文章的哥们应该是没入门就被踢出嵌入式的大门了吧?估计现在正在搞纯PC软件,而且混的也不会咋地。
51必须是基础,因为结构简单,寄存器少,操作指令少,参考资源丰富。
谁说51不支持在线调试?那是什么年代的51单片机了?
直接操作寄存器是出于无奈?其实我现在不直接操作寄存器才是无奈,因为太多了,实在没时间去看,但我也会尽力去看主要的寄存器,只有这样出了问题后知道去看哪些寄存器,应该是什么值。
成本低就更不用说了,一块几到几十块钱的都有。
入门简单前面已经说过了,不懂寄存器还想搞嵌入式?做梦去吧

ding_ding0304 发表于 2014-11-19 19:45:26

公司做产品,51是不用了,在学校应该还能用几年

ilikemcu 发表于 2014-11-19 19:45:36

这种文章一看就是穷酸的电子文人折腾出来的八股月经文,周期性地发一遍。

技术可以引领市场,但是市场绝对不是单纯的技术决定的,有朋友告诉我,他去德国看到还有很多圆形机械拨号盘的电话机在服役呢,照楼主的观点,早该淘汰啊,何况人家比咱大中国可是先进多了。

lxa0 发表于 2014-11-19 19:55:06

afeionline 发表于 2014-11-19 19:44
写这篇文章的哥们应该是没入门就被踢出嵌入式的大门了吧?估计现在正在搞纯PC软件,而且混的也不会咋地。
5 ...

说的很对
不懂简单的寄存器
还想玩什么 arm?????

lyl520719 发表于 2014-11-19 19:56:58

51也会改变的。

lxa0 发表于 2014-11-19 19:57:12

ilikemcu 发表于 2014-11-19 19:45
这种文章一看就是穷酸的电子文人折腾出来的八股月经文,周期性地发一遍。

技术可以引领市场,但是市场绝对 ...

德国看到还有很多圆形机械拨号盘的电话机在服役
这就说明各有各的用途
例如做个简单的单路pwm发生器
1051就够了
何须用arm??????

黑夜之狼 发表于 2014-11-19 19:59:09

难道杀鸡要用牛刀?等下做个流水灯,要用M3来开发,高大上啊

gofygba 发表于 2014-11-19 20:23:31

准备用stm32f030系列了

dswybs 发表于 2014-11-19 20:29:25

不要以一种老眼光看51,现在STC的51不是支持在线仿真的么?STCunio不正在给STC开发库么,说到串口的初始化void Serialbegin(u32 baud,u8 sum,...)可以同时初始化STC15W4KxxS4系列的4个串口,比如:
Serialbegin(2400,4,COM1,COM2,COM3,COM4);
驱动1个串口
Serialbegin(2400,1,COM1);或是Serialbegin(2400,1,COM2);或是COM3、COM4的
4个串口还是共用同一个printf
下面的函数比你说的操作更简单,也没说要操作寄存器
数字IO

pinMode(pin,mode)

digitalWrite(pin,value)

pinInvert(pin)

digitalRead(pin)

模拟IO

analogRead(analogPin)

analogWrite(pin,u8 value,u8 PCA_Clock_xT)

高级IO

tone(pin,u16 frequency)

noTone(pin)

shiftOut(dataPin, clockPin, bitOrder, u8 value)

shiftIn(dataPin, clockPin, bitOrder)

时间函数

delay_ms(u32 ms)

delay_10us(u16 _10us)

delay_us(u8 _us)

位操作

bitRead(value, bit)

bitSet(value, bit)

bitClear(value,bit)

串口
Serialbegin(u32 baud,u8 sum,...)

SPI接口

SPIbegin()

SPIsetBitOrder(u8 bitOrder)

SPIsetClockDivider(u8 rate)

SPIsetDataMode(u8 mode)

SPItransfer(u8 _data)

PID

pidbegin(int a,int b,int c)

pid(int referenceInput,int measuredOutput)

还有其他的就不列出来了

lryxr2507 发表于 2014-11-19 20:30:41

杀鸡用牛刀.

siml142857 发表于 2014-11-19 20:40:53

很多学生都是c语言都没学就学51,可以顺便学c语言,了解微控制器的基本架构,何乐而不为

linread 发表于 2014-11-19 20:50:26

STC不是还吹自己的51卖几亿片

linread 发表于 2014-11-19 20:51:19

有市场就会继续存在

Schvian_ 发表于 2014-11-19 20:51:23

c8051f系列也是51单片机,功能却不弱。。。与其在处理器上纠结,不如多花点精力研究研究数字、模拟、信号处理、系统设计上

baoya1 发表于 2014-11-19 20:51:56

就简单一说,同样是用库函数,当函数调用来调用去,你认为用的简单,但是编译过程可是有入栈出栈,万一时序要求特别高,需要处理时间特别短,你不直接操作寄存器就会产生奇葩的错误还发现不了

wurst 发表于 2014-11-19 20:59:42

但不可否认,51的时代已经过去了。

我爱大秦 发表于 2014-11-19 21:02:35

51是基础,永远不会过时,没有人说一入行就能搞Arm的。

blade_li 发表于 2014-11-19 21:17:38

单片机只是工具,最重要的是算法。中国缺的不是单片机人才,而是精通各类仪器仪表算法的人才。

bobo89 发表于 2014-11-19 21:17:39

51现在还没到淘汰的时候!

blade_li 发表于 2014-11-19 21:19:45

呵呵,武功的最高境界是什么?

zhuxm 发表于 2014-11-19 21:54:04

硬件工程师可以做个小程序员,但是码农永远玩不转硬件!硬件工程师软硬通吃,码农只好傲娇。

homay 发表于 2014-11-19 22:04:36

各有需求,但发展的趋势已很清楚,就象Protel99se与AD9..之争

只为那梦的轮回 发表于 2014-11-19 22:16:36

只能说呵呵了。

turf456 发表于 2014-11-19 22:23:33

不研究到每个寄存器的每个位的功能,睡不踏实。我有强迫症。{:mad:}

lyrics131415 发表于 2014-11-19 22:32:01

51不可能消失的

jeoo8888 发表于 2014-11-19 22:42:59

公说公有理,婆说婆有理,这个问题是说不清的,自从有了小车,现在又飞机有了,飞船也有了,为什么还有人用自行车.想想这个问题就会明白.

gprs_new 发表于 2014-11-19 23:55:12

C语言学不会的飘过{:dizzy:}

专注XXOO三十年 发表于 2014-11-20 00:12:40

反正我是不玩51了,还不如用430入门简单。
寄存器规划的烂烂糟糟的,ram寻址还分好几种,学这东西累不累。

zichongde 发表于 2014-11-20 00:27:16

我觉得用好简单直接的东西,才能练就好本领!

lcmgood 发表于 2014-11-20 00:33:35

51在很多片上系统中还是被广泛应用的

xwkm 发表于 2014-11-20 00:38:25

51的设计就是败笔。变长的指令,共用的数据总线和3套地址总线。为了扩展而不得已的妥协感觉就是在坑害初学者,因为结构不科学啊。简单的东西搞得复杂化。AVR,M0 ,M3在设计上就已经远远甩开51了,而且后者的系统结构更简单,更适合学习!不知道为啥这个年代了还有人死抱着51不放。

xwkm 发表于 2014-11-20 00:41:19

不过51的优点就是指令集不用授权了,代码密度相对比较大。但是对于学生来说51真的是个纠结的微架构,到处充满了妥协和兼容。什么高128字节内存无法直接寻址,MOVC和MOVX慢的感人,算数操作全靠AB。SP只有8位等等,这些过时的设计不仅浪费逻辑门,也降低效率。

xwkm 发表于 2014-11-20 00:46:37

我也说一句我比较难理解楼上还有人说51简单的。几百条指令,完全的CISC结构能被称为简单,也许真的是我too young too simple了。

撒手归路 发表于 2014-11-20 00:49:18

也没那么差吧

xwkm 发表于 2014-11-20 00:53:30

lxa0 发表于 2014-11-19 19:57
德国看到还有很多圆形机械拨号盘的电话机在服役
这就说明各有各的用途
例如做个简单的单路pwm发生器

那直接555呗。要简单单片机都能省了。我想说同样的价格,51和M0 M3的速度没有可比性就罢了。M0 M3的架构清晰很多,而且外设也多,您去市场上找一片10元有64K RAM,128K FLASH带4uart和usbotg的51来?而且51几百条指令和一堆寄存器又多又烂,我就是直接在M0 M3上操作寄存器也不会再回去用51了。51的妥协实在太多了。

zck9 发表于 2014-11-20 03:55:41

但对于某种型号的51 那是一去不复返了, 如eprom型的8751还有人在用呜?

DevLabs 发表于 2014-11-20 07:10:23

论怎样周期性的扯淡.

acc444444 发表于 2014-11-20 07:12:33

发展与继承也不是完全否定

spcm 发表于 2014-11-20 07:26:31

好无聊的调调{:sleepy:}

i7gly 发表于 2014-11-20 07:39:39

写这篇文章的人,站着说话不腰疼。

xiaobendan 发表于 2014-11-20 08:13:27

反正都是C,指令多少,也差不多吧

jiang887786 发表于 2014-11-20 08:28:17

了解一下,顶楼主!

EMC菜鸟 发表于 2014-11-20 08:29:37

不管 51 还是 ARM,能挣到钱的单片机就是好单片机!

李程宏 发表于 2014-11-20 08:30:03

一些简单的东西 还是会用51来做的,毕竟成本摆在那

junjiedz 发表于 2014-11-20 08:33:06

51是基础,仍旧会有大量的人在用,看STC就明白了

linxiaoutziCCCP 发表于 2014-11-20 08:35:29

51单片机在我们的设备中使用量远远大于其他芯片·····感觉这篇文章的作者太在意芯片是什么··

NI_NE 发表于 2014-11-20 08:36:37

blade_li 发表于 2014-11-19 21:17
单片机只是工具,最重要的是算法。中国缺的不是单片机人才,而是精通各类仪器仪表算法的人才。 ...

精通各种算法那数学是不是要很历害?

vipqaz 发表于 2014-11-20 08:50:07

51是基础,永远不会过时。网上给的历程适合你了解和熟悉这个模块的功能,为了你更高效利用这个模块打基础好吧。

johnlj 发表于 2014-11-20 09:05:15

不要轻易和51说再见,你让很多用4位机的人情何以堪

laoshuhunya 发表于 2014-11-20 09:23:20

turf456 发表于 2014-11-19 22:23
不研究到每个寄存器的每个位的功能,睡不踏实。我有强迫症。

是个做硬件的人才。。。

Stargazer-1986 发表于 2014-11-20 09:32:15

没有好不好,只有合不合适.

xihacow 发表于 2014-11-20 09:34:30

不知道发这种月经文有TMD什么意义,爱用就用,不用滚蛋。

xly 发表于 2014-11-20 09:35:46

xwkm 发表于 2014-11-20 00:53
那直接555呗。要简单单片机都能省了。我想说同样的价格,51和M0 M3的速度没有可比性就罢了。M0 M3的架构 ...

如果我只需要2K ROM 128B RAM价格预算只有2块钱,那该用M几啊?

myemcu 发表于 2014-11-20 09:40:56

萝卜青菜。

rgb0 发表于 2014-11-20 09:47:40

人上一百,形形色色,需求也是一样吧

whp1920 发表于 2014-11-20 10:04:07

没学过51,直接学的AVR,没过多久就转ST的库了,那我就没发言权了

356053261 发表于 2014-11-20 10:06:41

现在还有许多小家电行业,需要便宜的单片机,资源要求也不高,还是要用到很多低端的8位单片机的,51做为入门简单,资料丰富,I/O操作简单,还是有用武之地的

scq198501 发表于 2014-11-20 10:40:37

dswybs 发表于 2014-11-19 20:29
不要以一种老眼光看51,现在STC的51不是支持在线仿真的么?STCunio不正在给STC开发库么,说到串口的初始化v ...

涨知识了!!

tairuibao 发表于 2014-11-20 10:42:57

你可以跟51说再见,但是不能把51说的那么不堪;对于没有编程经验和调试经验的人来说,51是最为合适的。你让一个地址都没明白的人,去搞清楚32位的寄存器和含义?扯淡!

markdif 发表于 2014-11-20 10:47:06

johnlj 发表于 2014-11-20 09:05
不要轻易和51说再见,你让很多用4位机的人情何以堪

这位兄弟4位机也在用,汇编语言应不错,淫才呀。。。{:titter:}

奮闘ing 发表于 2014-11-20 11:17:18

这个问题真没必要拿出来说~,这个东西无关你对技术的一片热情!

zsenbao 发表于 2014-11-20 11:33:18

不管 51 还是 ARM,能挣到钱的单片机就是好单片机!

dykwai1 发表于 2014-11-20 11:34:55

没学过51就不可能深刻的理解ARM,也很难用好ARM
何况现在还有好多C8051、AVR、PIC、MSP430在用

dongwang_fl 发表于 2014-11-20 12:27:17

不仅学习51是有好处的,而且学习汇编也是很有必要的。当年学习51时,没有细学,只是了解了个大概,用C编程,很多地方总搞不清楚,后来系统学习了一遍51汇编,再用C,感觉就很清晰,出问题也容易分析。

hz_fujian 发表于 2014-11-20 12:39:30

虽然你有沙发了,但凳子还是不可缺的!

liudingding 发表于 2014-11-20 15:48:39

前几天又看了看51,看了看有没有合适的型号可选

dxzky 发表于 2014-11-20 17:21:43

51感觉还是很难淘汰,这就跟数字器件出来后,有人扬言数字器件会取代模拟器件,不过这么多年过来,模拟器件不还是占有很重要的比重(当然这个比喻不是很恰当)。对于新手来说,51对于底层结构学习和入手还是很友善的。如果只是单纯地使用函数,感觉还是过分强调了软件,弱化了硬件,一旦问题升级,同时牵扯软硬件,感觉毫无招架之力

shamiao 发表于 2014-11-20 17:23:42

消失肯定不会消失

但是51肯定不再是单片机入门的唯一途径了,喷别人“51都没学过”这种陈词滥调才是真正过时的

老谷 发表于 2014-11-20 17:35:50

我觉得M0的推出,8位单片机会慢慢的退出历史,不只是51

blade_li 发表于 2014-11-20 17:42:28

NI_NE 发表于 2014-11-20 08:36
精通各种算法那数学是不是要很历害?

算法分很多种,不止是数学上的,打个比方说吧34401六位半万用表很好用吧,那为什么我们做不出来这个东东?

xwkm 发表于 2014-11-20 17:54:16

本帖最后由 xwkm 于 2014-11-20 18:00 编辑

xly 发表于 2014-11-20 09:35
如果我只需要2K ROM 128B RAM价格预算只有2块钱,那该用M几啊?

M0(新唐)嘛。或者STM8(还是八位)。都有1.X元的芯片。外设还是比同价位的51多的。
随便拎个出来:STM8S003F3 16MHz 8KB Flash 1KB RAM。3个计时器,5个ADC,128B EEPROM 1.2元。你找一个2元能买到的这么强的51出来。就拿STC说也得要4元多吧~?
还有STM8S005K6 32MHz 32KB Flash 2KB RAM。4个计时器 7个10bit ADC 2.4元。你要在通用51中找到这种MCU,至少要花6元吧?

luckroll 发表于 2014-11-20 17:55:07

请嫌弃51的各位同学看看下面不到1元的51芯片是如果的强大(16k otp usb sd等等)

xwkm 发表于 2014-11-20 18:01:03

luckroll 发表于 2014-11-20 17:55
请嫌弃51的各位同学看看下面不到1元的51芯片是如果的强大(16k otp usb sd等等)
...

毕竟这是OTP的。Flash工艺还是会贵不少。。。

zhy72110 发表于 2014-11-20 18:01:44

感觉着就像手机一样,像红米、荣耀3c这种价格很便宜,性能也还行,但是却不能说老人机、儿童手机就要被淘汰,虽然后者的功能前者都有,而且更多、性能更好,但是对于后者的作用人群,可能前者的功能对于后者倒还是一种负担,没后者来得好用。

xwkm 发表于 2014-11-20 18:02:45

zhy72110 发表于 2014-11-20 18:01
感觉着就像手机一样,像红米、荣耀3c这种价格很便宜,性能也还行,但是却不能说老人机、儿童手机就要被淘汰 ...

我个人觉得通用的51【资料好找的】,性价比和通用的别的单片机,比如STM8,M0 M3 M4一类的单片机比较,差距还是很大滴~

liusoldier 发表于 2014-11-20 18:10:15

至少现在51还是有市场的,不同的应用有不同的需求的。他个人判51死刑,但市场现在还需要它

mandylion2008 发表于 2014-11-20 18:10:31

绝对扯淡,如果你能把C8051用得像美国凤凰电调一样,我就服了你了。

sohappyoh 发表于 2014-11-20 18:14:08

gzfslt 发表于 2014-11-19 19:00
陈腔滥调了。。。我觉得51会伴随着C语言共同再渡过至少10年的。。。

06年就看到一本台湾的书说这样的话,可是现在不还是这么说吗,更何况,现在很多的其他的IC内嵌51核

lxa0 发表于 2014-11-20 18:49:38

xwkm 发表于 2014-11-20 00:53
那直接555呗。要简单单片机都能省了。我想说同样的价格,51和M0 M3的速度没有可比性就罢了。M0 M3的架构 ...

没有51
哪有你的m0m3??????????????????????

lxa0 发表于 2014-11-20 18:51:16

xwkm 发表于 2014-11-20 00:38
51的设计就是败笔。变长的指令,共用的数据总线和3套地址总线。为了扩展而不得已的妥协感觉就是在坑害初学 ...

那你设计一个比51好的东西出来
叫大家看看???????????????????????????????????/

lxa0 发表于 2014-11-20 18:56:30

xwkm 发表于 2014-11-20 00:46
我也说一句我比较难理解楼上还有人说51简单的。几百条指令,完全的CISC结构能被称为简单,也许真的是我too...

看把你狂的~~~~~~~~~
80年代我和同事用PC-1500开发8035的时候
你在干吗呢?

dadaohyb 发表于 2014-11-20 20:19:40

围观一下

xwkm 发表于 2014-11-20 23:42:32

lxa0 发表于 2014-11-20 18:49
没有51
哪有你的m0m3??????????????????????

我本来就不是设计IC的。那个IC便宜好用我就用那个IC。而且51的结构和M0 M3差别很大,何来没有51就没有M0 M3之说?指令集上51是CISC,ARM是定长RISC。总线上51是哈佛和冯诺依曼的混合体。而M0 M3基本上就是哈佛。
并且我说过,自己对照选型表你就知道那款IC性价比高。我不说别的。10元你找一片有USB OTG,有2路I2S。能跑到72MHz的51出来(要有资料),我就服你!

xwkm 发表于 2014-11-20 23:57:20

lxa0 发表于 2014-11-20 18:56
看把你狂的~~~~~~~~~
80年代我和同事用PC-1500开发8035的时候
你在干吗呢?

而且我没狂啊。接近400条指令,你能熟练用多少?不要用你的开发资历来压人。RISC就没那么多指令,也不需要记一堆了。当然RISC更适合学习和入门,这点你同意吗?
另外,扩展51硬件上那么多不必要的限制(比如8位堆栈指针,间接寻址,ROM的切换bank,片内XRAM,AB运算,只有一个DPTR)都在严重影响增强性51的效能,这点你同意吗?
我们为什么就要执著在这么不适合学习的老结构上呢?新的处理器出来了,他更简洁,更快速,更便宜。我们有什么理由不用它呢?
就拿库来说事吧,就算不用NXP或者ST提供的库,看应用手册自己写也不费事,精密时序的地方大不了插汇编,也不麻烦。就比如说51的定时器,传统51还没有16位自动重载模式,进中断赋值容易引入误差。(虽然说目前部分增强性51解决了,但是用起来还要动几个另外的寄存器。)STM32就简单多了,最多3个寄存器就完了。
还有上操作系统。51就8位的SP。就算你要用片外的RAM当堆栈都不行,任务一多你就要处理数据换入换出的问题。说是给你2K RAM,其中1.8K XRAM用起来速度和内置的差的很远,这是资源的浪费,你不可否认。
另外就是关于DMA。貌似带DMA的51价格都不便宜,但是5块钱的GD32F103CB就有DMA,你怎么解释51的优越性呢?
但是无论是ARM AVR都没有这种纠结的问题。那么我选择51的理由是啥?
我自己如果要在数字逻辑系统中嵌入处理器核心,我的确会首选51,但是首选51的原因不是因为它性能好,而是因为51指令集专利过了惹不了官司。如果AVR指令集也过了的话,我一定不会再使用51核心。

zhuixiong 发表于 2014-11-21 07:50:31

等同于不要学汇编了,直接学C吧,向汇编说再见?

dianqi2007013 发表于 2014-11-21 08:07:02

持续存在即是相对合理,实在不适合发展的需要的事物就会消失, 现在还存在,说明它还有意义;

xwkm 发表于 2014-11-21 08:31:06

zhuixiong 发表于 2014-11-21 07:50
等同于不要学汇编了,直接学C吧,向汇编说再见?

又不是只有51单片机才能用汇编。而且现在MCU的资源都上来了,通篇写汇编没啥意义。在精确时序或者高效率要求的时候用用就完了,平时还是用C++好。

AAKKS 发表于 2014-11-21 08:34:39

存在就有理由。。。

xly 发表于 2014-11-21 09:19:55

xwkm 发表于 2014-11-20 17:54
M0(新唐)嘛。或者STM8(还是八位)。都有1.X元的芯片。外设还是比同价位的51多的。
随便拎个出来:STM8 ...

管脚少了。{:lol:}
51不会消失的。51的扩展应用太多了,很多芯片也是用51核。

centrineer 发表于 2014-11-21 09:21:07

51芯片目前出货量非常大的,呵呵

second_chan 发表于 2014-11-21 09:22:59

见仁见智啦。。。
页: [1] 2
查看完整版本: 向51单片机说再见 (转)