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单片机的好几倍了 , 而且更容易开发与维护 。