单片微机原理和应用_徐春辉__电子工业出版社习题答案解析_第1页
单片微机原理和应用_徐春辉__电子工业出版社习题答案解析_第2页
单片微机原理和应用_徐春辉__电子工业出版社习题答案解析_第3页
单片微机原理和应用_徐春辉__电子工业出版社习题答案解析_第4页
单片微机原理和应用_徐春辉__电子工业出版社习题答案解析_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

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

文档简介

1、 .wd.第1章1简述计算机的根本组成构造。答:计算机的根本组成构造由输入设备、输出设备、运算器、控制器和存储器等五大部件构成。2简述单片微型计算机系统应用和开发的特点。答:单片微型计算机系统应用和开发的特点是需要进展软硬两方面的设计和调试。第2章1为什么微型计算机要采用二进制?十六进制代码能为微型计算机直接执行吗?为什么要使用十六进制数?答:在所有数制中,只有二进制数最容易用电路来表达,据此构建的计算机构造也是最简单的。十六进制代码不能为计算机直接执行,只有二进制代码才能为计算机所识别和执行。二进制代码过于冗长,而其对应的十六进制数那么更为简洁,而且此二种数制的相互转换非常方便,这就是常常使

2、用十六进制数来表示其对应的二进制数的原因。2将以下各二进制数分别转换为十进制数和十六进制数。 111010B 2110100B 310101011B 411111B答:111010B=26=1AH 2110100B=52=34H 310101011B=171=ABH 411111B=31=1FH3将以下各数分别转换为二进制数和十六进制数。 1129D 2253D 30.625 4111.111答:1129D10000001B=81H 2253D11111101B=FDH 30.625=0.101B=0.AH 4111.111=01101111.000111B=6F.1CH4把以下十六进制数转换

3、成十进制数和二进制数。 1AAH 2BBH 3C.CH 4DE.FCH 5ABC.DH 6128. 08H答:1AAH=170=10101010B 2BBH=187=10111011B 3C.CH=12.75=1100.1100H 4DE.FCH=222.984375=11011110.1111110B 5ABC.DH=2748.8125=101010111100.1101B 6128. 08H=296.03125=100101000.000015什么叫原码、反码及补码?答:在机器数中,最高位为符号位,正数的符号位用0表示,负数的符号位用1表示,其余为该数的绝对值,这种表示法称为原码。正数的反

4、码和原码一样;负数的反码为其原码除符号位外其他各位按位取反得所值。正数的补码和原码一样;负数的补码为反码加1。6原码如下,写出其反码及补码其最高位为符号位。 1X原 = 010110012X原 = 110110113X原 = 11111100答:1X反 = X补 = X原 = 01011001 2X反 = 10100100 X补 =10100101 3X反 = 10000011 X补 =100001007当微机把以下数视为无符号数时,它们相应的十进制数为多少?假设把它们视为补码,最高位为符号位,那么它们相应的十进制数又是多少? 110001110 210110000 300010001 401

5、110101答:视为无符号数时: 110001110B=142 210110000B=176 300010001B=17 401110101B=117假设把它们视为补码,最高位为符号位,那么它们相应的十进制数是:110001110B= -114 210110000B= -80 300010001B= 17 401110101B= 1178先将以下十六进制数转换为二进制数,然后分别完成逻辑乘、逻辑加和逻辑异或操作。 133H和BBH 2ABH和FFH378H和0FH答:1X=33H=00110011B,Y=BBH=10111011B;X Y=00110011B;XY=10111011B;XY=1

6、0001000B2X=ABH=10101011B,Y=FFH=11111111B;X Y=10101011B;XY=11111111B;XY=01010100B3X=78H=01111000B;Y=0FH=00001111B;X Y=00001000B;XY=01111111B;XY=01110111B;9x和y,试分别计算x + y补和x- y补,并指出是否产生溢出设补码均用8位表示。 1x = +1001110,y = +0010110 2x = +0101101,y = -1100100 3x = -0101110,y = +0111011 4x = -1000101,y = -0110

