单片机教程之第3章 单片机的结构及原理_第1页
单片机教程之第3章 单片机的结构及原理_第2页
单片机教程之第3章 单片机的结构及原理_第3页
单片机教程之第3章 单片机的结构及原理_第4页
单片机教程之第3章 单片机的结构及原理_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第三章单片机的结构及原理本章以80C51系列的AT89S51/S52为例子,介绍单片机的结构、工作原理、存储器结构、时序及复位电路。3.1单片机的结构本节以89系列单片机中Atmel公司的标准型AT89S51/S52单片机为主要实例,介绍单片机的组成、结构及引脚功能。AT89S51与AT89C51相比增加了ISP串行接口〔程序烧写更加方便〕和看门狗定时器。1标准型单片机的组成与结构CPU振荡器中断控制程序存储器数据存储器总线控制定时器2定时器1定时器0看门狗ISP串行口I/O端口UART串行端口外部中断源内部中断源计数器输入RXDTXDP0P1P2P3MISOMOSICLK2中央处理器CPU主要完成运算和控制功能。数据存储器RAM用于存储变化的数据。程序存储器ROM(FlashROM)用于存放程序和固定不变的常数。定时/计数器用于实现定时和计数功能。并行I/O口用于实现数据和控制信号的输入和输出。串行口全双工异步串行口用于串行数据的输入输出,ISP串行口可用于实现在线下载程序。3时钟电路是产生单片机工作所需要的时钟脉冲序列。中断系统中断系统的主要作用是对外部或内部的中断请求进行管理与处理。3.1.2引脚的定义和功能T2T2EXMOSIMISOSCKMOSI4引脚的定义和功能40只引脚按功能分为4类:〔1〕电源引脚[2]:Vcc、GND;〔2〕时钟电路引脚[2]:XTAL1、XTAL2。〔3〕控制引脚[4]:PSEN*、EA*/Vpp、ALE/PROG*、RST。RST高电超过两个机器周期时间平复位。EA接低电平时只访问片外程序。〔4〕I/O口引脚[32]:P0、P1、P2、P3,为4个8位I/O口的外部引脚。53.2 单片机的工作原理单片机是通过执行程序工作的,执行不同的程序就能完成不同的任务,因此执行程序的过程就表达了单片机的工作原理。指令与程序的概述指令:是规定计算机执行某种操作的命令。CPU根据指令来指挥和控制计算机各局部协调地动作,以完成规定的操作。指令系统:计算机全部指令的集合。程序:是根据任务要求,有序地编排的指令的集合。63.2.2CPU的工作原理在执行程序中起关键作用的是CPU,CPU主要由控制器和运算器两大局部组成;控制器根据指令码产生控制信号,使运算器、存储器、输入输出端口之间能自动协调工作;运算器用于进行算术、逻辑运算以及位操作处理等。71.控制器控制器是用来统一指挥和控制计算机工作的部件。功能是:从存储器逐条取出指令,对指令进行译码,根据指令发出控制信号,完成指令所规定的各种操作。控制器包括指令部件、时序部件和操作控制部件。〔1〕指令部件指令部件:是对指令进行分析、处理并产生控制信号的逻辑部件,由程序计数器PC,指令存放器和指令译码器组成。这几个存放器用户都不能直接访问。程序计数器PC:用于存放和指示下一条要指令指令的地址的存放器,它是一个16位专用存放器,它具有自动加1的功能,在调试中实际看到的是PC自动增加该指令的字节个数,指向下一个条将要执行指令的地址。8指令存放器:是8位存放器,用于暂时存放指令,等待译码。指令译码器:用于对送入指令译码器中的指令进行译码,将指令变换成执行此指令所需的电信号。〔2〕时序部件时序部件由时钟电路和脉冲分配器组成,用于产生操作控制部件所需要的时序信号。由振荡器和计数分频器组成。〔3〕操作控制部件可以为指令译码器的输出信号配上节拍电位和节拍脉冲,以完成规定的操作。92.运算器运算器是用来对数据进行算术运算和逻辑操作的执行部件,包括算术逻辑部件ALU和暂存器。〔1〕算数/逻辑部件ALU算术逻辑部件是用于对数据进行算术运算和逻辑运算的执行部件,由加法器和其他逻辑电路组成。〔2〕暂存器暂存器用于暂存进入运算器之前的数据,它不能通过编程访问。〔3〕还有累加器ACC和程序状态存放器PSW专用存放器。10单片机执行程序的过程单片机的工作过程实质就是执行程序的过程,即逐条执行指令的过程,计算机每执行一条指令都可分为三个阶段:即取指令、分析指令和执行指令。取指令:根据程序计数器PC中的数值(指令地址),从程序存储器中读出指令,送到指令存放器。分析指令:将指令存放器中的指令操作码取出后进行译码,分析该指令要求实现的操作性质。执行指令:取出操作数,然后按照操作码的性质对操作数进行操作。11单片机指令执行过程示意图指令部件时序部件操作控制部件CPU控制器CPU运算器12指令执行过程举例设执行指令:MOVA,#0E0H,它的作用是把操作数E0H送入累加器A中,其机器码是:“74H,E0H〞。这条指令存放在0200H和0201H单元。取指令阶段:单片机将PC指向的当前指令的地址0200H中的指令〔数据74H〕取出送到指令存放器,PC自动加1。分析指令阶段:单片机经译码器对74H译码后,单片时机知道该指令要将一个数送到累加器A中,这个数存放在下一个地址中。指令执行阶段:指令译码器向微操作控制电路发出控制命令,微操作控制电路结合时序部件,产生74H操作码的微操作序列,将0201H中数据0E0H取出送入累加器A。PC再加1。0200H0201H74HE0HPC->0200H:MOVA,#0E0HPC->PC->0200H:MOVA,#0E0H133.380C51的存储器存储器是计算机的主要组成局部,其用途是存放程序和数据。存储器的结构和地址空间80C51系列单片机的存储器结构采用“哈佛结构〞,程序存储器ROM和数据存储器RAM在物理结构上是分开的,又有片内和片外之分。另外一种存储器结构是冯.诺伊曼结构,程序存储器和数据存储器放在一个逻辑空间,统一编址。80C51单片机存储器在物理结构上分为4个空间:片内RAM、片外RAM、片内ROM、片外ROM。14AT89S51片内存储器SFRRAM4KBROM片外可扩展64KBRAM片外可扩展64KBROM00HFFHFFFFHFFFFH00HFFFH1000H100H00H7FHAT89S51存储空间分布图一般情况下,我们只用片内存储器(RAM和FLASHROM)就够了。在逻辑上(从用户角度看),80C51系列有三个存储空间:(1)片内外ROM。(2)片内RAM。(3)片外RAM。FFH15程序存储器ROM程序存储器用于存放编好的程序和表格。1.程序存储器的结构和地址分配AT89S51单片机片内有4KB的闪存,通过片外16位地址线最多可扩展64KB程序存储器,片内外ROM统一编址,EA管脚接高电平那么首先访问片内存储器,如果EA管脚接低电平,那么只方位片外程序存储器。16几个特殊的地址2.程序存储器的入口地址在程序存储器中有7个地址有特殊用途。0000H单元为主程序开始地址。

