本节主要介绍单片机的基本概念、发展和应用领域,以MCS-51单片机为例说明单片机组成、基本原理、内部和外部特性,并了解单片机系统的电路基本原理,要求读者重点掌握单片机的基本概念、单片机芯片DIP40封装引脚和基本特性。
人们日常生活中使用的计算机是一种微型计算机系统,由主机、显示器和键盘、鼠标、打印机等输入输出设备组成。在计算机的主机内部,有CPU、内存、显卡、硬盘、电源等部件,这些部件都插接在包含控制芯片和接口电路的主板上。主机通过与外部设备连接,在硬盘上安装了软件系统后,计算机就可以高速运行,在人的操作干预下完成各种工作,如程序设计、文档编辑以及上网聊天、玩游戏、看电影等功能。
单片机是一种集成在一个芯片上的微型计算机系统,即在芯片的内部集成了计算机常用的部件,如CPU、存储器、接口等电路。常见的单片机采用DIP40引脚封装,如图1-1所示。具有代表性的单片机是Intel公司在20世纪80年代推出的基于MCS-51架构的8051芯片。单片机结构简单,处理字长较短,硬件和软件开发周期短,初学者入门快,与其他电子系统结合很容易设计一个完整的控制系统。目前,单片机在日常生活和自动控制领域中应用十分广泛,如家用电器控制、仪器设备控制以及生产自动化检测与控制等,因此单片机又称微控制器(Micro Controller Unit, MCU)。
图1-1 双列直插式40(DIP40)引脚单片机芯片
MCS-51单片机采用哈佛结构,即数据存储和程序存储空间独立,其内部电路可根据功能划分为CPU、RAM、ROM/EPROM、并行口、串行口、定时器/计数器、中断系统及特殊功能寄存器(Special Function Register, SFR)8个主要部件,MCS-51单片机结构框图如图1-2所示。
图1-2 MCS-51单片机结构框图
由于MCS-51具有完善的结构和优越的性能,因此后来的许多厂商沿用或参考该体系结构,推出各自的8051系列产品。如PHILIPS公司的83C××系列、ATMEL公司的AT89系列芯片,并在原来的基础上不断对单片机的功能进行扩展,如片内增加高速I/O口、A/D转换器、PWM(脉宽调制)、大容量的RAM/ROM、WDT(看门狗)等。
STC系列单片机是国内宏晶公司推出的多功能、增强型8051单片机,经过多年的发展,该公司单片机技术日臻完善。STC系列单片机具有代表性的型号有STC15F、16F、8H、8G和32G等系列,片内集成了A/D转换器、PWM、看门狗等部件以及各种总线接口,支持ISP/IAP在线编程,并采用单时钟/机器周期(1T)、宽电压、加密、低功耗等技术,使单片机的应用领域不断拓展。目前,STC系列单片机已成为国内8051单片机市场的主流产品,关于STC单片机的有关介绍,请参阅第7章。
单片机的运行与计算机一样也需要必要的硬件和软件。其中程序是单片机系统软件,通过下载软件把编制好的单片机程序下载到单片机内部ROM中即可让单片机运行,从而实现单片机的功能。8051单片机不能加载操作系统,也不能处理复杂的数据运算,但它是一种芯片化的低成本计算机系统,各个功能部件在芯片中的布局和结构达到最优化。
日常见到的交通信号灯控制、LED广告屏、电梯控制等电子系统常把单片机作为核心控制芯片。在实际应用中,需要把单片机和外部器件或被控对象进行电气连接,形成电路才能构成一个单片机应用系统。图1-3所示为一个由单片机和外部器件组成的校园自动打铃定时器电路原理图,系统中单片机主要用来定时,键盘用来调整定时的时间点,继电器用来控制电铃,数码管用来显示当前时间。
图1-3 由单片机和外部器件组成的校园自动打铃定时器电路原理图
一个完整的单片机应用系统包括系统硬件和软件两部分。单片机的硬件部分主要指电路组成,其中除单片机外,通常还要用到很多外部器件,如按键、显示器件及各种接口电路等。图1-4所示为一个简单的电子日历电路原理图,包括单片机、按键和液晶显示器等器件,能够完成时间显示和校时。复杂的单片机系统还要用到一些模拟或数字电路芯片,如A/D转换器、D/A转换器、运算放大器以及各种外部存储器芯片等。单片机软件包括程序以及开发程序的平台,一般主要指单片机运行的程序。程序设计可以采用汇编语言,也可以采用C语言等高级语言。
与微型计算机相比,单片机系统软硬件设计要简单得多,开发成本也相对较低,因此在移动终端、工业系统、火灾报警系统、智能家电控制、视频监控系统、跟踪定位控制等领域都有单片机的身影。在物联网感知技术中,传感信号的检测、数据处理与传输控制都要用单片机来完成,如ZigBee节点中CC2530芯片内部集成了51单片机内核,可以说单片机系统是最典型的嵌入式系统。随着各个领域的自动化、智能化程度越来越高,单片机技术也将得到更快的发展。
图1-4 简单的电子日历电路原理图
单片机型号有很多种,不同型号又有多种封装外形,传统8051单片机或兼容8051系列的单片机多采用DIP40封装,也有DIP20、DIP28以及扁平封装等多种形式。图1-5a所示为双列直插式封装外形,图1-5b所示为扁平封装,图1-5c所示为51单片机的电路原理符号,其中电源正极和地两个端隐藏。40个引脚按功能分为4个部分,即电源引脚(VCC和VSS)、时钟引脚(XTAL1和XTAL2)、控制信号引脚(RST、 和ALE)以及I/O口引脚(P0~P3)。
图1-5 MCS-51系列单片机的引脚分布图
(1)电源引脚
在DIP40封装中,40脚为单片机电源正极VCC引脚,20脚为单片机的接地VSS引脚。在正常工作情况下,VCC接+5V电源,为了保证单片机运行的可靠性和稳定性,电源电压波动不超过0.5V。可移动的电子系统可采用宽电压的单片机设计,电源直接利用电池供电,实验情况下也可以用三节普通电池或计算机的USB接口供电。一般电路中常采用集成稳压器7805提供电源。图1-6所示为单片机常用的集成稳压电源,为了提高电路的抗干扰能力,电源正极与地之间接有滤波电容器。
(2)单片机的I/O口引脚
单片机的I/O口是用来输入和控制输出的端口,DIP40封装的8051单片机共有P0、P1、P2、P3 4组端口,分别与单片机内部P0、P1、P2、P3 4个寄存器对应连接,每组端口有8位,共有32个I/O口。
图1-6 单片机常用的集成稳压电源
P0口分别占用32~39脚,依次命名为P0.0~P0.7,与其他I/O口不同,P0口是漏极开路(OD门)的双向I/O口,P0口中任意一位电路原理如图1-7所示,其中端口P0.×的输出与内部对应的寄存器P0.×状态一致。单片机在访问片外存储器时,P0口分时作为低8位地址线和8位双向数据总线用,此时不需外接上拉电阻;如果将P0口作为通用的I/O口使用,则要求外接上拉电阻或排阻,每位以吸收电流的方式驱动8个LSTTL门电路或其他负载。
P1口占用1~8脚,分别是P1.0~P1.7。P1口是一个带内部上拉电阻的8位双向I/O口,每位能驱动4个LSTTL门负载。这种端口没有高阻状态,输入不能锁存,因而不是真正的双向I/O口。
P2的8个端口占用21~28脚,分别是P2.0~P2.7。P2口也是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,P2口输出高8位地址,每位也可以驱动4个LSTTL负载。
P3口的8个引脚占用10~17脚,分别是P3.0~P3.7。P3是双功能端口,作为普通I/O口使用时,同P1、P2口一样,作为第二功能使用时,引脚定义见表1-1。P3口的第二功能,能使硬件资源得到充分利用。
表1-1 P3口的第二功能引脚定义
(3)时钟引脚
单片机有两个时钟引脚,分别是19脚XTAL1和18脚XTAL2,用于提供单片机的工作时钟信号。单片机是一个复杂的数字系统,内部CPU以及时序逻辑电路都需要时钟脉冲,所以单片机需要有精确的时钟信号。
单片机内部含有振荡电路,19脚和18脚用来外接石英晶体和微调电容。在使用外部时钟时,XTAL2则用来输入时钟脉冲,如图1-7所示。其中图1-7a为晶体振荡电路,图1-7b为外部时钟输入电路。利用外部时钟输入时,要根据单片机型号XTAL1接地或悬空,并考虑时钟电平的兼容性。
图1-7 单片机时钟电路
(4)控制引脚
在DIP40引脚封装中,9脚RST/VPD为复位/备用电源引脚,在此引脚外加两个机器周期的高电平就能使单片机复位。
30脚 为锁存信号输出/编程引脚,在早期扩展了外部存储器的单片机系统中,单片机访问外部存储器时,ALE用于锁存低8位的地址信号。
29脚 为输出访问片外程序存储器的读选通信号引脚。在CPU从外部程序存储器取指令期间,该信号每个机器周期两次有效。在访问片外数据存储器期间,这两次 信号将不出现。
31脚 用于区分片内外低4KB范围存储器空间。该引脚接高电平时,CPU访问片内程序存储器4KB的地址范围。若PC值超过4KB的地址范围,CPU将自动转向访问片外程序存储器;当此引脚接低电平时,则单片机只访问片外程序存储器,忽略片内程序存储器。
在STC系列单片机中,以上ALE、 引脚已经省略,取而代之的是P4接口。
掌握单片机内部的各个部件功能、外部引脚特性是分析和设计单片机应用系统的硬件基础,只有全面地了解单片机的硬件以及单片机外部器件特性,才能熟练应用单片机系统所提供的硬件资源,设计开发出性价比较高的应用系统。