第1章 51单片机的基础知识 联系客服

发布时间 : 星期六 文章第1章 51单片机的基础知识更新完毕开始阅读810a93d433d4b14e8524688d

第1章 51单片机的基础知识

单片机全称单片微型计算机(Single Chip Microcomputer),即SCM。是一种将中央处理器(CPU)、存储器(RAM、ROM)、I/O接口电路、定时/计数器、串行通信接口及中断系统等部件集成到一块硅芯片上构成的相对完整的微型计算机系统。

单片机最初主要应用于控制领域,因而准确反映单片机本质的称谓应该是微控制器MCU(Micro Controller Unit),目前国际上大多采用MCU来代替SCM,而MCU也成了单片机领域公认的、最终统一的名词。但在国内,因“单片机”一词已约定俗成,故仍然用单片机来表示MCU,即本书所谓的“单片机”,实际上指的是MCU。

1.1 MCS-51系列单片机的基本结构

MCS-51系列单片机基于简单的嵌入式控制系统结构,被广泛应用于从军事到自动控制再到 PC 机键盘上的各种应用系统上,是我国目前应用最广泛的单片机系列。很多制造商都提供基于8051内核的MCS-51系列单片机,如Intel、Philips、Siemens 、Atmel、Winbond

2

等,这些制造商给MCS-51系列单片机加入了大量的性能和外部功能,如IC总线接口、A/D转换、看门狗、PWM 输出等,不少芯片的工作频率可达40MHz,工作电压下降到1.5V。基于一个内核的这些功能使得MCS-51系列单片机很适合作为厂家产品的基本架构,它能够运行各种程序,而开发者只需要学习这一个平台。本章以Intel的8051单片机为例介绍MCS-51系列单片机的基本知识。

1.1.1 MCS-51单片机的硬件组成及内部结构

1. MCS-51单片机的硬件组成

MCS-51单片机片内包含以下几个基本部件: ① 1个8位的CPU,用于进行运算和控制 ② 1个片内的振荡器及时钟电路 ③ 32个I/O口(4组8位端口),可单独寻址 ④ 2个16位定时计数器 ⑤ 1个全双工串行通信口

⑥ 5个中断源,两级中断优先级嵌套

⑦ 128字节内置 RAM,可用作寄存器和数据缓冲器

⑧ 4K字节的内置程序存储器ROM(不同型号单片机的内置ROM大小可能不同)

⑨ 可独立寻址64K外部数据存储器和64K外部程序存储器的控制电路(通过不同的指令分别寻址外部数据存储器和程序存储器)

MCS-51系列单片机的处理周期包括12个振荡周期,每12个振荡周期用来完成一项操作,如取指令或执行指令。计算指令执行时间可把时钟频率除以12,取倒数然后乘以指令执行所须的周期数。如果系统的时钟为11.059MHz,除以12后就得到了每秒执行的指令个数为921583条指令,取倒数将得到执行每条指令所须的时间为1.085ms。 2.MCS-51系列单片机的内部结构

MCS-51系列单片机的内部结构框图如图1-1所示。

- 1 -

图1-1 8051单片机的内部结构

1.1.2 MCS-51单片机的引脚功能

MCS-51系列单片机一般采用40个引脚,双列直插式封装,用HMOS工艺制造,其外部引脚排列如图1-2所示。其中,各引脚的功能为:

(a) DIP引脚图 (b) 逻辑符号

图1-2 8051单片机的引脚

⑴ 主电源引脚 Vcc(40脚):接+5V电源 Vss(20脚):接电源地

一般Vcc和Vss间应接高频去耦电容和低频滤波电容。 ⑵ 外接晶体或外部振荡器引脚

- 2 -

XTAL1(19脚):接外部晶振的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器OSC。当采用外部振荡器时,此引脚应接地。

XTAL2(18脚):接外部晶振的另一个引脚。在片内接至反相放大器的输出端和内部时钟电路的输入端。当采用外部振荡器时,此脚接外部振荡器的输出端。

⑶ 控制信号线 RST/VPD(9脚):复位信号输入端,复位/掉电时内部RAM的备用电源输入端。

ALE/PROG(30脚):地址锁存允许/编程脉冲输入。用ALE锁存从P0口输出的低8位地址;在对片内EPROM编程时,编程脉冲由此输入。

PSENEA(29脚):外部程序存储器读选通信号,低电平有效。

/VPP(31脚):访问外部存储器允许/编程电压输入。EA为高电平时,访问内部存储

器;低电平时,访问外部存储器。对片内EPROM编程时,此脚接21V编程电压。 ⑷ 多功能I/O口引脚

MCS-51系列单片机设有4个双向I/O口(P0、P1、P2、P3),每一组I/O口线都可以独立地用作输入或输出口,其中:

① P0口(32~39脚)——双向口(三态),可作为输入/输出口,可驱动8个LSTTL门电路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低8位地址与数据总线分时使用P0口:先送低8位地址信号到P0口,由地址锁存信号ALE的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。