5个中断源的中断入口地址:0003H外中断0000BH定时器T00013H外中断1001BH定时器T10023H串行口中断002B定时器2编程时在0003~0030H间一般不放用户程序。使用中断时放中断跳转指令。17数据存储器单片机中的数据存储器主要用于存放经常改变的中间运算结果、数据暂存或标志位等,称RAM。可分片内RAM和片外RAM〔扩展〕。1.片内数据存储器的结构及操作AT89S51中00H~7FH的RAM可供用户自由使用。80H~FFH为特殊功能存放器SFR区。AT89S52中80~FFH也可供用户自由使用,但要使用间接寻址的方式。182.低128字节RAM在低128RAM区中,根据存储器的用途,又可分为3个局部:00H~1FH:通用工作存放器区20H~2FH:位寻址区30H~7FH:用户RAM区19通用工作存放器区〔1〕通用工作存放器区RS1RS0所选的4组存放器000区〔R0~R7为:00H~07H〕011区〔R0~R7为:08H~0FH〕102区〔R0~R7为:10H~17H〕113区〔R0~R7为:18H~1FH〕CPU复位后选中第0组工作存放器。R000HR101HR202H………R707H20〔2〕位寻址区指令区别:MOVA,20HMOVC,20H21位寻址区即可以按字节寻址也可以按位寻址。共16个字节,128个位。位寻址区主要用于用户标志位或1位的处理,特别适合工业控制应用。位寻址区访问方法:MOVC,00H;意思是把00H位地址〔也就是字节地址20H的最后一位〕数据〔0,1〕送入C,而不是把字节地址00H中值给C,因为C是一个位。通用工作存放器区和位寻址区在不用作通用存放器或位寻址时,都可作为一般的用户数据区。22〔3〕用户RAM区30H~7FH为用户RAM区,可同作直接或间接寻址方式访问。可作为堆栈区。3.片外数据存储器的结构及操作片外RAM可最多扩展64KB。访问片内RAM用MOV指令,访问片外RAM用MOVX指令,只能采用间接寻址。MOVA,35H;将片内35H中数据送入AMOVXA,@DPTR;将片外RAM中DPTR指向的地址中数据取出送给A。MOVA,@R0;将片内RAM中R0指向的地址中的数据取出送给A。MOVXA,@R0;将片外RAM中R0指向的地址中的数据取出送给A。23特殊功能存放器特殊功能存放器又称SFR,主要用于管理片内和片外的功能部件。AT89S51有21个〔S52有27个〕。特殊功能存放器可以按其名称符号访问也可以按地址访问,一般按名称访问。如:MOVB,A。有些可以位寻址〔地址值能被8整除〕,一般按位名称访问。如:SETBEA;IE存放器的最高位EA置1。SETBP1.0;P1口的最低位置1。24AT89S51增加了与看门狗复位有关的特殊功能存放器WDTRST。AT89S52还有定时器2存放器。251.程序状态字存放器PSWP[PSW.0]奇偶标志位 P=1,A中“1〞的个数为奇数 P=0,A中“1〞的个数为偶数F1位:用户标志位,由用户置位或复位。OV〔PSW.2〕溢出标志位指示运算是否产生溢出。正数相加得负数、负数相加得正数、除0都产生溢出。F126PSWRS1、RS0[PSW.4、PSW.3]:4组工作存放器区选择控制位1和位0。RS1RS0所选的4组存放器000区〔内部RAM地址00H~07H〕011区〔内部RAM地址08H~0FH〕102区〔内部RAM地址10H~17H〕113区〔内部RAM地址18H~1FH〕F0[PSW.5]标志位由用户使用的一个状态标志位。同F1。27PSW、ACCAC半进位标志位,当进行加法或减法运算时,低半字节向高半字节有进位或借位时该位为1。CY进位标志位,如果计算结果最高位有进位或借位那么CY=1。2.累加器ACCACC是一个8位存放器,通过暂存器与ALU相连。它是CPU中最繁忙的存放器,28DPTR、B3.数据指针存放器DPTR0/1用于寻址片外RAM中的数据。AT89S51只有DPTR0AT89S52通过AUXR1的第0位选择使用哪个DPTR〔0对应DPTR0,1对应DPTR1〕,默认选择DPTR0。4.B存放器B存放器可作为一般存放器使用,在乘除法时用来暂存一个数据。MULAB;(A)×(B)BA,B15~8,A7~0DIVAB;(A)除以(B),商A,余数B29堆栈:是一种数据存储结构,它采用先进后出的存储操作方法。5.堆栈指针SP堆栈指针SP是一个8位特殊功能存放器,它存放堆栈栈顶的地址。每存入或取出一个数据,SP自动加1或减1。SP6B6B986A986998入栈前SP6C6B986A986998916C压入栈后SP6A6A986998弹出栈后用户使用堆栈前一般要先设置栈底地址,一般大于2FH。栈底压栈出栈30I/O口6.P0~P3端口存放器特殊功能存放器P0~P3分别用于控制端口P0~P3的I/O操作。输入输出数据是通过读写端口存放器P0~P3实现的。当I/O端口某一位用作输入功能时,该位要先置1。单片机复位后,除SP为07H,P0~P3为FFH外,其余都为0。313.4输入/输出端口51单片机有4个双向〔输入、输出〕的8位并行I/O端口(Port),记作P0~P3。通过特殊功能存放器P0~P3访问端口。3.4.1P0口可作为地址〔低8位〕/数据总线:有输出0、输出1和高阻三种状态。见扩展总线可作为通用I/O口:无上拉电阻,只有输出0和高阻状态,如果要输出1那么需要接上拉电阻。I/O口从输出变为输入状态时要先输出1,阻断对地晶体管。32P0口的位结构电路原理图VCCR作为地址数据线时工作过程作为I/O口时工作过程1:地址数据0:I/O操作33可用作通用I/O口:有上拉电阻〔10K左右〕,输出有0、1状态,如果作为输入,先输出1阻断接地FET。3.4.2P1口34P1口第二功能AT89S51/52的P1口还具有第二功能P1口各位第二功能P1.0T2:定时器T2的外部计数输入/时钟输出P1.1T2EX:定时器T2的捕获除法和双向控制P1.5MOSI:主机输出线P1.6MISO:主机输入线P1.7SCK:串行时钟线353.4.3P2口可作为外部地址总线的高8位,与P0配合。可作为通用I/O口,同P1口36可作为通用I/O口,用法同P1。3.4.4P3口37P3口的第二功能P3.0 RXD〔串行输入口〕P3.1 TXD〔串行输出口〕P3.2 INT0*〔外部中断0〕P3.3 INT1*〔外部中断1〕 P3.4 T0〔定时器0外部计数输入〕P3.5 T1〔定时器1外部计数输入〕P3.6WR〔输出外部数据存储器写选通信号〕P3.7RD〔输出外部数据存储器读选通信号〕383.4.5读引脚与读端口操作1.读端口〔锁存器〕操作实际可理解为写端口,是单片机对锁存器值进行修改。有ANL,ORL等指令,是先读出数据,单片机计算完后再将数据送到端口锁存器。2.读引脚单片机将引脚的电位读入内部,端口改为输入之前要将端口该引脚置1。393.4.64个端口的主要异同点〔1〕主要相同点都是8位双向口。都可作通用I/O端口使用。在作为一般的输入时,都必须先写1。复位时全输出1。〔2〕主要不同点P0口作为地址低8位,P2口作为地址高8位。P3(P1)口有第二功能。P0口作为I/O口时,无上拉电阻;P1、P2、P3没有高阻状态,称为准双向口。403.5CPU时序及时钟电路单片机的时序就是CPU在执行指令时各控制信号之间的时间顺序关系,为了保证各部件间协调一致地同步工作,单片机内部的电路应在唯一的时钟信号控制下严格地按照时序进行工作。3.5.1CPU的时序及有关概念CPU执行指令的一系列动作都是在统一的时钟脉冲控制下逐拍进行的,这个脉冲是由单片机控制器中的时序电路发出的。为了便于对CPU时序进行分析,人们按指令执行过程规定了几种周期:时钟周期、机器周期、指令周期。41单片机的周期〔1〕时钟周期时钟周期也称“振荡周期〞,是时钟脉冲频率的倒数。80C51系列单片机中,一个振荡周期定义位一个节拍P,2个节拍定义为一个状态周期S。时钟频率越高计算机的运算速多越快。〔2〕机器周期在计算机中,为了便于管理,常把一条指令执行过程划分为假设干个阶段,每一阶段完成一个根本操作,如取指令、读存储器、写存储器等。完成一个根本操作所需要的时间称为“机器周期〞,在80C51系列单片机中,一个机器周期是12个时钟周期的长度。42指令周期〔3〕指令周期指令周期是指执行一条指令所需要的时间,一般由假设干个机器周期组成。指令不同需要的机器周期个数也不同。有单周期指令,双周期指令和多周期指令。433.5.2振荡器和时钟电路给CPU提供时序需要有关硬件电路,即振荡器和时钟电路。1.振荡器和时钟电路的工作原理80C51系列单片机内部有一个高增益反相放大器,用于构成振荡器,但要形成时钟,外部还需附加电路〔谐振器〕。ALE输出脉冲频率为时钟频率Fosc的1/6。PCON的PD位等于0可以控制振荡器停止工作。使单片机进入休眠状态,降低功耗。44振荡器和时钟电路工作原理452.时钟电路接法〔1〕内部时钟方式XTAL1和XTAL2外接晶体谐振器,C1、C2通常为20~30pF陶瓷电容,为了保证振荡器稳定可靠工作,谐振器和电容尽可能与单片机靠近安装。46外部时钟〔2〕外部时钟方式将外部振荡脉冲接入XTAL1,XTAL2悬空。3.5.380C51的指令时序有取指令、分析指令和执行指令阶段。473.6复位和复位电路复位是单片机的初始化操作,使单片机从头〔0000H〕开始运行。单片机在启动运行时要先复位。内部复位信号的产生引脚RST加上大于2个机器周期〔即24个时钟振荡周期〕以上的高电平就可使MCS-51复位。用施密特触发器防止干扰483.6.2复位状态复位时,PC初始化为0000H,使MCS-51单片机从0000H单元开始执行程序。除PC之外,复位操作还对其它一些存放器有影响。特殊功能存放器中,SP=07H,P0-P3的引脚均为高电平FFH,其它为0。在复位有效期间,ALE脚和PSEN*脚均为高电平,内部RAM的状态不受复位的影响。同学要记住复位后片内存放器和管脚状态。493.6.3外部复位电路设计复位电路上电复位电路按键复位电路

专用复位芯片AT89S51/52还有内部看门狗复位电路。22u1K200看门狗电路相当于一个电容充电电路,当充电满时向CPU发复位信号,为了使其不让单片机复位那么单片机需要定期在看门狗电路充电没满时给它放电,称“喂狗〞。503.780C51系列单片机的低功耗方式80C51系列单片机除具有一般的程序执行方式外还具有两种低功耗方式,即

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论