历史上的今天
返回首页

历史上的今天

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

2021年04月06日 | 浅析51单片机学习过程中的四大误区

2021-04-06 来源:eefocus

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


推荐阅读

史海拾趣

Compact公司的发展小趣事

在电子行业的初期,Compact公司凭借其卓越的技术研发团队,成功开发出了一款具有颠覆性的新型半导体芯片。这款芯片不仅性能卓越,而且成本远低于市场上的同类产品。凭借这一技术创新,Compact公司迅速获得了市场份额,并在行业内建立了良好的声誉。随着技术的不断进步,Compact公司不断推出新产品,巩固了其市场地位。

AAC [American Accurate Components]公司的发展小趣事

AAC公司的创立可以追溯到上世纪90年代初,当时电子音响器件市场正迎来快速发展的机遇。AAC公司敏锐地捕捉到了这一市场趋势,迅速行动,与德国投资者共同成立了中德合资常州威利来电子音响器件有限公司。这一合资举措为AAC带来了先进的生产技术和管理经验,使其生产的讯响器和微型扬声器迅速打开了德国市场的大门。这一成功的合资经验为AAC后续的发展奠定了坚实的基础。

Fanstel公司的发展小趣事

Fanstel公司非常重视企业文化的建设。公司倡导“创新、协作、务实、进取”的企业精神,鼓励员工敢于创新、勇于担当。同时,公司还注重员工的福利待遇和职业发展,为员工创造了一个良好的工作环境和发展空间。这种积极向上的企业文化不仅增强了员工的凝聚力和归属感,也为企业的发展注入了强大的动力。

EWC Controls公司的发展小趣事

EWC Controls公司非常重视人才培养和团队建设。公司建立了一套完善的人才培养体系,通过内部培训、外部引进等方式吸引和培养了一批高素质的人才。同时,公司还注重团队合作和文化建设,鼓励员工之间的交流和合作,营造了积极向上的工作氛围。这种人才培养和团队建设的策略为公司的发展提供了有力的保障。

Eaton公司的发展小趣事

在伊顿的发展历程中,合作伙伴起到了至关重要的作用。伊顿一直秉持开放合作的态度,与全球各地的企业和机构建立了广泛的合作关系。通过与合作伙伴的共同努力,伊顿不仅在技术和产品上取得了突破和创新,还实现了市场份额的快速增长和业务的全球化拓展。例如,伊顿与天合智慧达成的战略合作伙伴关系,就是双方共同推动分布式光伏产业发展的有力证明。这一合作不仅为双方带来了共赢的机会,也为全球能源结构的转型和升级做出了积极贡献。

以上五个故事涵盖了伊顿公司在电子行业中的发展历程、在中国市场的拓展、与绿色能源的结合、在商用车领域的发展以及与合作伙伴的共赢等多个方面。这些故事不仅展示了伊顿公司的实力和成就,也体现了其不断创新和追求卓越的精神。

Andigilog公司的发展小趣事

自1993年进入中国市场以来,伊顿公司凭借其先进的技术和丰富的经验,迅速在电网、石油化工、轨道交通、数据中心、商业楼宇等多个行业建立了市场地位。伊顿在中国的发展过程中,不仅带来了全球领先的产品和解决方案,还积极参与了本地市场的建设和创新。通过一系列的战略合作和收购活动,伊顿在中国市场的业务不断扩展,为中国经济和电气工业的发展做出了重要贡献。

问答坊 | AI 解惑

VHDL实例

VHDL学习实例参考…

查看全部问答>

一本好书——现代通信的理论和实践

它主要讲述通信世界的概貌,所以原名《现代通信全景》。这种书并不好写,很容易类同于基础教材,所以世面上很难见到。作者能挺身而出,勇敢的写出本书,其勇气可嘉。…

查看全部问答>

RF 射频技术基础讲义

行動網路技術 RF 射頻技術 Radio Frequency 陳哲儀老師…

查看全部问答>

QQ2440V3+7'日立LCD显示问题!

刚弄来一块板子,配置内核(选择config_tft1024x768),编译后放上去,板子正常启动,以下是输出信息: Copy linux kernel from 0x00050000 to 0x30008000, size = 0x00200000 ... done zImage magic = 0x016f2818 Setup linux parameters at 0x ...…

查看全部问答>

wince data abort问题求思路

双击目录,然后就出现如下情况了 Data Abort: Thread=83cfe400 Proc=821267c0 \'explorer.exe\' AKY=00000011 PC=03fb8cd8(coredll.dll+0x00048cd8) RA=03e81f04(commctrl.dll+0x00041f04) BVA=0a11ffff FSR=00000003 Prefetch Abort: Thread=83 ...…

查看全部问答>

请教

求教8051与ks0108b接口及C编程…

查看全部问答>

坛子里有这么多人学C2000,说说大家是怎么和C2000开始有缘之旅的?

大家接触C2000的时候,是从数据手册开始,还是前辈们的程序开始? 遥想俺当时是从公司项目开始的,虽然后来项目流产,但是俺从此就和C2000有缘了…

查看全部问答>

免烧砖机液压系统故障排除方法

免烧砖机液压系统故障排除方法 免烧砖机液压系统故障一般分为几种: 1.免烧砖机压力调不上 排除方法:进油管漏油或溢流阀卡死,有干净的柴油清洗就好了。 2.看油量是否达到油标数,并定期更换液压油。 3.免烧砖机油泵噪音大与气候和有的粘稠度 ...…

查看全部问答>

5V充电器开关电源

新款USB充电器带贴片元件套件,小巧精致,最新流行款式,国内外畅销,USB充电器套件,又可称开关电源学习套件,输入AC160-240V,50/60Hz,额定输出:DC 5V 200mA(外壳印字为500mA,如果要长期输出更大电流,请更换Q1为13003)。…

查看全部问答>

C语言编程使用的单片机

本公司推出一款防破解,堵漏洞的单片机,可以很好的保护到您的知识产权, 此单片机兼容51系列,且与51系列内置相似。我们产品的优势: 1.在同样振荡频率下,较之传统的8051芯片它具有运行更快,性能更优越的特 性; 2.这些特性包括内置256字节R ...…

查看全部问答>