微机原理及单片机技术-复习_第1页
微机原理及单片机技术-复习_第2页
微机原理及单片机技术-复习_第3页
微机原理及单片机技术-复习_第4页
微机原理及单片机技术-复习_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

1、微机原理与单片机技术复习第1章 概述 将CPU、RAM、ROM、定时器计数器以及输入输出接口电路等主要计算机部件集成在一块集成电路芯片上。这样所组成的芯片级的微型计算机称为单片微型计算机(Single Chip Microcomputer),直译为单片微机或单片机。 微型计算机是把微处理器、存储器、I/O接口、定时器等不同的芯片组成在一块底板上(主板),然后配上机箱、外设等。字长 计算机所能处理的二进制位数。基本字长一般指参加一次运算的操作位数 在计算机中每个存储单元存放二进制数的位数一般情况下和它的算术运算单元的位数是相同的主频 计算机中的主时钟频率 CPU的主频=外频倍频系数运算速度 计算

2、机每秒执行指令的条数内存容量 计算机存储器最多能够存储的二进制数据的信息量第2章 计算机基础知识数制:十进制D、二进制B、十六进制H、八进制O数制之间的转换有符号数的表示方法:原码、反码、补码二进制编码:压缩BCD码、非压缩BCD码计算机的基本组成电路:触发器、寄存器、移位寄存器、计数器、三态门计数器是由触发器构成的半导体存储器的分类:只读存储器:ROM、PROM、EPROM、EEPROM、Flash ROM随机存储器:静态RAM、动态RAM存储单元位:最小的数据单元,是一个二进制位字节:8个二进制位,是最基本的计量单位字存储单元和存储地址 存储器一般由地址译码器、存储阵列、输入/输出缓冲器和

3、读/写控制电路等组成第3章 微型计算机基本工作原理指令系统程序设计语言:机器语言、汇编语言、高级语言机器语言是计算机能够直接识别、执行的唯一语言汇编语言源程序机器语言 汇编 反汇编时序时钟周期单片机:状态、机器周期、指令周期8086:总线周期CPU主要由运算器和控制器两大部分组成。控制器根据指令码产生控制信号,使运算器、存储器、I/O端口之间能自动协调地工作;运算器用于进行算术、逻辑运算及位操作处理等。控制器由指令部件、时序部件及操作控制部件组成。运算器包括算术/逻辑部件、累加器、暂存器、程序状态字寄存器、BCD码运算调整电路及位处理逻辑电路等接口电路的功能:信号形式变换、电平变换、数据格式变

4、换、锁存与缓冲等I/O端口的编址:统一、独立接口电路的基本组成:P40图3.4I/O接口的分类:传输数据的方式:串行、并行传输控制方式:程序控制、中断、DMA双方数据收发的配合方式:异步、同步单工、半双工、全双工第4 章 计算机的中断中断的概念中断源中断嵌套优先级中断系统的功能中断响应的条件中断处理的过程第5章 单片机结构及原理 MCS-51系列单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能的I/O线等一台计算机所需要的基本功能部件。组成部分:中央处理器、数据存储器、程序存储器、定时/计数器、并行I/O接口、串行接口、时钟电路、中断系统主要管脚:XTAL1与XTAL2

5、、RST、ALE、PSEN、EAMCS-51的存储器机构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各自有自己的寻址系统、控制信号和功能。程序存储器用来存放程序和始终要保留的常数。数据存储器通常用来存放程序运行中所需要的常数或变量。从物理地址空间看,MCS-51由四个存储器地址空间,即片内程序存储器和片外程序存储器以及片内数据存储器和片外数据存储器。 程序存储器用来存放编制好的始终保留的固定程序和表格常数。程序存储器以程序计数器PC作地址指针,通过16位地址总线,可寻址的地址空间为64K字节。在8051片内,含有4K字节ROM/EPROM程序存储器,即内部程序存储器,而在

