单片机原理及应用课后习题答案__张兰红.doc_第1页
单片机原理及应用课后习题答案__张兰红.doc_第2页
单片机原理及应用课后习题答案__张兰红.doc_第3页
单片机原理及应用课后习题答案__张兰红.doc_第4页
单片机原理及应用课后习题答案__张兰红.doc_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

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

文档简介

单片机原理及应用 张兰红9第 1 章 微型计算机的基本概念1.1 微型计算机由哪几部分组成?每一部分各起何作用?解: 微型计算机由微处理器芯片、存储器芯片、输入输出接口电路芯片与总线组成。微处理器是微型计算机的核心,它通常包括 3 个基本部分: 算术逻辑部件 alu(arithmeticlogic unit),对传送到微处理器的数据进行算术运算或逻辑运算的电路,如执行加法、减法运算,逻辑与、逻辑或运算等。 工作寄存器组,用来存放操作数及运算的中间结果等。 控制部件,包括时钟电路和控制电路,时钟电路产生时钟脉冲,用于计算机各部分电路的同步定时;控制电路产生完成各种操作所需的控制信号。存储器是微型计算机的重要组成部分,计算机有了存储器才具备记忆功能。io 接口是沟通 cpu 与外部设备的不可缺少的重要部件。外部设备种类繁多,其运行速度、数据形式、电平等各不相同,常常与 cpu 不一致,所以要用 io 接口作桥梁,起到信息转换与协调的作用。总线是在微型计算机各芯片之间或芯片内部各部件之间传输信息的一组公共通信线。1.2 什么是 cpu?什么是主机?解:由于运算器、控制器是计算机处理信息的关键部件,所以常将它们合称为中央处理单元 cpu(central processing unit,简称 cpu)。通常把运算器、控制器、存储器这三部分称为计算机的主机。1.3 何谓计算机系统?何谓单板机?何谓单片机?解:计算机与外围设备、电源、系统软件一起构成应用系统,称为计算机系统。在一块印刷电路板上,集成了中央处理单元 cpu、只读存储器 rom、随机存取存储器 ram、i/o 接口、定时器/计数器、中断系统等功能部件,构成一台完整的微型计算机,称为单板机。在一块半导体芯片上,集成了中央处理单元 cpu、只读存储器 rom、随机存取存储器 ram、i/o 接口、定时器/计数器、中断系统等功能部件,构成一台完整的微型计算机,称为单片机。1.4 为什么要采用总线结构?芯片为什么要通过缓冲器才能挂在总线上?解:微型计算机采用总线结构后,芯片之间不需单独走线,大大减少了连接线的数量。挂在总线上的芯片不能同时发送信息,否 则多个信息同时出现在总线上将发生冲突而造成出错。如果有几块芯片需要输出信息,就必须分时传送,为了实现这个要求,挂在总线上的各芯片必须通过缓冲器与总线相连。1.5 何谓程序计数器?程序计数器中存放的是什么内容?它对计算机的工作起什么作用?在什么情况下,程序的执行顺序发生转移?此时程序计数器的内容是怎么样的?解:程序计数器 pc 是管理程序执行次序的特殊功能寄存器。程序计数器 pc 中存放的是下一条要执行的指令的地址。它管理程序执行的次序。在执行转移指令的情况下,程序的执行顺序发生转移。此时程序计数器直接接受内部总线送来的数据,并用该数据取代原有的内容。1.6 评价存储器有哪些重要的指标?为什么说存储器性能已成为计算机性能提高的关键?10解:存储器的重要指标是容量和存取速度。容量越大,则记忆的信息越多,计算机的功能就越强。存储器的存取速度比 cpu 的运算速度要低,所以存储器的工作速度是影响计算机工作速度的主要因素。1.7 综述存储器的种类、特点、用途和优缺点?(主要针对内存)解:按结构与使用功能分,内存储器可分为随机存取存储器 ram 和只读存储器 rom 两类。随机存取存储器 ram 又称读写存储器,它的数据读取、存入时间都很短,因此,计算机运行时,既可以从 ram 中读数据,又可以将数据写入 ram。但掉电后 ram 中存放的信息将丢失。ram 适宜存放原始数据、中间结果及最后的运算结果,因此又被称作数据存储器。只读存储器 rom 读出一个数据的时间为数百纳秒,有时也可改写,但写入一个数据的时间长达数十 ms,因此在计算机运行时只能执行读操作。掉电后 rom 中存放的数据不会丢失。rom 适宜存放程序、常数、表格等,因此又称为程序存储器。只读存储器又可以分为下列四类: 掩膜 rom:在半导体工厂生产时,已经用掩膜技术将程序做入芯片,用户只能读出其内容而不能改写。掩膜 rom 只能应用于有固定程序且批量很大的产品中。 可编程只读存储器 prom:用户可将程序写入 prom,仅程序一经写入就不能改写。 可擦除可编程只读存储器 eprom:用户可将程序写入 eprom 芯片。如果要改写程序,先用紫外灯照射芯片,擦去原先的程序,然后写入新程序。与 prom 芯片一样,写入的速度很慢,且要用到高压,所以必须用特定的 eprom 编程器写入信息。在计算机运行时只能执行读操作。 电擦除可编程只读存储器 eeprom:这是近年发展起来的一种只读存储器。由于采用电擦除方式,而且擦除、写入、读出的电源都用十 5v,故能在应用系统中在线改写。但目前写入时间较长,约需 10ms 左右,读出时间约为几百 ns。1.8 何谓堆栈?为什么要设置堆栈?栈区是怎样确定的?数据进栈、出栈按照何种规律?进栈用什么指令?出栈用什么指令?进栈、出栈时栈指针如何变化?通常栈底所指是什么内容?解:微型计算机中的堆栈是读写存储器 ram 中的一个特殊的区域,是一组按照“先进后出”的方式工作的、用于暂存信息的存储单元。设置堆栈的目的是便于保护断点地址与现场信息。用堆栈指针指示堆栈所在的位置。数据进栈、出栈“按先进后出”的原则工作。进栈用 push 指令,出栈用 pop 指令。进栈时指针向地址增加的方向变化,出栈时指针向地址减小的方向变化。栈底是最先进栈的信息所在的单元。1.9 请解释下列名词:(1) 字长,字,字节,bcd 码,ascii 码。(2) 指令,指令地址,指令系统,程序。解:(1)一台计算机一次所能处理的二进制代码的位数称为该计算机的字长。16 位二进制数称为一个字。8 位二进制数称为一个字节。二进制编码的十进制数,简称二十进制数,又称 bcd 码 (binary coded decimal)。11ascii 码是美国标准信息交换代码(american standard code for information interchange)的缩写。(2)指令:控制计算机进行各种操作的命令称为指令。指令地址:指令所在存储单元的地址。指令系统:一台计算机所具有的所有指令的结合,称为该计算机的指令系统。程序:一系列指令的有序集合称为程序。1.10 计算机中常用的计数制有哪些?解:二进制、十进制(bcd)、十六进制。1.11 什么是机器码? 什么是真值?解:把符号数值化的数称为机器数或机器码,原来的数值叫做机器数的真值。1.12 完成下列数制的转换。(1)10100110b( )d( )h(2)0.11b( )d(3)253.25( )b( )h(4)10ll011.101b( )h( )bcd解:(1) 166,a6(2) 0.75(3) 11111101.01,fd.4(4) 5b.a,100100010110001001011.13 8 位和 16 位二进制数的原码、补码和反码可表示的数的范围分别是多少?解:8 位二进制数原码(127+127)、16 位二进制数原码(32767+32767)8 位二进制数补码(128+127)、16 位二进制数补码(32768+32767)8 位二进制数反码(127+127)、16 位二进制数反码(32767+32767)1.14 写出下列真值对应的原码和补码的形式。(1) x111001lb(2) x71d(3) x+1001001b解:(1) 原码:11110011b 补码:10001101b(2) 原码:11000111b 补码:10111001b(3) 原码:01001001b 补码:01001001b1.15 写出符号数 10110101b 的反码和补码。解:11001010b,11001011b1.16 已知 x 和 y 的真值,求x 十 y的补码(1) x1110111by+l011010b(2) x56d y21d12解;(1) 11100011b(2) 00100011b1.17 己知 x1101001b,y1010110b用补码求 xy的值。解:11101101b1.18 请写出下列字符的 ascii 码。4a3!解:34h,41h,33h,3dh,21h1.19 若给字符 4 和 9 的 ascii 码加奇校验,应是多少?解:34h,b9h1.20 上题中若加偶校验,结果如何?解:b4h,39h1.21 计算下列表达式。(1) (4eh 十 10110101b) (0.0101)bcd( )d(2) 4eh(24/08h 十b/2)( )b解:(1) 1295d(2) 101010b13第 2 章 mcs51单片机的硬件结构2.1 请结合课本中 mcs51系列单片机的结构图,阐明其大致组成。解:按功能部件分,51 子系列单片机由 cpu、数据存储器 ram、程序存储器 rom、特殊功能寄存器、4 个并行 i/o 口、1 个串行口、定时器/计数器、中断系统等八个功能部件组成。cpu 由累加器 a、暂存器 1、2、alu、psw 等组成数据存储器由 ram 地址寄存器、ram 单元等组成。程序存储器指 eprom 或 rom。sfr 指 p0、p1、p2、p3 锁存器、b、dptr 等。2.2 综述 mcs51系列单片机各引脚的作用,并进行分类。解:(1) 主电源引脚vcc:接+5v 电源正端。vss:接+5v 电源地端。(2) 外接晶体引脚xtal1:片内反相放大器输入端xtal2: 片内反相放大器输出端(3) 输入输出引脚p0.0p0.7:p0 口的 8 个引脚。在不接片外存储器与不扩展 io 接口时,作为准双向输入输出接口(在输入时需要附加条件的双向输入输出口,称为准双向 i/o 口)。在接有片外存储器或扩展i/o 接口时,p0 口分时复用为低 8 位地址总线和双向数据总线。p1.0p1.7:p1 口的8 个引脚。可作为准双向 io 接口使用。对于 52 子系列,p1.0 与 p1.1 还有第二种功能:p1.0 可用作定时器计数器2 的计数脉冲输入端 t2;p1.1 可用作定时器计数器 2 的外部控制端 t2ex。p2.0p2.7;p2 口的 8 个引脚。一般可作为准双向 io 接口;在接有片外存储器或扩展 io 接口且寻址范围超过 256 个字节时,p2 口用为高 8 位地址总线。p3.0p3.7;p3 口的 8 个引脚。 一般可作为准双向 io 接口; p3 口的第二功能如表 21所示。表 21引脚 第二功能p3.0p3.1p3.2p3.3p3.4p3.5p3.6p3.7rxd (串行输入口)rxd (串行输出口)int0 (外部中断 0 请求输入端)int1 (外部中断 1 请求输入端)t0 (定时器/计数器 0 计数脉冲输入端)t1 (定时器/计数器 1 计数脉冲输入端)wr (片外数据存储器写选通信号输出端)rd (片外数据存储器读选通信号输出端)142.3 ea 引脚的作用是什么?在下列四种情况下, ea 引脚各应该接何种电平?(1)只有片内 rom。(2)只有片外 rom。(3)有片内 rom 和片外 rom。(4)有片内 rom 和片外 rom,片外 rom 所存为调试程序。解: ea vdd:片外程序存储器选用端。(1) ea =1。(2) ea =0。(3) 若片外 rom 和片内 rom 编址不重叠,则ea =1。(4) 若片外 rom和片内 rom 编址重叠,则 访问片内rom 时ea=1,访 问片外 rom 时ea=0。2.4 mcs51系列单片机的引脚中有多少根i/o 线?它们与单片机对外的地址总线和数据总线之间有什么关系?其地址总线和数据总线各有多少位?对外可寻址的地址空间有多大?解:mcs51系列单片机有 4 个 i/o 端口,每个端口都是 8 位双向口,共占 32 根引脚。在无片外扩展的存储器的系统中,这 4 个端口的每一位都可以作为双向通用 i/o 端口使用。在具有片外扩展存储器的系统中,p2 口作为高 8 位地址线,p0 口分时作为低 8 位地址线和双向数据总线,p3 口作为控制线使用。地址和数据线分别是 16 位和 8 位,对外可寻址的地址空间是 64kb。2.5 程序计数器的符号是什么?mcs51系列单片机的程序计数器有几位?它的位置在哪里?解: 程序计数器的符号是 pc,mcs51系列单片机的程序计数器有 16 位,为一个专用寄存器。在cpu 内部。2.6 何谓程序状态字?它的符号是什么?它的位置在哪里?它各位的含义是什么?为 1、为 0各代表什么?各在何种场合有用?解:程序状态字是一个 8 位寄存器,它包含了程序运行的状态信息,它的符号是 psw。它的位置在cpu 中。各位含义如下:d7 d6 d5 d4 d3 d2 d1 d0c ac f0 rs1 rs0 o2 p(1)进位标志位 c(psw.7):作用:在执行某些算术操作类、逻辑操作类指令时,可被硬件或软件置位或清零。例如 8 位加法运算时,如果运算结果的最高位d7 有进位,则 c=1,否则 c0;又如 8 位减法运算时,如果运算结果的最高位d7 有借位,则 c1,否则 c0。(2)辅助进位标志 ac(psw.6):作用:8 位加法运算时,如果低半字节的最高位 d3 有进位,则 ac1,否则 ac0;8 位减法运算时,如果 d3 有借位,则 ac1,否则 ac0。ac 在作 bcd 码运算而进行二十进制调整时有用。(3)软件标志 f0(psw.5)作用:是用户定义的一个状态标志。可通过软件对它置位、或清零。编程时,也常测试其是否建起而进行程序分支。15(4)工作寄存器组选择位 rs1、rs0 (psw.4、psw.3):作用:用软件置位或清零,以确定四组工作寄存器中的哪一组工作,它们与各组的对应关系为rs1 rs00 0 0 组(地址从 0007h)0 1 1 组(地址从 080fh)1 0 2 组(地址从 1017h)1 1 3 组(地址从 181fh)(5)溢出标志 ov(psw.2):作用:当执行算术运算时,由硬件置位或清零,以指示溢出状态。各种算术指令对该位的影响情况在指令系统中详细介绍。(6)奇偶标志 p(psw.0):每执行一条指令,单片机都能根据 a 中 1 的个数的奇偶自动令 p 置位或清零:奇为 1,偶为0。此标志对串行通信的数据传输非常有用,通过奇偶校验可检验传输的可靠性。2.7 mcs51系列单片机的内存由哪几部分组成?其编址与访问的规律是怎样的?解:mcs51系列单片机内存由程序存储器与数据存储器两个独立的空间。程序存储器的编址自 0000h 开始,最大可至 ffffh。mcs51单片机有 3 种不同的芯片:片内有掩膜只读存储器的(如 8051、8 052)、片 内有 eprom的(如 8751)和片内没有只读存储器的(如 8031、8032),而 rom 的寻址范围为 64kb,所以片内程序存储器的容量远小于该数,可见如扩展片外存储器,其裕量是很大的。rom 编址规律:程序存储器的编址规律为:先片内、后片外,片内、片外连续,二者一般不作重叠。根据 pc 的内容进行访问。片内 ram 从 00h 开始编址,片外 ram 从 0000h 开始,部分地址重叠(实际并不完全一样),若只需扩展少量片外 ram,容量不超过 256 个单元,则也可以按照 8 位二进制编址,从 00h 开始,到 ffh 结束。由于访问片内外 ram 所用的指令不一样,不会引起混淆。2.8 mcs51系列单片机片内ram 有多少单元?有哪些用途?这些用途各占用哪些单元?堆栈的栈区设在哪里?解:51 子系列片内 ram 有 128b 单元,52 子系列片内 ram 有 256b 单元。单片机片内 ram 可分为:工作寄存器区,位寻址区,数据缓冲区三个区域。(1) 工作寄存器区:00h1fh单元为工作寄存器区。供用户编程时使用,临时寄存8 位信息。分为四组: 0 7 r r ,但同时只能有一组参与程序程序的运行,用 rs1,rs0 两位的状态来选择参与运行的工作寄存器组。(2) 位寻地址:20h2fh,对该区的每一位,都有一个位地址,共有 128 个位地址。(3) 数据缓冲区:30h7fh(52 子系列为 30hffh),作为普通的 ram 单元使用。(4) 堆栈栈区一般设在 2fh 以上的单元。2.9 mcs51系列单片机在片内集成了哪些主要逻辑功能部件?各个逻辑部件的主要功能是什么?解:mcs51单片机在片内集成了中央处理器(cpu)、程序存储器(rom)、数据存储器(ram)、定时器/计数器、并行 i/o 接口、串行 i/o 接口和中断系统等几大单元。cpu是整个单片机的核心部件,由 运算器和控制器组成。运 算器可以完成算术运算和逻辑运算,16其操作顺序在控制器控制下进行。控制器是由程序计数器 pc(program counter)、指令寄存器 ir(instruction register)、指令译码器 id(instruction decoder)、定时控制逻辑和振荡器osc 等电路组成。cpu 根据 pc 中的地址将欲执行指令的指令码从存储器中取出,存放在 ir 中,id 对 ir 中的指令码进行译码,定时控制逻辑在 osc 配合下对 id 译码后的信号进行分时,以产生执行本条指令所需的全部信号。程序存储器(rom)用于存储程序、常数、表格等。数据存储器(ram)用于存储数据。8051 内部有两个 16 位可编程序的定时器/计数器 t0 和 t1,均为加 1 计数器。可用于定时和对外部输入脉冲的计数。8051 的中断系统主要由中断允许控制器 ie 和中断优先级控制器 ip 等电路组成。可实现对 5 个中断源的管理。8051 的中断系统主要由中断允许控制器 ie 和中断优先级控制器 ip 等电路组成。其中,ie 用于控制5 个中断源中哪些中断请求被允许向cpu 提出,哪些中断源的中断请求被禁止;ip用于控制 5 个中断源的中断请求的优先权级别。i/o 接口是 mcs51单片机对外部实现控制和信息交换的必经之路,用 于信息传送过程中的速度匹配和增加它的负载能力。可分为串行和并行 i/o 接口。2.10 8051 单片机的控制总线信号有哪些?各有何作用?解:独立的控制线一共有 4 条:(1)ale/ prog :地址锁存允许/编程线,配合 p0 口引脚的第二功能使用。在访问片外存储器时,8051在p0.7p0.0 引脚上输出片外存储器低位地址的同时在ale/ prog 上输出一个高电位脉冲,用于把这个片外存储器低位地址锁存到外部专用地址锁存器,以便空出 p0.7p0.0 引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051 自动在 ale/ prog 上输出频率为 fosc/6 的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用。(2) ea /vpp:允许访问片外存储器编程电源线,可以控制 8051 使用片内 rom 还是使用片外rom。若ea ,则允许使用片内 rom;若ea 则允许使用片外 rom。(3)psen :片外 rom 选通线,在执行访问片外 rom 的指令 movc 时,8051 自动在psen 上产生一个负脉冲,用于为片外 rom 芯片的选通。其他情况下psen 线均为高电平封锁状态。(4)rst/vpd:复位备用电源线,可以使 8051 处于复位工作状态。2.11 何谓特殊功能寄存器?8031 有哪些特殊功能寄存器?试按其用途相关联的硬件功能单元(如cpu、并行 i/o 口、串行 i/o 口、定时器/计数器、中断控制等)进行分类。解:特殊功能寄存器也称专用寄存器。专用于控制、管理片内算术逻辑部件,并行 i/o 口,串行 i/o口,定时器/计数器,中断系统等功能模块的工作,用户在编程时可以置数设定,但不能移作它用。除 pc 外,8031 有 18 个专用寄存器,其中 3 个为双字节寄存器,共占用 21 个字节,按其用途相关联的硬件功能单元可分:p0 口,堆栈指针、数据指针低字节,数据指针高字节,定时器/计数器/计数器 0 高、低字节,定时器/计数器 1 高、低字节,p1 口,电源控制、串行控制;串行数据缓冲器,p2 口,中断允许控制,p3 口,中断允许优先级控制,程序状态字,累加器,b 寄存器共 18 个专用寄存器。2.12 何谓时钟周期、指令周期、机器周期?针对 mcs51系列单片机,如采用 12mhz 晶振,它们的频率和周期各是什么?解: 振荡器输出的振荡脉冲经二分频成为内部时钟信号,用作单片机内部各功能部件按序协调工作的控制信号,其周期称时钟周期。机器周期:6 个时钟周期构成一个机器周期。17指令周期:cpu 执行一条指令的时间。针对 mcs51系列单片机,采用 12mhz 晶振,则振荡周期为 0.167us,时钟周期为 0.333us,频率为 6mhz,机器周期为 1us,频率为 1mhz,指令周期为 1us 到 4us,频率为 1mhz 到 0.25mhz。2.13 综述 p0、p1、p2、p3 口各有哪几种功能。解:这 4 个接口可以并行输入或输出 8 位数据;也可按位使用,即每一根输入输出线都能独立地用作输入或输出。四个 8 位并行口的功能各不相同:p0 口是三态双向口,通常称为数据总线口,因为只有该口能直接用于对外部数据总线的读写操作,p0 口还用于输出外部数据存储器的低 8 位地址。由于是分时输出,故应在外部加地址锁存器将地址数据锁存,地址锁存信号用 ale。p1 口是专门供用户使用的 i/o 接口,是准双向接口。p2 口是供系统扩展时作高 8 位地址线用,如果没有系统扩展,例如使用 8051/8751 单片机不扩展外部存储器时,p2 口也可以作为用户 i/o 线使用。p2 口也是准双向口。p3 口是双功能口,该口的每一位均可以独立地定义为第一 i/o 功能或第二 i/o 口功能。p3 口的第二功能如表 21所示。2.14 在读回端口数据时,为什么应读锁存器内容,而不宜读引脚电平?解:假如通过三态门从引脚上读回数据,有时会发生错误。例如用一根口线去驱动一个晶体管的基极,在向此口线输出 l 时,锁存器 q1,但晶体管导通后,引脚上的电平已拉到低电平(0.7v),从引脚读回数据会错读为 0。2.15 阐明“准双向口”这一名称所以要加用“准”字的理由。解:在执行输入操作时,如果锁存器原来寄存的数据 q0。那么由于q 1 将使 v1 导通,引脚被始终箝拉在低电平上,不可能输入高电平。为此,用作输入前,必须先用输出指令置 q1,使 v1截止。正因为如此 p1 口称为准双向接口。2.16 8031单片机与开关及led发光二极管接口电路如2.16题图所示。用 8031单片机p1 口的p1.3p1.0作为数据输入口,联接开关 k3k0,p1.7p1.4作为输出口,联接发光二极管 led3led0;编程使开关k3k0的状态由 p1.3p1.0输入,再由 p1.7p1.4输出,通过发光二极管显示出来,要求开关合上时,二极管亮,开关断开时,二极管不亮。+5veap1.5p1.68031p1.7led1led2led3p1.4+5vp1.0p1.1p1.2led0p1.3k1k2k3k02.16 题图解: org 2200hmov a,#ffh ;p1 口为输入,先送 118mov p1,a ;p1 口低 4 位输出 1loop:mov a,p 1 ;口状态输入swap a ;开关状态到高 4 位orl a,#0fh;低 4 位为 1,为下一次输入做准备mov p1,a ;开关状态输出ajmp loop ;循环2.17 电路如 2.17 题图所示,用 8031p1 口的 p1.0、p1.1 作为变量 x、w 的输入端,用 p1.2 作为电路输出端,并用 led 来显示输出,p1.3 端传送状态消息。当检测到 p1.3 为低电平时,cpu 开始运算 d = (x w) ( x w ) ,并把结果送 p1.2 输出显示,然后重新开始检测 p1.3 状态信息,试编写完成上述要求的程序。ea +5vxwp1.0p1.18031p1.3yp1.22.17 题图解:参考程序如下:org 0000hljmp mainorg 0100hmain: mov p1,#08hloop: mov c,p1.3jc loopmov p1,#03hmov c,p1.0anl c,p1.1cpl cmov 00h,cmov c,p1.0orl c,p1.1anl c,00hmov p1.2,csjmp mainend2.18 第 2.18 题图示电路中,x1、x2、x3 是三个故障源,当系统无故障时,x1、x2、x3 均为低电19平,对应的三个显示灯全灭;当某部分出现故障时,其对应的输入端由低电平变为高电平,从而引起 51单片机中断,中 断服务程序的任务是判定故障,并 点亮对应的发光二极管,发 光二极管 led1led3 对应三个输入端 x1x3。试编程。+5veap1.3p1.48031p1.5int0 +x1x2x3led1led2led3p1.0p1.1p1.22.18 题图解:参考程序如下:org 0000hljmp mainorg 0003hljmp int0serorg 0100hmain: mov p1,#0ffhsetb it0setb ex0setb ealoop: ajmp loopint0ser: jnb p1.0,l1clrp1.3l1: jnb p1.1,l2clrp1.4l2: jnb p1.2,l3clrp1.5l3: retend2.19 设某单片机应用系统的 p1 口连接如第 2.19 题图所示,要求根据 k0 的合断情况决定 d1、d0的点亮。如果 k0 合上,d0 点亮,如果 k0 断开,d1 点亮。试编程实现之。解:org 0000hljmp mainorg 0100hmain: mov p1,#0c0hloop: jb p1.7,elseclrp1.020ajmp loopelse: clrp1.1ajmp loopend+5v+5veak0d0d1p1.7p1.1p1.08031第 2.19 题图2.20 设某单片机应用系统的 p1 口连接如第 2.20 题图所示,问:+5v+5veak0k1d0d1p1.7p1.6p1.1p1.08031第 2.20 题图(1) 执行第一条指令后,哪些指示灯会亮?(2) 第二条指令的用处?(3) 执行下列指令到最后,(a)=?要求写出分析过程。mov p1,#0ehorl p1,#c0hmov a,p1anl a,#c0h解: 1. d1 会亮。2.为 p1.7、p1.6 的输入做准备。3.a 的内容为 80h。2.21 mcs51怎样实现上电复位与操作复位?并请综述各专用寄存器复位后的状态。解:与其他计算机一样,mcs51单片机系统有上电复位和操作复位两种方法。所谓上电复位,是21指计算机上电瞬间,要在 rst 引脚上出现宽度大于 10ms 的正脉冲,使计算机进入复位状态。操作复位指用户按下“复位”按钮使计算进入复位状态。复位是靠外部电路实现的。2.21 题图是上电复位及按钮复位的一种实用电路。上电时+5v 电源立即对单片机芯片供电,同时经r 对 c3 充电。c3 上电压建立的过程就是负脉冲的宽度,经倒相后,rst 上出现正脉冲使单片机实现了上电复位。按钮按下时 rst 上同样出现高电平,实现了操作复位。在应用系统中,有些外围芯片也需要复位,如果这些芯片复位端的复位电平与单片机一致,则可以与单片机复位脚相连。因此,非门在这里不仅起到了倒相作用,还增大了驱动能力。电容 c1、c2 起滤波作用,防止干扰窜入复位端产生误动作。10 k w1 c 2 c3 ccc v100 pf 10 f 10 f2.21 题图 复位电路各专用寄存器复位后的状态 如下表所示:22第 3 章 mcs51系列单片机的指令系统3.1 mcs51系列单片机的寻址方式有哪几种?请列表分析各种寻址方式的访问对象与寻址范围。解:立即寻址、寄存器寻址、寄存器间接寻址、直接寻址、基址寄存器加变址寄存器间接寻址、相对寻址、位寻址。寻址方式 访问对象 寻址范围立即寻址 立即数 寄存器寻址工作寄存器 r0r7,累加器a 、寄存器 b , 数据指针dptr,位处理器 c00h1fh,e0h,f0h、82h、83h寄存器间接寻址 ram 单元 内部 ram 及外部扩展的64kram直接寻址 rom 和 ram 内部 ram 00h7fh,sfr80hffh,rom64kb变址寻址 rom rom 0000hffffh相对寻址 rom rom 0000hffffh位寻址 位寻址区 内 ram 20h2fh中的可寻址位,sfr 中的可寻址位3.2 要访问片内 ram,可有哪几种寻址方式 ?解:对于 51 系列,要访问片内 ram,有间接寻址、直接寻址、位寻址。52 子系列访问片内低 128个字节有直接寻址、位寻址、间接寻址,高 128 字节有间接寻址。3.3 要访问片外 ram,可有哪几种寻址方式 ?解:访问片外 ram 有寄存器间接寻址方式。3.4 要访问 rom,可有哪几种寻址方式 ?解:要访问 rom 有直接寻址、变址寻址、相对寻址3.5 试分别对 51 子系列和 52 子系列,说明 mov a,direct 指令与 mov a,rj 指令的访问范围。解:mov a,direct 指令中 direct 对于 51 子系列的访问范围为内 ram 中的低 128b 单元,从 00h到 7fh,访问 sfr 的范围是从 80h 到 ffh;52 子系列的访问范围与 51 子系列的访问范围相同。mov a,rj 指令对于 51 子系列的访问范围为内 ram 的 128b 单元,从 00h 到 7fh,对于52 子系列的访问范围为片内 ram 从 00h 到 ffh。3.6 传送指令中有哪几小类是访问 ram 的?哪几个类是访问 rom 的,cpu 访问 rom 多不多?什么时候需要访问 rom?解: 访问 ram 的有:以累加器 a 为一方的传送指令,不以累加器为一方的传送指令,用立即数置数的指令,访问片外 ram 的传送指令, 进栈出栈指令,交换指令。访问 rom 的有: 基址寄存器加变址寄存器间址指令23因为 rom 是只读存储器,用作程序存储器,已事先存入各种程序,常数、表格等,cpu 访问rom 不多,当执行程序,程序转移以及用户访问时需要访问 rom。3.7 区分下列指令的不同功能: mov a ,#24h 与 mov a,24h mov a ,r0 与 mov a, r0 mov a, r0 与 movx a,r0解: 前者是将立即数 24h 送入 a 中,后者是将 24h 单元的内容送入 a 中.(2) 前者将 r0 中的内容送入 a 中,后者是将以r0 中的内容为地址所在单元的内容送入 a 中.(3) 前者是将片内 ram 以 r0 中的内容为地址所在单元的内容送入 a 中,后者是将片外 ram的以 r0 中的内容为地址所在单元的内容送入 a 中.3.8 设片内 ram30h 单元的内容为 40h,设片内 ram40h 单元的内容为 10h,片内 ram10h 单元的内容为 00h,(p1)=0cah,请写出下列指令执行后的结果。mov r0, #30hmov a, r0mov r1, amov b , r1mov r0 , p1mov p3 , p1mov 10h ,#20hmov 30h, 10h解: mov r0, #30h ; r030hmov a, r0 ; a40hmov r1, a ; r140hmov b , r1 ; b10hmov r0 , p1 ; 30h 0cahmov p3 , p1 ; p30cahmov 10h ,#20h ; 10h20hmov 30h, 10h ; 30h20h3.9 已知:(a)=35h,(r0)=6fh,(p1)=(90h)=fch,(sp)=c0h,试写出下列指令的执行结果。(1) mov r6,a(2) mov r0,a(3) mov a,#90h(4) mov a,90h(5) mov 80h,#81h(6) movx r0,a(7) push a(8) swap a(9) xch a,r024解: (1)mov r6, a ; (r6)=35h(2)mov r0, a ; (6fh)=35h(3)mov a, #90h ; (a)=90h(4)mov a, 90h ; (a)=fch(5)mov 80h, #81h; (80h)=81h(6)mov r0, a ; (6fh)=35h(7)push a ; (sp)=c1h,(c1h)=35h(8)swap a ; (a)=53h(9)xch a, r0 ; (a)=6fh,(r0)=35h3.10 已知:(a )=02h,(r 1)=7fh,(d ptr)=2ffch,片 内 ram(7fh)=70h,片 外 ram(2ffeh)=11h,rom(2ffeh)=64h,试分别写出下列指令的执行结果。(1) mov a ,r1(2) movx dptr,a(3) movc a,a+dptr(4) xchd a,r1解:(1) (a)=70h (2) 片外 ram(2ffch)=02h(3) (a)=64h (4) (a)=00h 片内 ram(7fh)=72h3.11 已知:(a)=78h,(r1)=78h,(b)=04h,c=1,片内 ram(78h)=ddh,片内 ram(80h)=6ch,试分别写出下列指令的执行结果(如涉及标志位,也要写出)。(1) add a ,r1(2) addc a,78h(3) subb a,#77h(4) inc r1(5) dec 78h(6) mul ab(7) div ab(8) anl 78h,#78h(9) orl a,#ofh(10) xrl 80h,a解:(1)(a)=55h (psw)=1110(2)(a)=56h (psw)=1110(3)(a)=00h (psw)=000025(4)(r1)=79h(5)(78h)=dch(6)(ba)=01e0h, c=1 ov=1(7)(b)=00h,(a)=1eh(8)(78h)=58h(9)(a)=7fh(10)(80h)=14h3.12 请对下列各组数分别计算“与”、“或”、“异或”的结果:(1) 10011010b 和 00001111b(2) 11010011b 和 01011010b(3) 11001100b 和 00110011b(4) 10101010b 和 11111111b解:(1)结果分别为 00001010b 10011111b 10010101b(2)结果分别为 01010010b 11011011b 10001001b(3)结果分别为 00000000b 11111111b 11111111b(4)结果分别为 10101010b 11111111b 01010101b3.13 为达到下列要求,请说明应采用何种逻辑操作,采用什么操作数,要求不得改变各未涉及位的内容。(1) 使累加器的最低位置1(2) 清除累加器的高四位(3) 使 a.2 和 a .3 置 1。(4) 清除 a.3、a .4、 a.5、a .6解:(1)逻辑或操作 操作数:00000001b(2)逻辑与操作 操作数:00001111b(3)逻辑或操作 操作数:00001100b(4)逻辑与操作 操作数:10000111b3.14 写出下列各条指令的机器码,并逐条写出依次执行每一条指令后的结果和 psw 的内容:(1) clr a(2) mov a, #9bh(3) mov b,#0afh26(4) add a,b解: (1)机器码 e4h ;(a)=0(2)机器码 749bh ;(a)=9bh(3)机器码 75f0afh ;(a)=afh(4)机器码 25f0h ;(a)=4ah;(psw)=11xxx1x1b3.15 要选用工作寄存器 3 组,请采用三种不同的指令实现之。解: (1) setb psw.4setb psw.3(2) orl psw,#18h(3) mov psw,#18h3.16 列举三种能使累加器 a 内容清零的指令,并比较其优缺、点。解: (1) anl a,#00h(2) mov a,#00h(3) clr a3.17 回答问题:(1) 算术操作类指令对标志位的影响。(2) 逻辑操作类指令对字节内容的修改。解:(1)算术操作指令的执行将影响特殊功能寄存器中状态寄存器 psw 的 3 个标志位:c:(psw.7)进位标志;ac:(psw.6)辅助进位标志;ov:(psw.2)辅助进位标志3 个标志除特别指出外,指令服从以下规则: 操作结果在最高位有进位输出(加法时)或借位输入(减法时),c=1;否则;c=0。 操作结果的低 4 位有进位输出( 加法时)或 有向高4 位的借位( 减法时),a c=1;否 则;a c=0。 溢出标志ov满足逻辑关系式ov=c6 c 7;c6 为加法时,累加器 a 的 d6 位向 d7 产生的进位,或减法时累加器 a 的 d6 位向 d7 产生的借位,有进位或借位时,c6=1;c7 为加法时,累加器 a 的 d7 位向更高位产生的进位,或减法时累加器 a 的 d7 位向更高位产生的借位,有进位或借位时,c7=1;ov 标志位常用于加减指令对带符号数做补码加、减运算时,(ov)=1 表示加、减运算的结果超出了 a 所能表示的带符号数的范围(128127)。(2)若要对内部的某几位清零,而其它位保持不变,可以选用 anl direct,#data 指令,在需27要清零的位上对应的 data 的相应位清零。 若要对内部的某几位置 1 可以选用orl direct,#data 指令,在需要置 1 的位上对应的 data的相应位置 1。 若要对内部的某几位求反可以选用xrl direct,#data 指令,在需要求反的位上对应的 data的相应位置 1。若要对内部 ram 某单元求反可以选用 xrl direct,#0ffh。3.18 要将片内 ram 0fh 单元的内容传送去专用寄存器 b,对 0fh 单元的寻址可有三种方法:(1) r 寻址;(2) r 间址;(3) direct 寻址;请分别编写出相应程序,比较其字节数、机器周期数和优缺点。解: (1) mov r0,0fhmov b,r0(2) mov r0,0fhmov b,r0(3) mov b,0fh(1) 占四个字节数,四个机器周期数;(2) 占四个字节数,四个机器周期数;(3) 占三个字节数,三个机器周期数;所以第三种方法最好。3.19 设(r0)=7eh, (dptr)=10feh,片 内 ram 7eh 单元的内容为 0ffh;7f单元的内容为 38h,试为下列程序的

温馨提示

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

评论

0/150

提交评论