② P1口(1~8脚)——准双向口(三态),可驱动4个LSTTL门电路。用作输入线时,P1口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。

③ P2口(21~28)——准双向口(三态),可驱动4个LSTTL门电路。可作为输入/输出口,实际应用中一般作为地址总线的高8位,与P0口一起组成16位地址总线,用于对外部存储器的接口电路进行寻址。

④ P3口(10~17脚)——准双向口(三态),可驱动4个LSTTL门电路。双功能口,作为第一功能使用时,与P1口一样;作为第二功能使用时,每一位都有特定用途,其特殊用途如表1-1所示:

表1-1 P3口的第二功能

端口引脚 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 第二功能 RXD TXD /INT0 /INT1 T0 T1 /WR /RD 注 释 串行口数据接收端 串行口数据发送端 外中断请求0 外中断请求1 定时/计数器0外部计数信号输入 定时/计数器1外部计数信号输入 外部RAM写选通信号输出 外部RAM读选通信号输出 1.1.3 MCS-51系列单片机的CPU

MCS-51系列单片机的核心部件是一个8位高性能中央处理器CPU,其作用是读入和分析每条指令,根据每条指令的功能要求,控制单片机的各个部件执行具体指令的操作。MCS-51系列单片机的CPU由8位运算器(算术/逻辑运算部件)ALU、布尔处理器、定时/控制部件和若干寄存器等主要部件组成。 1. 算术/逻辑运算部件ALU

- 3 -

MCS-51系列单片机的ALU由一个加法器、两个8位暂存器(TMP1和TMP2,对用户不开放)和一个性能强大的布尔处理器组成。既可以进行加、减、乘、除等四则运算,又可以完成与、或、非、异或等逻辑运算,还可以执行数据传送、移位、判断及程序转移等操作。

布尔处理机是单片机CPU中一个独立的位处理机,用于完成位运算。在软件上,它有相应的指令系统,可提供17条位操作指令;在硬件上,它有自己的“累加器”(进位位C)和自己的位寻址RAM和I/O空间。 2.定时控制部件

定时控制部件由定时控制逻辑、指令寄存器IR和一个由反向放大器构成的振荡器OSC等电路组成。OSC是控制器的心脏,能为控制器提供时钟脉冲,其反相器的输入/输出端分别接单片机的XTAL1和XTAL2管脚;指令寄存器用于存放从程序存储器中取出的指令码;定时控制逻辑用于对IR中的指令进行译码,并在OSC的配合下产生指令的时序脉冲,以完成相应指令的执行。 3.专用寄存器组

专用寄存器组主要用来指示当前要执行指令的内在地址、存放操作数和指示指令执行后的状态等,是任何一台计算机的CPU都不可缺少的组成部件,其寄存器的多少、位数因机器的型号而不同。MCS-51系列单片机的专用寄存器组主要包括累加器A、程序指针计数器PC、程序状态字寄存器PSW、堆栈指针寄存器SP、数据指针寄存器DPTR和通用寄存器B等。

⑴ 累加器A

累加器A(又记作ACC)是最常用的一个8位专用寄存器,专门用来存放操作数或运算结果。进入ALU作算术运算或逻辑运算的操作数很多来自ACC,操作的结果也常送回ACC。

⑵ 通用寄存器B

通用寄存器B是专门为乘法和除法指令设置的寄存器,也是一个8位寄存器,该寄存器在执行乘法或除法指令前用来存放乘数或除数,在乘法或除法运算完成后用于存放乘积和高8位或除法的余数。

⑶ 程序指针计数器PC

程序计数器PC是一个16位的程序地址寄存器,用来存放下一条将要执行指令的16位首地址,可对64K程序存储器(片内和片外统一编址)进行寻址。对外部程序存储器寻址时,PC内容的低8位由P0口输出,高8位由P2口输出。

⑷ 程序状态字PSW

程序状态字PSW是一个8位标志寄存器,用来存储指令执行后的有关状态,其各标志位的定义如下所示,其中,PSW7为最高位,PSW0为最低位。

PSW7 PSW6 PSW5 PSW4 PSW3 PSW2 PSW1 PSW0

CY AC FO RS1 RS0 OV P ① 进位标志CY:加法(减法)运算时,如果最高位D7有进(借)位,则CY=1,否则CY=0;位处理时,它起着“位累加器”的作用。

② 辅助进位标志AC:加(减)法运算时,如果低半字节的最高位D3有进(借)位,则AC=1,否则AC=0;CPU根据AC标志对BCD码的算术运算结果进行调整。

③ 用户标志FO:是用户定义的一个状态标志。可通过软件对它置位、清零;在编程时,也常测试其状态进行程序分支。

④ 工作寄存器区选择位RS1、RS0:可借软件置位或清零,以选定4个工作寄存器区中的一个区投入工作。

⑤ 溢出标志OV:作有符号数加法、减法时由硬件置位或清除,以指示运算结果是否溢出。

- 4 -