6、8031片内,则无内部程序存储器,需外部扩展EPROM。MCS-51单片机中,64K字节程序存储器的地址空间是统一的。对于有内部程序存储器,在正常运行时,应把/EA引脚接高电平,使程序从内部ROM开始执行。当PC值超出内部容量时,会自动转向外部程序存储空间。因此外部程序存储器地址空间为1000H 0FFFFH。访问程序存储器用的指令是MOVC命令。MCS-51单片机复位后程序计数器PC的内容为0000H,因此系统从0000H单元开始取指令,并执行程序,它是系统执行程序的起始地址。通常在该单元中存放一条跳转指令,而用户程序从跳转到的地址开始存放。 MCS-51单片机的数据存储器无论在物理上或逻辑

7、上都分为两个地址空间,一个为内部数据存储器,访问内部数据存储器用MOV命令;另一个为外部数据存储器,访问外部数据存储器用MOVX指令。内部数据存储器是最灵活的地址空间,它分成物理上独立的其性质不同的几个区:地址范围功能00H7FH128字节的RAM区80H0FFH高128字节的RAM区 (仅在8052、8032单片机中有这一区)地址是重叠的128字节的专用寄存器区, 又称特殊功能寄存器区(SFR)内部RAM区中部不同的地址区域功能00H1FH共32个单元是四个通用工作寄存器区,每一个区有8个工作寄存器,编号为R0R7。当前程序使用的工作寄存器区是由程序状态字PSW中的D4、D3位来指示的,PS

8、W的状态和工作寄存器区的对用关系在图2-9中。 内部RAM的20H2FH是位地址区域,这16个单元的每一位都有一个位地址,位地址范围为00H7FH。同样,位寻址区的RAM单元也可以作一般的数据缓冲器使用。在一个实际的程序中,往往需要一个后进先出的RAM区,以保持CPU的现场,这种后进先出的缓冲器区称为堆栈。MCS-51的堆栈原则上可以设置在内部RAM的任何区域内,但一般设在30H70H的范围内。 数据缓冲区SP的初值为07H累加器ACC累加器是一个最常用的专用寄存器。MCS-51单片机指令系统中大部分操作均需要它的参与,这既是MC S-51系列单片机的特点,也是它的缺点。由于大部分操作,特别是

9、单片机与外部通信时必须通过累加器ACC,因此影响了单片机的执行效率。指令系统中用A作为累加器的助记符,累加器ACC可以按位寻址,各位的助记符为ACC.7、ACC.6、ACC.0。辅助寄存器B辅助寄存器B的功能是帮助累加器ACC完成乘法和除法运算。在乘法指令中,两个操作数存放在A和B中,其结果也存放在A和B中,低字节放在A中,高字节放在B中。在除法指令中,A用于存放被除数和商,B用于存放除数和余数。在其他指令中,B可以作为RAM的一个单元来使用。 程序状态字PSW(标志寄存器FR)程序状态字以一个8位寄存器,它包含了程序状态信息。此寄存器的各位的含义如下:PSW.7PSW.6PSW.5PSW.4

10、PSW.3PSW.2PSW.1PSW.0CYACF0RS1RS0OV-P栈指针栈指针SP是一个8位专用寄存器。它指示出堆栈顶部在内部RAM中的位置。系统复位后,SP初始化为07H,使得堆栈事实上由08H单元开始。考虑到08H 1FH单元分属于工作寄存器区13,若程序设计中要用到这些区,则最好把SP值设置为1FH或更大的值。SP的初始值越小,堆栈深度就可以越深。堆栈指针的值可以由软件改变,因此堆栈在内部RAM中的位置比较灵活。除用软件直接改变SP值外,在执行PUSH,POP指令,各种子程序调用,中断响应,子程序返回和中断返回等指令时,SP值将自动增量或减量。数据指针数据指针DPTR是一个16位专

