内容发布更新时间 : 2024/12/24 2:57:43星期一 下面是文章的全部内容请认真阅读。
单片微型计算机原理与接口技术
②由于ALE以1/6振荡频率的固定速率输出,因此,可以作为对外输出的时钟或外部定 时脉冲,比如ALE信号可以做ADC0809的时钟。
【2—15】说明80C51单片机的程序状态字PSW的主要功能。
【答】程序状态字PSW(Program Status Word)是一个程序可访问的8位寄存器,其内容的主要部分是算术逻辑运算单元ALU的输出,例如,奇偶校验位P、溢出标志位OV、辅助进位标志位AC及进位标志位CY,都是ALU运算结果的直接输出。一些条件转移指令就是根据PSW中的相关标志位的状态来实现程序的条件转移。
程序状态字PSW如图2-1所示。
CY AC FO Rsl l RS0 OV — P l
图2—1程序状态字PSW
1.P——奇偶标志位
该位表示累加器A中值为1的个数的奇偶性。若累加器A中值为1的个数是奇数,则P 置位(奇校验);否则,P清除(偶校验)。 在串行通信中,常以传送奇偶校验位来检验传输数据的可靠性。通常将P置入串行帧中的奇偶校验位。
2.OV——溢出标志位
当执行运算指令时,由硬件置位或清除,以指示运算是否产生溢出。OV置位表示运算结果超出了目的寄存器A所能表示的带符号数的范围(一128~+127)。
若以Ci表示位i向位i+1有进位,则0V=C6①C7。当位6向位7有进位(或借位),而位7不向cY进位(或借位);或当位7向c进位(或借位),而位6不向位7进位(或借位)时,OV标志置位,表示带符号数运算时运算结果是错误的;否则,清除0V标志,运算结果正确。 对于MUL乘法,当A、B两个乘数的积超过255时,OV置位;否则,OV=0。 对于DIV除法,若除数为0,OV=l;否则,OV=O。
3.RSl、RS0——4组工作寄存器组选择位
用于设定当前工作寄存器的组号,参见表2—1。 4.AC——辅助进位标志位 当进行加法或减法运算时,若低4位向高4位数发生进位(或借位),.AC将被硬件置位;否则,被清除。在十进制调整指令DA中要用到AC标志位状态。 5.CY——进位标志位
在进行算术运算时,可以被硬件置位或清除,以表示运算结果中高位是否有进位(或借位)。在布尔处理器中,CY被认为是位累加器。 6.F0——用户标志位
开机时该位为0。用户可根据需要,通过位操作指令将FO置1或者清0。当CPU执行对F0位测试条件转移指令时,根据FO的状态实现分支转移,相当于“软开关”。 【2—16】80C51单片机的片内外最大存储容量可达多大? ’
【答】80C51单片机存储容量应包括程序存储器和数据存储器两部分。80C51具有16条地址线,PC指针为16位,因此,程序存储器最大容量为64 KB。数据指针DPTR为16位,因此,外扩数据存储器最大容量为64 KB,再加上片内具有的256个存储单元,80C51单片机的
片内外最大存储容量可达128.256 KB。采用其他地址译码方法,80C51单片机存储容量会得到更大的扩展。 【2-17】80C51单片机片外数据存储器与片内数据存储器地址允许重复,并与程序存储器地址也允许重复,如何区分?
【答】80C5l单片机对片外数据存储器、片内数据存储器及程序存储器采用不同的指令,会
6
单片微型计算机原理与接口技术
产生不同的控制信号。片外数据存储器有读RD和写WR控制信号,程序存储器有读PSEN控制信号,因此,扩展时虽然数据线和地址线重复,但由不同的控制信号加以区别。片内数据存储器地址采用MOVC指令,不会产生读RD和写WR控制信号。
【2-18】使80C51单片机复位有哪几种方法?复位后单片机的初始状态,即各寄存器及RAM中的状态如何?
【答】复位操作有上电自动复位、按键电平复位和外部脉冲复位3种方式。上电自动复位是通过外部复位电路的电容充电来实现的;按键电平复位是通过按压键使复位端经电阻与VCC接通而实现的;外部脉冲复位是由外部提供一个宽度大于两个机器周期复位脉冲而实现的。 复位操作把Pc初始化为0000H,使单片机从0000H单元开始执行程序。当由于程序运行出错或操作错误使系统处于死锁状态时,可以按复位键以重新启动,也可以通过监视定时器来强迫复位。
除PC之外,复位操作还对其他一些特殊功能寄存器有影响,SFR的复位状态如表2-2所列。复位操作还对单片机的个别引脚信号有影响。例如在复位期间,ALE和PSEN信号变为无效状态,即ALE=1,PSEN=1。复位操作对RAM内容没有影响。
表2-2 SFR的复位状态
┏━━━━━━┳━━━━━━━━┳━━━━━┳━━━━━━━━┓ ┃ 寄存器 ┃ 复位时的内容 ┃ 寄存器 ┃ 复位时的内容 ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃ PC ┃ 00H ┃ TCON ┃ 0X000000B ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃ ACC ┃ 00H ┃ TLO ┃ OOH ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃ B ┃ 00H ┃THO ┃ OOH ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃ PSW ┃ 00H ┃ TLl ┃ 00H ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃ SP ┃ 07H ┃ THl ┃ 00H ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃ DPTR ┃ 00H ┃SCON ┃ 00H ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃ PO~P3 ┃ FFH ┃ SBUF ┃ 不定 ┃ ┣━━━━━━╋━━━━━━━━╋━━━━━╋━━━━━━━━┫ ┃TMOD ┃ XX000000B ┃ PCON ┃ 0XXX0000B ┃ ┗━━━━━━┻━━━━━━━━┻━━━━━┻━━━━━━━━┛ 【2一19】80C51单片机的4个I/O口在使用上有哪些分工和特点? 【答】4个I/O口的分工和特点如下:
① P0口是一个多功能的8位口,可按字节访问也可按位访问。
? 用作I/0口。相当于一个真正的双向口:输出锁存,输入缓冲,但输入时须先将口
置l;每根口线可以独立定义为输入或输出。
? 用作地址/数据复用总线。作数据总线使用时,输入/输出8位数据D0~D7;作地
址总 线用时,输出低8位地址AO~A7。
② P1口是一个8位口,可按字节访问也可按位访问,因此,P1口不仅可以8位一组进行 输入、输出操作,还可以逐位分别定义各口线为输入线或输出线。输入时有条件,即需
7
单片微型计算机原理与接口技术
要先输出1,将该口设为输入状态。一般作I/o口用。
③ P2口是一个多功能的8位口,可按字节访问也可按位访问。在单片机采用并行扩展方式时,P2口作为地址总线的高8位D8~D15。
④ P3口是一个多功能的8位口,可按字节访问,也按可位访问。可作为I/0口使用,为准双向口。既可以字节操作,也可以位操作;既可以8位口操作,也可以逐位定义口线为输入线或输出线。
P3可替代输入、输出功能。 替代输入功能:
P3.0一一RXD,串行输入口。
P3.2一一IN'I、0,外部中断O的请求。 P3.3一一INTl,外部中断1的请求。
P3.4一TO,定时器/计数器O外部计数脉冲输入。 P3.5一一T1,定时器/计数器1外部计数脉冲输入。 替代输出功能:
P3.1一一TXD,串行输出口。
P3.6一一wR,外部数据存储器写选通,输出,低电平有效。 P3.7~RD,外部数据存储器读选通,输出,低电平有效。
【2—20】80C51单片机的I/0口.P0~P3用作通用I/O口时,要注意什么?
【答】PO~P3用作通用I/0口时,输入时都须先将相应端口锁存器置1,类似于置为输入方式。
I/O口:Po~P3都具有位地址,所以每根I/o口线可以独立定义为输入或输出。 PO口输出时为漏极开路输出,与NM0S的电路接口时,必须要用电阻上拉,才能有高电平输出;输入时为悬浮状态,为一个高阻抗的输入口。P1~P3口输出级接有内部上拉负载电阻,能向外提供上拉负载电流,所以不必外接上拉电阻。
【2—2l】80C51单片机有哪几种工作方式?简单说明其应用场合和特点。
【答】80C51单片机共有复位、程序执行、低功耗以及编程和校验4种工作方式。
? 复位方式:是单片机的初始化操作,其主要功能是把程序计数器Pc初始化为0000H,
使单片机从000H单元开始执行程序。除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,可以按复位键重新启动,也可以通过监视定时器WDT来强迫复位。
? 程序执行方式:是单片机的基本工作方式。
? 低功耗方式:80C5l单片机有两种低功耗方式,即待机方式和掉电保护方式。用于降低
功耗,提高可靠性。
? 编程和校验方式:对于片内具有EPROM型程序存储器的87C51(87C52)和片内具有
闪速存储器的89C51(89C52)、78E51(78E52)等单片机,可以通过编程来修改程序储器中的程序。
【2—22】举例说明80C51单片机在工业控制系统中低功耗工作方式的意义及实现方法。 【答】有些产品和系统要求工作时功耗尽量低,有的要求在停电时采用备用电池能工作较长时间,以上这些设计和要求往往与工业控制系统的低功耗设计密切相连。工业控制系统低功耗设计除了降低功耗,节省能源,满足绿色电子的基本要求之外,还能提高系统的可靠性,满足便携式、电池供电等特殊应用场合产品的要求。
80C51单片机有两种低功耗方式,即待机(空闲)方式和掉电(停机)保护方式。待机(空闲)方式和掉电(停机)保护方式都是由电源控制寄存器PCON的有关位来控制的。电源控制寄存器是一个逐位定义的8位寄存器,其格式如图2-2所示。
8
单片微型计算机原理与接口技术
┏━━━━━━━━━┳━━━━━━━━━━━━┓ ┃SMOD————— ┃GFl GF0 PD IDl。 ┃ ┗━━━━━━━━━┻━━━━━━━━━━━━┛ 图2-2电源控制寄存器PCON
SMOD 波特率倍增位,在串行口工作方式时,设SMOD=1,则波特率加倍。 GFl、GF0 通信标志位1、O,由软件置位或复位。 PD 掉电方位式,PD=1,则进入掉电工作方式。 IDL 待机方式位,IDL=1,则进入待机工作方式。
若PD位和IDL位同时为1,则先激活掉电方式。复位时PCON中所有位均为0。 1.待机方式
① 使用指令使PCON寄存器IDL位置1,则80C51进入待机方式。
? 此时振荡器仍然运行,并向中断逻辑、串行口和定时器/计数器电路提供时钟,中
断功 能继续存在。
? 向CPU提供时钟的电路被阻断,因此,CPU不能工作,与CPU有关的SP、PC、PSW、
ACC以及全部通用寄存器都被冻结在原状态。
② 可以采用中断方式或硬件复位来退出待机方式。
在待机方式下,若产生一个外部中断请求信号,在单片机响应中断的同时,IDL位被硬件自动清0,单片机就退出待机方式,而进入正常工作方式。在中断服务程序中安排一条RETI指令,就可以使单片机恢复正常工作,从设置待机方式指令的下一条指令开始继续执行程序。
在待机方式下,振荡器仍然在工作,因此,硬件复位只需保持两个机器周期的高电平就可以完成。RST端复位信号直接将IDL位清O,从而退出待机方式。CPU则从进入待机方式的下一条指令开始重新执行程序。 2.掉电保护方式 .
①PCON寄存器的PD位控制单片机进入掉电保护方式。
80C51单片机在检测到电源故障时,除进行信息保护外,还应把PD位置1,使之进入掉电保护方式。此时单片机一切工作都停止,只有内部RAM单元的内容被保护。
②只能依靠复位退出掉电保护方式。
80C51单片机备用电源由VCC端引人。当VCC恢复正常后,只要硬件复位信号维持10 ms,就能使单片机退出掉电保护方式,CPU则从进入待机方式的下一条指令开始重新执行 【2—2】单片机“面向控制”应用的特点,在硬件结构方面有哪些体现?
【答】单片机“面向控制”应用的特点,在硬件结构方面有以下几个方面的体现:
提供了数量多、功能强、使用灵活的I/O口和串行口。在80C51单片机系统中,还特别设置了布尔(位)处理机,对并行I/O口的口线直接进行位的控制,对“面向控制”的应用带来了极大方便。
设置多个中断源,并具有可编程的中断优先级,对于实时控制非常有利。 提供了多个定时器/计数器,有的单片机内部还具有监视定时器,有利于提高单片机的实时控制能力和控制的可靠性。
第3章 【单片机的指令系统】 思考与练习题解析
【3—1】什么是指令及指令系统?
【答】控制单片机进行某种操作的命令称为“指令”。单片机就是根据指令来指挥和控制 单片机各部分协调工作。指令由二进制代码表示,指令通常包括操作码和操作数两部分:操
9
单片微型计算机原理与接口技术
作码规定操作的类型,操作数给出参加操作的数或存放数的地址。 所有指令的集合称为“指令系统”。80C51单片机的指令系统专用于80C51系列单片机, 是一个具有255种操作码(OOH~FFH,除A5H外)的集合。 【3—2】80C51单片机的指令系统具有哪些特点?
【答】80C51单片机的指令系统容易理解和阅读。只要熟记代表33种功能的42种助记即可。有的功能如数据传送,可以有几种助记符,如MOV、MOVc、MOVX。而指令功能助 记符与操作数各种寻址方式的结合,共构造出111种指令,而同一种指令所对应的操作码可以多至8种(如指令中Rn对应寄存器R0~R7)。
80C51单片机的指令系统具有较强的控制操作类指令,容易实现“面向控制”的功能;具有位操作类指令,有较强的布尔变量处理能力。 【3—3】简述80C51指令的分类和格式。 【答】80C51的指令系统共有111条指令,按其功能可分为5大类:数据传送类指令(28条)、算术运算类指令(24条)、逻辑运算类指令(25条)、控制转移类指令(17条)和布尔操作(位)类指令(17条)。
指令的表示方法称之为“指令格式”,其内容包括指令的长度和指令内部信息的安排等。在80C51系列的指令系统中,有单字节、双字节和三字节等不同长度的指令。 ·单字节指令:指令只有一个字节,操作码和操作数同在一个字节中。
·双字节指令:包括两个字节。其中一个字节为操作码,另一个字节是操作数。
·三字节指令:操作码占一个字节,操作数占两个字节。其中操作数既可能是数据,也可能是地址。
【3—4】简述80C51的指令寻址方式,并举例说明。 【答】执行任何一条指令都需要使用操作数,寻址方式就是在指令中给出的寻找操作数或操作数所在地址的方法。
80C5l系列单片机的指令系统中共有以下7种寻址方式。
①立即寻址。在指令中直接给出操作数。出现在指令中的操作数称为“立即数”,为了与直接寻址指令中的直接地址相区别,在立即数前面必须加上前缀“#”。 例如:MOV DPTR,#1234H ;1234H为立即数,直接送DPTR ②直接寻址。在指令中直接给出操作数单元的地址。 例如: MOV A,55H ;55H是操作数单元的地址,55H单元内的数据才是操作数,取出后送累加器A
③寄存器寻址。在指令中将指定寄存器的内容作为操作数。因此,指定了寄存器就能得 到操作数。寄存器寻址方式中,用符号名称来表示寄存器。
例如: INC R7 ;R7的内容为操作数,加1后再送回R7 ④寄存器间接寻址。在指令中给出的寄存器内容是操作数的地址,从该地址中取出的才 是操作数。可以看出,在寄存器寻址方式中,寄存器中存放的是操作数;而在寄存器间接寻址
方式中,寄存器中存放的则是操作数的地址。
寄存器间接寻址须以寄存器符号名称的形式表示。为了区别寄存器寻址和寄存器间接寻 址,在寄存器间接寻址中,应在寄存器的名称前面加前缀“@”。
例如: ORL A.@Ro; 当R0寄存器的内容是60H时,该指令功能是以RO寄存器的内容60H为地址,将60H地址单元的内容与累加器A中的数相“或”,其结果仍存放在A中。 ⑤相对寻址。在指令中给出的操作数为程序转移的偏移量。相对寻址方式是为实现程序的相对转移而设立的,为相对转移指令所采用。
在相对转移指令中,给出地址偏移量(在80C51系列单片机的指令系统中,以“rel”表
10