单片机长的什么样呢?让我们先从外观上看看单片机,如下图:
稍微了解一些单片机的人可能有这样的疑问:目前单片机有很多种类,到底学哪个好啊?这个问题就像你要出去划船,却站在一堆船桨面前发愁:到底用哪把桨好呢?是用桨长1米1的呢,还是用1米2的呢?你管它呢,考虑那么多干什么?随便拿上一把,只要不是筷子那么长的就划呗,哪把还不是都差不多?
单片机也是如此,虽然各种单片机各有各的特点,但是从大体上来看,都是差不多的,何况做为一个优秀的电子研发工程师,只会一种单片机是不行的,就像一个雕刻家,只会用5毫米的刻刀,其它尺寸的刻刀什么1毫米,2毫米等等都不会用,你认为这样的雕刻家会做出什么样的作品来?“我的妈呀,要学会用很多种单片机?一种都很难学,还要学很多种,不得累死我啊!!!”呵呵,实际上不是这样的,如果说,你学第一种单片机花费9分钟的时间,那么学第二种你只要花费半分钟的时间,剩下的所有的单片机加起来一共会花费半分钟的时间。可能有人对这句话不是很理解,没有关系,现在也不需要你去理解,你只要记住:学习单片机,相当相当容易就可以了!
那么,我们这本教材以什么单片机为例来讲解呢?在这里,我选用的是MSP430单片机。谈到选则型号,就不得不谈学习单片机所用的一些工具:
第一,你需要一台电脑,用来编写程序,另外,这台电脑还得有并口(也有人叫它打印机端口),把程序写到单片机时候会用到。一般的电脑都会有并口,只有少数的笔记本电脑没有,不过可以用USB转并口线来代替。不知道什么是并口?看下图:
第三,你需要一台仿真器。同样,也据个例子来说明它的作用。比如说,你做了一台机器,干什么的呢?是一台全自动筷子生产机。就是说,这台机器,你只要把放倒的树直接塞进机器里面,机器就会自动的除去树叶,扒掉树皮,把整个树据成一段一段的,然后把大块变成长条,在修整一下,筷子就成了,当然也会产生一些加工废料――木屑。简单的说,这边塞进木头,那边出来筷子和木屑。但是,无论什么机器,都不可能一次就做成,当你的机器第一次试用的时候,给他通电,发动起旋转,发出轰鸣的声音,这边塞进去一棵刚放倒的树,看看效果如何。结果呢?出问题了,机器不好使,怎么知道的呢?原来那边出来的都是木屑,没有一根筷子,这还用说么?肯定是机器出了问题。但是加工过程有好几步呢,是切段的过程有问题,还是修整的过程不对呢?机器全速工作的时候是高速旋转的,你跟本就看不清楚到底是哪一步出了问题,不找出问题所在,怎么可能解决问题,做好机器呢?这时候,设计者通常会打开机器外壳,好看清楚机器内部动作的每一个细节,然后瞬间通一下电后立刻断电,让机器只动作一步,看看这步是否工作正常,如果是,再瞬间通电一下,让机器继续动作一步,再看看是否正常,如此下去,直到找到问题为止,然后修改一下,解决问题后,通电全速工作,看看这次是否正常,如果还不正常,重复上述过程,直到排除所有的问题,机器全部正常为止。到这里,机器就做好了,可以投入工作了。
上面说的是一台机器的简单设计过程,单片机的程序设计和这个非常相似。当你把程序通过编程器写入到单片机里面以后,通电单片机就会全速工作,如果无法实现你的功能那毫无疑问,你的程序有问题,需要修改。但问题是,机器可以拧下螺丝,打开外壳,看看里面到底哪里出现问题了,单片机却不可以,它是一个全密封的芯片,如果你真的用暴力砸开朔封外壳,那单片机芯片就坏了,再也不能工作了;就算你打开芯片的外壳它没有坏,但是里面全是电路,又不是机械齿轮,你用眼睛能看出哪里有问题么?而我们又必须找到哪里有问题,怎么办呢?这时候,就需要用仿真器了。有了它,你就可以让程序一步一步的运行,就可以“看见”芯片内部的具体情况,然后找出问题所在,修改好你的程序,这时,单片机就可以正常工作了。可能有人会问:“那写程序的时候仔细一点,不出错,是不是就可以不用仿真器了呢?”呵呵,其实,这是不可能的,除非你写的程序相当的简单,比1+1还要简单,否则一次就写成的可能性几乎没有,每个程序都要反反复复调试很多遍才会没有问题的,实际上,仿真器是在开发单片机过程中用到的次数最多时间最长的工具,没有它,你会寸步难行的;
第四,你需要一个开发板。单片机程序编写好了,通过仿真器调试好了,没有问题了,也通过编程器写到单片机芯片里面了,是不是就可以正常工作了呢?不是的,单片机要和其它辅助电路连接到一起才可以工作的,所以作为一个电子工程师,不仅要会单片机编程,还要会设计外围电路,仅仅一个单片机是无法工作的,仅仅会单片机编程也是无法胜任工作的。但是初学者大多数不具备设计电路的能力,怎么办呢?不用担心,有已经设计好的成品线路板让你使用,这就是开发板。它让你专心的学习编程,外围电路不用你操心。更何况,单片机这个东西和其它的不同,仅仅看书是永远也学不会的,必须而且要经常练习才能学会,没有开发板是不行的。开发板要和仿真器一起使用。刚才也说了,学会设计外围电路是迟早的事情,那么什么时候学呢?不要着急嘛,知识总是要一步一步的来学的,建议你先用成品开发板学习编程,等你学的差不多的时候再去学习电路设计。