EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
我对单片机的理解0 D) ?! U$ E0 B* I( {
, E" ~( E& K; H; E/ a. M- r单片机,single chip microcomputer,单芯片微型计算机。总体来说,他就是一个芯片。但是他是一个特殊的芯片,因为他不是实现单独的逻辑功能。他是将一个整体的计算机系统集成到这个芯片上。这个计算机系统包括运算器,控制器,存储器,输入设备和输出设备。
4 t. E0 \* c9 ~, N- H其实单片机的学习,和计算机的学习差别不是太大。包括运算器,控制器,存储器,以及输入输出设备的学习。
$ y# C X+ d( K9 v5 O. c运算器4 `' m# d7 z5 q, S+ R P
运算器由运算部件--算术逻辑单元(alu)、累加器、计算器等部件组成。
0 @! t* d3 F, t" e3 `# f* o控制器
% v, ?; L* p2 h F; |, N学习的难点在于涉及到指令方面的操作。控制器由程序计数器,指令寄存器,指令译码器,时序发生器和操作控制器。
: a* }# _6 G; {) x* ?4 C# K, r& M; Q
单片机的开发过程:
$ h' t8 n7 B* K# |, A; Q4 W/ Q
' k8 L+ a5 @! w7 _, I 这里所说的开发过程并不是一般书中所说的从任务分析开始,我们假设已设计并制作好硬件,下面就是编写软件的工作。在编写软件之前,首先要确定一些常数、地址,事实上这些常数、地址在设计阶段已被直接或间接地确定下来了。如当某器件的连线设计好后,2 E7 b8 h: b* P2 F
0 H0 f4 \" ]; _* B1 M4 Q
. q1 ?* `( x- C! M其地址也就被确定了,当器件的功能被确定下来后,其控制字也就被确定了。然后用文本编辑器(如EDIT、CCED等)编写软件,编写好后,用编译器对源程序文件编译,查错,直到没有语法错误,除了极简单的程序外,一般应用仿真机对软件进行调试,直到程序运行正确为止。运行正确后,就可以写片(将程序固化在EPROM中)。在源程序被编译后,生成了扩展名为HEX的目标文件,一般编程器能够识别这种格式的文件,只要将此文件调入即可写片。
; r; j3 Q6 c# h
K$ I' V( D" T. @# D4 `: b7 H& y) C) w8 E) S3 q" L4 ^3 D
' q0 S( C0 N9 X% q) o6 B开发语言的选择0 j: s7 q4 [# s7 |, R& X1 [+ k
0 f% k/ x$ J0 ]7 h. \4 E
q# ^! g3 i, ] 目前,很多人对汇编语言并不认可。可以说,掌握用C语言单片机编程很重要,可以大大提高开发的效率。不过初学者可以不了解单片机的汇编语言,但一定要了解单片机具体性能和特点,不然在单片机领域是比较致命的。如果不考虑单片机硬件资源,在KEIL中用C胡乱编程,结果只能是出了问题无法解决!可以肯定的说,最好的C语言单片机工程师都是从汇编走出来的编程者,因为单片机的C语言虽然是高级语言,但是它不同于台式机个人电脑上的VC++什么的。单片机的硬件资源不是非常强大,不同于我们用VC、VB等高级语言在
( l! z3 L4 u a台式PC上写程序,毕竟台式电脑的硬件非常强大,所以才可以不考虑硬件资源的问题。还有就是在单片机编程中C语言虽然编程方便,便于人们阅读,但是在执行效率上是要比汇编语言低10%到20%,所以用什么语言编写程序是要看具体用在什么场合下。总的来说做单片机编程要灵活使用汇编语言与C语言,让单片机的强大功能以最高是效率展示给用户。
3 {8 d% T& A3 r' `常用的单片机类型
; S8 R5 w: |- x# e- {' g5 _0 A+ b
! C3 [6 e7 M' P; ` a2 i5 u& N/ v; e3 d7 \1 j) O( x
|