单片机的基本组成在讲单片机的组成之前我们先来说一下大家都熟知的计算机一、计算机的经典结构在设计计算机时匈牙利籍数学家冯.诺依曼提出的“程序存储”和“二进制运算”的思想。
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公司的A T89S5X等单片机芯片均有此功能。
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个触发器构成的计数器。
寻址范围216=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位。
各位的定义如下:其中:CY(carry):进位标志位,用于表示加减运算过程中最高位(累加器A7)有无进位或借位。
有进位或借位CY=1,否则CY=0。
AC(auxiliary carry):辅助进位标志位,用于表示加减运算中累加器低四位(A3)有无向高四位(A4)进位或借位,有:AC=1,无:AC=0。
F0(FLAG ZERO):用户标志位。
它是用户根据需要通过传送指令确定的,用于决定用户程序的流向。