收藏 分销(赏)

单片机原理与接口技术习题与答案汇编.pdf

上传人:曲**** 文档编号:4757344 上传时间:2024-10-12 格式:PDF 页数:101 大小:4.01MB
下载 相关 举报
单片机原理与接口技术习题与答案汇编.pdf_第1页
第1页 / 共101页
单片机原理与接口技术习题与答案汇编.pdf_第2页
第2页 / 共101页
单片机原理与接口技术习题与答案汇编.pdf_第3页
第3页 / 共101页
单片机原理与接口技术习题与答案汇编.pdf_第4页
第4页 / 共101页
单片机原理与接口技术习题与答案汇编.pdf_第5页
第5页 / 共101页
点击查看更多>>
资源描述

1、 单片机原理与接口技术(第2版)单片机原理与接口技术(第2版)习题与思考题参考答案汇编第1章概述.1第2章 MCS-51单片机硬件结构和原理.3第3章MCS-51单片机指令系统.11第4章 MCS-51汇编语言程序设计.17第5章 MCS-51单片机C51程序设计.23第6章 MCS-51单片机中断系统.29第7章 MCS-51单片机定时/计数器和串行接口.33第8章 单片机系统基本并行扩展技术.42第9章 单片机系统常用串行扩展技术.53第10章 单片机系统模拟量及其他扩展技术.61第n章 单片机系统无线扩展技术.70第12章 单片机系统电源设计.73第13章 单片机应用系统抗干扰技术.78

2、第14章 单片机系统开发工具与设计实例.82习题与思考题参考答案1第1章概述习题与思考题11-1微型计算机通常由哪些部分组成?各有哪些功能?答:微型计算机包括运算器、控制器、存储器、输入/输出接口 4个基本组成部分。其中运算器是计算机的控制核心,它的功能是负责从内部存储器中取出指令,对指令进行分 析、判断,并根据指令发出控制信号,使计算机有条不紊地协调工作。运算器的核心部 件是算术/逻辑单元,主要完成算术运算和逻辑运算。存储器是具有记忆功能的部件,用 于存储程序和数据。输入/输出接口又称I/O接口,是CPU与外设相连的逻辑电路,外 设必须通过接口才能和CPU相连。另外,微型计算机还包括输入输出

3、设备用于和计算机 进行信息交流的输入输出操作以及连接各个组成部分的总线。1-2单片微型计算机与一般微型计算机相比较有哪些区别?有哪些特点?答:单片机微型计算机与一般微型计算机基本结构相比较,中央处理器包含了运算器和控制器,存储器对应只读存储器和随机存储器,其中只读存储器存放程序,随机存储器 存放数据,I/O对应输入接口和输出接口,另外单片机内部还集成了定时/计数器、中断 控制器、系统时钟电路等,单片机通过总线进行各模块之间信息的传递。单片机的特点:单片机除了具备体积小、价格低、性能强大、速度快、用途广、灵 活性强、可靠性高等优点外,它与通用微型计算机相比,在硬件结构和指令功能方面还 具有以下独