7、011答:1x + y补= 01100100B,无溢出;x- y补=00111000B,无溢出; 2x + y补= 11001001B,无溢出;x- y补=10010001B,溢出;3x + y补= 00001101B,无溢出;x- y补=10010111B,无溢出;2x + y补=10001000 B,无溢出;x- y补=11101110B,无溢出;10写出以下各数的BCD码。 145 298 3124 41998答:145=(0100 0101)BCD 298=(1001 1000)BCD3124=(0001 0010 0100)BCD 41998=(0001 1001 1001 1000

8、)BCD11用十六进制形式写出以下字符的ASCII码。 1CD 2COMPUTER 3HELLO 4F365答:143H、44H 243H、4FH、4DH、50H、55H、54H、45H、52H 348H、45H、4CH、4CH、4FH 446H、33H、36H、35H12ALU是什么部件?它能完成什么运算功能?答:ALU称为算术逻辑部件,它能完成算术运算和逻辑运算。13累加器有何用处?答:累加器通常用于提供ALU的一个运算数据或暂存ALU的运算结果,此外还能使存储其中的数据左移或右移。14控制字是什么意思?试举个例子说明之。答:控制字是一个二进制数,其各位代表相应控制信号的逻辑状态。例如:C

9、ON=LAEALBEBLCECLDED=10010000 表示要将存放器B的内容传送入存放器A中去。15ROM和RAM各有何特点和用处?答:ROM为只能读出的存储器,可用于存放固定的程序和数据。 ROM为可在线写入和读出的存储器,可用于随时写入或读出数据,也可用于写入随时有可能改变的用户程序。16为什么要建立“地址这个概念?答:因为存储器的存储单元很多,为区分不同的存储单元必须给每个存储单元编上地址。17除地线公用外,5根地址线和11根地址线各可选多少个地址?答:25=32个地址 211=2048个地址18译码器有何用处?答:译码器用于产生和输入代码相对应的控制信号。如果是存储器地址译码器那么

10、其能根据输入的地址信号产生存储器相应单元的选通信号。19存储地址存放器MAR和存储数据存放器MDR各有何用处?答:MAR用以承受来自PC的地址号。MDR用以承受来自总线的数据。此二者均为存储器的主要辅件。20微型计算机的根本构造是怎样的?包括哪些主要部件?答:微型计算机包括微处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路及外设组成。前面四大局部通过系统总线连接在一起。21指令、指令系统和程序三者间有什么区别和联系?答:指令是指挥计算机工作的指示和命令。而指令系统那么是一台计算机所拥有的所有指令的集合。程序那么是为了实现特点功能而将取自指令系统的指令按照一定顺序排列起来的组

11、织体。22控制部件包括哪些主要环节?各有何用处?答: 1指令部件作用是获取来自程序存储器的二进制指令操作码并将其译成控制动作信号送入控制矩阵。2时序部件作用是用于产生微操作控制部件所需的定时脉冲信号。3控制矩阵控制矩阵可以为ID输出信号配上节拍电位和节拍脉冲,也可将外部进来的控制信号组合,共同形成相应的微操作控制信号序列,控制相关部件按照严格的先后顺序执行指令所要求的各种微操作,最终完成规定的操作。23环形计数器有何用处?什么叫环形字?答:环形计数器用于产生机器节拍。假设将环形计数器的输出视为一个字,那么这个字就称为环形字24试说明以下各部件的作用: 1程序计数器PC 2指令存放器IR 3指令

12、译码器ID答:1程序计数器PC是在控制器中设置的一个专用存放器,用来存放当前要执行的指令在存储器中的位置信息即存储器地址,以便根据此地址去读取指令。2指令存放器IR是用来暂时存放从存储器中取出的当前要执行指令的操作码的这么一个存放器。3指令译码器ID是对指令操作码进展分析,在其输出端产生各种控制电平,以形成相应的微操作,用以实现指令执行过程中所需要的功能控制的这么一个译码器。25什么叫例行程序?什么叫机器周期、取指周期和执行周期?本章所论模型式计算机的机器周期包括几个时钟周期机器节拍?机器周期是否一定是固定不变的?答:例行程序是由控制部件内部的构造确定了的各条指令的执行步骤,机器周期是指一条指

13、令从取指到执行完所需的时钟周期数。取指周期为从PC开场输出使程序存储器中的指令进入IR到PC+1为止的时钟周期数。执行周期为从指令进入控制器起至执行完的时钟周期数。本章所论模型计算机的机器周期包括6个时钟周期,在这里机器周期是固定的,但是对于不同的计算机而言,机器周期就不一定是固定的了。26何谓总线?它有哪几类?它们的主要功能是什么?答:将多个装置或部件连接起来并传送信息的公共通道称为总线。总线通常有如下三种类型: 数据总线DB:专门传送数据信息。地址总线AB:专门传送地址信息。控制总线CB:专门传送控制信息。27微型计算机系统的硬件和软件包括哪些局部?各局部的作用是什么?答:硬件系统主要包括

