单片机的基本组成
在讲单片机的组成之前我们先来说一下大家都熟知的计算机 一、计算机的经典结构
在设计计算机时匈牙利籍数学家冯。诺依曼提出的“程序存储\"和“二进制运算”的思想。 1、二进制运算决定了计算机的硬件结构。
二进制运算包括二进制算术运算和逻辑运算(逻辑运算的基础是逻辑代数,又称布尔代数)。逻辑量只表示两种不同的状态,可以对应电子线路中的电阻高低、二极管、三极管的通断等。因此,二进制运算决定了计算机可以由电子元器件,特别是集成电路组成。
2、 程序存储决定了软件控制硬件工作。因此,计算机的基本结构包括硬件和软件两部分。
计算机的工作原理:由输入设备将软件送入存储器,然后由控制器逐条取出存储器中的控制软件,并运行,再将运行结果送到输出设备。 3、计算机的经典结构
根据以上思路,计算机由运算器、控制器、存储器和输入设备、输出设备组成.
图1。1.1 计算机经典结构图
对经典结构中各部分有机组合,就构成了微型计算机.由于各部分的具体电路(元器件及元器件的组合方式)不同,又形成了各种应用形态。
二、微型计算机(Microcomputer)组成及应用形态 1、 微型计算机组成
将经典结构中的运算器、控制器组合在一起,再增加一些寄存器等,集成为一个芯片,这个芯片称为微处理器(Microcontroller),即CPU(Center Processing Unit )。这样微型计算机就由CPU、存储器、输入/输出(I/O)接口组成。再配以输入/输出(I/O)设备和软件,就构成了微型计算机应用系统,简称微型计算机.
图1.1。2 微型计算机系统结构图
2、 应用形态
(1)系统机(多版机)
微处理器CPU、存储器、I/O端口电路和总线接口等组装在一块主板上,再通过系统总线和外设适配卡连接键
(完整版)单片机的基本组成
盘、显示器、打印机等,再配上系统软件就构成了一个完整的计算机系统。
图1。1。3 微型计算机结构图
这就是办公室、家庭使用的PC机的典型形态。由于较大的存储容量(存储器、硬盘、软盘、光盘等),输入、输出设备齐全,而且软件丰富(系统软件和应用软件),能够进行海量计算和应用系统开发.
(2)单板机
将CPU、存储器、I/O接口芯片和简单的I/O设备等装配在一块线路板上,再配上监控程序(固化在ROM中)就构成了单板机。
图1.1.4 单板机结构图
实验开发系统就是单板机的典型形态:由于有硬件和软件,能独立运行,但I/O设备简单,特别是软件资源少(只有监控程序),不能应用于海量计算和大型应用程序的开发,主要用于计算机原理教学和简单的测试(调试)系统。 三 单片机
将CPU、存储器、I/O接口电路集成到一块芯片上,这个芯片称为单片机。
图1.1.5 单片机结构图
单片机作为一片集成了微型计算机基本部件的集成电路芯片,与通用计算机相比,自身不带软件,不能独立运行;存储容量小,没有输入、输出设备,不能将系统软件和应用软件存储到自身的存储器中并加以运行,它自身没有开发功能。所以,必须借助开发机(一种特殊的计算机系统)来完成开发任务。即相应的软、硬件设计和调试以及将调试好的程序固化到自身的存储器中。
完成单片机的硬件和软件设计、调试,把软件固化(下载)到单片机应用系统中,是《单片机原理与应用》
(完整版)单片机的基本组成
课程的主要学习任务,也是检查这门课程学习效果的基本标准。 1、 单片机开发系统和单片机应用系统开发
单片机开发系统又称为开发机或仿真机。 单片机的实质仍然是计算机,其工作的基本条件就是软件配合硬件才能正常工作.但单片机自身没有开发能力.即不能用自身系统检查硬件故障和软件错误;也不能用自身的系统将软件程序写入自己的存储器中。在设计计算机应用系统时,完成软件、硬件设计后,必须使用开发系统(其它设备)完成软件、硬件的测试和程序写入。完成这一目标的过程,称为单片机应用系统的开发。完成开发的设备,称开发系统(仿真器)
2、 单片机应用系统开发方式
(1)、仿真:利用开发机的资源(CPU、存储器、I/O设备等)来模拟欲开发的单片机应用系统(即目标机)的CPU、存储器和I/O操作,并跟踪目标机的运行情况。然后再将调试好的程序固化到目标机中.即把开发机上的单片机出借给目标机,因为开发机本身具有开发能力,通过开发机调试目标机,调试完成后,再把程序固化到目标机,目标机就可以独立运行了。 1)、独立型仿真机开发
独立型仿真器采用与单片机应用系统相同类型的单片机做成单板机形式,板上配有LED显示器和简单键盘,,可以进行源程序的编辑、汇编、运行调试. 2)利用非独立型仿真器开发
独立式仿真器还配有串行按口,能与普通微机系统连接,利用普通微机系统配备的组合软件进行源程序的编辑、汇编和联机仿真器,用仿真器进行程序固化. (2)在系统与在应用仿真
将单片机先安装到印制线路板上,然后通过PC机将程序下载到目标系统,实现在系统和在应用编程功能。具有这种功能的单片机内部必须具有EPROM或FLAS侦测逻辑电路,调试器和烧写器。如:SST公司的SST89E54, 89E58;MICROCHIP公司PIC16F87X;ATMEL公司的AT89S5X等单片机芯片均有此功能。 3)MCS—51是美国INTEL公司生产的一个高档8位单片机系统的总称.属于这一系列,即以51为核心的单片机芯片主要有:8031/8051,8751;8032/8052;80C51/87C51/80C31;还有ATMEL公司的AT89S51,AT89S51等品种,它们的工作原理和内部构架相同,引脚和指令系统相互兼容,主要在内部功能单元数量,存储器类型和容量以及应用上有些区别. 一、单片机内部结构
从功能上划分,MCS-51内部结构可以分为5个部分:CPU、存储器、I/O端口、定时/计时器、中断系统。 概述:
(完整版)单片机的基本组成
MCS-51结构图
1、 CPU结构
8051内部CPU是一个字长为8位的中央处理单元(center processing unit)它对数据的处理是按资字节为单位的。
CPU包括三部分:运算器、控制器和专用寄存器。
(1) 运算器:由一个算术逻辑单元ALL、一个布尔处理器和两个8位暂存器组成.能给实现数据的四则运
算(加、减、乘、除),逻辑运算(与、或、非、异或等),数据传递,移位,判断,程序转移等功能。 (2) 控制器:由指令寄存器IR,指令译码器ID,定时及控制逻辑电路等组成。
指令寄存器IR保存当前正在执行的一条指令.指令的内容含指令操作码和地址码。操作码送往指令译码器ID,经译码后形成相应的微操作信号,地址码送往操作数地址形成电路,以形成实际的操作数地址。定时与控制部件完成取指令、执行指令、存取操作数和运算结果,向其它部件发出各种控制信号,协调各部件的工作。
(3)专用寄存器:主要用来指示当前要执行指令的内存地址,存放操作数和指示指令执行后的状态。包括程
序计数器PC、累加器A、程序状态字PSW寄存器,堆栈指示器SP。数据指针DPTR寄存器和通用寄存器B。
1)程序计数器PC( program counter)
a)定义:程序计数器PC是一个二进制16位的程序地址寄存器,是由16个触发器构成的计数器。寻址
16
范围2=64K。是MCS—51单片机中唯一一个16位寄存器.
b)功能:用来存放将要执行指令的内存地址,CPU既可以对它并行存取,又可自动加“1”。
迄今为止,世界上的所有电子计算机仍然是冯.诺依曼式的。这就是说,计算机的程序是以二进制形式存放在内存储器中,CPU的任务是自动逐条执行已放入内存中的指令,以完成某项任务。为了确保CPU能自动连续执行程序,芯片设计师专门在CPU中集成了一个程序计数器PC,在程序执行前用来存放程序在内存中的起始地址。CPU根据PC中的地址就可以到内存中取出第一条指令的第一个字节,PC随后加“1”,自动指向第一条指令的第二个字节;CPU再根据PC就可以取出第一个指令的第二个字节;PC
(完整版)单片机的基本组成
再次自动加“1\"指向第一个指令的下一个字节或第二条指令的第一个字节。以此类推.这样,CPU在执行完第一条指令时,PC实际上已得到了第二条指令的起始地址.因此,人们只要在程序执行前预先把要执行的程序的指令码按照顺序放到程序存储器中,并把要执行的程序的起始地址放入程序计数器PC,CPU就能让程序自动执行.PC的自动加“1”功能确保了存储器中程序的连续执行。 在单片机设计中,在电路结构上设计成单片机复位时PC=0000h,故,程序的首起始地址通常0000h开始。 2)累加器(accumulator)
a)定义:累加器A又记作ACC,是一个具有特殊用途的二进制8位寄存器. b)功能:专门用来存放操作数和运算结果。 最初的计算机,其操作数包括四部分地址. 操作码 第一操作数 第二操作数 结果操作数 下条指令地址 操作码字段用于指示机器执行何种操作。第一操作数用于指示两个操作数中第一个操作数在内存中的地址;第二操作数可以使机器找到参加运算的第二个操作数;结果操作数用于存放操作结果。下一条指令地址,指示机器按此地址取出下一条要执行指令的指令码.这种指令格式的特点是层次、概念清楚,逻辑关系简单明了.缺点是指令码太长,严重影响了指令的执行速度.
MCS-51单片机采用了地址压缩技术,把四字段地址压缩到一个,故称单地址指令格式。 操作码 操作数
其中“操作数”相当与四地址中的“第一操作数”。“第二操作数\"和“结果操作数\"合二为一,由累加器A充任.物理地址为E0H,且在操作码中隐含.在助记符中写有A等,只是为了便于理解,它的二进制代码是隐含在操作码中的。“下一条指令地址由程序计数器PC充当。PC自动加“1\",就能使MCS—51连续按顺序执行程序.因此在指令执行前,用户通常必须要安排一条传送指令,预先把第二操作数传送到累加器A.
3)通用寄存器B(General Purpose Register)
a)定义:通用寄存器B也是一个8位二进制的寄存器,是专门为乘法和除法设置的寄存器,但也是可以作为普通寄存器使用。
b)功能:在做乘法和除法之前,用来存放乘数和除数,在乘法和除法完成后,用来存放积的高八位和除
法的余数。
4)程序状态字PSW(program status word) a)定义:程序状态字PSW也是八位二进制寄存器 b)功能:用来存放指令执行后的状态(程序设计中,可以根据状态来控制程序执行).PSW中有的位的值(状
态),通常是在执行指令的过程中由硬件电路自动形成的,如:CY,AC,OV,P位,有的也可以根据需要采用位送指令加以改变,如:FO,RSI,RSO位.各位的定义如下: PSW CY AC FO RSI RSO OV __ P
其中:
CY(carry):进位标志位,用于表示加减运算过程中最高位(累加器A7)有无进位或借位。有进位或借位CY=1,否则CY=0。 AC(auxiliary carry):辅助进位标志位,用于表示加减运算中累加器低四位(A3)有无向高四位(A4)
进位或借位,有:AC=1,无:AC=0。 F0(FLAG ZERO):用户标志位。它是用户根据需要通过传送指令确定的,用于决定用户程序的流向.
RS1,RS0:寄存器组选择位,即它控制(选择)了当前使用的寄存器组,也就是它确定了当前使用寄存器组
的物理地址.
在MCS—51的片内存储器中,有32个8位寄存器,但这32位寄存器只给出了8个寄存器的地址.R0--——
。为了用这8个地址表示32个寄存器(存储空间),只能将这32个寄存器进行分组,-R7(通常用Rn表示)
即分成4组.这样,用R0—-—-—R7,即Rn就可以表示这4组中的任意一组中的一个寄存器(均是8位的)。也就是说通过分组后,从逻辑上能用Rn把它们区分开来.如R0-代表(第0组的)第一个寄存器,则R5就表示(第0组的)第六个寄存器。故将Rn称为这32个工作寄存器的逻辑地址。“逻辑”概念的实质就是各
(完整版)单片机的基本组成
组之间相互区分与屏蔽,达到方便保护其中数据的目的.但是,用Rn只能区分某一组中的8个寄存器,
2
具体使用了哪一组,还要其他条件,即RS1 RS0。既然共有四组,可用2表达.故可以通过改变RS1 和RS0的值决定哪一组的R0-————R7.这对我们进行程序设计是非常有利的。
OV(overflow)溢出标志位:提示运算结果是否发生了溢出,即累加器A中运算结果是否超出了其能表示的
数的范围,即-128——+127,由机器执行过程中自动形成。溢出OV=1,否则OV=0。人们可以根据OV的状态判断结果是否正确。 计算公式为:OV=CPCS=CP*CS+CP*CS
其中CP为最高进位位,CS是次高进位位。
P(Pority):奇偶标志位。用于指示运算结果中“1”的个数的奇偶行。机器执行中自动形成.若“1”的个数
为奇数,则P=1 ,为偶,P=0. 5)堆栈指针SP(STACK POINTER)
a)定义:SP是一个8位寄存器,能自动加“1\"或减“1” b)功能:专门用来寄放堆栈的栈顶地址。
MCS-51中,在片内RAM中设置了一个特殊的存储区。CPU对这个区域的数据存取时必须按照“先进后出”或“后进先出”的原则进行。这样的特殊存储区域称为堆栈。为了实现对堆栈中数据的操作,芯片设计者在CPU中设计了一个堆栈指示器SP,存放堆栈元顶地址。SP具有自动加“1\"或减“1”功能,使得SP中的数据始终是栈顶地址。CPU根据SP中的地址对堆栈中的数据进行存取。在SP中地址的变化方向上,MCS-51采用的是上推堆栈的设计方案,即数据入栈时SP中地址增长,故当堆栈中没有数据时,栈顶与栈底地址必定重合。
8051的片内共有128B的RAM存储单位,地址范围为00H~FFH,原则上,这个区域中的任何子域都可以作为堆栈区。实际应用中,常使用30H—7FH中的部分空间作为堆栈区。堆栈在片内RAM中的具体物理位置,由堆底决定。可以用下列指令定义:mov sp,#data 这样就定义了从data+1~7FH为堆栈区 6)数据指针DPTR(DATA POINTER)
a)定义:DPTR是一个16位寄存器,由两个8位寄存器DPH和DPL拼接而成。
b)功能:用来存放片内ROM的地址,也可用来存放片内外RAM和ROM的地址. 2、 存储器
MCS-51的存储器不仅有ROM和RAM之分,而且有片内和片外之分。MCS-51片内存储器集成在芯片内部,是MCS—51的一个组成部分;片外存储器是外按的专用存储器芯片。MCS-51只提供地址和控制命令,需要通过印刷电路板上三总线才能联机工作。 在物理上设有4个存储空间
片内程序存储器 程序存储空间ROM
片外程序存储器
片内数据存储器 数据存储空间RAM
片外数据存储器
MCS—51对这些空间的存取(访问)是通过不同的控制信号和不同的指令进行的。故这4个物理空间在逻辑上,又可以划分为3个逻辑空间,即:
片内,片外统一编址的64KROM
片内128B数据存储空间,+SFR
(完整版)单片机的基本组成
片外,64K数据存储空间
MCS—51存储器的地址分配是教材P24,图2。12和图2。13
片内RAM:80C51片内RAM共有128B存储单元,分为工作寄存器区 (00H-1FH ),位寻地址(20H—2FH)和通用寄存器区(30H-7FH)。 工作寄存器用Rn(R0-R7)进行逻辑区分,再配合RS1,RS0
位寻地址(P27表2.3)的16个单元具有双重功能,它们既可以进行字节存取,又可以进行位存取。进行位存取时,位地址的表示方法有两种,一种就是直接分配给每一位一个特定的地址(16×8=128位)故其地址范围为00H—7FH,见P27表2。3;另一种方法是采用字节地址和位数相结合的方法表示某一位地址,如09H这个位可以表示成21H。1。
在MCS—51单片机中,还设置21个特殊功能寄存器(SFR).特殊功能寄存器(SPECIAL FUNETIN REGIDTER)是MCS—51的各功能部件的状态及控制寄存器。SFR综合的,实际的反映了整个单片机的基本系统内部的工作状态及工作方式。它们与片内RAM统一编址,它们离散地分布在80H—FFH的地址空间中,字节地址能被8整除的(即十六进制的地址码尾数为0或8的)单元 可以进行字节寻址或位寻址。 访问SFR只允许用直接寻址方式,而且地址的表示方法也只能用符号地址或物理地址(即要用寄存器的名称符号,而不是寄存器号。如累加器的名称符号为ACC,它的寄存器号为A)。P28表2。4。 3、 I/O端口
I/O端口,也称为I/O接口或I/O通路
功能:是MCS—51与外部实现控制和交换的通道,分为并行端口和串行端口. (1)并行I/O端口
80C51有4个I/O端口,分别为P0—P3,它们都有双向功能 每个端口都有一个8位数据输出锁存器和一个8位的数据输入缓冲器。4个锁存器与端口名称相同,皆为SFR中的一个。由于4个端口的结构不同,它们的功能和作用也不同,通常P0口作为低8位地址输出口,同时又可以用作数据输入/输出口,故其后一般跟一个地址锁存器对低位地址锁存。P2口作为高8位地址输出口,还可以用作译码控制信号。P1口常用作通用I/O口,为CPU传送用户数据。P3口除作为通用I/O端口外,还具有第二功能.P29表2-5
当4个口作为通用的I/O口是,共有三种操作方式,其含义为:
写端口:即写到端口,就是把CPU中的A或其它寄存器中的数据传送到端口锁存器中,然后由端口
自动输出到引脚线上。
读端口:即读出端口,就是把端口锁存器中的数据输送到累加器A中。 读引脚:即读出引脚,就是把引脚上的外部数据输送到内部。
读引脚时一定要先关断端口,即先将端口锁存器置位,这样锁存器的输出使驱动器T3截止,引脚上的信号就可以通过三态缓冲器输入到内部总线上。故读引脚时,必须同时有两条指令:ORL P1,#0FFH
MOV A,P1
(2)串行I/O端口
80C51是具有一个全双工可编程串行I/O端口。故可以由TXD串行发出,又可以由RXD串行接收。它们都利用了P3口的第二功能:RXD(P3.0),TXD(P3。1)。
注:串行通信的三种方式:
发射器 接收器 1)、单工方式:数据只能向一个方向传输. 2)、半双工方式:允许数据向两个方向传输,但不能同时传输,只能交替进行。因此,可以利用一条传输线进行两个反方向的数据传送。
接收器 发射器 3) 、全双
接收器 工方式:数据可以同时向两个相发射器 反方向传输,因此,需要两条
(完整版)单片机的基本组成
独立的数据通道分别传送两个相反方向数据。
发射器
4、 定时/计数器:
接收器 发射器 接收器 80C51中有2个16位的定时/计数器T0,T1,它们有定时和计数两种模式。具体内容在以后章节中专门
讨论。
5、 中断系统
80C51可以处理5个中断源发出的中断请求,其中2个外部中断请求INT0,INT1,2个内部定时/计数器中断请求T0,T1,一个内部串行口中断请求.具体内容在以后章节中专门讨论。
因篇幅问题不能全部显示,请点此查看更多更全内容