11、用寄存器,其高位字节寄存器用DPH表示,低位字节寄存器用DPL表示。DPTR既可以作为一个16位寄存器来使用,也可以作为两个独立的8位寄存器DPH和DPL来使用。DPTR主要用来存放16位地址,当对64KB外部数据存储器空间寻址时,可作为间址寄存器用。端口P0P3专用寄存器P0,P1,P2,P3分别是I/O端口P0P3的锁存器。P0P3作为专用寄存器还可以用直接寻址方式参与其他操作指令。 串行数据缓冲器串行数据缓冲器SBUF用于存放欲发送或已接收的数据,它实际上由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。当要发送的数据传送到SBUF时,进的是发送缓冲器。当要从SBUF读数据时

12、,则取自接收缓冲器,取走的是刚接到的数据。 定时/计数器MCS-51系列中由两个16位定时/计数器T0和T1。他们各有两个独立的8位寄存器组成,共有四个独立的寄存器:TH0,TL0,TH1,TL1。可以对这四个寄存器直接寻址,但不能把T0,T1当作一个16位寄存器来寻址。MCS-51单片机设有四个8位双向I/O端口(P0、P1、P2、P3),每一条I/O线都能独立的作为输入或输出。P0口为三态双向口,能带8个LSTTL电路。P1、P2、P3口为准双向口,负载能力为4个LSTTL电路。 (在作为输入线时,口锁存器必须先写入“1”,故称为准双向口)一、端口功能P0口 P0口可以作为输入输出口,但在

13、实际应用中通常作为地址/数据总线口,即低8位地址/数据线分时使用P0口,低8位地址由ALE信号的负跳变使它锁存到外部地址锁存器中,而高8位地址由P2口输出。P1口 P1口每一位都能作为可编程的输入输出线。P2口 P2口可以作为输入口或输出口使用,外界I/O设备时,又作为扩展系统的地址总线,输出高8位地址,与P0口一起组成16位地址总线。对于8031单片机来说,P2口一般只作为地址总线使用,而不作为I/O线直接与外设相连接。P3口 P3口为双功能口。作为第一功能使用时,其功能同P1口。当作为第二功能使用时,功能定义如下表。端 口 引 脚第 二 功 能P3.0RXD串行输入口P3.1TXD串行输出

14、口P3.2/INT0外部中断0输入口P3.3/INT1外部中断1输入口P3.4T0定时/计数器0外部输入口P3.5T1定时/计数器1外部输入口P3.6/WR外部数据存储器写选通信号输出P3.7/RD外部数据存储器读选通信号输出4个I/O端口的主要异同点同:(1)8位双向口,都可作为双向通用I/O端口;(2)都包括锁存器、输出驱动器和输入缓冲器;(3) 读引脚前先写“1”;(4)可按字节或位访问。异:P0真正双向口,其余准双向;P0驱动能力最强;P0漏极开路,作为I/O需接上拉电阻;P3口均有第二功能(每位的功能是什么)。根据总线所在地位分为:内部总线和外部总线。根据总线功能分为:数据总线、地址

15、总线、控制总线。在访问外部存储器时,P2口输出高8位地址,P0口输出低8位地址,由ALE信号将P0口上的低8位锁存到外部地址锁存器中,从而为P0口接收数据做准备。在访问外部程序存储器时,/PSEN信号有效。在访问外部数据存储器时,由P3口自动产生读/写信号,通过P0口对外部数据存储器单元进行读/写操作。图2-6(a)为加电自动复位电路。加电瞬间,RST端的电位与VCC相同,随着RC电路充电电流的减小,RST端的电位逐渐下降。只要RST端保持10毫秒以上的高电平就能使MCS-51单片机有效地复位。复位电路中的RC参数通常由试验调整。当振荡频率选用6 MHz时,C选22 uF,R选1 k,便能可靠

16、地实现加电自动复位。若采用RC电路接斯密特电路的输入端,斯密特电路输出端接MCS-51和外围电路的复位端,能使系统可靠的同步复位。 在RST输入端出现高点平时实现复位和初始化。在振荡器运行的情况下,要实现复位操作,必须使RST引脚至少保持两个机器周期(24个振荡周期)的高电平。CPU在第二个机器周期内执行内部复位操作,以后每一个机器周期复位一次,直至RST端电平变低。复位期间不产生ALE及/PSEN信号。内部复位操作时堆栈指示器SP为07H,各端口都为1(P0P3口的内容均为0FFH),特殊功能寄存器都复位为0,但不影响RAM的状态。当RST引脚返回低电平以后,CPU从0000地址开始执行程序

