购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第1章
走近单片机

在讲单片机程序设计之前,我们先了解一下单片机。我本想说“走进单片机的世界”,可是如今的世界里,我们早已被单片机包围了,所以我这里说“走近单片机”。让我们一起来揭开身边单片机的面纱。

1.1 我们身边的单片机

先看看我们身边的家用电器吧:电视机、电冰箱、空调、洗衣机、电磁炉、电饭锅、微波炉、电话、计算机、手机等。这些家电都离不开单片机,如果它们内部的单片机不工作了,那这些家电也就休息了。下面我们就拿起手中的螺丝刀,对家电做一个分解手术,把隐藏起来的单片机挖出来。

图 1-1 是我们常用的电磁炉,观察其面板,感觉是不是很简单呢?我们经常用的也就几个控制按键、一组菜单按键、一组数码管而已。

图 1-1 电磁炉操作面板

下面我们就开始动手,用一个“外科大夫”的眼光来看看电磁炉的内部构造。

从图 1-2 电磁炉的内部结构来看,电磁炉的内部并不是很复杂:操作面板下固定了一个简单的电路板(主控电路板),一个电磁线圈,一个散热风扇,线圈下还有一块电路板(电源控制板)与操作面板的电路板通过排线连接在一起。

图 1-2 电磁炉的内部构造

操作面板下面的这块电路板就是单片机隐身的地方,如图 1-3 所示。

图 1-3 电磁炉中的单片机

我们可以观察一下这块单片机:被黑色陶瓷包裹着、外面留了 20 条“腿”、头上有一个小原点,我们能看到的就是这些了。图 1-4 给出了其外形图片和引脚定义。

图 1-4 单片机S3F9454 的外形图片和引脚定义

这就是我们要“挖”的东西,藏在我们身边的一块单片机。我们用一个简易原理图来表示其工作原理,如图 1-5 所示。

电磁炉的例子还是有些复杂,它用到的电子器件比较多。下面我们再看一个更简单的电器:电子钟。

图 1-5 电磁炉工作原理图

图 1-6 是一个万年历的产品(商业化的电子钟),显示的信息比较多,我们也可以看一个用数码管实现的简单电子钟,如图 1-7 所示。

图 1-6 万年历

图 1-7 电子钟

怎么样,图 1-7 所示的电子钟和我们常见的简易电子钟是不是很像呢?看到这个电子钟,你有没有想去实现一个这样的电子钟的冲动呢?和你一样,在学习单片机的时候,有人就用单片机自己设计了类似的电子钟,如图 1-8 所示。

图 1-8 实验板一

我们再看一个更清晰、更完整的简易电路。

图 1-9 的实验板上中间那个个头大的就是我们要找的单片机了。它上面还有一些小字,不是很清楚:AT89C51…… 这就是我们后面要讲的 51 单片机中的一种。

图 1-9 实验板二

注意观察一下这块单片机,除了也是黑色封装、外露两排“腿”之外,它的左上角还有一个小圆坑,并用一个白色的三角形标注。这个小圆坑,我们在后面会介绍,这里先让你注意一下。

现在你知道我们身边隐藏了许多单片机了吧!好,知道了我们身边有这么多的单片机,我们就进一步去认识它们、了解它们。

1.2 认识单片机

在认识单片机之前,我们先重新认识一下计算机,如图 1-10 所示。

我们重点关注计算机的主机部分,观察后可以发现计算机的外设:显示器、键盘、鼠标、音频设备,都接在计算机主机上,如图 1-11 所示。

图 1-10 计算机

图 1-11 计算机外设

仿照解剖电磁炉的过程,打开主机,观察主机内部的构造,如图 1-12 所示。

图 1-12 计算机主机内部构造

图 1-12 是计算机主机的硬件装配图,有人绘制了计算机的组成原理图,如图 1-13 所示。

图 1-13 计算机组成原理图

图 1-13 还是比较专业的,有些地方需要了解计算机的组成原理(南桥芯片、北桥芯片等),我们把CPU、北桥芯片、南桥芯片看做一个整体,重新绘制一个简单的原理图,如图 1-14 所示。