14、主机箱、显示器、键盘和打印机等。主机箱内装有主机板、光盘和硬盘驱动器、电源等,CPU、内存储器和I/O接口电路等装在主机板上,一般主机板上还留有扩展插槽,以备用户扩展其他功能。硬件系统是运行各种软件的支持平台。计算机的软件系统包括系统软件和应用软件。系统软件是为了最大限度地发挥计算机的功能,便于使用、管理和维护计算机硬件的软件,它也是应用软件的支撑软件,可以为应用软件提供很好的运行环境。应用软件是指用户为了解决某一领域的实际问题而编制的计算机应用程序,具有明显的针对性和专用性。28什么叫单片机?和一般型计算机相比,单片机有何特点?答:单片是在一块芯片上集成了中央处理器CPU、存储器RAM、RO

15、M、定时器/计数器、中断控制、各种输入/输出I/O接口如并行I/O口、串行I/O口和A/D转换器等为一体的器件。 一般微型计算机的根本构造由CPU运算器、控制器、存储器、输入设备和输出设备五大局部组成,各局部通过外部总线连接而成为一体。单片机的构造是在一块芯片上集成了中央处理器CPU、存储器、定时器/计数器、中断控制、各种输入/输出接口如并行I/O口、串行I/O口和A/D转换器等,它们通过单片机内部总线连接而成为一体。29除了单片机这一名称之外,单片机还可称为 和 。答:微控制器和嵌入式控制器。30MCS-51系列单片机的根本型芯片分别为哪几种?它们的差异是什么?答:根本芯片为8031、805

16、1、8751。8031内部包括1个8位CPU、128BRAM,21个特殊功能存放器SFR、4个8位并行I/O口、1个全双工串行口,2个16位定时器/计数器,但片内无程序存储器,需外扩EPROM芯片。8051是在8031的根底上,片内又集成有4KBROM,作为程序存储器,是1个程序不超过4KB的小系统。8751是在8031的根底上,增加了4KB的EPROM,它构成了1个程序小于4KB的小系统。用户可以将程序固化在EPROM中,可以反复修改程序。31MCS-51系列单片机与51系列单片机的异同点是什么?答:51系列单片机与MCS-51系列单片机的内核构造和指令系统完全兼容,前者相比后者制造工艺得到

17、改良,并且片内资源有所增加。32说明单片机主要应用在哪些领域。答:单片机主要应用领域为:工业自动化;智能仪器仪表;消费类电子产品;通信方面;武器装备;终端及外部设备控制;多机分布式系统。第3章1AT89S51单片机的片内都集成了哪些功能部件?答:AT89S51单片机的片内都集成了如下功能部件:11个微处理器CPU;2128个数据存储器RAM单元 ;34K Flash程序存储器;44个8位可编程并行I/O口P0口、P1口、P2口、P3口;51个全双工串行口;62个16位定时器/计数器;71个看门狗定时器;8一个中断系统,5个中断源,2个优先级;925个特殊功能存放器SFR,101个看门狗定时器。

18、2说明AT89S51单片机的引脚接高电平或低电平的区别。答:当脚为高电平时,单片机读片内程序存储器4K 字节Flash中的内容,但在PC值超过0FFFH即超出4K字节地址范围时,将自动转向读外部程序存储器内的程序;当脚为低电平时,单片机只对外部程序存储器的地址为0000HFFFFH中的内容进展读操作,单片机不理会片内的4K 字节的Flash程序存储器。3单片机的存储器在物理构造上和逻辑上有何区别?答:单片机存储器的逻辑空间是指由单片机CPU所确定的可以寻址的空间。而物理空间是指有具体物理器件相对应可以实际存储数据的那局部逻辑空间。4AT89S51单片机中执行程序的地址放在哪里?是几位二进制数?

19、最大寻址范围是多少?程序状态字PSW各位的定义是什么?答:PC。16位。64KB。程序状态字PSW各位的定义是:1CyPSW.7进位标志位:2AcPSW.6辅助进位标志位:3F0PSW.5用户设定标志位:4RS1、RS0PSW.4、PSW.34组工作存放器区选择控制位:5OVPSW.2溢出标志位:6PSW.1位:保存位,未做定义,不可使用。7PPSW.0奇偶标志位:5什么叫堆栈?AT89S51中堆栈的最大容量是多少?答:所谓堆栈,是指一个连续的数据存储区域,其操作原那么为“先进后出或“后进先出。AT89S51中堆栈的最大容量理论上可以到达128B。6开机复位后,CPU使用哪一组工作存放器?它们

