的增删十分方便。
(4)I/O接口和外设
I/O接口是架设在微处理器和外设间的桥梁,是一种过渡的大规模集成电路芯片。由于大多数外部设备部是机电型的,工作速度较慢,因此微处理器MPU通常不和它们直接相连,而是通过I/O接口缓冲后再和外设相连,以便实现速度、电平和信号性质的匹配。
2.1.2 微型计算机的基本工作原理
微型计算机是通过执行程序来工作的,机器执行不同程序就能完成不同的运算任务。因此,微型计算机执行程序的过程实际上也体现了微型计算机的基本工作原理。为此,我们先从指令和程序谈起。 (1).微处理器的指令系统和程序编制
前面已经谈到,指令是一种可以供机器执行的控制代码,故它又称为指令码。指令码由操作码和地址码构成;操作码用于指示机器执行何种操作,地址码用于指示参加操作的数在哪里,其格式为:
指令码的二进制形式既不便于记忆,又不便于书写,故人们通常采用助记符形式来表示。如表2-1所列。
表2-1 指令的三种形式
指令的集合或指令的全体称为“指令系统”。微处理器类型不同,它的指令系统也不一样。例如:Z82有698条,Intel8085有78条,MCS-51系列单片机有111条指令,等等。所谓程序就是采用指令系统中的指令根据题目要求排列起来的有序指令的集合。
程序的编制称为“程序设计”。通常,设计人员采用指令的汇编符(即助记符)形式编程的,这种程序设计称为汇编语言程序设计。显然,设计人员如果不熟悉机器的指令系统是无法编出优质高效程序的。 (2)微型计算机执行程序的过程
为了弄清微型计算机的工作原理,现以如下的Y=5+10求和程序来说明微型计算机的工作过程。
7405H MOV A, #05H ; A←05H 240AH ADD A, #0AH ; A←5+10 80FEH SJMP $ ; 停机
- 6 -
该程序由三条指令组成,每条指令均为双字节指令(即第一字节为操作码,第二字节为地址码)。第一条指令的含义是把05H传送到累加器A;第二条指令是加法指令,它把累加器中的5和立即数10相加,结果保留到累加器A中。第三条是停机指令,机器执行后处于动态停机状态。为了说明程序的执行过程,现在假设上述程序的指令码已装入从2000H开始的存储器区域,共占用6个存储单元,程序计数器PC中也预先放入初值地址2000H,以便机器可以根据PC中地址从第一条指令处执行程序,如图2-5所示。
1)第一条指令的执行过程 第一条指令为双字节指令,第一字节为操作码74H,它指示机器进行传送操作,操作数05H在指令的第二字节,即:2001H内。执行步骤为:
①微操作控制器使程序计数器PC中初值地址2000H送入地址寄存器AR后发出读命令,同时使程序计数器PC中内容自动加1而变成2001H,以便为取指令的第二字节预作准备。
②存储器根据地址寄存器中地址2000H,在读命令控制下完成读出操作码74H和送入数据寄存器DR中的任务。
③微操作控制序列继续使DR中操作码74H经指令寄存器IR缓冲后送人指令译码器ID。
④指令译码器1D结合时序部件产生74H操作码的微操作序列,该微操作序列把程序计数器PC中地址2001h送人AR后发出新的读命令,同时又使程序计数器PC自动加1,而变成2002H,为取第二条指令操作码24H作准备。
图2-5 指令执行操作示意图
- 7 -
⑤存储器在新的AR中地址2001H和74H微操作序列的共同作用下,把2001H单元中05H送入数据寄存器DR。
⑥74H微操作控制序列使数据寄存器DR中05H操作数送人累加器A中。 至此,第一条指令的执行宣告完成。 2)第二条指令的执行过程 第二条指令也是双字节指令,第一字节为操作码24H,指示机器进行加法操作,两个操作数中一个在累加器A中,另一个在指令的第二字节。执行步骤为:
①第一条指令执行完后,程序计数器PC中内容已变为2002H,微操作控制器也使程序计数器PC中2002H送入地址寄存器后向存储器发出读命令,同时又使PC中内容加l而变为2003H,使PC指向第二条指令的第二字节。
②存储器在地址寄存器AR中2002H和读命令作用下,读出操作码24H和送到数据寄存器DR中。
③微操作控制器发出的微操作控制序列使DR中的24H操作码送人指令寄存器IR,并通过它进入指令译码器ID。
④指令译码器ID也结合时序部件使微操作控制器产生24H的微操作控制序列,该微操作控制序列又使程序计数器PC中2003H送入AR和发出读命令,还使PC自动加1而变为2004H,使PC指向第三条指令的第一字节地址。
⑤24H微操作控制序列把存储器读出的操作数0AH从DR送入TMP,并会同累加器A中的另一操作数05H,完成两数求和操作以及把操作结果经过内部总线送人累加器A,以完成本条指令执行。
3)第三条指令的执行过程
第三条指令的执行过程和第一、二两条类似,所不同的是第三条指令执行后,MPU处于动态停机状态,在此不再赘述。
- 8 -
2.2 MCS-5l单片机结构与时序
MCS-5l是美国Intel公司的8位高档单片机系列,是在MCS-48系列基础上发展而来的.也是我国目前应用最广的一种单片机系列。在这个系列里,有多种机型,性能特点也各不相同。本节主要以8051为主线叙述MCS-51单片机的内部结构、引脚功能、工作方式和时序。
2.2.1 MCSS—51单片机内部结构
在MCS-5l系列里,所有产品都是以8051为核心电路发展起来的,他们都具有8051的基本结构和软件特征。从制造工艺来看,MCS-51系列中的器件基本上可分为HMOS(High-speed MOS,高速MOS)和CMOS两类(见表2-2)。CMOS器件的特点是电流小且功耗低(掉电方式下消耗10uA电流),但对电平要求高(高电平大干4.5V,低电平小于0.45V,HMOs对电平要求低(高电平大干2.0V,低电平小于0.8V),但功耗大。
表2-2 MCS-51系列芯片及制造工艺
8051单片机内部包含了作为微型计算机所必需的基本功能部件,各功能部件相互独立地集成在同一块芯片上。8051内部结构如图2-6所示。如果把图中ROM/EPROM这部分电路移走,则它和8031的内部结构相同。为了进一步介绍805l或8031内部结构和工作原理.现把图中各功能部件划分为CPU、存储器、I/O端口、定时器/计数器和中断系统等五部分加以介绍。 2.2.1.1 CPU结构
8051内部CPU是一个字长为二进制8位的中央处理单元,也就是说它对数据的处理是按字节为单位进行的。与微型计算机CPU类似,8051内部CPU也是由运算器(ALU)、控制器(定时控制部件等)和专用寄存器组三部分电路构成。 (1)算术逻辑部件(ALU)
8051的ALU是一个性能极强的运算器,它既可以进行加、减、乘.除四则运算,也可以进行与、或、非、异或等逻辑运算,还具有数据传送、移位、判断和程序转移等功能。8051 ALU为用户提供了丰富的指令系统和极快的指令执行速度,大部外指令的执行时间为1us,乘法指令可达4us。
8051 ALU由一个加法器.两个8位暂存器(TMP1和TMP2),和一个性能卓著的布尔处理器(图中未画出)组成。虽然TMPl和TMP2对用户并下开放,但可用来
- 9 -
为加法器和布尔处理器暂存两个8位二进制操作数。8051时钟频率可达12MHZ。 (2)定时控制部件
定时控制部件起着控制器的作用,由定时控制逻辑、指令寄存器和振荡器OSC等电路组成。指令寄存器IR用于存放从程序存储器中取出的指令码,定时控制逻辑用于对指令寄存器中的指令码进行译码,井在OSC的配合下产生执行指令的时序脉冲,以完成相应指令的执行。
图2-6 MCS-51内部结构框图
OSC(OSCillator)是控制器的心脏,能为控制器提供时钟脉冲,图2-6为HMOS型单片机内部的OSC电路.图中.引脚XTAL为反相放大管Q4的输入端,XTAL2为Q4的输出端。只要在引脚XTAL1和XTAL2上外接定时反馈回路,OSC就能自激振荡。
定时反馈回路常田石英晶振和电容组成,如图2-7所示。OSC振荡器产生矩形时钟脉冲序列,其频率是单片机的重要性能指标之一.时钟频率越高,单片机控制器的控制节拍就越快,运算速度也就越快;因此,不同型号的单片机所需要的时钟频率也是不相同的。 (3)专用寄存器组
专用寄存器组主要用来指示当前要执行指令的内存地址、存放操作数和指示指令执行后的状态等。它是任何一合计算机的CPU不可缺少的组成部件,其寄存器的多寡因机器型号的不同而异。专用寄存器组主要包括程序计数器PC.累加器A、程序状态字PSW、堆栈指示器SP、数据指针DPTR和通用寄存器B等。
- 10 -