17、。 寄存器内容PC0000H程序计数器ACC00H寄存器B00H辅助寄存器PSW00H程序状态字SP07H堆栈指针DPTR0000H数据指针P0P30FFH并行口03IP00000中断优先级控制器IE000000H允许中断控制TMOD00H定时/计数器方式控制TCON00H定时/计数器控制TH0,TL000H定时/计数器0TH1,TL100H定时/计数器1SCON00H串行控制器SBUF不定串行数据缓冲器PCON0电源控制(1)振荡周期 (2)时钟周期 (3)机器周期(4)指令周期 振荡周期是为单片机提供定时信号的振荡源的周期,其振荡频率记为 f OSC 。又称为状态周期或状态时间S,是振荡周

18、期的2倍,它分为P1节拍和P2节拍,P1节拍通常完成算术逻辑操作,而内部寄存器间传送通常在P2节拍完成。一个机器周期由6个状态组成,若把一条指令的执行过程分成几个基本操作,则完成一个基本操作所需的时间称为机器周期。 指令周期指执行一条指令所采用的全部时间,通常由14个机器周期组成。第6章 指令系统计算机能直接识别的只能是0和1编码组成的指令,这种编码称为机器码,或称为机器语言指令,由机器码编制的计算机能识别和执行的程序称为目标程序。用二进制编码表示的机器语言指令由于阅读困难,写起来费力,且难以记忆,因此在微机控制系统中采用汇编语言指令来编写程序。汇编语言就是用助记符和专门的语言规则表示指令的功

19、能和特征。本门课程的程序均采用汇编语言来描述其指令功能。一条汇编语言指令中最多包含四个区段,如下所示: 标号:操作码操作数;注释标号区段是由用户定义的符号组成,必须用英文字母开始。标号区段可有可无。若一条指令中有标号区段,标号代表该指令第一个字节所存放的存储器单元的地址,故标号又称为符号地址,在汇编时,把该地址赋值给标号。操作码区段是指令的功能部分,不能缺省。它是便于记忆的助记符。例如:MOV是数据传送的助记符,ADD是加的助记符。操作数区段是指令要操作的数据信息。根据指令的不同功能,操作数可以由三个、两个、一个或没有操作数。注释区段可有可无。加入注释的目的是为了便于阅读。程序设计者对指令或程

20、序段作简要的功能说明,在阅读程序,尤其是在调试程序时将会带来很多方便。在有操作数的指令中,参与操作的数据可能就在指令中,或在寄存器中,也可能在存储器中,或在I/O接口中。为正确地执行操作,对这些寄存器、存储器、和I/O接口要进行编号(也称作地址号)。而在指令中对这些设备内的数据要进行操作就要指出地址。指令中所规定的寻找操作地址的方式称为寻址方式。MCS-51指令系统的寻址方式有下列几种:立即寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址 位寻址立即寻址方式是操作数包含在指令字节中,指令操作码后面字节的内容就是操作数本身,其数值由程序员在编制程序是指定,以字节的形式存放在程序存储器中。 直

21、接寻址方式是在指令中含有操作数的直接地址,该地址指出了参与操作的数据所在的字节地址或位地址。寄存器寻址方式是由指令指出某一个寄存器中的内容作为操作数,这种寻址方式称为寄存器寻址。在这种寻址方式中,指令的操作码中包含了参加操作的寄存器的编号。寄存器间接寻址方式是由指令指出某一个寄存器的内容作为操作数的地址,这种寻址方式成为寄存器间接寻址。这里要注意,在寄存器间接寻址方式中,存放在寄存器中的内容不是操作数,而是操作数所在的存储器单元地址。寄存器间接寻址只能使用寄存器R0和R1作为指针地址,来寻址内部RAM中的数据。寄存器间接寻址也可以用于访问外部RAM,但不如用DPTR方便。寄存器间接寻址用符号“