20、的地址是什么?如何改变当前工作存放器组?答:第0组。地址是00H07H。通过修改PSW中RS1、RS0两位的值来改变当前工作存放器组。764KB程序存储器空间有5个单元地址对应AT89S51单片机5个中断源的中断入口地址,请写出这些单元的入口地址及对应的中断源。答:64K程序存储器空间中5个特殊单元所分别对应的5个中断源的中断效劳程序入口地址如下表所示:入口地址中断源0003H外部中断0 ()000BH定时器0 (T0)0013H外部中断1 ()001BH定时器1 (T1)0023H串行口8在程序设计时,为什么有时要对复位后的堆栈指针SP重新赋值?如果在操作中需要使用三组工

21、作存放器,SP的初值应该至少多大?答:系统复位后,SP初始化为07H,使得堆栈事实上由08H 单元开场。考虑到08H1FH单元分属于工作存放器区的13组,如果程序设计中要用到这些存放器组,那么必须在复位后对堆栈指针SP重新赋值。最好把SP值改置为1FH或更大的值如60H,SP的初始值越小,堆栈深度就越深,堆栈指针的值可以由软件改变,因此堆栈在内部RAM中的位置比较灵活。如果在操作中需要使用三组工作存放器,SP的初值至少应该为17H。9AT89S51的寻址范围是多少?最多可以配置多大容量的外部ROM和多大容量的外部RAM?答:64KB、64KB、64KB。10AT89S51单片机运行出错或程序进

22、入死循环时如何摆脱困境?答:通过硬件复位。11AT89S51单片机扩展系统中片外程序存储器和片外数据存储器,使用一样的地址编码,是否会在数据总线上出现争总线现象?为什么?答:不会。因为这两种存储器使用的选通信号不同。片外程序存储器使用作为输出使能控制信号,而片外数据存储器分别使用和作为读写控制信号。12AT89S51的P0口和P2口各有何作用?P0口为什么要外接锁存器?答:P0口通常作为分时复用的地址/数据总线使用,作为地址总线使用时用于提供16位地址总线的低8位地址信号。P2口通常用于提供16位地址总线的高8位地址信号。在前述功能不使用的情况下,这两端口也可以作为一般的I/O使用。P0口外接

23、锁存器的目的是使CPU发出的地址信号在P0口作为数据通道时依然保持有效。13AT89S51的ALE引脚有何作用?AT89S51不接外部RAM时,ALE信号有何特点?答:AT89S51的ALE引脚用于对低8位地址信号的锁存控制。AT89S51不接外部RAM时,ALE信号是频率为时钟频率六分之一的固定周期信号。14举例说明单片机工业控制系统中掉电保护的意义和方法。答:单片机工业控制系统在运行程序的过程中,如果发生掉电故障将会丧失RAM和存放器中的数据,其后果有时是很严重的。为此,需要掉电保护功能,进展掉电保护处理。掉电保护方式是通过对SFR中的PCON地址87H)相应位置1而启动的。当CPU执行一

24、条置PCON.1位PD为1的指令后,系统进入掉电工作方式。在这种工作方式下,内部振荡器停顿工作。由于没有振荡时钟,因此,所有的功能部件都停顿工作。但内部RAM区和特殊功能存放器的内容被保存,而端口的输出状态值都保存在对应的SFR中。掉电模式的退出有两种方法:硬件复位和外部中断。硬件复位时要重新初始化SFR,但不改变片内RAM的内容。当VCC恢复到正常工作水平时,只要硬件复位信号维持10ms,便可使单片机退出掉电运行模式。15内部RAM中,位地址为40H、88H的位,该位所在字节的字节地址分别为 和 。答:28H;88H。16片内字节地址为2AH单元最低位的位地址是 ;片内字节地址为88H单元的