我们进一步简化原理图,将CPU、硬盘、内存看做一个整体,PIC扩展槽看做已经扩展的接口(扩展了一个并口),这样是不是更像是机箱呢?如图 1-15 所示。

图 1-14 计算机简化原理图一

图 1-15 计算机简化原理图二

从现在开始就要发挥你的想象力了,先看图 1-15,左侧的虚拟机箱看做主机,右侧的接口看做主机后面的接口电路,是不是很像计算机的主机呢?

我们进一步想象,现在把虚拟主机缩小,像科幻电影那样,最后把它的尺寸压缩到52mm×14mm(长×宽)。由于尺寸的缩小,我们把它的接口也更改一下,改为引脚式放在“迷你主机”的两侧,如图 1-16 所示。我们给它一个新的名字:“微型计算机”。

图 1-16 设想的微型计算机

由于该“微型计算机”太小,外围接口又是通过引脚引出的,我们就不能用金属外壳做它的“机箱”了,改用塑料或陶瓷将其封装起来。这样一片“微型计算机”就可以完成计算机主机的工作,因而我们可以叫它单片微型计算机,简称“单片机”;它还有另外一个名字,叫“微控制器”,英文为“Microcontroller Unit”,因而常用英文缩写MCU表示单片机。

单片机较正规的定义是:一种集成电路芯片,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的计算机系统。

至此我们已经引入了单片机的概念,下面就来学习后面将要用到的单片机:8051 单片机。

1.3 了解 51 单片机

1.3.1 51 单片机的由来

其实真的和我上面介绍单片机一样,我们人类是先发明的计算机(更精确的说法应该是先有了计算机的处理器),然后才有了单片机。下面我们就来看看 51 单片机是怎么发展而来的。

1971 年 1 月,Intel公司的霍夫研制成功世界上第一块 4 位微处理器芯片Intel 4004,它是第一代微处理器问世的标志,微处理器和微型计算机时代从此开始。微处理器芯片Intel 4004 包含 2 300 个晶体管,尺寸规格为 3mm×4mm。

1971 年 11 月,Intel推出MCS-4 微型计算机系统,该系统包括 4001 ROM芯片、4002 RAM芯片、4003 移位寄存器芯片和 4004 微处理器。MCS-4 的计算性能远远超过当年的ENIAC[很多资料称ENIAC(Electronic Numerical Integrator And Computer,电子数字积分计算机,1946 年 2 月诞生)是第一台电子计算机,因而经常拿它做比较。其实第一台电子计算机应该是ABC(Atanasoff-Berry Computer,阿塔纳索夫-贝瑞计算机),1939 年 10 月完成样机]。

1972 年 4 月,霍夫等人研制出第一个 8 位微处理器Intel 8008。由于 8008 主要采用工艺简单、速度较低的P沟道MOS(Metal OXide Semicomductor,金属氧化物半导体)电路,因此仍属于第一代微处理器。

1973 年 8 月,霍夫等人研制出新一代 8 位微处理器Intel 8080。Intel 8080 以N沟道MOS电路取代了P沟道,这标志着第二代微处理器的诞生。

1975 年 4 月,MITS(Micro Instrumentation and Telemetry Systems,微仪系统家用电子公司)发布第一个通用型Altair 8800 系统,该系统配备有一个成套工具、一个主板、一个英特尔 8080 CPU和 256B的RAM,这是世界上第一台微型计算机(个人电脑)。

1976 年,Intel公司研制出MCS-48 系列单片机。该系列单片机具有以下特点:CPU为4 位或 8 位,ROM有 1KB或 2KB,RAM有 64B或 128B,具有并行接口,无串行接口,有1 个 8 位的定时/计数器,有 2 个中断源。注意,在此之前介绍的只是处理器的研制历史,MCS-48 系列才是真正的单片机,它更像是Altair 8800 的压缩版(微型版),因而说这是单片机问世的标志。