22、”表示。变址寻址方式。这种寻址方式用于访问程序存储器中的数据表格,它把基址寄存器DPTR或PC和变址寄存器A的内容作为无符号数相加形成16位地址,访问程序存储器中的数据表格。相对寻址方式。这类方式是以PC的内容作为基址地址,加上指令中给定的偏移量所得的结果作为转移地址,它只适用于双字节转移指令。偏移量是带符号数,在+127-128范围内,用2的补码表示。1 指令格式:标号:操作码 操作数;注释2 数据传送类指令 3 算术运算类指令 4 逻辑操作类指令 5 位操作类指令 6 控制转移类指令 :注意各转移指令的范围第7章 汇编语言程序设计 1 简单程序设计 2 分支程序 3 循环程序设计 4 散转

23、程序设计 5 子程序和参数传递方法 6 查表程序设计 7 数制转换类程序 8 输入/输出类程序 第8章 主要功能单元中断系统MCS-51系列单片机允许有5个中断源,提供两个中断优先级,能实现二级中断嵌套。每一个中断源的优先级的高低都可以通过编程来设定。中断请求源 MCS-51中断系统的5个中断源分别是:/INT0 来自P3.2引脚上的外部中断请求,外中断0/INT1 来自P3.3引脚上的外部中断请求,外中断1T0 片内定时/计数器0溢出中断请求T1 片内定时/计数器1溢出中断请求串行口 片内串行口完成一帧发送或接收中断请求源TI或RI定时器控制寄存器TCON TCON时定时/计数器0和1的控制

24、寄存器,它同时也用来锁存T0、T1的溢出中断请求源和外部中断请求源。TCON寄存器中与中断有关位如下图所示。 D7D6D5D4D3D2D1D0TCONTF1TR1TF0TR0IE1IT1IE0IT0D1D0SCONSM0SM1SM2RENTB8RB8TIRI串行口控制寄存器SCON 低两位锁存串行口的接收中断和发送中断标志。5个中断标志的复位,除了串行口的两个中断的复位是由软件来控制的,其他中断源的复位(外部中断的边沿触发方式)都是由硬件自动完成的,外部中断的电平触发方式软硬件都不能清除。这5个中断标志的置位,都是由硬件自动完成的。这是中断系统中要注意的地方。 D7D6D5D4D3D2D1D0

25、IEEA-ESET1EX1ET0EX0中断允许和禁止 在MCS-51中断系统中,中断允许或禁止时由片内的中断允许寄存器IE控制,IE中各位的功能如下:中断优先级控制 中断优先级是由片内的中断优先级寄存器IP控制的。IP寄存器中各位的功能如下:D7D6D5D4D3D2D1D0IP-PSPT1PX1PT0PX0MCS-51中断系统具有两级优先级,它们遵循下列两条基本规则:(1)低优先级中断源可被高优先级中断源所中断,而高优先级中断源不能被任何中断源所中断;(2)一种中断源,无论是高优先级还是低优先级,一旦得到相应,与它同级的中断源不能再中断它。中断源入口地址同级内的中断优先级外部中断00003H高

26、定时/计数器0溢出中断000BH外部中断10013H定时/计数器1溢出中断001BH串行口中断0023H低中断优先级结构 CPU在每个机器周期的S5P2时刻采样中断标志,而在下一个机器周期对采样到的中断进行查询。如果在前一个机器周期的S5P2有中断标志,则在查询周期内便会查询到并按优先级高低进行中断处理,中断系统将控制程序转入相应的中断服务程序。下类三个条件中的任何一个都能封锁CPU对中断的相应:(1)CPU正在处理同级的或高一级的中断;(2)现行的机器周期不是当前所执行指令的最后一个机器周期;(3)当前正在执行的指令是中断返回指令或对IE或IP寄存器进行读/写的指令。中断响应过程 如果产生了

