算起来,已经写了3年单片机了,几乎写烂了。准备了一些意见给初学者,各路大侠高抬贵手。
1. 什么是单片机
单片机的本质,就是芯片内的处理器+芯片内集成的外设,单片机的工作原理,和计算机系统的工作原理是一致的。如今的计算机处理器,和当年冯诺依曼提出的模型,其基本原理是一样的:一个机器按照纸条上标记的步骤,去读写纸条本身。这就需要有存储状态的元件,称为寄存器;需要有判断执行的元件,称为运算器;需要有移动纸带的过程,称为寻址……这些概念在单片机里都是存在的,因此在学习单片机技术之前,有必要先了解计算机的工作原理,以达到事半功倍的效果。
除了处理器之外,计算机要实现其预定功能,还少不了外设。所谓外设,就是帮助计算机处理器与外界交流的设备。对于个人计算机来说,这些外设包括USB、声卡、显卡、磁盘控制器等等;对于单片机也是一样,单片机的外设包括总线、通讯端口、存储器控制器、定时信号发生器等等。由于在一个芯片内集成了诸多外设,大家将其称为单片机。在单片机时代之前,处理器和外设是采用分立的电路元件实现的,通常放在同一块电路板中,称为单板机。单片机的出现极大地减少了实现同样功能所需的电路板面积,提高了设备的集成度,降低了系统的设计复杂度。而利用单片机进行开发,实际上就是要通过设计一定的程序,让单片机操纵其自带外设,向外部输出信号以控制一个系统,最终实现其既定功能,因此单片机又有个学名叫做微控制器(Microcontroller)。
2. 单片机能做什么
欲使用单片机实现一定的功能,可以将单片机的工作过程分成三个步骤,分别是输入、处理、输出。单片机通过其外设,获取外部信号输入;对外部输入信号,作运算、判断等处理;将处理结果,以合适的形式,通过外设输出。除上述三项外,单片机什么也做不了。因此,若要评估一种单片机的性能,也可以先看这三个步骤:该单片机支持以哪些方式输入/输出信号(模拟电压、PWM、PPM、通讯协议等);该单片机支持哪些类型的运算/判断、指令处理速度有多快。很多刚学单片机的同学问,单片机能干什么用?这个时候就应该研究一下手头的单片机其上述能力的高低,答案自然就明了了。比如某单片机的处理核心可以进行高速浮点数运算,那么这款单片机就可以用于数字电源控制,因为数字电源的控制环路运行频率很高,需要这种高速高精度计算能力。
3. 如何学好单片机
首先当然是如上所述,在了解原理的基础上,多动手实践。其次,由于众所周知的原因,我国的网络环境日益恶化,很多同学只能参考墙内的中文资料学习单片机,与相关领域的前沿技术严重脱轨。单片机生产厂家众多,只有多逛厂家网站、多看厂家技术资料(包括规格书、参考手册、应用手册等),才能保证与时俱进;沉迷于过时的网络教程,拘泥于具体的型号配置,只会越学越死,而无法学成一技之长。
最后,要多为具体需求编程,多在具体应用中编程,而不要为虚拟的需求、无意义的应用编程。典型的反面教材是光立方、电子钟、八音盒。
4. 单片机的应用领域
单片机是微型计算机的缩水再缩水版本。
当某个具体应用需要高速模数混合信号的输入及输出、逻辑/数学规则复杂的信号处理、低成本低功耗小尺寸以及重复可编程易调试特性时,单片机通常是第一选择。
也正是因为这样,要用好单片机,只学习单片机程序设计是远远不够的。优秀的单片机工程师必须通晓算法与数据结构、模拟与数字电路、仿真与调试技术、通信原理、自动控制技术等一系列主题,以应对随时变化的需求。
200字以内,仅用于支线交流,主线讨论请采用回复功能。