20 世纪 80 年代初,Intel公司在MCS-48 系列单片机的基础上,推出了MCS-51 系列 8位高档单片机。MCS-51 系列单片机在集成度、存储容量(片内RAM、ROM)、功能的增强及扩展、运算速度等方面都有显著提高。

20 世纪 80 年代中期以后,Intel以专利转让的形式把 8051 内核卖给了许多半导体厂家,如AMTEL、PHILIPS、ANANOG DEVICES、DALLAS等。这些厂家生产的芯片是MCS-51 系列的兼容产品,准确地说是与MCS-51 指令系统兼容的单片机。这些单片机与8051 的系统结构(主要是指令系统)相同,采用CMOS工艺,因而常用 80C51 系列来称呼所有具有 8051 指令系统的单片机。

1.3.2 51 单片机的特点

只要具有 8051 指令系统的单片机我们都叫它 80C51 系列,有时也简称 8051 单片机或51 单片机,那么 8051 单片机有哪些特点呢?

8051 单片机包含中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元,以及数据总线、地址总线和控制总线三大总线。下面我们分别介绍。

1.中央处理器

中央处理器也叫CPU(Central Processing Unit),主要由控制器和运算器组成,是整个单片机的核心部件。CPU主要完成取指令、翻译指令、执行指令等工作,同时负责控制、指挥和调度整个单元系统协调工作,完成运算和控制输入/输出功能等操作。8051 是 8 位数据宽度的处理器,能处理 8 位二进制数据或代码。

2.数据存储器(RAM)

8051 内部有 256 个 8 位数据存储单元,分为 128 个 8 位用户数据存储单元和 128 个专用寄存器单元。其中专用寄存器只能用于存放控制指令数据,用户只能访问而不能存放数据,因而用户只有 128B(数据存储单元)可以用来存放读/写数据、定义变量、运算的中间结果等。

3.程序存储器(ROM)

8051 共有 4KB片内ROM(EEPROM或Flash),用于存放用户程序、原始数据或表格。片外可扩展 64KB的ROM,由于 8051 单片机的ROM是采用片内外统一编址的,故其最多只能寻址 64KB的ROM空间。

4.定时/计数器

8051 有两个 16 位的可编程定时/计数器(T0、T1),可用于精确定时、计时、延时、计数,检测速度、频率、脉宽,提供定时脉冲信号等。

5.并行输入/输出(I/O)口

8051 共有 4 组 8 位I/O口(P0、P1、P2 和P3 共 32 个I/O口),用于对外部数据的输入、输出操作。

6.全双工串行口

8051 内置一个全双工串行通信口,用于与其他设备间的串行数据传输。该串行口共有4种工作模式,既可以用做通用异步接收和发送器,也可以用做同步移位寄存器。

7.中断系统

8051 具备较完善的中断功能:有两个外中断(INT0、INT1)、两个定时/计数器中断和一个串行中断(串行收/发中断用一个中断号),可满足多种控制要求,并且具有 2 级的优先级别选择。

8.时钟电路

8051 内置最高频率达 12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051 单片机需外置振荡电容。

1.3.3 51 单片机的代表AT89C51

在 20 世纪 80 年代中期Intel把 8051 内核以专利转让的形式卖出后,就有很多厂家生产51 系列单片机。在众多的 51 系列单片机中,要数ATMEL公司的AT89C51、AT89S51 更实用,因为它不但和 8051 指令、引脚完全兼容,而且其片内的 4KB程序存储器是Flash工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为ATMEL AT89xx做的编程器均带有这些功能。

AT89C51 现已停产,但我们后面要用的仿真工具里有AT89C51 而没有AT89S51,因此这里还是选择AT89C51 作为实验对象。而且其代码可以直接在AT89S51 上运行,不需要做任何修改。

1.AT89C51 的主要特点

与MCS-51 产品指令系统完全兼容;

4KB可编程Flash存储器;

寿命:1 000 写/擦循环;

数据保留时间:10 年;

全静态工作:0~24MHz;

三级程序存储器锁定;

256B片内RAM(128B用户RAM,128B SFR);

32 个可编程I/O口;

两个 16 位定时/计数器;

