学习单片机之前,需要有一些基础知识的准备,例如元器件知识、模拟电路、数字电路、C语言等这些知识需要知道一点。这些知识有一个直观的概念就行了,具体的更深入的知识,可以在单片机学习中逐步加深理解和学习。 然后,需要根据所选的单片机,了解该单片机的主要功能、熟悉其对应的开发环境; 最后,要有相应的单片机电路板和相应的仿真、编程工具,把单片机程序“烧录”到电路板上的单片机内,根据设计功能,观察电路板的运行是否符合设计初衷。 一、知识准备1、元器件知识知道基础元器件的功能和用法,例如要知道电阻的功能主要是限流、分压,电阻在电路中有串联、并联、混联的接法,知道电容的功能是“隔直通交”,在单片机电路中,有很多滤波电容。 2、模拟电路知识二极管、三极管的基本电路,了解单片机的电源电路、复位电路、晶振电路的工作原理。 3、数字电路这个最好多学一些,因为单片机本身就是一个数字器件,其运行原理主要是数字电路原理。了解各种门电路,最好能够熟悉IC数字芯片的真值表,了解串行通信,IIC通信,SPI通信等。 4、C语言知识现在单片机开发绝大多数都使用C语言开发,需要简单了解C语言的基本语法、算术和逻辑运算符,基本程序结构(顺序、选择、循环等),尤其要知道各种数据类型所表示的数值范围,这个会在单片机编程里面很有用。 二、单片机和开发环境选择1、单片机选择现在很多人说学单片机可以直接从cortex m0或m3学起,我觉得,如果基础较弱的话,还是从STC 51单片机开始,还可以选择AVR单片机。 为什么推荐这两种单片机,因为一个单片机环境要想真正运行起来,最终还是需要有专用的编程工具(很多人称为烧录工具)将程序“烧录”到单片机内部,这样才能真正让单片机按照程序设计流程运行。而这个专门工具是特制的,现在STC的51单片机只需要一根U转串的线就可以将程序“烧录”到单片机内,而AVR单片机的编程工具非常容易自制,并且成本不超过20块钱,至于其它单片机,它们的烧录工具一是不容易自制,二是价格较高,所以部特别推荐。 另外就是51单片机和AVR单片机的开发资料,学习教程在网上最多,这样当学习中遇到问题的时候,可以在网上获取很多经验。 2、开发环境的选择基本上每种单片机都有各自特色的开发环境,但是这些开发环境基本都是各自为战,很少有一种开发环境能够支持多种单片机的开发。 在这里推荐2个开发环境, 一是51单片机的KEIL开发环境,二是IAR开发环境,IAR开发环境是目前功能最为强大,支持单片机种类最多的一种开发环境(IAR支持51单片机,AVR,PIC,MSP430,ARM等几乎所有主流单片机,但是对每一种单片机都有一套开发包,不过基本开发配置和流程大体相近)。 51单片机的开发环境,不用说肯定是首选keil,这个是最早,也是功能最强的51单片机开发环境,另外,熟悉了KEIL后,对于后续开发MDK也会有一个很快的熟悉过程,因为MDK就是脱胎于KEIL的。 AVR单片机的开发环境很多,目前用的较为普及的是GCC、ICC AVR,以及AVR STDUIO,这三种的使用教程在网上较多,所以还是推荐这三种。 三、实战选择目前有三种方式学单片机,一种是通过真正的单片机学习板,现在这种学习板很多,并且板载的功能也非常多,这是一个途径,还有就是通过单片机仿真软件学习,目前有proteus(支持51,AVR,MSP430,CORTEX等),还有电路仿真软件multisim也可以仿真51单片机的运行过程。第三就是自己从零开始搭建学习板,我当年学AVR的时候,就是自己买的洞洞板,一步一步焊接出来一个学习板的。 1、使用单片机学习板学习单片机这种方式可以不用过多关注硬件电路,直接熟悉单片机编程技能,当然,学习板上的电路一般都是经过验证的,比较实用,所以可以直接学到相应电路的工作原理以及电路设计; 2、使用proteus学习单片机目前这个软件普及度已经很高了,并且网上相关的教程也很多,用这个软件学习单片机的一个好处是不用买学习板以及配套的编程工具,还有就是可以自己同时学习电路设计和编程技能,但是缺点就是这个软件的电路设计只是功能上的,具体到电路性能指标和各种参数,这个软件不能准确的模拟出来。不过作为入门以及基础原理的学习,这个软件还是很好的。 3、自己搭建学习板我当时学习AVR单片机的时候,就是买的洞洞板和各种器件,从单片机最小系统开始搭建,最后焊成了一个包含串口,串转并,并转串,AD转换,SPI、IIC总线,LCD液晶、数码管显示等各种电路。 这种方式有多种优点既可以学习编程,还学会了电路设计,又锻炼了动手能力,甚至还学会了基础的电路故障检查和维修。 不过这种方法需要很大的耐心和毅力。 四、单片机学习入门1、学会开发环境的使用 2、熟悉单片机最小系统的工作原理 3、熟悉单片机编程的基本结构、流程、语法 |
|
来自: 老友mk09qda3vs > 《百科知识汇莘》