27、一个中断请求,而且满足响应的条件,CPU响应中断,由硬件生成一条长调用指令转到相应的服务程序入口。这条指令是双机器周期指令。因此,从中断请求有效到执行中断服务程序的第一条指令的时间间隔至少需要三个完整的机器周期。如果中断请求被前面所述的三个条件之一所封锁,将需要更长的响应时间。若一个同级的或高优先级的中断已经在进行,则延长的等待时间取决于正在处理中断服务程序的长度;如果正在执行的一条指令还没进行到最后一个周期,则所延长的等待时间不会超过三个机器周期,这是因为MCS-51指令系统中最长的指令也只有四个机器周期。因此,在系统中只有一个中断源的情况下,响应时间总是在三个机器周期到八个机器周期之间。讲

28、响应时间的目的是在某些要求实时性很强的场合下应用单片机系统,而且还是用中断方式时,就要求设计者考虑到响应时间的问题。中断响应时间 外中断源的扩充:利用定时/计数器中断程序的设计方法将所有的功能合理分配到主程序和中断服务程序中,必要时适当设置标志位主程序:对中断的初始化中断服务程序:注意保护现场定时/计数器加法计数器是计满溢出时才申请中断, 所以在给计数器赋初值时, 不能直接输入所需的计数值, 而应输入的是计数器计数的最大值与这一计数值的差值, 设最大值为 M, 计数值为 N, 初值为 X, 则 X的计算方法如下: 计数状态: X=MN 定时状态: X=M定时时间/T 而 T=12晶振频率 定时

29、器/计数器的方式寄存器TMOD 门控位GATE对定时器的控制作用:GATE=0,只受控制位TR0/1的控制;GATE=1时,除控制位外,还需外部中断引脚为高电平才能启动相应的定时器 定时/计数器的工作方式 方式0:13位定时计数器 方式1:16 方式2:8位自动重装载定时计数器 方式3:T0 两个8位定时计数器定时/计数器的应用 计时/定时计数产生相关波形波特率发生器门控位的应用串行口串行口控制寄存器SCON SCON用于控制和监视串行口的工作状态, 其各位定义D1D0SCONSM0SM1SM2RENTB8RB8TIRI 特殊功能寄存器PCON中, 只有一位(最高位)SMOD与串行口的工作有关

30、, 该位是串行口波特率系数的控制位: SMOD=1 时, 波特率加倍, 否则不加倍。串行口的 4 种工作模式模式0:移位寄存器模式模式1:波特率可变的 8 位异步通信模式模式2:波特率固定的 9 位异步通信模式模式3:波特率可变的 9 位异步通信模式串行口每秒钟发送或接收的数据位数称为波特率。 (1) 模式 0 的波特率等于单片机晶振频率的 1/12, 即每个机器周期接收或发送一位数据。 (2) 模式 2 的波特率与电源控制器PCON的最高位SMOD的写入值有关: 即SMOD=0, 波特率为(1/64) fOSC; SMOD=1, 波特率为(1/32)fOSC。 波特率的计算 (3) 模式 1

31、 和模式 3 的波特率除了与SMOD位有关之外, 还与定时器 T1 的溢出率有关。 定时器 T1 作为波特率发生器, 常选用定时方式 2( 8 位重装载初值方式), 并且禁止 T1 中断。此时 TH1 从初值计数到产生溢出, 它每秒钟溢出的次数称为溢出率。 于是 串行口的编程 串行口需初始化后, 才能完成数据的输入、输出。其初始化过程如下: (1) 按选定串行口的操作模式设定SCON的SM0、SM1两位二进制编码。 (2) 对于操作模式 2 或 3, 应根据需要在 TB8 中写入待发送的第 9 位数据。 (3) 若选定的操作模式不是模式 0, 还需设定接收/发送的波特率。 设定SMOD的状态,

温馨提示

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

最新文档

评论

0/150

提交评论