5 个中断源(也有 6 个中断源的说法,串口收/发中断看做两个);

全双工可编程串行通道;

低功耗的空闲模式和掉电模式;

片内振荡器和时钟电路。

2.AT89C51 的外观

观察图 1-17 中左侧的外形图,了解芯片告诉我们的信息。芯片的左上角有一个小圆坑,旁边有白色的三角符号。该标志告诉我们这里是芯片的第 1 引脚,沿逆时针方向数下去,即第 1 至第 40 引脚,如图 1-17 中右图所示。该标志非常重要,我们在调试电路板,用三用表、示波器测量时找其对应引脚就要用到该标志。

图 1-17 AT89C51 外形及引脚定义

芯片上的标识:ATMEL是芯片公司的名称,后面的字符串AT89C51 24PI 0538 代表的意思就更丰富了。

AT——是ATMEL的缩写,如AT89C51、AT89S51、ATMega8 等;

8——表示该芯片是 8051 内核的芯片;

9——表示内部含Flash EEPROM存储器;

C——表示该芯片为CMOS产品,AT89S51 中的S表示该芯片具有ISP功能;

5——固定不变;

1——表示内部程序存储空间的大小,1 表示 4KB、2 表示 8KB、3 表示 12KB等;

24——表示最高工作频率是 24MHz;

P——表示封装形式是PDIP封装,同类符号还有A表示TQFP封装、J表示PLCC封装;

I——表示是工业级产品,使用温度为−40℃~85℃,同类符号还有C表示商业用产品、A表示汽车用产品、M表示军用产品等;

0538——表示生产批次,2005 年第 38 周生产;

最后就是引脚数是 40。

这就是一块芯片告诉我们的信息,我们可以利用这些信息去网上、生产厂家获取更多的信息。

3.AT89C51 的引脚定义

VCC:电源引脚。

GND:接地。

P0 口:P0 口为一组 8 位漏级开路双向I/O口,每个引脚可吸收 8 个TTL门电流,可作为高阻抗输入端使用。

P1 口:P1 口为一组内部提供上拉电阻的 8 位双向I/O口,P1 口缓冲器可接收、输出 4个TTL门电流。

P2 口:P2 口为一组内部提供上拉电阻的 8 位双向I/O口,P2 口缓冲器可接收、输出 4个TTL门电流。

P3 口:P3 口为一组内部提供上拉电阻的 8 位双向I/O口,P3 口缓冲器可接收、输出 4个TTL门电流。P3 口也可作为AT89C51 的一些特殊功能口。

RST:复位输入。当振荡器工作时,保持RST引脚两个机器周期以上的高电平将使单片机复位。

:当访问外部存储器时,地址锁存允许(ALE)的输出脉冲用于锁存地址的低 8 位。在Flash编程期间,该引脚用于输入编程脉冲(PROG)。平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。

:外部程序存储器的读选通信号。

:当该引脚保持低电平时,CPU将直接访问外部程序存储器(地址为0000H~FFFFH),不管是否有内部程序存储器。在Flash编程期间,此引脚也用于施加 12V编程电源(VPP)。

XTAL1:振荡器反向放大器及内部时钟发生器的输入端。

XTAL2:振荡器反向放大器的输出端。

4.AT89C51 与AT89S51 的区别

AT89C51 现已停产,AT89S51 是ATMEL公司推出的对应升级产品。

AT89S51 多了ISP(在线编程)功能。

AT89S51 还有一个很好用的内部看门狗。看门狗是直译的说法,即一个不断自己计数的定时器,需要不断地“喂”它(不断地复位它,表示程序自己没有死机),否则过一段时间它就会计数溢出,MCU就复位,这样可以避免程序卡死后没人管。

AT89C51 可以使用的最高晶振频率是 24MHz,AT89S51 可以使用的最高晶振频率可达33MHz。 ys64f8Nj/bTALOn+y9hA8+x/jD3emt//zpVk5LTMdcsOf6k4uVhbvy3V1RS55Szv

点击中间区域
呼出菜单
上一章
目录
下一章
×