25、最低位的位地址为 。答:50H;88H。17假设A中的内容为63H,那么P标志位的值为 。答:P标志位的值为0。18在AT89S51单片机中,如果采用6 MHz晶振,那么一个机器周期为 。答:2µs19判断以下说法是否正确。A使用AT89S51且引脚= 1时,仍可外扩64 KB的程序存储器。 B区分片外程序存储器和片外数据存储器的最可靠的方法是,看其位于地址范围的低端还是高端。 C在AT89S51中,为使准双向的I/O口工作在输入方式,必须事先预置为1。 DPC可以视为程序存储器的地址指针。 答:A错;B错;C对;D对20AT89S51单片机复位后,R4所对应的存储单元的地址为 ,因

26、上电时PSW = 。这时当前的工作存放器区是 组工作存放器区。答:04H、00H、第 0 21判断以下有关PC和DPTR的结论是否正确。A指令可以访问存放器DPTR,而PC不能用指令访问。 B它们都是16位存放器。 C在单片机运行时,它们都具有自动加1的功能。 DDPTR可以分为2个8位的存放器使用,但PC不能。 答:(A) 对;(B) 对;(C) 错;(D) 对。22内部RAM中,可作为工作存放器区的单元地址为 H H。答:字节地址00H-1FH的单元可作为工作存放器区。23判断以下说法是否正确。AAT89S51中特殊功能存放器SFR就是片内RAM中的一局部。 B片内RAM的位寻址区,只能供

27、位寻址使用,而不能进展字节寻址。 CAT89S51共有21个特殊功能存放器,它们的位都是可用软件设置的,因此是可以进展位寻址的。 DSP称为堆栈指针,堆栈是单片机内部的一个特殊区域,与RAM无关。 答:(A) 错;(B) 错;(C) 错;(D) 错。24在程序运行中,PC的值是 。A当前正在执行指令的前一条指令的地址B当前正在执行指令的地址C当前正在执行指令的下一条指令的首地址D控制器中指令存放器的地址答:(C)。26AT89S51单片机程序存储器的寻址范围是由程序计数器PC的位数所决定的,因为AT89S51的PC是16位的,因此其寻址的范围为 KB。答:6427AT89S51的4个并行双向口

28、P0P3的驱动能力各为多少?要想获得较大的输出驱动能力,是采用低电平输出还是采用高电平输出?答:P0口每位可驱动8个LSTTL输入,而P1、P2、P3口的每一位的驱动能力,只有P0口的一半。当P0口的某位为高电平时,可提供400mA的电流;当P0口的某位为低电平0.45V时,可提供3.2mA的灌电流,如低电平允许提高,灌电流可相应加大。所以,任何一个口要想获得较大的驱动能力,只能用低电平输出。28当AT89S51单片机运行出错或程序陷入死循环时,如何摆脱困境?答:通过硬件复位。练习与思考题41按长度分,51系列单片机的指令有1字节的、2字节的和3 字节的。2按指令的执行时间分,51系列单片机的

29、指令有1、2 和4 机器周期的指令。351系列单片机汇编语言指令格式中,唯一不可缺少的局部是 B 。A标号B操作码C操作数D注释4简述8051的寻址方式和每种寻址方式所涉及的寻址空间。答:寻址方式寻址空间操作数的存放空间立即寻址程序存储器直接寻址片内RAM低128字节、特殊功能存放器存放器寻址工作存放器R0R7、A、B、DPTR存放器间接寻址片内RAM:R0、R1、SP片外RAM:R0、R1、DPTR变址寻址程序存储器:A+PC、A+DPTR相对寻址程序存储器256字节范围内:PC+偏移量位寻址片内RAM的位寻址区(字节地址20H2FH)、地址能被8整除的特殊功能存放器551系列单片机的寻址方

30、式中,位寻址的寻址空间是 D 。A工作存放器R0R7B专用存放器SFRC程序存储器ROMD片内RAM的20H2FH字节中的所有位和地址可被8整除的SFR的有效位6分析下面各指令源操作数的寻址方式。MOV A,32H ;直接寻址 MOV R7,A ;存放器寻址 MOV R0,#0FEH ;立即寻址 MOV A,R1 ;存放器间接寻址 MOV DPTR,#1E00H ;立即寻址 MOVC A,A+DPTR ;变址寻址 MOV C,20H ;位寻址 JC 10H ;相对寻址7访问特殊功能存放器和外部数据存储器,分别可以采用哪些寻址方式? 答:访问特殊功能存放器只能用直接寻址;访问外部数据存储器只能用