4、特之处。1 存储器ROM和RAM严格分工,ROM用做程序存储器,只存放程序、常数和数据 表格;而RAM用做数据存储器,存放临时数据和变量。(2)采用面向控制的指令系统,单片机的指令系统有很强的端口操作和位操作能力,在 实时控制方面,尤其是在位操作方面单片机有着不俗的表现。3 I/O端口弓I脚具有复用功能,I/O端口弓I脚通常设计有多种功能,以充分利用数量有 限的芯片引脚。(4 品种规格的系列化,通过片内配置一些不同种类或不同数量的功能部件和容量大小 不同的ROM或RAM,以适用于不同的被控对象。(5 硬件功能具有广泛的通用性,通过给单片机固化上不同的软件,便可形成用途不同 的专用智能芯片。1-

5、3简述计算机的工作过程。2单片机原理与接口技术(第2版)答:计算机的工作是由微处理器以一定的时序来不断的取指令、指令译码和执行指令的过程。1-4简述单片机的几个重要指标的定义。答:单片机的重要指标包括:1 位数,指单片机能够一次处理的数据宽度;(2 存储器,是单片机系统中的记忆设备,用来存放程序和数据;3 I/O端口,输入/输出端口;(4 速度,指的是处理速度,以每秒执行多少条指令衡量常用单位是MIPS;5 工作电压,单片机的工作电压;(6 功耗,单片机的功耗;(7 温度,单片机的工作温度,可分为民用级、工业级和军用级三种。1-5单片微型计算机主要应用在哪些方面?答:单片微型计算机主要应用于智

6、能化产品、智能化仪表、智能化测控系统、智能化接口等方面。1-6为什么说单片微型计算机有较高的性能价格比和抗干扰能力?答:因为单片微型计算机主要面向特定应用而设计,设计者在硬件和软件上都高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能,具有较高的性 能、价格比;单片机嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而 不是存储于磁盘等载体中,另外单片机体积小,可以放入屏蔽设备中,从而使其具有较 高的抗干扰能力。1-7简述单片机应用系统的基本组成。答:单片机应用系统是以单片机为核心构成的智能化产品。其智能化体现在以单片机为核心构成的微型计算机系统,保证了产品的智能化处

7、理与智能化控制能力。单片机应用 系统一般都是由两部分组成的,即硬件部分和软件部分。单片机应用系统的软件部分主 要是根据需要来设计的。参照资料中图1-2单片机系统的硬件部分基本组成包括:(1 中央处理器,是单片机的核心单元,有逻辑运算部件和控制部件构成;(2 程序存储器,用来存放用户程序;3 数据存储器,用来存放程序运行中的工作变量和数据;(4 并行输入/输出端口,通常为独立的I/O 口,输入输出方式通过软件编程设定;(5 穿行输入/输出端口,用于单片机和串行设备或其他单片机系统的通信;(6 定时/计数器,用于单片机内部经确定时或对外部事件进行计数;(7 系统时钟,系统时钟通常需要外接石英晶体或

8、其他振荡源提供时钟信号输入,也有 的使用内部RC振荡器。习题与思考题参考答案3第2章 MCS-51单片机硬件结构和原理习题与思考题22-1 MCS-51单片机内部包含哪些主要功能部件?它们的作用是什么?答:MCS-51单片机内部包含中央处理器(CPU)、数据存储器、程序存储器、定时器/计数器、中断控制、输入输出(I/O)口等主要功能部件。(1)中央处理器(CPU)。CPU是单片机的核心部分,可以说是单片机的大脑和心脏。(2)数据存储器。数据存储器用于存放中间运算结果、数据暂存和缓冲、标志位等。(3)程序存储器。程序存储器用于存放编好的程序、常数和数据表格。(4)定时器/计数器。单片机的定时器/

9、计数器可以用于精确定时、脉冲计数、PWM调制 等其它功能。(5)中断控制。中断控制可以让CPU在出现异常情况或特殊请求时,停止现行程序的运 行,转去处理异常情况或特殊请求,处理完后,回到断点处,继续执行原程序。(6)输入输出(I/O)口。输入输出口的功能主要包含缓冲与锁存数据、地址译码、信息格 式转换、传递状态(外设状态)和发布命令等。2-2 MCS-51单片机的巨人、ALE和函函端的功能是什么?答:(1)EA:内外程序存储器选择/编程写入电源输入端。当瓦=0时,选择外部程序存 储器;编程写入时,输入编程电压Vpp。(2)ALE:地址输存允许端。当访问外部存储器时,提供PO作为低8位地址的锁存

10、信 号;正常操作时,提高时振荡器的6分频频率信号。(3)PSEN:用于片外程序存储器读取控制信号。2-3 程序计数器(PC)有多少位?它的主要功能是什么?答:程序计数器有16位,它的功能和一般微型计算机的相同,用来存放下一条要执行的 指令的地址。当按照PC所指的地址从存储器中取出一条指令后,PC会自动加1,即指 向下一条指令。2-4 简述MCS-51单片机片内RAM区地址空间的分配特点。答:MCS-51单片机的RAM区采用8位地址指针,寻址范围为256字节,它可分为两个部分:OOH7FH为可直接寻址和间接寻址空间;而80HFFH只能作间接寻址。80HFFH 直接寻址的空间为SFR空间,不能作数

11、据存储器用。4单片机原理与接口技术(第2版)2-5 MCS-51单片机如何实现工作寄存器组R0R7的选择?答:每个工作寄存器组都可被选为CPU的当前工作寄存器,用户可以通过改变程序状态字寄存器(PSW)中的RSI、RSO两位来任选一个寄存器组为当前工作寄存器。RS1RS0寄存器组R0R1R2R3R4R5R6R700。组00H01H02H03H04H05H06H07H011组08H09H0AH0BH0CH0DH0EH0FH102组10H11H12H13H14H15H16H17H113组18H19H1AH1BH1CH1DH1EH1FH2-6单片机复位后,各特殊功能寄存器中的初始化状态是什么?答:在

12、复位状态下,程序计数器指针为OOOOH,SFR的复位状态概括如下:(1)Pl、P2、P3、P4为输入状态(即为FFH)。(2)栈指示器SP=07H,即为片内RAM的07H单元。(3)除上述状态外,所有SFR的有效位均为0。详细描述见下表:特殊功能寄存器初始状态特殊功能寄存器初始状态ACCOOHTMODOOHPC0000HTCONOOHPSWOOHTLOOOHSP07HTHOOOHDPTR0000HTL1OOHP0 P3OFFHTH1OOHIPxxOOOOOOBBOOHIEOxOOOOOOBSCONOOHPCONOxxxOOOOBSBUF不定2-7在MCS-51单片机的21个特殊功能寄存器中,哪

13、些具有位寻址能力?答:MCS-51单片机中具有位寻址能力的寄存器有:(1)程序状态字寄存器(PSW);(2)B寄存器;(3)累加器(ACC);(4)端口 P0P3;(5)中断优先级控制寄存器(IP);(6)中断允许控制寄存器(IE);(7)定时/计数器控制寄存器(TCON);(8)串行口控制寄存器(SCON)o习题与思考题参考答案52-8 程序状态字寄存器(PSW)的作用是什么?答:程序状态字寄存器是一个8位寄存器,用来存放运算结果的一些特征。其各位定义如下:(1)Cy(PSW.7):进位标志位。在执行加、减法指令时,若运算结果的最高位(D7位)有进位或借位,则Cy位被置1,否则清零。Cy既可

14、以作为条件转移指令中的条件,也 可用于十进制调整。(2)AC(PSW.6):半进位标志位。在执行加、减法指令时,如果其低半字节向高半字 节有进位或借位(D3位向D4位),则AC位被置1,否则清零。AC也可用于十进制调 整。(3)FO(PSW.5):用户自定义标志位。用户可用软件对F0赋以一定的含义,决定程序 的执行转向。(4)RSI(PSW.4)和RSO(PSW.3):工作寄存器组选择位。(5)OV(PSW.2):溢出标志位。当补码运算的结果超出128+127的范围(溢出)时,0V位被置1,若无溢出,则0V位为0。OV也可以作为条件转移指令中的条件。(6)PSW.1:未定义位。(7)P(PSW

15、.0):奇偶校验标志位。单片机在指令执行后,根据ACC中1的个数的奇偶 性,自动将该标志位置1或清零。若1的个数为奇数,则P=l,否贝UP=0。P也可以作 为条件转移指令中的条件。2-9 MCS-51单片机的P3 口具有哪些功能?答:P3 口为带内部上拉电阻的准双向口。它具有复用功能,除作普通输入输出口外,它还可作以下用途:(1)RXD:UART的串行输入口,移位寄存器方式的数据端。(2)TXD:UART的串行输入口,移位寄存器方式的时钟端。(3)INTO:外部中断输入口 0。(4)INT1:外部中断输入口 lo(5)TO:定时器/计数器0输入口。(6)T1:定时器/计数器1输入口。(7)WR

16、:片外RAM写控制信号。(8)RD:片外RAM读控制信号。2-10 MCS-51单片机的片外总线是由哪些总线构成的?答:MCS-51单片机的片外总线包括数据总线、地址总线和控制总线。(1)数据总线(DB):由P0 口的第一功能提供。(2)地址总线(AB):低8位地址由P0 口的第二功能提供,高8位地址由P2 口提供。(3)控制总线(CB):包括RST/VPD,ALE/PROG,函函和IX八乐等控制信号。6单片机原理与接口技术(第2版)2-11 MCS-51单片机对外有几条专用控制线?答:有RST/VPD,ALE/PROG,函函和瓦/Vpp4条专用控制线。2-12单片机时钟电路有何用途?起什么作

17、用?答:单片机工作是在统一的时钟脉冲控制下一拍一拍地进行的,这个脉冲是单片机控制器中的时序电路发出的。单片机的时序就是CPU在执行指令时所需控制信号的时间顺 序。为了保证各部件间的同步工作,单片机内部电路应在唯一的时钟信号下严格地按时 序进行工作。MCS-51系列单片机内部有一个高增益反相放大器,用于构成振荡器,但 要形成时钟脉冲,外部还需附加电路。2-13什么是时钟周期、状态周期、机器周期和指令周期?当单片机时钟频率为12MHz时,一个机器周期是多少?ALE引脚的输出频率是多少?答:时钟周期也称为振荡周期,定义为时钟脉冲频率(启9的倒数,它是单片机中最基本的、最小的时间单位。状态周期是时钟周

18、期经2分频后成为内部的时钟信号,用做单片机内部各功能部件 按序协调工作的控制信号。用S表示。机器周期是指完成一个基本操作所需要的时间。指令周期是执行一条指令所需要的时间,一般由若干个机器周期组成,指令不同,所需要的机器周期数也不同。当单片机时钟频率为12MHz时,一个机器周期为Ipiso ALE引脚的输出频率为 2MHz o2-14什么时候需要复位操作?对复位信号有何要求?答:复位是单片机的初始化操作。单片机系统在上电启动运行时,都需要先复位。上电复位是利用电容器的充电实现的。在时钟电路工作后,在RST端给出连续2个机器周 期的高电平,单片机就可完成复位操作。即复位信号至少要持续两个机器周期的

19、高电平 才能可靠复位。2-15按例2-3的要求画出对应的硬件电路图。习题与思考题参考答案72-16设计一个按键电路。当按键长按5s以上时,系统复位;当按键短时间按时,系统控制 LED灯的开关。答案一:用软件实现方法。(1)电路图如下。X1.pzme pz.v/eP2A11 P2.4/AG P2AG PZ.H.U PN7伏巧PDITACO P0.VAD1 PDADZ PDAOa PQ.4/AD4 POLADS POJ&AOG PO.7/AOTFhH6T=_P3XVRXD P3MTM PmNTiE piaTITT p:14no P3snP3j&njR士(2)编写汇编程序如下。;51程序,当按键时间

20、小于5s时,控制灯的亮灭,按键时间大于5s时,系统复位。ORG0000HAJMPSTARTORGOOOBHAJMPTIME;定时器TO中断,50ms中断一次,总共100次,共5sORG0100HSTART:CLRP2.2FLAG1EQU 22H;按键时间超过5s标志位MOVIP.#02H8单片机原理与接口技术(第2版)MOVIE,#82HMOVTMOD,#01HMOVTHO,#3DHMOVTLO,#0B0HSETBEAMAIN:;主程序AAA:JNBP2.0,BBBAJMPEXITBBB:SETBTROJBP2.0,DDDMOVA,#01HCJNEA,FLAG1,BBBCCC:;长按键CLRT

21、RO;关闭定时器MOVTHO,#3DH;恢复定时器的初值MOVTLO,#0B0HJNBP2.0,$CLRFLAG1CLRAMOV21H,AMOV22H,AAJMP0000H;软件复位AJMPEXITDDD:CPLP2.1;短按键CLRTRO;关闭定时器MOVTHO,#3DH;恢复定时器的初值MOVTLO,#0B0HCLRAMOV21H,AAJMPEXITTIME:PUSHPSW;中断程序PUSHACCMOVTHO,#3DHMOVTLO,#0B0H习题与思考题参考答案9MOVA,21H;21H中存放次数ADDA,#01HMOV21H,ACLRCCJNEA,#100,TIME1AJMPTIME2T

22、IME1:JCTIME2MOVFLAGl,#01HCLRAMOV21H,ANOPTIME2:POPACCPOPPSWRETIEXIT:AJMPMAINEND答案二:用硬件实现方法。假定当电压高于3.5V时,被认定为高电平,以及假定单片机复位端一旦达到高电 平即可复位(不考虑其复位时序所需时间)。系统的供电电压(VCC)为5Vo(1)复位电路此部分采用RC串联电路,当按键按下时,电源电压通过电阻对电容充电,经过 时间t后,电容电压达到3.5V,完成复位。设初始状态为0,充电过程中,电容电压 Uc为t正)其中,匕c为电源电压,A为串联电阻,。为被充电电容。解上式求才得t=-RCln(l-)Ksc因

23、为介=5s,代入数值即t=-RC ln(l-3.5V/5V)55所以RC-5;24.i5s皿1 个)如果电容取值WF,那么R应选用4.15K,但实际中常选4.7k。10单片机原理与接口技术(第2版)(2 控制LED灯开关电路由于题目要求按键按下一次,灯的状态改变,所以可以选用触发器连接电路,此 处采用下降沿触发的JK触发器连接成D触发器的方式进行灯的开关控制。电路图如 下。习题与思考题参考答案11第3章MCS-51单片机指令系统习题与思考题33-1什么是寻址方式?MCS-51指令系统有哪些寻址方式?相应的寻址空间在何处?答:在指令系统中,操作数是一个重要的组成部分,它指定了参与运算的数据或数据

24、 所在的地址单元。如何找到参与运算的这个数据或数据所在的地址就称为寻址方式。MCS-51指令系统的寻址方式主要有立即寻址、直接寻址、寄存器寻址、寄存器间 接寻址、基址加变址寻址、相对寻址和位寻址等七种。对程序存储器只能采用立即寻址和基址加变址寻址方式;对特殊功能寄存器只能采 用直接寻址方式,不能采用寄存器间接寻址;对内部RAM的高128个字节(80HFFH),只能采用寄存器间接寻址,不能使用直接寻址方式;对位操作指令只能对位寻址区操作;外部扩展的数据存储器只能用MOVX指令访问,而内部RAM的低128个字节(00H7FH)既能用直接寻址,也能用间接寻址。3-2访问外部数据存储器和程序存储器可以

25、用哪些指令来实现?举例说明。答:访问外部数据存储器可以用以下指令实现:(1)MOVX A,Ri 该指令的功能是:(Ri)-A,即将寄存器Ri指向的片外RAM地址中的内容送到累加器A中。(2)MOVX Ri,A 该指令的功能是:A(Ri),即将累加器中内容送到寄存器Ri指向的片外RAM地址中。(3)MOVX A,DPTR 该指令的功能是:(DPTR)一A,即将数据指针指向的片外 RAM地址中的内容送到累加器A中。(4)MOVX DPTR,A 该指令的功能是:A一(DPTR),即将累加器中内容送到数据 指针指向的片外RAM地址中。访问程序存储器可以用以下指令实现:(1)MOVC A,A+DPTR

26、该指令的功能是:(A+DPTR)-A,即将表格地址单元 中的内容送到累加器A中。(2)MOVC A,A+PC 该指令的功能是:PC+1-PC,(A+PC)-A,即将表格地址单元中的内容送到累加器A中。3-3试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。(1)立即寻址方式;(2)寄存器寻址方式;(3)寄存器间接寻址方式12单片机原理与接口技术(第2版)答:(1)立即寻址方式:MOV30H,#0FH(2)寄存器寻址方式:MOVR5,#0FHMOV30H,R5(3)寄存器间接寻址方式:MOVR1,#0FHMOV30H,R13-4写出实现下列要求的指令或程序片段。(1)将R0的

27、内容传送到R1;(2)内部RAM的20H单元内容传送到寄存器R1;(3)内部RAM的20H单元的D7和D3位清零,其它位保持不变;(4)外部RAM的1000H单元内容传送到内部RAM的60H单元中;(5)外部RAM的1000H单元内容传送到寄存器R2;(6)清除累加器高4位。答:(1)MOVA,ROMOVRI,A(2)MOVRl,20H(3)MOVA,20HANLA,#77H(4)MOVDPTR,#1000HMOVXA,DPTRMOV60H,A(5)MOVDPTR,#1000HMOVXA,DPTRMOVR2,A(6)ANLA,#0FH3-5试编写一段程序,将内部数据存储器30H和31H单元内容

28、传送到外部数据存储器1000H 和1001H单元中。答:编写程序如下:MOVA,30HMOVDPTR,#1000HMOVDPTR,AMOVA,31HMOVDPTR,#1000HMOVDPTR,A3-6试编写一段程序,将外部数据存储器40H单元中的内容传送到0100H单元中。习题与思考题参考答案13答:编写程序如下:MOVMOVMOVDPTR,#0040HA,DPTR 01 OOH,A3-7试编写一段程序,将R3中的数乘4(用移位指令)。答:编写程序如下:MOVA,R3MOV23H,#02HL0:DJNZ23H,LILI:RLASJMPL03-8试编写一段程序,将R2中的各位倒序排列后送入R3中

29、。答:编写程序如下:MOVA,R2MOV23H,#08HL0:DJNZ23H,LILI:RLASJMPL0MOVR3,A3-9答:试编写一段程序,将Pl 口的高5位置位,低3位不变。编写程序如下:MOV A,PlORL A,#F8HMOV Pl,A3-10若(Rl)=30H,(A)=40H,(30H)=60H,(40H)=08Ho试分析执行下列程序段后上述各单 元内容的变化。答:执行程序段后各单元内容变化为:(A尸60H,(30H)=08H,(40H户60H,(R1 尸7FHMOVMOVMOVMOVA,R1 R1,4OH 40H,A R1,#7FH14单片机原理与接口技术(第2版)311 若(

30、A)=E8H,(RO)=40H,(RI)=20H,(R4)=3AH,(40H)=2CH,(20)=0FH,试写出下列各指令独立执行后有关寄存器和存储单元的内容?若该指令影响标志位,试指出CY、AC、和OV的值。(1)MOVA,R0(2)ANL40H,#0FH(3)ADDA,R4(4)SWAPA(5)DECR1(6)XCHDA,R1答:(A)=2CH(2)(40H)=0CH(3)(A)=22H CY=1 AY=1 OV=1(4)(A)=8EH(5)(20H)=OEH(6)(A)=EFH(20H尸08H3-12加法和减法指令影响哪些标志位?是怎么影响的?答:在带进位的加法运算中,会影响进位位Cy,

31、最终要将A中的值和其后面的值以及进位位Cy中的值相加,最终结果存在A中。在带进位减法指令中,要将累加器A的内容与第二操作数及进位标志相减,结果送 回累加器A中。并有如下情况分别说明:(1)在执行减法过程中,如果位7(D7)有借位,则进位标志Cy置 T,否贝情“0”;(2)如果位3(D3)有借位,则辅助进位标志AC置 T,否则清“0”;(3)如果位6有借位而位7没有借位,或位7有借位而位6没有借位,则溢出标志OV 置“1”,否则清“0”。(4)若要进行不带借位的减法操作,则必须先将Cy清“0”。3-13 SJMP指令和AJMP指令都是两字节转移指令,它们有什么区别?各自的转移范围是 多少?能否用

32、AJMP指令代替程序中的所有SJMP指令?为什么?答:AJMP和SJMP的区别有:(1)跳转范围不同。AJMP addrl;短跳转范围:2KBSJMP rel;相对跳转范围:-128+127(2)指令长度不同。(3)指令构成不同。AJMP、LJMP后跟的是绝对地址,而SJMP后跟的是相对地址。不能用AJMP指令代替程序中所有的SJMP指令,因为如果改变的话,程序跳转到 的新PC值指向的地址会不同,导致程序出现错误。习题与思考题参考答案153-14试用位操作指令实现下列逻辑操作。要求不得改变未涉及到的位的内容。(1)使ACC.0置位;(2)清除累加器高4位;(3)清除 ACC.3,ACC.4,A

33、CC.5,ACC.6。答:(1)SETBACC.0(2)CLRACC.4CLRACC.5CLRACC.6CLRACC.7(3)CLRACC.3CLRACC.4CLRACC.5CLRACC.63-15试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放 在R1中。答:编写程序如下:ANL R1,#OFHANL R2,#FOHMOV A,RIADD A,R2MOV RI,A3-16 若(CY)=1,(Pl)=10100011B,(P3)=01101100Bo 试才旨出执行下歹U程序段后,CY、Pl 口及P3 口内容的变化情况。MOV P1.3,CMOV P1.4,CMOV

34、C,P1.6MOV P3.6,CMOV C,P1.0MOV P3.4,C答:执行该程序段后,CY、Pl 口及P3 口内容变化如下:(CY)=1,(Pl)=10111011B,(P3)=01111100B3-17已知程序执行前有A=02H,SP=52H,(51H)=FFH,(52H)=FFHO执行下列程序段后,若干指定单元(51H)=(),(52H)=(),SP=()的结果。16单片机原理与接口技术(第2版)POP DPHPOP DPLMOV DPTR,#4000HRL AMOV B,AMOVC A,A+DPTRPUSH AMOV A,BINC AMOVC A,A+DPTRPUSH ARETOR

35、G 4000HDB 10H,80H,30H,50H,30H,50H答:执行该程序段后的结果:(51H)=(30H),(52H)=(50H),SP=(50H)3-18 如果 DPTR=507BH,SP=32H,(30H)=50H,(31H)=5FH,(32H)=3CH,执行下 列程序段后,若干指定单元DPH=(),DPL=(),SP=()的结果。POPPOPDPHDPLPOPSP答:执行该程序段后的结果:DPH=(3CH),DPL=(5FH),SP=(4FH)习题与思考题参考答案17第4章 MCS-51汇编语言程序设计习题与思考题44-1采用MCS-51系列单片机汇编语言进行程序设计的步骤是什么

36、?答:采用MCS-51系列单片机汇编语言进行程序设计的步骤是:1 分析题意,明确要求。(2 确定算法。根据实际问题的要求、给出的条件及特点,找出规律性,最后确定所采 用的计算公式和计算方法,这就是一般所说的算法。算法是进行程序设计的依据,它决 定了程序的正确性和程序的指令。3 画程序流程图,用图解来描述和说明解题步骤。(4 分配内存工作单元,确定程序与数据区的存放地址。(5 编写源程序。选用合适的汇编语言指令来实现流程图中每一框内的要求,从而编制 出一个有序的指令流。(6 程序优化。缩短程序的长度,加快运算速度和节省存储单元。7 上机调试、修改和最后确定源程序。4-2常用的程序结构有哪几种?特

37、点如何?答:常用的程序结构有:顺序结构、分支结构、循环结构、查表程序、子程序。其特点为:(1)顺序结构是程序结构中最简单的一种。用程序流程图表示时,是一个处理框紧接着 一个处理框。在执行程序时从第一条指令开始顺序执行直到最后一条指令为止。(2 分支结构,程序可根据要求无条件或有条件地改变程序执行流向。编写分支结构程 序主要在于正确使用转移指令。分支程序有:单分支结构、双分支结构、多分支结构(散 转)。3 循环结构,用于在处理实际问题时,要求某些程序段多次重复执行的时候。它不但 可使程序简练而且可大大节省存储单元,(4 查表程序,是一种常用的程序,它广泛用于LED显示器控制、打印及数据补偿、计

38、算、转换等功能程序中,它使程序简单、执行速度快。5 子程序,不必重复编写同样的程序,提高了编码的效率;缩短了源程序和目标程序 的长度,节省了程序存储器的空间;使程序模块化、通用化,便于阅读、交流和共享;便于分块调试。18 单片机原理与接口技术(第2版)4-3子程序调用时,参数的传递方法有哪几种?答:子程序调用时,参数传递可分为以下几种方法:1 传递数据。将数据通过工作寄存器R0R7和累加器来传送,即主程序和子程序在 交接处,通过上述寄存器和累加器存储同一参数。(2 传送地址。数据存放在数据存储器中,参数传递时只通过RO,R1或DPTR传递数 据所存放的地址。(3 通过堆栈传递参数。在调用之前,

39、先把要传送的参数压入堆栈,进入子程序之后,再将压入堆栈的参数弹出到工作寄存器或者其他内存单元。4-4编写程序,将片内30H39H单元中的内容送到以2000H为首的外部存储器。答:编写程序如下:ENDORG0000HSTART:MOVRO,#30HMOVDPTR,#2000HMOVRI,#10CLRALOOP:MOVA,R0MOVXDPTR,ADECRIDJNZRI,LOOP4-5编写程序,采用算术平均值滤波法求采样平均值,设8次采样值依次放在20H27H的 连续单元中,结果保留在A中。答:编写程序如下:;初始化FILT:CLRAMOVR2,AMOVR3,AMOVRO,#20HMOVR7,#08

40、H;累加采样值到R3,累加进位到R2=00000 xxxBFILT1:MOV A,R0ADD A,R3MOV R3,A CLR A ADDC A,R2习题与思考题参考答案19MOVR2,AINCRODJNZR7,FILT1;取平均值FILT2:SWAPARLA;R2/8,节省一个指令周期XCHA,R3SWAPARLA;R3/8,节省一个指令周期ADDA,#80H;四舍五入ANLA,#1FH;屏蔽移位进入的前三位ADDCA,R3;结果相加END4-6编写程序,将存放在内部RAM起始地址为20H和30H的两个3字节无符号相减,结 果存放在内部RAM单元70H、71H、72H中(低位对应低字节)。答

41、:编写程序如下:ORG0000HSTART:MOVRO,#20HMOVRl,#30HMOVR2,#03HCLRCSO:LCALLSIMOV70H,ALCALLSIMOV71H,ALCALLSIMOV72H,ASJMP$SI:MOVA,R0SUBBA,R1INCROINCRIRETEND20单片机原理与接口技术(第2版)4-7编写程序,实现两个双字节无符号数的乘法运算,乘数存放在R2和R3中(R2存放高 字节,R3存放低字节,以下类同),被乘数存放在R6和R7中,积存放在R4、R5、R6和R7中。答:编写程序如下:ORG0000H;低8位*低8位DMUL:MOVA,R3MOVB,R7MULABM

42、OVRO,AMOVR1,B;高8位*低8位MOVA,R2MOVB,R7MULABADDA,RIMOVRI,AMOVA,BADDCA,#00HMOVR5,A;低8位*高8位MOVA,R3MOVB,R6MULABADDA,RIMOVRI,AMOVA,R5ADDCA,BMOVR5,AMOVA,#00HADDCA,#00HMOVR4,A;高8位*高8位MOVA,R3MOVB,R6MULABADDA,R5习题与思考题参考答案21MOVR5,AMOVA,R4ADDCA,BMOVR4,A;R0、R1 给 R7、R6MOVA,ROMOVR7,AMOVA,RIMOVR6,AEND4-8 假设在R0指向的片内RA

43、M区,存有20个十六进制数的ASCII字串。将ASCII码转 换为十六进制数,然后两两合成一字节,从低地址单元到高地址单元依次组合。答:编写程序如下:ORG0000HSTART:MOVR7,#20SO:MOVA,ROMOVRI,A;R1为中间量MOVA,R0CLRCSUBBA,#30HMOVR1,AJCSOIMOVA,R0SUBBA,#07HMOVR1,ASOI:INCROMOVA,R0CLRCSUBBA,#30HSWAPAORLA,R1MOVR1,AJCS02MOVA,R0SUBBA,#07HSWAPA22单片机原理与接口技术(第2版)S02:ORA,R1MOVR1,AINCRODJNZR7

44、,SOEND4-9结合例4-22和图4-5编写线性标度变换程序。答:将256近似255,256比255做浮点运算简单很多。ENDPUSHACCPUSHPSWMOVA,#AmMOV20H,#AoCLRCSUBBA,20H;将256近似255,则A为小数点后的位MOV21H,#NmMOVB,21HDIVAB;B为整数位,A为小数点后的位ADDA,#80H;四舍五入MOV22H,NxMOVB,22HMULABADDA,#AoMOV39H,A;存低位MOVA,#00HADDCA,B;带进位相加MOV38H,A;存高位POPPSWPOPACCRET习题与思考题参考答案23第5章 MCS-51单片机C51

45、程序设计习题与思考题55-1写出一个C51程序的结构。答:C51程序的一般结构如下:全局变量说明/*可被各函数引用*/*主函数*/类型说明main 声明部分语句部分类型说明函数名1(形式参数表)/*函数1*/(声明部分语句部分)类型说明函数名n(形式参数表)/*函数n*/(声明部分语句部分5-2哪些变量类型是MCS-51单片机直接支持的?答:MCS-51单片机直接支持的变量类型有:bit、char、数组、指针、sbit、sfir 和 sfirl6。5-3如何定义内部RAM的可位寻址区的字符变量?答:使用存储类型关键字bdata和数据类型关键字char进行定义。如:char bdata字符变量名

46、;或:bdata char字符变量名;24单片机原理与接口技术(第2版)5-4试编写一段程序,将内部数据存储器30H和31H单元内容传送到外部数据存储器1000H 和1001H单元中去。答:编写程序如下:#include#include void main(void)unsigned char i,temp;for(i=0;i2;i+)(temp=DBYTE 0 x0030+i;XBYTE OxlOOO+i=temp;)while(l);)5-5试编写一段程序,将外部数据存储器40H单元中的内容传送到50H单元。答:编写程序如下:方法一:#include#include void main(v

47、oid)(XBYTE0 x0050=XBYTE 0 x0040;while(l);方法二:#include#include void main(void)(unsigned char xdata*xp;unsigned char data temp;xp=0 x0040;temp=*xp;xp=0 x0050;习题与思考题参考答案25*xp=temp;while(l);5-6试编写一段程序,将R3中的数乘以4。答:编写程序如下:#include void main(void)(unsigned int data*a;#pragma asmMOV A,R3#pragma endasma=0 x3

48、0;*a=ACC*4;while(l);)5-7试编写一段程序,将R2中的各位倒序排列后送入R3中。答:C51对Rx和移位操作不方便,用插入汇编实现。编写程序如下:#include void main(void)(#pragma asmMOVR7,#08HMOVR3,#00HLP:CLRCYMOVA,R2RLCAMOVR2,AMOVA,R3RRCAMOVR3,ADJNZR7,LP#pragma endasm while(l);26单片机原理与接口技术(第2版)5-8试编写一段程序,将P1 口的高5位置位,低3位不变。答:编写程序如下:#include void main(void)(Pl h0

49、 xf8;while(l);)5-9设8次采样值依次存放在20H27H的连续单元中,采用算术平均值滤波法求采样平均 值,结果保留在30H单元中。试编写程序。答:方法一:指针取数据。编写程序如下:#pragma small#include void main(void)(unsigned char*dp=0 x20,i;float temp=0;fbr(i=0;i8;i+)(temp+=*dp;dp+;)temp/=8;dp=0 x30;*dp=temp;while(l);方法二:直接地址调用数据。编写程序如下:#pragma small#include#include void main(vo

50、id)习题与思考题参考答案27unsigned char i;float temp=0;for(i=0;i8;i+)temp+=DBYTE0 x0020+i;)temp/=8;DBYTE0 x0030=temp;while(l);)5-10从20H单元开始有一无符号数据块,其长度在20H单元中。编写程序找出数据块中最 小值,并存入21H单元。答:方法一:指针取数据。编写程序如下:#pragma small#include void main(void)(unsigned char*dp,num,min,i;dp=0 x20;num=*dp;dp+;min=*dp;fbr(i=l;i*dp)mi

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服