1.1 单片机的基本概念
1.1.1 初步了解单片机
单片机的全称是单片微型计算机,它是将中央处理器(CPU)、存储器(RAM和ROM)、中断系统、定时器/计数器和输入/输出端口(简称I/O口)等集成在一起的集成电路,是简化了的微型计算机。
单片机常用作智能系统的核心控制器件,因为单片机体积小,可以方便地移植(嵌入)到智能系统,所以它又被称为嵌入式控制器,也称微控制器(MCU)。人们希望单片机实现什么功能,就可以将单片机和一定的硬件结合成一个完整的系统,再编写相应的程序,输入(烧入)到单片机中,单片机就可以按人们的愿望去工作(实现控制功能)。单片机现已广泛应用于家电、通信、机电一体化、测控等领域,几乎是无处不在。
单片机的种类很多,它们具有各自的优缺点。下面简要介绍几种。
1.8051系列单片机
8051系列单片机是以Intel公司生产的8051系列单片机为内部核心的一系列单片机的总称,属于集中指令集(CISC)的单片机。由于8051系列单片机是Intel公司最早推出的单片机,市面上硬件支持和软件应用都非常丰富、方便,所以有多家公司购买了8051的内核推出了与之兼容的新一代51单片机,如AT89S51、AT89S52、STC89C52(见图1-1)等。新一代51单片机在内部集成了更多的功能部件,功能更丰富。虽然不同厂家、不同型号的51系列单片机各有特点,但内核和指令系统相同,是历史最悠久并且应用较为广泛的一种单片机。51系列单片机都是8位单片机(注:单片机的位数指内部能一次并行处理的二进制数的位数)。51单片机易学易用,学会51单片机,可以为学会其他功能更为强大的新型微控制器打下坚实的基础。本书以STC89C52(或AT89S52)为例详细介绍了单片机控制系统硬件电路的搭建和程序的编写。
图1-1 新一代51单片机实物示例
2.AVR单片机
AVR单片机是Atmel公司推出的,属于增强精简指令集(RJSC),在吸取8051系列单片机优点的基础上做了大量改进,与51单片机相比具有运行速度更快、存储容量更大、片内资源更丰富、保密性强、电源电压范围宽(2.7~6.0V)、抗干扰能力强等优点,而且使用ISP(在线编程)下载方式编程使其开发成本低廉,广泛应用于高灵活性的场合。
AVR单片机有8位、16位、32位,常见型号有ATMEGA48、ATMEGA8、ATMEGA16、ATMEGA169P、AVR32等。实物外形示例如图1-2所示。
图1-2 AVR单片机实物示例
3.PIC单片机
PIC单片机也是采用精简指令集的单片机,到目前为止,有8位、16位、32位。具有指令运行速度快、效率高、体积小、功耗低、价格低、驱动能力强、保密性好等优点。
1.1.2 熟悉51单片机的引脚功能
初学单片机编程,首先要着重掌握单片机各引脚的功能,特别是要掌握4组输入、输出端口,因为这是单片机接收外界信号、输出控制指令的端口。至于单片机部分引脚的第二功能[即图1-3中()内的内容],暂不介绍,将在本书后续章节结合具体应用实例进行讲解。下面以Atmel公司的AT89S52单片机为例进行介绍,其封装有40脚PDIP,44脚贴片式(PLCC)封装等。在学习、训练和实验中采用PDIP封装的单片机有利于拆装和烧写程序。PDIP的AT89S52单片机的引脚名称和功能如图1-3所示。
图1-3 AT89S52单片机的引脚基本功能
图1-3所示的AT89S52单片机各引脚的基本功能详见表1-1。
表1-1 AT89S52单片机各引脚的基本功能(29、30、31脚暂时不需深入了解)
(续)
注:1.TTL电平。用+5V等价于逻辑“1”,0V等价于逻辑“0”,这被称为TTL(晶体管-晶体管逻辑电平)信号系统,这是计算机处理器控制的设备内部各部分之间通信的标准技术。在数字电路中,TTL电平就是由TTL电子元器件组成的电路使用的电平。电平是个电压范围,规定输出高电平>2.4V,输出低电平<0.4V。在室温下,一般输出的高电平是3.5V,输出低电平是0.2V。
2.COMS电平。CMOS集成电路使用场效应晶体管(MOS管),其功耗小,工作电压范围很大,速度相对于TTL电路来说较低。但随着技术的发展,速度在不断提高。CMOS电平的高电平(1逻辑电平)电压接近于电源电压,低电平(0逻辑电平)电压接近于0V。而且具有很宽的噪声容限。
TTL电路和CMOS电路相连接时,由于电平的数值不同,所以需要设置电平转换电路。
1.1.3 理解单片机的最小系统
单片机的最小系统包括直流供电、时钟电路、复位电路。这些电路处于正常状态是单片机正常工作的必需条件。最小系统的电路如图1-4所示。
1.直流供电
直流供电不正常,单片机肯定不能正常工作。AT89S52单片机的工作电压为4~5.5V,推荐电压为5V,额定电流为0.5A或1A。5V的直流电压可由专用的5V直流电源(见图1-5)提供。也可以将220V交流电降压、整流,再用三端稳压器7805稳压后得到5V直流电压。
由于一般的应用中,单片机使用内部程序,所以EA(即单片机的引脚)要接电源(高电平),若接地,则单片机访问外部程序(使用外部程序存储器)。
图1-4 单片机的最小系统
注:I/O口没有画出。
图1-5 5V直流电源
2.时钟电路
时钟电路的作用是产生时钟信号(为脉冲信号)。时钟信号的作用是使单片机按一定的时间规律来工作(执行指令)。时钟电路由图1-4中单片机18、19、20引脚外接的两个瓷片或贴片电容(C2、C3)和一个晶振和单片机的部分内部电路组成。常用晶振的频率有6MHz、11.0592MHz、12MHz、24MHz。晶振的频率越高,时钟信号的周期就越小,单片机运行也就越快。瓷片电容的值为10~30pF,电容对时钟信号的频率有一定的影响,做高精度电子钟时需注意。
3.复位
复位是单片机的初始化操作。单片机启动运行时,都需要先复位,其作用是使CPU和系统中其他部件处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
复位,实质上是在单片机上电后,使单片机的复位引脚(9引脚)保持一定时间(很短,一般为几个机器周期)的高电平,然后再变为低电平。复位的方法有以下两种:
(1)上电复位。由9引脚外接的电解电容器C1(容量可取1~20μF)和电阻R1(阻值可取1~10kΩ)组成。
(2)手动复位。由按钮SB、限流电阻R2和虚线组成。系统上电后,手动点按一下按键,可使单片机重新复位。若自动复位出现故障后,按下按键,也可以使单片机复位。
图1-4所示的这个最小系统是单片机正常工作所必需的,但是该电路不能实现任何控制功能,因为没有使用I/O口。单片机要实现自动控制,就需要接收、输出信息,必须通过I/O口来实现。在后续章节介绍的实例电路中,都使用了一些I/O口。至于电源、时钟、复位电路,就不再画出(读者自己要明白,该电路是必须掌握的内容)。
在某单片机实训开发板上,时钟电路和复位电路元件的实物外形如图1-6所示。
图1-6 某单片机实训开发板上的时钟电路、复位电路元件的实物外形