最近在拜访论坛时看到很多人在评论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单片机说再见了!