单片机是单片微型计算机的简称。它是在一块芯片上,以CPU为核心,同时集成了常用的计算机外部设备的计算机系统,称之为MCU(Micro Controller Unit)。
单片机是为特定应用场景定制的计算机系统,此特性就决定了,单片机的种类与型号是成千上万的。刚接触单片机开发,可能被这个庞大的吓到了,如何掌握特定的单片机使用方法,并开发出高质量的单片机控制系统,就成了让人头疼的问题。
这里我们可以先从单片机的结构着手分析。
单片机上的核心器件是CPU(Central Processing Unit),在CPU周围是各式各样的总线,总线的一端,连接的是常用的计算机外部设备,比如:I/O设备、USART设备、A/D设备、RAM、Flash ROM、SPI总线控制设备... ...等等。
先不去解释总线的总类与它们的工作原理,也不去解释设备的工作原理,做个比方:CPU好比大脑,设备就好比身体器官,总线好比神经。人在做动作的时候,大脑通过神经传导控制信息给身体器官,器官再把动作过程信息通过神经反馈信号给大脑。如果我们理解了这个动作原理,那么,单片机的工作原理也就不难理解了。
单片机上的设备,提供给外界访问接口叫做寄存器组,寄存器分为三类:控制寄存器、状态寄存器、数据寄存器。控制寄存器,可以用来设定设备的工作方式;状态寄存器,可以用来查询设备的工作状态;数据寄存器,用来完成外界与设备的数据交互。一般情况来讲,CPU通过总线访问某设备的控制寄存器,通过向该寄存器写入控制数据,完成设备控制方式设定。然后,再通过状态寄存器不断查询设备的工作状态,根据工作状态来确定如何与设备进行数据交互,数据交互工作就是通过数据寄存器来完成的。
由此可见,掌握单片机编程,实际上就是掌握如何使用片上设备。如何掌握片上设备的使用方法呢?按照下面的六步操作,就简单多了。
第一、详细了解片上设备的功能与作用;
第二、掌握与该设备相关的概念、技术术语、技术参数等内容;
第三、通过器件手册,了解与该设备相关的寄存器组;
第四、确定设备的使用方法;
第五、绘制设备使用控制流程图;
第六、编写程序;