学单片机怎样算入门可谓是仁者见仁、智者见智的问题,每位朋友可能会有不同的答案,由于单片机是一门实践性非常强的技术,我认为要真正入门这项技术不能“欺软怕硬”,要做到“软硬兼施”才算真正踏入单片机技术的大门。今天我把自己学单片机的一些心得与体会来谈谈我对单片机入门的认识。
硬件电路的知识与技能准备
学单片机是离不开单片机硬件技术的,这里包括单片机的各种外设。要想达到入门级必须会设计出单片机电路。比如能够自主的通过绘图软件设计出各种用单片机控制的小项目,类似入门级的小项目有用单片机控制的带数显的交通灯、用单片机控制的具有温度显示的电子钟以及用单片机控制的具有避障功能的遥控小车等等,类似这样难度的单片机控制电路我们要能够设计出电路来,然后根据设计出的电路进行焊接出硬件电路。在这些电路里包含了许多单片机的外设,不如数码管、LCD1602液晶显示器、按键、温度传感器、LED灯等等。
软件的知识与技能准备
硬件电路设计出并焊接完成后,下面的工作就是对软件程序的编写,所以我们要具有软件的知识与编程技巧,比如要学会汇编语言的编写,精通C语言的编程等。由于单片机所用的程序是底层硬件驱动程序,我们编写程序时除了要考虑程序的算法外,还要考虑电路的硬件驱动问题,所以要有“软硬兼施”的技能。根据控制任务编写好程序后,不可能达到控制的尽善尽美,总会出现这样或那样的“bug”,所以我们还要具有调试软件,下载软件的技能,因此要有软件和硬件结合起来调试的能力。能够自主的测试出硬件的各个模块工作是不是正常,编写的软件是不是稳定等。这样只有通过了能够完成如此功能的单片机控制小项目,我认为才是进入的单片机的大门。
如果要想成为单片机高手做到这些还是远远不够的,还要对单片进行深入的学习,比如各种高档单片机,比如ARM系列的单片机以STM32最为常见。
学习单片机是否达到入门的程度,要从软件和硬件两个方面来考虑。
先说软件编程方面来说
就拿常用的51单片机或是STM32为例,通常使用C语音进行软件程序开发,要达到入门的程度,最起码也要达到熟练使用C语言的程度。
首先要能看懂C程序,如果看都看不懂的话,就更别谈自己动手熟练的写程序了。
其次一定要熟悉C语言的基本语法,明白如何定义变量,函数,指针等。了解常用的if条件判断、switch分支判断、while循环、for循环的使用。单说入门的话,对于指针这块,像是单向链表,双向链表,函数指针等等可以不做要求,但是指针的基本用法还是要掌握的。
单片机的开发不光是写个程序,周边配套的软件也要熟练使用。比如程序下载软件,不同型号的单片机都有自己配套的下载软件和方法。
这个是STC51单片机的下载软件,要想达到入门,这个软件一定要熟练使用。
这是STM32单片机的程序下载软件,程序是3分写7分调,只有下载到的单片机中才能实际测试程序效果,所以下载软件一定要熟练使用。
还有就是仿真器,这个也是程序调试的神器,尤其是刚入门的时候,经验不足,仿真器可以单步调试,对程序的调试帮助很大。
接下来说说硬件
单片机开发只会写程序可不行,一定要懂硬件,入门的话可以不会设计硬件电路板。但是一定要能看懂硬件原理图。如果看不懂原理图,程序设计也无从下手。
原理图指示电气连接,首先要了解电路板上有哪些芯片,能帮助我们实现哪些功能。每个芯片的引脚和单片机的哪些IO口连接,因为我们要控制外围电路的芯片,就是依靠单片机的IO口。
最后总结一下
能基本掌握C,能看懂原理图。终究还是停留在理论上。是否入门还是要看自己能否独立完成一些基本实验。比如做一个环境数据监控,阈值报警,数据保存,数据导出等功能的实验。