31、存放器间接寻址。8在存放器寻址方式中,指令中指定存放器的内容就是操作数 。9在寻址方式中,只能使用8位二进制数作为直接地址。10在存放器间接寻址方式中,其“间接表达在指令中存放器的内容不是操作数,而是操作数的地址 。11在变址寻址方式中,以 累加器A 作变址存放器,以 PC 或 DPTR 作基址存放器。12三种传送指令MOV、MOVC和MOVX,使用时有什么区别?答:MOV指令用来实现单片机内部存放器、存储单元、特殊功能存放器之间的数据传送。 MOVC指令用来读程序存储器中的数据表。 MOVX 指令用来实现累加器A和外部数据存储器之间的数据传送。13假定DPTR的内容为8100H,累加器的内容

32、为 40H,执行指令“MOVC A,A+DPTR后,程序存储器8140H单元的内容送累加器 A中。14单片机中PUSH和POP指令常用来C。A保护断点B保护现场C保护现场,恢复现场D保护断点,恢复断点15假定A =85H,R0 =20H,20H =AFH。执行指令:ADD A,R0后,累加器 A的内容为 34H ,CY 的内容为 1 ,AC的内容为 1 ,OV的内容为 1 。16假定(A) = 56H,(R5) = 67H。执行指令ADD A,R6 DA A后,累加器 A的内容为23H ,Cy的内容为1 。17假定(A) = 50H,(B) = 0A0H,执行指令“MUL AB后,存放器 B的

33、内容为32H,累加器A的内容为00H。18假定(A) = 0FBH,(B) = 12H,执行指令“DIV AB后,累加器A的内容为0DH,存放器 B的内容为11H。19以下指令中可将累加器A最高位置1的是B,C,D,E。AORL A,#7FH BORL A,#80H CSETB 0E7HDORL E0H,#80H ESETB ACC.720假定标号L2对应的地址值为0100H,标号L3对应的地址值为0123H。当执行指令“L2:SJMP L3时,该指令的相对偏移量即指令的第二字节为21H。21在位操作中,能起到与字节操作中累加器的相似作用的是进位标志位C 。22累加器A中存放着一个其值小于等于

34、127的8位无符号数,(Cy) = 0,执行RLC A指令后,那么A中的数变为原来的2倍。23试根据以下要求写出相应的汇编语言指令。1将R6的高四位和R7的高四位交换,R6、R7的低四位内容保持不变。答:MOV A, R6 MOV 30H, R7 MOV R0, #40H MOV R0, 30H XCHD A, R0 MOV R7, A MOV 30H, R0 MOV R6, 30H 2两个无符号数分别存放在30H、31H,试求出他们的和并将结果存放在32H。答:MOV A, 30HADD A, 31HMOV 32H, A3将30H单元的内容左环移两位,并送外部RAM 3000H单元。答: M

35、OV A, 30H RL A RL A MOV DPTR, #3000H MOVX DPTR, A4将程序存储器中1000H单元的内容取出送外部RAM 3000H单元。答:MOV A, #0MOV DPTR, #1000HMOVC A, A+DPTRMOV DPTR, #3000HMOVX DPTR, A5使累加器A的最高位置位。答:SETB ACC.76使进位标志位清0答: CLR C7使ACC.4、ACC.5和ACC.6置1。答:ORL A, #01110000B。24下述程序执行后,(SP)、(A)和(B)分别为多少?ORG 1000HMOV SP,#40HMOV A,#30HLCALL

36、 SUBRADD A,#10HMOV B,ASJMP $SUBR:MOV DPTR,#100AHPUSH DPLPUSH DPHRET答:(SP)=42H、(A)=30H,(B)=30H练习与思考题51. 用于程序设计的语言分为哪几种?它们各有什么特点?答:51系列单片机的编程语言可以分为汇编语言和高级语言如C语言两种,各自的特点如下:名称特点缺点优点适用场合汇编语言用符号书写指令用助记符表示操作码,特殊符号表示操作数机器不能直接识别;程序员必须了解机器的构造和指令系统,不易推广和普及;不能移植,不具备通用性较易为人们识别、记忆和读写实时控制系统高级语言用以英语为根底的语句编程机器不能直接识别

37、;执行时间长易于推广和交流;不依赖于机器,具有通用性科学运算和数据处理2. 说明伪指令的作用。“伪的含义是什么?常用的伪指令有哪些?其功能是什么?答:伪指令是在“机器汇编过程中,用来对汇编过程进展某种控制或者对符号和标号进展赋值。“伪的含义是指这些指令不属于指令系统中的指令,汇编时也不产生机器代码。常用伪指令有ORG、EQU、DATA、DB、DW、DS、BIT 、END。功能:ORG -指出后面程序块或数据块在程序存储器中存放的起始地址。EQU -赋值命令DATA-对数据地址或代码地址赋予规定的字符名称DB -定义字节数据DW -定义字数据DS-从指定的地址单元开场,保存假设干单元备用。BIT

