- 单片机C语言应用100例(第4版)
- 王会良等编著
- 3631字
- 2023-12-06 16:44:01
1.1 单片机概述
嵌入式系统是目前电子系统设计最活跃的领域之一,具有广阔的市场前景。单片机作为嵌入式系统最典型的代表,在嵌入式系统产品中占有最大的份额,成为广大高校学生和电子工程技术人员学习和开发嵌入式系统的主流。由单片机开发的产品也广泛地应用到了家电、通信、工商业,以及航空、航天和军事方面。
1.1.1 单片机的定义、分类与内部组成
1.什么是单片机
单片机就是把中央处理器(CPU)、随机存储器(RAM)、只读存储器(ROM)、定时器/计数器和各种输入/输出接口(I/O 接口)等主要功能部件集成在一块集成电路板上的微型计算机。所以,单片机实际上是单片微型计算机(Single Chip Microcomputer)的简称。因为单片机在控制方面有重要应用,所以国际上通常将单片机称为微型控制器(Microcontroller Unit,MCU)。它已成为工业控制领域、智能仪器仪表、尖端武器、机电设备、过程控制、自动检测等方面应用最广泛的微型计算机。
2.51系列单片机的分类
(1)按芯片的半导体制造工艺来划分,可以分为两种类型:HMOS 工艺型,包括8051、8751、8052和8032;CHMOS 工艺型,包括80C51、83C51、87C51、80C31、80C32和80C52。这两类器件在功能上是完全兼容的,但采用 CHMOS 工艺制造的芯片具有低功耗的特点,它所消耗的电流要比 HMOS 器件消耗的电流小得多。例如,8051的功耗为630mW,而80C51的功耗只有120mW。在便携式、手提式和野外作业的仪器设备上,低功耗是非常有意义的。因此,在这些产品中必须使用 CHMOS 的单片机芯片。另外,CHMOS 器件还比HMOS 器件多了两种节电的工作方式(掉电方式和待机方式),常用于构成低功耗的应用系统。
(2)按片内不同容量的存储器配置来划分,可以分为两种类型:51子系列型,芯片型号的最后一位数字以1作为标志,51子系列单片机是基本型产品,其片内带有4KB ROM/EPROM(紫外线可擦除的ROM)、128B RAM、2个16位定时器/计数器和5个中断源等;52子系列型,芯片型号的最后一位数字以2作为标志,52子系列单片机则是增强型产品,片内带有8KB ROM/EPROM、256B RAM、3个16位定时器/计数器和6个中断源等。
3.51系列单片机的兼容性
MCS-51系列单片机优异的性价比使得它从面世以来就获得广大用户的认可。Intel 公司把这种单片机的内核,即8051内核,以出售或互换专利的方式授权给一些公司,如Atmel、Philips、NEC等。这些公司在保持与8051单片机兼容的基础上,改善了8051单片机的许多特性。例如,80C51单片机就是在8051单片机的基础上发展起来的更低功耗的单片机,两者外形完全一样,其指令系统、引脚信号、总线等也都完全一致(完全兼容)。也就是说,在8051上开发的软件完全可以在80C51上应用;反之,在80C51上开发的软件也可以在8051上应用。这样,8051单片机就成为拥有众多制造厂商支持的上百品种的大家族,现在统称为80C51系列单片机。
80C51系列单片机也包括多个品种。其中,AT89C51单片机近年来在我国非常流行,由美国 Atmel 公司开发生产,它的最大特点是内部含有可以多次重复编程的快速擦写存储器——Flash ROM,并且Flash ROM可以直接用编程器来擦写,使用非常方便。
然而,由于89C51不支持 ISP(在线更新程序)功能,在市场化方面受到限制。在此背景下,89S51开始取代89C51。89S51相对于89C51除了增加 ISP 在线编程功能以外,还增加了许多新的功能,如进一步提高了工作频率、内部集成了看门狗计时器、大大提高了程序的保密性等,而价格却基本不变,甚至比89C51更低。同时,89S51向下完全兼容MCS-51全部子系列产品。作为市场占有率第一的 Atmel 公司目前已经停产 AT89C51,使用 AT89S51进行替代。本书中的所有实验均采用 AT89S51芯片完成(但本书在进行单片机仿真时,仍采用AT89C51单片机,因为仿真库内暂无AT89S51型单片机,两者的使用功能是一样的)。
4.单片机的外形及内部组成
图1-1给出了AT89S51单片机的外形。它有40个引脚,内部集成了CPU、存储器和输入/输出接口等电路,其引脚排列如图1-2所示。MCS-51单片机的内部组成如图1-3所示。下面介绍各部分的基本功能。
图1-1 AT89S51单片机的外形
图1-2 AT89S51单片机的引脚排列
图1-3 MCS-51单片机的内部组成
(1)中央处理器(CPU)。
中央处理器是单片机的核心,完成运算和控制功能。它的结构非常复杂,但由于采用了 C 语言来设计程序,在编写程序的时候就无须过多地了解它的结构和原理。MCS-51单片机的CPU能处理8位二进制数或代码的运算。
(2)内部数据存储器(128B RAM)。
MCS-51单片机中共有256个RAM单元。其中,后128个单元被专用寄存器占用,通常称为特殊功能寄存器;供用户使用的寄存器只有前128个单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128个单元,简称内部RAM。
(3)内部程序存储器(4KB ROM)。
MCS-51单片机共有4KB 掩膜 ROM,用于存放程序或原始数据,因此称为程序存储器,简称内部ROM。
(4)定时器/计数器。
MCS-51单片机共有两个16位的定时器/计数器,以实现定时或计数功能,并通过定时或计数结果对计算机进行控制。
(5)可编程I/O口。
MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),通过编写程序可以实现数据的并行输入/输出,从而接收外部信号或输出控制信号。
(6)串行接口(简称串行口或串口)。
MCS-51单片机有一个全双工的串行口,以实现单片机和其他设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
(7)中断控制系统。
当 CPU 执行正常的程序时,如果接收到一个中断请求(如定时时间到,需要鸣笛报警),中断控制系统马上会让CPU停止正在执行的程序,转而去执行程序存储器ROM中特定的某段程序,执行完成该段程序后再继续执行先前中断的程序。
MCS-51单片机共有5个中断源,即2个外中断源、2个定时器/计数器中断源和1个串行中断源。
(8)时钟电路。
时钟电路产生时钟信号并送至单片机内部各电路,控制这些电路,使它们有节拍地工作。时钟信号频率越高,内部电路工作速度越快。
MCS-51单片机的内部有时钟电路,但石英晶体和微调电容需外接,系统允许的晶振频率一般为6~12MHz。
从上述内容可以看出,虽然 MCS-51是一个单片机芯片,但是作为计算机应该具有的基本部件它都包括。因此,实际上它已是一个简单的微型计算机系统了。
1.1.2 单片机应用系统的结构及工作过程
1.系统结构
单独一块单片机集成电路是无法工作的,必须添加一些外围电路,构成单片机应用系统才可以工作。图1-4给出了典型单片机应用系统(抢答器)的结构简图。当按下按键SB1时,发光二极管 LED1点亮,同时蜂鸣器 SPK 发出声音。从图中可以看出,一个典型的单片机应用系统包括输入电路、单片机和输出电路。
2.工作过程
下面以图1-4中的抢答器为例,说明单片机应用系统的工作过程。
当按下抢答键SB1后,单片机引脚1通过SB1接地,发光二极管LED1亮。同时,单片机输入低电平,经单片机内部的数据传输后,马上输出控制信号(这里仍为低电平),该信号经过 R2送到驱动三极管 V1的基极,三极管 V1导通,有电流通过蜂鸣器 SPK,蜂鸣器发声。一旦松开抢答键SB1,单片机输入信号为高电平,经过内部数据传输,马上输出高电平,三极管V1截止,蜂鸣器停止发声。
图1-4 典型单片机应用系统(抢答器)的结构简图
1.1.3 单片机的应用
目前单片机已经应用到生活的各个领域。导弹的导航装置、飞机上各种仪表的控制、计算机的网络通信与数据传输、工业自动化过程的实时控制与数据处理、广泛使用的各种智能 IC 卡、民用豪华轿车的安全保障系统、录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等,这些都离不开单片机。
1.在智能仪器仪表中的应用
单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中。结合不同类型的传感器,可实现如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度和压力等物理量的测量。采用单片机控制可以使得仪器仪表数字化、智能化和微型化,其功能比电子或数字电路的仪器仪表更加强大。
2.在智能化家用电器中的应用
各种家用电器普遍采用单片机智能化控制代替传统的电子线路控制,进行升级换代,如洗衣机、空调、电视机、录像机、微波炉、电冰箱、电饭煲和各种视听设备等。
3.在工业控制中的应用
工业自动化控制是最早采用单片机控制的领域之一,如各种测控系统、过程控制、机电一体化和PLC等。在化工、建筑、冶金等工业领域都要用到单片机控制。
4.在商业营销设备中的应用
在商业营销系统中已广泛使用的电子称、收款机、条形码阅读器、IC 卡刷卡机、出租车计价器,以及仓储安全监测系统、商场保安系统、空气调节系统、冷冻保险系统等都采用了单片机控制。
5.在汽车电子产品中的应用
现代汽车的集中显示系统、动力监测控制系统、自动驾驶系统、通信系统和运行监视器(黑匣子)等都离不开单片机。
6.在航空、航天和军事中的应用
航天测控系统、航空导航系统、卫星遥控/遥测系统、载人航天系统、导弹制导系统和电子对抗系统等都采用了单片机进行控制。
单片机应用的意义不仅在于它的广阔范围及所带来的经济效益。更重要的是,单片机的应用从根本上改变了控制系统传统的设计思想和设计方法。以前采用硬件电路实现的大部分控制功能,正在用单片机通过软件方法来实现,即人们所说的“软件就是硬件”。以前自动控制中的 PID 调节,现在可以用单片机实现具有智能化的数字计算控制、模糊控制和自适应控制。这种以软件取代硬件并提高系统性能的控制技术称为微控技术。随着单片机应用的推广,微控技术将不断发展完善。