找回密码
 立即注册

QQ登录

只需一步,快速开始

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

徐工带你向51单片机说再见--经验贴

  [复制链接]
跳转到指定楼层
楼主
ID:44111 发表于 2014-12-18 12:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在访问论坛时看到好多人在讨论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单片机说再见了!



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

使用道具 举报

沙发
ID:70104 发表于 2014-12-19 15:35 | 只看该作者
说什么啊~~~写这么长,看着就烦
回复

使用道具 举报

板凳
ID:69311 发表于 2014-12-19 18:34 | 只看该作者
不要打击我,我才刚开始~
回复

使用道具 举报

地板
ID:71630 发表于 2015-1-5 09:01 来自手机 | 只看该作者
有一定道理
回复

使用道具 举报

5#
ID:69240 发表于 2015-1-5 11:24 | 只看该作者
有一定的道理,但也还没到让我放弃的地步,有参考价值
回复

使用道具 举报

6#
ID:71607 发表于 2015-1-6 10:43 | 只看该作者
有一定道理
回复

使用道具 举报

7#
ID:11942 发表于 2015-1-7 09:54 | 只看该作者
没道理哦,万丈高楼平地起,没有基础怎么行?
回复

使用道具 举报

8#
ID:73293 发表于 2015-2-5 15:35 来自手机 | 只看该作者
别误导人了,能发挥最大作用才是王道。
回复

使用道具 举报

9#
ID:74651 发表于 2015-3-15 10:15 | 只看该作者
对于不会C的我来说只能玩51了
回复

使用道具 举报

10#
ID:73949 发表于 2015-3-15 12:19 | 只看该作者
不管哪一种单片机只要能发挥它的使用潜能就是最好的。
回复

使用道具 举报

11#
ID:70769 发表于 2015-3-21 22:48 | 只看该作者
VERY  GOOD!!!
回复

使用道具 举报

12#
ID:73463 发表于 2015-3-23 08:02 | 只看该作者
芯片更新的越高级,对于我们的要求会变低,我们更不容易了解底层驱动硬件。
回复

使用道具 举报

13#
ID:73463 发表于 2015-3-23 08:05 | 只看该作者
我们就是做点小电路玩玩,肯定没你搞开发的专业。你说的也不一定是真的,也不一定能代表市场的选择
回复

使用道具 举报

14#
ID:73463 发表于 2015-3-23 08:08 | 只看该作者
你要是真有诚意,也可以晒晒你产品,弄个32位Crtex-M系列单片机最小系统做个产品、弄个教程让大家都开开眼
回复

使用道具 举报

15#
ID:75077 发表于 2015-3-23 09:57 | 只看该作者
其实,我想说学习一种东西还是要掌握其主要思想。51也罢,stm也罢,当你扎实学习一个东西之后,在学习与其类似的东西,就会大大简化。各种东西莫不如此。这就要求你在学习期间,头脑中要有其基本框架。
回复

使用道具 举报

16#
ID:75077 发表于 2015-3-23 09:59 | 只看该作者
zlgmo 发表于 2014-12-19 18:34
不要打击我,我才刚开始~


其实,我想说学习一种东西还是要掌握其主要思想。51也罢,stm也罢,当你扎实学习一个东西之后,在学习与其类似的东西,就会大大简化。各种东西莫不如此。这就要求你在学习期间,头脑中要有其基本框架。当你认真学习之后,你可以骄傲的说,这种东西不过两类,51和其他。。。但愿你学习顺利。。。
回复

使用道具 举报

17#
ID:44111 发表于 2015-6-8 14:45 | 只看该作者
技术学习就是需要一个过程的,
回复

使用道具 举报

18#
ID:46830 发表于 2015-6-29 11:42 | 只看该作者
各有所长,你不能说有大学生了,农民就要失业。这是成本核算的问题
回复

使用道具 举报

19#
ID:61876 发表于 2015-6-29 13:37 | 只看该作者
有点做广告的嫌疑。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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