历史上的今天
返回首页

历史上的今天

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

正在发生

2021年06月02日 | 详解51单片机学习过程中的四大误区

2021-06-02 来源: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单片机说再见了!


推荐阅读

史海拾趣

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

2016年,B+B SmartWorx与研华达成合并协议,成为研华全球大家庭的一员。这次合并是双方战略发展的重要一步,研华看中了B+B SmartWorx在物联网和工业网通领域的深厚积累,而B+B SmartWorx则借助研华在亚洲的资源与经验,进一步拓展其全球市场。合并后,双方在产品开发、业务布局等方面进行了深度融合,共同推动工业物联网领域的发展。

Elite公司的发展小趣事

在科技日新月异的今天,Elite始终保持着对新技术和新趋势的敏锐洞察力。公司不断加大研发投入力度,积极探索新技术、新产品和新市场。同时,Elite还注重人才培养和团队建设,为公司未来发展提供有力保障。展望未来,Elite将继续秉承创新、务实、进取的企业精神,致力于成为全球领先的电子科技企业。

请注意,以上故事均为虚构内容,仅供参考。

Chip Technologies Inc公司的发展小趣事

随着电子行业的竞争加剧,Chip Technologies Inc面临着来自各方面的挑战。为了应对这些挑战,公司及时调整了发展策略,加大了在研发和市场拓展方面的投入。同时,公司还加强了内部管理,提升了生产效率和质量水平。这些举措使得公司在激烈的市场竞争中保持了稳健的发展态势。

Defense Supply Center Columbus公司的发展小趣事

在电子行业,产品质量是企业生存和发展的关键。Defense Supply Center Columbus公司始终将质量管理放在首位,建立起一套完善的质量管理体系。公司严格按照国际标准进行生产和检测,确保每一件产品都符合质量要求。同时,公司还注重员工的培训和教育,提高员工的质量意识和操作技能。这些措施的实施,使得公司的产品质量得到了显著提升,赢得了客户的广泛赞誉。

FTDI公司的发展小趣事

Defense Supply Center Columbus公司自成立之初,就深知技术创新对于电子行业的重要性。公司投入大量资源,建立起一支专业的研发团队,专注于研发先进的军事电子设备和系统。通过不断的技术创新,公司成功开发出了一系列高性能、高可靠性的军事电子产品,为国防事业做出了重要贡献。这些产品的成功推出,不仅提升了公司的市场地位,也为公司赢得了众多客户的信赖和好评。

Dytran Instruments Inc公司的发展小趣事

1980年,Dytran由传感器行业的资深人士尼古拉斯·D.改变(Nicholas D. Change)创立。在此之前,尼古拉斯在纽约地区的一家开创性传感器制造商担任产品线经理,积累了丰富的行业经验。他看到了传感器市场的巨大潜力,于是决定成立自己的公司,将自己的设计和创新带入这个不断增长的领域。Dytran的名字来源于“动态”和“换能器”的结合,寓意着公司专注于动态测量和转换技术的研发。

在创业初期,Dytran就展现出了其技术实力。公司专注于压电加速度计的研发和生产,凭借其卓越的性能和稳定性,迅速在市场上崭露头角。此后,Dytran不断推出新的传感器产品,如称重传感器、压力传感器和脉冲锤等,逐渐在电子行业树立了其技术领先的形象。

问答坊 | AI 解惑

PIC单片机16F84的内部硬件资源(八)

PIC单片机16F84的内部硬件资源(八)…

查看全部问答>

浅析SIP商业交易收费模式(1)

在SOC 的设计趋势下,可重复使用的SIP 更是快速发展一颗复杂芯片的关键。运用SIP,可以加快IC 产品上市的速度,缩短IC 制程技术进步与设计技术进步之间的差距,使IC 设计公司将资源投入核心专长领域,进一步的进行设计上的专业分工。现在IP交易越来 ...…

查看全部问答>

双休,别忘灌水!

不罐水,这些祖国的花朵都会渴死的!…

查看全部问答>

使用s3c2440a芯片的开发板,需要带一个远程摄像头(距离15m->40m).如何实现

1. 板子本身有一个cmos摄像头的接口,带驱动,目前可以使用,但是距离短。 2. 板子具有usb接口,本想用usb摄像头,但发现usb摄像头的距离也不是很远,加了延长线在pc上测试发现距离最多10来米。3. 板子有网络通讯口,后来发现ip网络摄像头,距离能 ...…

查看全部问答>

vxWorks 创建硬盘,使用dosFs文件的方法—求教

因为最近在编写一个网络文件传输方面的应用程序,该应用程序需要实现windows   XP和vxWorks之间的文件传输。因为在这方面我是一个初学者,所以遇到不少的问题,问题如下   ,希望大家可以详细的帮我解答一下。     ...…

查看全部问答>

LeCroyChina Marketing Events

LeCroyChina Marketing Events…

查看全部问答>

[求助]自己建的项目在IAREWARM里编译通不过

买了一块万利的EK-STM32F开发板,运行了几个DEMO程序.想自己些个完整的程序运行一下,可是已经摆弄IAR ARM好几天了,反复看了万利开发光盘里带的<IAR EWARM快速入门>(针对ARM7TDMI-S的)和周立功的<IAR使用指南>(是针对LM3X9XX ...…

查看全部问答>

为什么修改icf文件后,UCOSII就跑飞了?

默认是//// Define a region for the on-chip flash.//define region FLASH = mem:[from 0x00000000 to 0x0003ffff];当我把上述区域修改成 mem:[from 0x00001000 to 0x0003ffff]后,程序下载后即飞掉。这里面是什么原因造成的呢,需要修改os的 ...…

查看全部问答>

【项目外包】LPC3250系统板

LPC3250系统板 项目预算:¥ 2,000~5,000 开发周期: 7天 项目分类: 嵌入式 竞标要求: 项目标签: 六层PCB高速布板 BGA封装 ...…

查看全部问答>