学海荡舟手机网
导航

主页 > 电子设备技术 > 电器电路基础 > > 详细内容

初学单片机十问十答

   1.什么是?

 简单地说,单片机就是一个小计算机系统。提到计算机,大家可能马上会想到“显示器、、键盘”,不过,这不是一个计算机的核心和关键,计算机的核心部分在一边的机箱里呢。

 打开机箱,可以看到,机箱里有主板、硬盘、光驱等。仔细观察主板,这上面有CPU、内存条、芯片,通常还有25针的打印机接口等,这些部件都是通过主板上的连线相互连接。  

 不论计算机复杂程度如何,它总是由运算器、控制器、、输入/输出接口、总线这五个部分组成。通常运算器和控制器被做成一块芯片,也就是CPU(中央处理器)。在计算机主板上,内存条和BIOS芯片就是存储器,25针打印机接口就是输入/输出设备,而总线则被设计在主板上,即各部件相互连接的线路。

 在一些应用场合,人们并不需要计算机完成十分复杂的运算,但却希望计算机小巧、可靠、价格低。于是人们就把组成计算机的这5个部分全部集成到一块芯片上,也就是说一块芯片就能构成一个独立的计算机,在当时的技术条件下,这是一件了不起的事情,于是人们就用这个特征来为之命名,称为“单片机”。

 将构成一个计算机所需要的5个部分全部都集成到一块芯片中,这块芯片的体积是否会很大、价格是否很高呢?并非如此。如果要把下图(左)所示主板上的所有元件都集成到一块芯片中,那当然非常昂贵,可能技术上也无法实现,但很多单片机中所需要用到的,功能完全没必要那么强大,因此很多单片机体积很小,价格也很低。如市场上常见的单片机有8、14、16、18、20、28、40、84等引脚,有些甚至只有6个引脚,下图(右)所示是微芯公司(Mro)发布的一款6引脚单片机。而价格从几元到几十、上百元的都有,有些品种在大批量定购时甚至可以低至1元以下。

 刚接触到单片机的人往往会有个疑惑:既然人们已经有能力制造功能强大的计算机,为何还要生产些功能不强的计算机?其实,.功能强弱并不是是否生产的决定因素,市场需要才是关键。比如,用来控制一台电冰箱的计算机显然没必要使用“奔腾”芯片的强大运算能力,只要进行非常简单的计算,作个比较,看一看温度是否在所控制区间之内,然后再做出相应的控制就行了。

 单片机在人们的生活中、工农业生产设备中处处有应用,例如各定时装置、自动控制装置等。爱好者学习单片机应该注意观察事物,找到自己周围能够使用单片机的场合,从而将学到的知识应用到实际中去。例如,使用单片机技术改造传统的机电设备、在特定的场合使用单片机替代PLC等就有着广阔的应用前景。又如,使用单片机控制电扇、抽油烟机、空调等,从而制作出具有更强功能、能够通用的控制器,也是可以尝试的。

 2.单片机程序的作用是什么?如何编写?如何写入单片机?

 单片机程序的用途是让单片机“听话”,按人们所预定的设计完成一系列动作,最终实现一个特定的功能。

 例如使用单片机控制流水灯,接通后,第一次灯亮,然后延时一段时间,第二次灯亮,然后延时一段时间,第三次灯亮······延时一段时间后又回到第一次灯亮,如此循环不已。这里就有这样的一些问题:第一次亮几盏灯、延时多少时间、一个循环中设置多少次不同的灯亮的情况······这些决定了流水灯的花样,流动的速度。对此,单片机显然没有自我判断能力,必须依靠人们给它“布置”任务,而它则是按人们的设计依次执行。

 要让单片机“听话”,就要用单片机能够“听”懂的语言发布命令,单片机能够“听”懂的语言称之为“指令”。任何一种型号单片机能够接受的指令都是有限的,51单片机的指令条数为111条,而PIC单片机的指令仅有35条。每一条指令完成一个最基本的动作,人们为了要完成一个特定的功能,就要将这些指令排列组合,成为一个指令序列,这就是程序。

 指令的表示形式有两种:机器语言和汇编语言。以51为例,如果要让P1.0引脚变为低,用机器语言来表示就是 C2H,90H,将这两个数放进单片机的程序存储器中,单片机执行后,就可以让P1.0引脚变为低电平了1 而要让P1.0引脚变为高电平,用机器语言来表示就是D2H,90H。至于为什么是这两个数字,大家没必要追究,这是设计这块芯片的设计工程师规定的,我们不能更改,只能学习。

 C2H,90H就是一条指令,显然这样的指令形式是很难记忆的,编程也非常困难,于是人们使用了“助记符来代替这些数字。例如C2H,90H的助记符是 CLR P1.0,而D2H,90H的助记符是SETB P1.0,由于助记符采用了英语字母的缩写,有一定含义,因此比数字形式的指令易记、易用。使用助记符形式的指令来编写程序就称为“汇编语言源程序”。但是汇编语言源程序是没有办法直接送到单片机内部去的,使用助记符形式的指令编写的程序最终还是要变成为诸如 c2 H,90H、D2H,90H,这种形式的指令才能被送人单片机的程序存储器。将助记符形式的指令变为数字形式的指令的过程称为“汇编”。汇编有两种方法,一种是“手工汇编”,即人们通过查表的形式找到所写汇编指令的数字形式然后写下来)另一种是“机器汇编”,即编写好汇编语言源程序以后,使用一个计算机软件对这些源程序进行处理,从而得到数字形式的指令序列,这个指令序列通常被称为“机器码”,即可以直接被机器所执行的代码。

 机器汇编后得到的数字形式的指令序列以一个文件的形式保存在磁盘上,这个文件的扩展名一般是 HEX,即人们常说的HEX文件。得到了HEX文件后,就可以将其写入程序存储器中了。要将程序写入芯片,通常需要一个称为“编程器”的专用设备,在计算机上运行与之配套的编程软件,然后在这个软件中打开HEX文件,即可将其写入芯片中。随着技术的发展,编程方式越来越多,但总的概念是这样的。

 3. 单片机编程器、仿真器、挠1器、下载线各是什么?有什么用处?

 单片机编程器是用来将程序代码写入存储器芯片或者单片机内部的工具,下图所示是一个典型的编程器外形。图中黑色的插座,通过拨动手柄可以将置于其中的芯片锁紧或松开。编程时锁紧以保证接触良好,编程完毕松开,可以更换下一片芯片。

 

 当芯片是双列直插形式时,直接插在座子上就可以烧写了,但如果遇到如下图所示的各种封装形式的芯片,又如何写烧写呢?一种方法是使用,如下图所示是各种封装芯片所使用的适配器。

 另一种方法是使用下载线。随着技术的进步,越来越多的单片机芯片开始支持“ISP”功能,即In SystemProgrammer,在线可编程技术。利用这种技术,将空白的 (尚未编程的)芯片直接焊在印制线路板上,利用预先留下的几个引脚即可对芯片进行编程,不必将芯片拆下来放到编程器上,因此,这给小批量制作带来了极大的方便,也省去了购买价格昂贵的适配器。如下图所示是使用下载线对芯片进行在线编程的示意图。

 


相关文章