历史上的今天
返回首页

历史上的今天

今天是:2025年04月28日(星期一)

正在发生

2021年04月28日 | 51单片机几大误区,向51单片机说再见!

2021-04-28 来源:eefocus

简介:目前32位Crtex-M系列单片机的各种教程已经普及,其学习的难度不断降低。以意法半导体公司的STM32F系列单片机来说,意法半导体在推广产品初期大量赠送了核心板。


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单片机说再见了!


推荐阅读

史海拾趣

B+B SmartWorx公司的发展小趣事

B+B SmartWorx一直致力于产品创新,不断推出符合市场需求的新产品。其中,光纤转换器、3G/4G无线路由器以及Wzzard系列无线感测装置等产品受到了市场的广泛认可。这些产品不仅填补了研华在某些领域的空白,也展示了B+B SmartWorx在物联网和工业网通领域的强大实力。此外,公司还积极开发风扇配件、AC插座等电力元件产品线,进一步丰富了其产品体系。

DEVCON公司的发展小趣事

随着电子行业的快速发展,对材料性能的要求也越来越高。DEVCON公司不断投入研发力量,通过技术创新,成功开发出了一系列具有高性能、高可靠性的新材料。其中,甲基丙烯甲酸甲酯、环氧类、改性硅烷密封胶等产品,因其优异的性能和广泛的应用前景,成为了电子行业的明星产品。这些技术突破不仅提升了DEVCON公司的竞争力,也为整个电子行业的发展做出了重要贡献。

Esterline Technologies Corporation公司的发展小趣事

在1950年代,电子工业正处于蓬勃发展的初期。阿尔·克瑞顿,一位富有创新精神的化学家,在美国马萨诸塞州丹佛斯市的一个实验室里,经过无数次的试验,终于研发出了一种名为Devcon可塑钢修补剂的新型材料。这种材料经济实惠、不易燃,且能够作为焊接的替代品,迅速在电子制造和维修领域引起了广泛关注。这就是DEVCON公司的起点,一个由创新精神和市场需求共同点燃的火花。

Atlanta Micro公司的发展小趣事

近年来,电子行业经历了快速的发展和变革,新技术、新产品层出不穷。面对这一形势,Atlanta Micro积极应对挑战,不断调整战略和业务模式。公司加强了与产业链上下游企业的合作,共同应对市场变化;同时,也加大了对新兴技术的研发投入,力求在新技术领域取得突破。这些努力使得Atlanta Micro在激烈的市场竞争中保持了稳健的发展态势。

以上便是关于Atlanta Micro在电子行业发展的5个故事。这些故事展示了公司从创业初期到逐渐发展壮大的过程,以及面对挑战和变革时所采取的应对策略。虽然这些故事只是公司发展历程中的一部分,但它们足以体现出Atlanta Micro在电子行业中的坚韧和拼搏精神。

Compact公司的发展小趣事

随着全球环保意识的提高,电子行业对环保和可持续发展的要求也越来越高。Compact公司积极响应这一趋势,加大环保投入,采用环保材料和工艺,降低生产过程中的能耗和排放。同时,公司还致力于推动循环经济的发展,通过回收和再利用废旧电子产品,减少资源浪费和环境污染。这一举措不仅提升了公司的社会形象,还为公司的可持续发展奠定了坚实基础。

请注意,以上故事仅为示例,并不代表任何真实存在的企业情况。如果需要关于特定企业(如Compact公司)的准确信息,建议查阅相关公司的官方资料、行业报告或新闻报道。

Anatech Electronics Inc公司的发展小趣事

在快速发展的过程中,Compact公司始终注重品牌建设和文化传承。公司通过不断提升产品质量和服务水平,树立了良好的品牌形象。同时,公司还注重培养员工的归属感和忠诚度,形成了独特的企业文化。这种文化传承不仅为公司的发展提供了强大的精神动力,还使公司在激烈的市场竞争中保持了独特的竞争力。

问答坊 | AI 解惑

【智能车资料共享转帖】 资料下载、交流——角度传感器

本帖最后由 paulhyde 于 2014-9-15 02:52 编辑 专为今年9月全国电子电路设计大赛,为大家能够更充足的备战本次大赛,也为解决有些朋友因找不到资料而痛苦的情况。 所以希望大家 : 都晒晒自己的作品,分享出自己整理 ...…

查看全部问答>

给电池充电的时候同步软件连接不上,看了半天感觉不到电池充电和同步软件有啥关系。

昨天,发现一个BUG。 ——给电池充电的时候同步软件连接不上 我是这么操作的,我本来用着电池后来快没有电了,我就插入充电电源,然后点击那个我的电脑里面的图标,很慢才打开,但是里面已经看不到ARM的文件夹。并且,我想关闭这个对话框也关闭不 ...…

查看全部问答>

wince中断没有激活事件

问题是有关WINCE中断的, 我已经调用InitialInterrupt()成功,sysIntr = 44, OEMInterruptHandler()也成功执行了(即中断成功产生了,也被系统成功捕获了),该函数返回sysIntr = 44,但是却没有触发我定义的事件。 后来,我在OEMInterruptHandler() ...…

查看全部问答>

用过GPRS模块的请进

本人是GPRS模块的新手,希望得到您的指教,有什么好的建议和心得请留言。…

查看全部问答>

我公司招自動化測試工程師

公司名稱: 昆盈電腦制品有限公司(台資企業) 主營:   電腦周邊產品(鼠標,游桿等) 地址:   廣東省東莞市厚街鎮寶屯管理區昆盈廠 招聘職位: 自動化測試工程師 職位描述: 對產品開發測試程式。 要求:   1.熟識VC6.0 Win32 ...…

查看全部问答>

新手求教,怎么在ISE综合之后的RTL里面找到要观察的寄存器

现在需要观察状态机的状态,但是状态机的那个state寄存器不知道被综合到哪里去了,加了synthesis keep,还是找不到。 谢谢各位高手街道…

查看全部问答>

为什么我的quartus仿真只能到49%,就没反应了

代码编译通过,然后用quartus仿真,结果仿真进度只能到达49%,然后就没反应了,它页不会报错,我的代码没问题啊。 各位,在你们的quartus上仿真看看,是怎么回事啊?谢谢 期待你们的回答。…

查看全部问答>

得正负4.5V电源的情况

请教各位大侠,如果做一个用9V电池供电、使用运算放大器的电路,可以得正负4.5V电源?怎么做呢?…

查看全部问答>

2013年国赛赞助公司是那个?

本帖最后由 paulhyde 于 2014-9-15 03:38 编辑 2013年国赛马上就要来了但是到现在还不知道单片机赞助商是那个,这让写程序的有些着急了,大家猜猜2013年电赛的单片机会是用什么?  …

查看全部问答>

网关_串口控制LED

通过串口控制LED1状态串口输入 ON LED1 点亮 串口输入 OFF LED1 熄灭串口输入 其它 报错 1、驱动 串口驱动程序官方已经给出 代码路径:/kernel_smdkv210/drivers/serial/samsung.c2、硬件 SIN210用户IO ...…

查看全部问答>