|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 yxlk 于 2019-1-23 10:43 编辑 7 M# n7 W' h) j0 T. K
4 E! W8 |; R' ~1 |! _- I+ ^ R% [
51单片机四大误区怎么破?8 a3 l% f2 _5 _; X
51指MCS-51系列单片机,CICS指令集。由Intel公司开发,其结构增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源,内有128个RAM单元及4K的rom。其代表型号是ATMEL公司的A系列,它广泛应用于工业之中。目前国内的51单片机市场主要为国产的产品STC系列其号称,稳定与廉价的。
9 l! r) O* K4 B7 a* j; o' Q" k4 y) C5 O! K0 b% p
学习51单片机的误区
! g- @6 ` Y/ [5 w y4 c
0 J( ]6 z5 W2 V4 @' ?/ S% y误区1:51单片机是学习的基础
& t' D& H& H& w: ?. P6 R6 r! U& l$ y7 P, i9 F) @1 z5 q1 k
“51单片机是学习的基础”这句话本身并没有错。在我读本科的时候,当时它无疑是学习的基础——毕竟那时没有更高级的单片机可以供使用,国内更没有更高级的教材供参考,老师的水平也是参差不齐,而51单片机正符合这样的需求,不仅有大量的成型的教材,示例,当时工作的实际项目也是51单片机为主,于是51单片机理所当然的成为当时的学习基础。要知道笔者读本科的时候是2004年,即10年前的东西。按照莫尔,行业每18个月更新换代,10年前的技术现在已经更新了6代了——事实也确实如此。) E+ Z! P! ?, r3 @. p8 t+ Z: E
6 J+ C) G8 W" R; S' H( s
目前32位Crtex-M系列单片机的各种教程已经普及,其学习的难度不断降低。以公司的F系列单片机来说,意法在推广产品初期大量赠送了核心板。免费赠送的核心板不仅有流行的32位Cortex-M系列微,更在板上集成在线调试器。随机附赠的光盘或者链接更是提供了大量的示例源代码。我们只需要安装开发环境即可直接编译与下载调试。这时,如果再说51单片机是学习的基础肯定是不合时宜了。
3 ~ o( }! Q! Z: M* r8 x0 T* W6 }9 ^
误区2:51单片机可以学习的操作
% ?, h: v9 S) h% o. k C8 f# P
! A7 u2 E; L( g/ Y$ v: J) v* Z1 j51单片机可以学习寄存器的操作,这一点儿是不容置疑的。我们分析一下其更深层的原因。在MSC-51单片机的编程环境中,最初是以汇编语言为主要编程语言。要知道汇编语言就是直接操作寄存器的,汇编语言是无法做到C语言的函数调用与的。如果说51单片机是以操作寄存器为优点,我觉得更应该说51单片机操作寄存器是一种无奈,是只有一个选项的选择题。% v( Z# ?5 ?) J5 S% @. B/ H
) A" Q" E+ q* T
我们现在的Cortex-M系列单片机就无法学习寄存器了吗?显然不是。在中,硬件的操作方式就是寄存器的操作,但是其实现却是可以不同。各微处理器提供的C语言库函数包其实质就是将操作寄存器的指令进行了C语言环境下的封装。我们这里用ST官方库函数举一个示例:& ^0 X8 a, m3 w0 V& t
void USART_Init (USART1, *USART_InitStruct);//实现1的初始化,简单明了,无需注释8 A, N& l6 j8 @, W, S. l3 ^/ V
a4 u8 T" \$ v) U7 R: j/ a/ Z
笔者在这里也想举一个示例来说明寄存器操作的步骤,但是操作寄存器实在是太复杂了,笔者不想去浪费时间去整理了。
2 U0 H9 M1 H. h) [9 e( E& W# h1 C) N/ @: G% K% e) j
通俗易懂的C语言,方便移植的C语言与硬件平台相对应的联合,就能完成硬件的操作。有了简单、方便的方式,我们为什么还要考虑繁琐,复杂的汇编语言与寄存器操作呢?' k, X" y7 p) r7 s- R
8 l. n+ k1 n: d- Z: ?, H* S' h% [9 [$ `
|
|