38、 -定义位地址符号命令END -汇编完毕命令3. 设常量和数据标号的定义为:ORG2000HDAT1:DB 1, 2, 3, 4, 5DAT2:DB ABCDDAT3:DW 1200H,-2TAB: DW DAT1, DAT31画出上述数据或地址的存储形式。2写出各标号的地址。答:1地址内容(H)2000H01020304052005H414243442009H1200FFFE200DH20002009 2DAT1=2000H; DAT2=2005H; DAT3=2009H; TAB =200DH4. 编写双字节加法程序。要求:被加数放在内部RAM的30H高字节、31H低字节单元中,加数存放在

39、内部RAM的32H高字节和33H低字节中,运算结果放存放在30H,31H中,进位存放在位寻址区的00H位。答:ORG 0000HMOVA, 31HADD A, 33HMOV 31H, AMOV A, 30HADDC A, 32HMOV 30H, AMOV 00H, CSJMP $END5. 试编写程序,找出片内RAM 30H5FH单元中无符号数的最大数,并将结果存入60H单元。答: ORG 0000HMOV R0, #30HMOV R7, #2FHMOV A, R0AGAIN:INC R0MOV B,ACLRCSUBB A, R0JNC L1 MOV A, R0AJMP L2L1: MOV A

40、, BL2: DJNZ R7, AGAINMOV 60H, ASJMP $END6试编写程序,统计片内RAM的20H5FH单元中出现55H的次数,并将统计结果送60H单元。答:TABEQU 20HORG 0000H START: MOV 60H, #0 MOV R0, #TAB LOOP2: MOV A, #55H CLR CSUBB A, R0JNZ NEXTINC 60HNEXT: INC R0 CJNE R0, #60H, LOOP2SJMP $END7编写程序,将片外数据存储区中3000H30FFH单元全部清零。答: ORG 0000H START: MOV A, #0 MOV R7,

41、 #0 MOV DPTR, #3000H LOOP: MOVX DPTR, A INC DPTR DJNZ R7, LOOPSJMP $END8. 将外部RAM 8000H开场的20个字节数据传送到外部RAM 8100H开场的地址单元中去。答:DATA1EQU8000HDATA2EQU 00H ORG 0000H START: MOV DPTR, #DATA1 MOV R0, #DATA2MOV R7, #20 LOOP: MOVX A, DPTR MOV P2, #81H MOVX R0, AINC R0 INC DPTR DJNZ R7, LOOPSJMP $END9. 编程统计累加器A中

42、“1的个数。答:以下程序将A中“1的个数放在30H单元。DATEQU 37H ORG 0000H START: PUSH ACC MOV A, #DAT MOV 30H, #0NEXT:JZ EXIT CLR C RLC AJNC L1INC 30H L1: AJMP NEXT POP ACCEXIT:SJMP $END10. 编写程序,将30H34H单元中压缩的BCD码数(每个字节存放两个BCD码数)转换为ASCII码数,并将结果存放在片内RAM 60H69H单元。答:ORG 0000H START: MOV R0, #30H MOV R1, #60HMOV R7, #2AGAIN: MOV

43、 A, R0ANL A, #0F0HSWAP AADD A, #30H MOV R1, A MOV A, R0 ANL A, #0FHADD A, #30HINC R1MOV R1, AINC R0INC R1DJNZ R7, AGAIN SJMP $ END11将内部RAM 30H单元的内容转换成三位BCD码百位、十位、个位,并将结果存入外部RAM 1000H开场的单元。答:ORG 0000H START: MOV A, 30H MOV DPTR, #1000HMOV B, #100DIV ABMOVX DPTR, AINC DPTRMOV A, BMOV B, #10DIV ABMOVX

44、DPTR, AMOV A, BINC DPTRMOVX DPTR, ASJMP $ END12. 请使用位操作指令,编程实现,其中,20H、2FH、2AH都是位地址。答: ORG 0000H MOV C, 20H ANL C, 2FH CPL C ORL C, 2AH MOV P1.0, C SJMP $ END 13.简述利用Keil Vision调试汇编语言程序的主要步骤。答:利用Keil Vision调试软件的主要步骤包括:建立工程project编写汇编语言源程序并保存在工程中添加源文件设置工程编译并连接,创立目标文件调试程序。14.如何产生.hex文件?答:编译并连接时,在 “Proj

