刚触摸到单片机的人往往会有个疑问:已然人们已经有才干制造功用强壮的核算机,为何还要出产些功用不强的核算机?其实,功用强弱并不是决议是否出产的决议要素,市场需求才是要害。比方,用来操控一台电箱的核算机明显没必要运用“飞跃”芯片的强壮运算才干,只需进行十分简略的核算,作个比较,看一看温度是否在所操控区间之内,然后再做出相应的操控就行了。
单片机在人们的日子中、工农业出产设备中处处有运用,例如各定时设备、自动操控设备等。爱好者学习单片机应该留意调查事物,找到自己周围能够运用单片机的场合,然后将学到的常识运用到实践中去。例如,运用单片机技能改造传统的机电设备、在特定的场合运用单片机替代PLC等就有着宽广的运用远景;又如,运用单片机操控电扇、抽油烟机、空调等,然后制造出具有更强功用、能够通用的操控器,也是能够测验的。
2.单片机是怎么作业的?
单片机的作业进程便是一个不断“取指令-剖析指令-履行指令”的进程。单片机的程序以一条一条指令的方法存放在程序存储器中,单片机开端作业后,就从程序存储器的特定方位开端取指令,然后由单片机内部的操控器对指令进行剖析,依据指令要求,进行“取数、送数、算术运算、逻辑运算、跳转”等根本操作中的一种或几种,这些操作都在一个规则的周期中完结,履行完了今后,到下一个存储器单元中取指令,重复方才的操作(当然,这些要履行的操作详细内容或许跟上一次不一样了),如此不断重复,直到断电停止。这儿所说的“存储器特定方位”、“规则的周期”等与单片机的类型有关,下面以51系列单片机为例来阐明。
在51系列单片机中有一个名为PC的寄存器(便是用来存数的一个容器),在单片机复位后,这个寄存器中的内容被置为0000H,单片机内部的操控器总是依据PC寄存器中的值去相应的程序存储器单元取指令,因而,开机后,将从0000H单元取榜首条指令,剖析履行,一起,PC值将作相应的调整,指向即将履行的下一条指令的方位,下一条指令的方位在哪里呢?关于51单片机来说,一条指令或许占用一个字节、二个字节或三个字节,假如榜首条指令是单字节指令,取完榜首条指令今后,PC的值就会变为0001H,因而,榜首条指令履行结束今后,将从0001H单元中取出第二条指令来履行,以此类推。假如程序是次序履行的,PC的值将一直不断添加,假如程序中有跳转指令,该指令将影响PC中的值,使PC中的值指向即将履行的下一条指令地点地址单元。这种跳转既或许是正向的,例如由0000H跳转到0030H,也或许是反向的,即往回跳转,如由200H跳转到100H。正是由于指令能够影响到PC中的值,才使得程序能够完结“分支”、“循环”等各种功用。那么,履行一条指令的时刻又是多少呢?关于51单片机来说,指令履行时刻有三种或许,单周期、双周期和四周期,不论一条指令需求做多少作业,都必定在规则的时刻内完结。
3.单片机程序的效果是什么?怎么编写?怎么写入单片机?
单片机程序的用途是让单片机“听话”,按人们所预订的规划完结一系列动作,终究完结一个特定的功用。
例如运用单片机操控流水灯,接通电源后,榜首次灯亮,然后延时一段时刻,第2次灯亮,然后延时一段时刻,第三次灯亮……,延时一段时刻后又回到榜首次灯亮,如此循环不已。这儿就有这样的一些问题:榜首次亮几盏灯、延时多少时刻、一个循环中设置多少次不同的灯亮的状况……,这些决议了流水灯的把戏,活动的速度,而这些,单片机明显没有自我判断才干,有必要依托人们给它“安置”使命,而它则是按人们的规划顺次履行。
要让单片机“听话”,就要用单片机能够听懂的言语发布命令,单片机能够听懂的言语称之为“指令”。任何一种类型单片机能够承受的指令都是有限的,51单片机的指令条数为111条,而PIC单片机的指令仅有35条。每一条指令完结一个最根本的动作,人们为了要完结一个特定的功用,就要将这些指令排列组合,成为一个指令序列,这便是程序。
指令的表明方法有两种:机器言语和汇编言语。以51为例,假如要让P1.0引脚变为低电平,用机器言语来表明便是 C2H 90H,将这两个数放进单片机的程序存储器中,单片机履行后,就能够让P1.0引脚变为低电平了;而要让P1.0引脚变为高电平,用机器言语来表明便是D2H,90H。至于为什么是这两个数字,咱们没必要追查,这是规划这块芯片的规划工程师规则的,咱们不能更改,只能学习。
C2H,90H便是一条指令,明显这样的指令方法是很难回忆的,编程也十分困难,所以人们运用了“助记符”来替代这些数字。例如C2H,90H的助记符是CLR P1.0,而D2H,90H的助记符是SETB P1.0,由于助记符选用了英语字母的缩写,有必定意义,因而比数字方法的指令易记、易用。运用助记符方法的指令来编写程序就称之为“汇编言语源程序”。可是汇编言语源程序是没有办法直接送到单片机内部去的,运用助记符方法的指令编写的程序终究仍是要变成为比如:C2H,90H,D2H,90H,这种方法的指令才干被送入单片机的程序存储器。将助记符方法的指令变为数字方法的指令的进程称之“汇编”。汇编有两种办法,一种是“手艺汇编”,即人们经过查表的方法找到所写汇编指令的数字方法然后写下来;另一种是“机器汇编”,即编写好汇编言语源程序今后,运用一个核算机软件对这些源程序进行处理,然后得到数字方法的指令序列,这个指令序列一般被称为“机器码”,即能够直接被机器所履行的代码。
机器汇编后得到的数字方法的指令序列以一个文件的方法保存在磁盘上,这个文件的扩展名一般是HEX,即人们常说的HEX文件。得到了HEX文件后,就能够将其写入程序存储器中了。要将程序写入芯片,一般需求一个称之为“编程器”的专用设备,在核算机上运转与之配套的编程软件,然后在这个软件中翻开HEX文件,即可将其写入芯片中。跟着技能的开展,编程方法越来越多,但总的概念是这样的,详细的细节,将在另一个问题“单片机编程器是什么”中答复。
4. 8位、16位、32位单片机中的“XX位”指什么?
8位、16位、32位是指单片机的“字长”,也便是一次运算中参加运算的数据长度,这个位是指二进制位。以8位为例,8位二进制的表达规模是0000,0000~1111,1111即十进制的0~255,即每次参加运算的数据最大不能超越255。而16位机的字长是16位,其数据表达规模是0~65535,即每次参加运算的数据最大不能超越65535;32位单片机的字长是32位,其数据表达规模是0~4294967295,即每次参加运算的数据最大不能超越4294967295。
8位、16位、32位与单片机的功用密切相关,一般32位机的功用要高于16位机,而16位机的功用又要高于8位机。为什么会这样呢?这要从2个方面来剖析。榜首,位数不同,运算功率不同。关于8位机而言,由于在一次运算中的每一个数都不能超越8位,因而即使如100+200=300这样的运算,它也不能一次完结,由于300已超越了8位所能表达的最大规模(255),因而,要对这样的一个式子进行运算,就要编写一段程序,将运算分步完结,最终组成起来得到一个正确的成果。而假如选用16位单片机来运算的话,那么一次运算就够了,明显分步完结所需求的时刻要远远大于单步完结所需求的时刻。相同道理,当某个运算的成果或许中心值大于65535时,16位机也不能一次运算,要分步完结它,而32位机则能够一次运算完结。第二,商业要素。一般运算才干越高,表明这个单片机功用越强,当然,价格高一些人们也能够承受,有了价格空间,出产商一般都会在这些芯片中供给更多的其他的功用,使得芯片的全体功用得到更大的提高。
典型的单片机中,80C51系列,PIC系列,AVR系列都是8位单片机;80C196、MSP430系列是16位机;而现在十分抢手的ARM系列则是32位机。
5. 单片机编程器、仿真器、烧写器、下载线各是什么?有什么用途?
单片机编程器是用来将程序代码写入存储器芯片或许单片机内部的东西,如图5-1所示是一个典型的编程的外形。图中黑色的集成电路插座,经过拔动手柄能够将置于其间的集成电路芯片锁紧或松开。编程时锁紧以确保触摸杰出,编程结束松开,能够替换下一片芯片。