45、ect Workspace窗口中,右键Target 1,选择Options For TargetTarget1选项,弹出“option for Target对话窗,选Output选项卡,选中Create HEX File。15.在Keil Vision环境中,如何查看存放器和数据存储单元内容?答:点击“Regs,可查看存放器的内容。在Keil的菜单栏中,选择ViewMemory Window选项,翻开Memory对话窗,在Address栏中输入地址 “D: 0030H,查看片内RAM中0030H的内容。X:外部数据存储器,C:程序存储器练习与思考题81 什么叫中断?计算机采用中断有什么好处?答

46、:外部发生的某一件事件使CPU暂停正在执行的程序,转而执行与该事件相对应的程序,执行完此程序后再返回到原来被暂停的地方,继续执行原来的程序,这样一个过程就被称为中断。中断的好处:1可以提高CPU的工作效率。2可以提高实时数据的处理时效。3实现实时控制。2什么叫中断源?AT89S51有哪些中断源?各有什么特点?答:引起中断的原因称为中断源。AT89S51中断系统共有5个中断请求源:1外部中断请求0,中断请求标志为IE0。2外部中断请求1,中断请求标志为IE1。3定时器/计数器T0溢出中断请求,中断请求标志为TF0。4定时器/计数器T1溢出中断请求,中断请求标志为TF1。5串行口中断请求,中断请求

47、标志为TI或RI。特点:2个外部中断源,3个内部中断源。3. 什么叫中断系统?中断系统的功能是什么?答:实现中断处理功能的软硬件系统称为中断系统。中断系统的功能是:1对同时提出中断请求的多中断源进展优先级判断2实现中断嵌套3自动响应中断4实现中断并返回4中断嵌套及中断优先级的含义是什么?答:当CPU正在处理一个中断源请求时执行相应的中断效劳程序,发生了另外一个优先级比它更高的中断源请求,CPU暂停对原来中断源的效劳程序,转而去处理优先级更高的中断请求源,处理完以后,再回到原低级中断源效劳程序,这样的过程称为中断嵌套。 一个CPU通常可以与多个中断源相连,由于中断产生的随机性,可能出现两个或两个

48、以上中断源同时请求中断的情况,这就要求设计者必须根据轻重缓急给每个中断源赋予一个中断优先级。这样,当多个中断源同时向CPU请求中断时,CPU就可以率先响应中断优先权高的中断请求,而把中断优先权低的中断请求暂时搁置起来,等到处理完优先权高的中断请求后再来响应优先权低的中断。这就是中断优先级的含义。5AT89S51的6个中断标志位代号是什么?它们在什么情况下被置位和复位?答:1外部中断0中断请求标志为IE0。2外部中断1中断请求标志位为IE1。3定时器/计数器T0溢出中断请求标志位为TF0。4定时器/计数器T1溢出中断请求标志位为TF1。5串行口发送中断请求标志位为TI。6串行口接收中断请求标志位

49、为RI。各标志位因有相应的中断请求而置位,前四个标志位因相应的中断请求被响应而复位,而后两个标志位那么是在中断效劳程序里通过软件复位。6中断允许存放器IE各位的定义是什么?请写出允许T1定时器溢出中断的指令。答:IE中各位的定义如下:1EA:中断允许总控制位 EA = 0:CPU屏蔽所有的中断请求CPU关中断。 EA = 1:CPU开放所有中断CPU开中断。2ES:串行口中断允许位 ES = 0:制止串行口中断。 ES = 1:允许串行口中断。3ET1:定时器/计数器T1的溢出中断允许位 ET1 = 0:制止T1溢出中断。 ET1 = 1:允许T1溢出中断。4EX1:外部中断1中断允许位 EX1 = 0:制止外部中断1中断。 EX1 = 1:允许外部中断1中断。5ET0:定时器/计数器T0的溢出中断允许位 ET0 = 0:制止T0溢出中断。 ET0 = 1:允许T0溢出中断。6EX0:外部中断0中断允许位。 EX0 = 0:制止外部中断0中断。 EX0 = 1:允许外部中断0中断。允许T1定时器溢出中断的指令为:MOV IE,#88H或用位操作

温馨提示

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

评论

0/150

提交评论