




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用习题答案第一章计算机基础知识1-1 微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU、存储器、I/O 接口及 I/O 设备等组成,相互之间通过三组总线(Bus):即地址总线 AB 数据总线 DB 和控制总线 CB 来连接。CPU 由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。按其功能可分为 RAMf 口 ROM输入/输出(I/O)接口是 CPUf 外部设备进行信息交换的部件。总线是将 CPU 存储器和 I/O 接口等相对独立的功能
2、部件连接起来, 并传送信息的公共通道。1-3 什么叫单片机?其主要由哪几部分组成?答:单片机(SingleChipMicrocomputer)是指把 CPURAIMROM 定时器/计数器以及I/O 接口电路等主要部件集成在一块半导体芯片上的微型计算机。1-4 在各种系列的单片机中,片内 ROM 勺配置有几种形式?用户应根据什么原则来选用?答:单片机片内 ROM 勺配置状态可分四种:(1)片内掩膜(MasROMa 单片机(如 8051),适合于定型大批量应用产品的生产;(2)片内 EPRO 性单片机(如 8751),适合于研制产品样机;(3)片内无 ROMH 单片机(如 8031),需外接 EP
3、ROM 单片机扩展灵活,适用于研制新产品;(4)EEPROM 或 FlashROM)型单片机(如 89C5D,内部程序存储器电可擦除,使用更方便。1-5 写出下列各数的另两种数制的表达形式(二、十、十六进制)11000101001110101111111110110198200395851623629149562H4E47H249H3F6CH1D5D71-6 写出下列各数的 BCD与:59:01011001,1996:00011001100101104859.2:0100100001011001.0010389.41:001110001001.01000001第二章MCS-51单片机的硬件结构
4、2-18052 单片机片内包含哪些主要逻辑功能部件?答:8052 单片机片内包括:8 位中央处理器 CP个片内振荡器及时钟电路256B 数据存储器 RAM8KB 片内程序存储空间 ROM21 个特殊功能寄存器 SFR4 个 8 位并行 I/O 端口(32 条线)1 个可编程全双工用行口可寻址 64KB 的外部程序存储空间和外部数据存储空间3 个 16 位的定时器/计数器6 个中断源、2 个优先级嵌套中断结构2-28052 的存储器分哪几个空间?如何区别不同空间的寻址?答:?8052 的存储器分为 6 个编址空间:片内 ROM 勺容量为 8KB,其地址为 0000H1FFFH可扩展片外 ROM
5、勺容量为 64KB,其地址为 0000HFFFFH片内 RAM 勺容量为 256B,其地址为 00HFFH为二块: 地址 00H7FH#128B 为片内RAM 氐区,另 128B 为片内 RAM区,其地址空间为 80HFFH 其地址空间与 SFR 功能寄存器地址重叠;可扩展片外 RAM 勺容量为 64KB,其地址为 0000H1FFFH特殊功能寄存器 SFR 勺空间为 128B,其地址为 80HFFH 但实际只定义了 26B 单元,这 26B 单元分散在 80HF0H?程序存储器和数据存储器在逻辑上是完全分开的。CPU过指令 MOV 昉问程序存储器。当 8052 第 31 脚EA接高电平时,C
6、PU 将从片内程序存储器 0000H 单元开始执行,当 PC 值超出片内程序存储空间,即大于 1FFFH 时,会自动转向片外程序存储空间。当EA接低电平时,CPU 将从片外程序存储器 ROM 勺 0000H单元开始执行。CPUS 过 MOV 旨令访问片内数据存储空间 RAM 低区 128B 地址空间 00H7FH 中地址为 00H1FH32 个单元分为 4 个工作寄存器组,分别用 R0R7g 示,通过工作寄存器指令进行访问。 片内 RAMfr 的 20H2FH1 元除可作为一般字节寻址单元使用外, 这 16 个单元共 128位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为
7、 00H7FFt对片内高区 128B 寻址只能用寄存器间接寻址,而对特殊功能寄存器建起必须使用直接寻址。CPU!过指令 MOVX?问片外数据存储器。2-3DPTR 的作用是什么?它由哪几个寄存器组成?答: 相对于地址指针, DPTF称为数据指车+,但实际上 DPT 中存放的是一个 16 位的地址,作为访问程序存储器和外部数据存储器的地址指针。当对 64KB 外部数据存储器空间寻址时,作为间址寄存器使用,而在访问程序存储器时,作为基址寄存器使用。DPT/一个 16位的特殊功能寄存器,由两个 8 位寄存器 DPHDPLB 成,使用 SFR 中的 82H 和 83H 单元。2-4 简述布尔处理存储器
8、的空间分配。答:在单片机中位处理又称布尔处理,允许按位处理的存储器称为布尔处理存储器。其地址空间由二部分构成: 一部分是片内 RAM 中字节地址为 20H-2FH 的 16 字节的 128 个位,这些位编址为 00H7FH 另一部分在特殊寄存器中,其地址码能被 8 整除的 12 个特殊功能寄存器可以按位寻址,但其中 4 个未定义,一共有 92 位可按位寻址。这二部分结合起来形成一个具有 220 位的位寻址空间。2-58052 单片机设置 4 组工作寄存器,如何选择确定和改变当前工作寄存器?答: 8052 片内数据存储器的 00H1FH32 个单元分为 4 级作为 4 个工作寄存器第 0 组地址
9、 00H07H,第一组 08H0FH 第二组 10H17H 第 3 组 18H1FH 每个工作寄存器都有 8个单元,分别用 R0R7ft 示。4 组寄存器中每一组都可能被选为 CPU 勺工作寄存器,这是通过程序状态字 PSVWJPSW.3 (RS0 和 PSW.4 (RS1) 两位的状态来选择决定的。 见下表:PSW.4(RS1)PSW.3(RS0)当前使用的工作寄存器组 R0R7000 组(00H07H)011 组(08H0FH)102 组(10H17H)113 组(18H1FH)通过程序改变 RS1 和 RS0 的状态,就可方便地更换工作寄存器组2-6 程序状态字寄存器 PSW 的作用是什
10、么?常用的状态标志位有哪些位?作用分别是什么?答:PSWI 一个 8 位的特殊功能寄存器,由一些标志位组成,用于存放程序运行中的各种状态信息。它可以进行位寻址。各位的作用如下:Cy:进位标志位。 在进行加(或减) 法运算时,若操作结果的最高位(D7 位)有进位(或借位)时,Cy 由硬件置 1,否则 Cy 清 0。在进行位操作时,Cy 又是位累加器,指令助记符用 C 表示。AC 辅助进位标志位。在进行加(或减)运算时,若操作结果的低半字节(D3位)向高半字节产生进位(或借位)时,AC 位将由硬件自动置 1,否则 AC 位清00F0:用户标志位。用户根据需要对 F0 置位或复位,作为软件标志。RS
11、1 和 RSQ 工作寄存器组选择控制位。由用户用软件改变 RS1 和 RS0 的状态,以选择内 RAW 的哪组工作寄存器为当前工作寄存器组。OV 溢出标志位。当进行补码运算时,运算结果超出128+127 范围时,产生溢出,则 OV 自动置 1,否则 OV 青 0。PSW.1 保留位。8051 中未定义。P:奇偶校验标志位。每条指令执行完后,该位始终跟踪累加器 A 中 1 的数目的奇偶性。如果 A 中有奇数个 1,则 P=1;否则 P=002-78052 单片机的演引脚有何功能?在使用 8032 时,EA引脚就如何处理?答:8052 单片机的 31 脚为EA,EA为访问外部或内部程序存储器控制信
12、号。当鬲引脚接高电平且 PC 值小于 1FFFH 时,CP 而问内部程序存储器读取指令,当短引脚接低电平时,CPUR 访问外部等量齐观存储器读取指令。在 8032 芯片中没有内部程序存储器,因此,8032 芯片的 31 脚EA只能接地。2-88052 内部 RAMW 氐 128B 单元划分为哪几个主要部分?各部分主要功能是什么?答:8052 内部数据存储器 RAMW 氐 128B 单元地址空间 00H7FHt 划分为三个部分。第一部分地址为 00H1FH32 个单元分为 4 个工作寄存器组,分别用 R0R78 示,通过工作寄存器指令进行访问。片内 RAMH 勺第二部分 20H2FHI 元除可作
13、为一般字节寻址单元使用外,这 16 个单元共 128 位中的每一位又可单独作为软件触发器使用,具有位寻址功能,其位地址范围为 00H7FH;第三部分地址 30H7FH 这部分存储区域可作为 8 位数据缓冲区使用,一般地,用户把堆栈就设置在这部分区域。2-98052 内部 RAW 高 128B 单元与特殊功能寄存器区地址空间重叠, 使用中是如何区分这两个空间的?答:对 8052 片内高区(80H0FFH128B 只能采用寄存器间接寻址,而对特殊功能寄存器 SFR 建起必须采用直接寻址。2-10 什么叫堆栈?堆栈指针 SP 的作用是什么?答:堆栈是按照“先进后出,后进先出”的原则来存取数据的一个内
14、部 RAM区域,这个存储器区域的一端是固定的(栈底),另一端是活动的(栈顶),每个存储单元是不能按字节任意访问的。堆栈指针 SP 始终指向栈顶单元,栈顶随着数据入栈和出栈上下浮动。2-12 什么是时钟周期、机器周期和指令周期?答:(1)时钟周期(又称为振荡周期)是指振荡器产生一个振荡脉冲信号所用的时间, 是振荡频率的倒数,称为拍节。(2)机器周期是指 CPUI 成某一个规定操作所需的时间,8051 单片机的一个机器周期包含 6 个状态,并依次表示为 S1S6,每个状态分为 2 个节拍。因此一个机器周期包含 12 个时钟周期(振荡周期),依次表示为:S1P1S1P2S2P1,、S6P1、S6P2
15、(3)指令周期是指 CP 州行一条指令所需要的时间称为指令周期。MCS-51单片机指令周期根据指令的不同,可包含有 1 或 2 或 4 个机器周期。第三章MCS-51单片机指令系统3-1 指出下列每一条指令的寻址方式及其完成的操作;立即寻址,将 40H 移入片内 2FH 单元;直接寻址,将片内 2FH 单元的数移入累加器 A;立即寻址,将 2FH 移入当前寄存器组的 R1 单元;寄存器间接寻址,将寄存器 R1 中所存地址中的值移入MOV2FH,A;隐含寻址,将累加器 A 中的值移入片内 2FH 单元3-2 内部 RAM 勺 4FH 单元,可用哪几种寻址方式?分别举例说明答:直接寻址:MOVR1
16、4FH间接寻址:MOVR1#4FH寄存器间接寻址:MOVAR13-3 指出下列各条指令中,45H 代表什么?3-4 已知:(A)=7AH,(R0)=30H,(30H)=0A5H(PSW=80H,请写出下列各条指令的执行结果:答:PSW 勺各位为 11110000,即Cy=1,AC=1,F0=1,RS1=1,RS0=0,OV=0,P=0(1)SUBBA,30H结果:(A)=D4HCY=1,AC=0OV=1P=0MOV2FH,#40HMOVA,2FHMOVR1,#2FHMOVA,R1累加器 AMOVA,#45HMOVA,45HMOV45H,46HMOV45H,#45HMOVC,45H;数值;源地址
17、;目标地址; 目标地址和数值;源地址(2)SUBBA,#30H结果:(A)=49H,CY=QAC=0OV=QP=1(3)ADDARQ结果:(A)=AAHCY=QAC=QOV=1,P=Q(4)ADDA3QH结果:(A)=1FHCY=1,AC=QOV=Q,P=1(5)ADDA,#3QH结果:(A)=AAHCY=QAC=QOV=1,P=Q(6)ADDCA3QH结果:(A)=2QH,CY=1,AC=1,OV=Q,P=1(7)SWAPA结果:(A)=A7H 对标志位无影响(8)XCHDA,RQ结果:(A)=75H,(3QH)=AAH(RQ)=AAHP=1(9)XCHA3QH结果:(A)=QA5H(3QH
18、)=7AHP=Q(10) XCHA,RQ结果:(A)=3QH,(RQ)=7AHP=Q(11) MOVA,RQ结果:(A)=QA5HP=Q(12) XCHA,RQ结果:(A)=QA5H(3QH)=7AH,P=Q3-5 试分析以下程序段的执行结果:MOVSP,#3AHMOVA,#2QHMOVB,#3QHPUSHACCPUSHBPOPACCPOPB结果:(SP)=3AH(A)=3QH,(B)=2QH,(3BH=2QH,(3CH=3QH3-6 指出下列指令的执行结果,并写出每条指令的机器码。MOV3QH,#52H;(3QH)=52HQ111Q1Q1(753Q52H)MOVA,#7QH;(A)=7QHQ
19、111Q1QQ(747QH)MOVA,3QH;(A)=52H111QQ1Q1(E53QH)MOVR0,#30H;(R0)=30H10101000(7830H)MOVA,R0;A=52H11100010(E6H)3-7 分析下列指令的执行结果,并写出每条指令的机器码。3-8 设 R0 的内容为 32H,A 的内容为 48H,内部 RAM 勺 32H 单元内容为 80H,40 单元内容为 08H,指出在执行下列程序段后上述各单元内容的变化。MOVA,R0MOVR0,40HMOV40H,AMOVR0,#35H结果:(R0)=35H,(A)=80,(32H)=08H,(40H)=80H3-9 已知:(
20、A)=81H,(R0)=20H,(20H)=35H,指出执行完下列程序段后 A 的内容。ANLA,#17H;(A)=00000001ORL20H,A;(20H)=00110101XRLA,R0;(A)=00110100CPLA;(A)=11001011结果:(A)=CBH3-10 用指令实现下述数据传送:(1)内部 RAM20 咪元送内部 RAM40Hl 元。答:MOV40H,20H(2)外部 RAM20 咪元送 R0 寄存器。答:MOVR1,#20HMOVXA,R1MOVR0,A(3)外部 RAM20 咪元送内部 RAM20Hl 元答:MOVR1,#20HMOVXA,R1MOV20H,A(4
21、)外部 RAM1000 咪元送内部 RAM20 即元答:MOVDPTR,#1000HMOVXA,DPTRMOV20H,A(5)外部 ROM1000HL 元送内部 RAM20HL 元。MOVA,#70H;(A)=70HMOVDPTR,#2030H;(DPTR)=2030HMOVXDPTR,AMOV30H,#40HMOVR0,#30HMOVA,R0;(2030H)=70H;(30H)=40H;(R0)=30H;(A)=40H01110100(74H)10010000(90H)11110000(F0H)01110101(75H)01111000(78H)11100110(E6H)答:MOVDPTR,
22、#1000HMOVA,#00HMOVCA,A+DPTRMOV20H,A(6)外部 ROM1000H 元送外部 RAM20 咪元。答:MOVDPTR,#1000HMOVA,#00HMOVCA,A+DPTRMOVR1,#20HMOVXR1,A3-11 已知 16 位二进制数的高 8 位和低 8 位分别存放在 20H 和 21H 单元, 请编写将其右移一们的程序。CLRCMOVA,20HRRCAMOV20H,AMOVA,21HRRCAMOV21H,A3-12 编程实现内部 RAMR0R7 勺内容彳递到 20H27Hl 元。3-13 试编程进行两个 16 位数的减法,6F5DH-13B4H 结果存入内
23、部 RAM 勺30H 和 31H 单元,30H 存放差的低 8 位。CLRCMOVA,#5DHSUBBA,#B4HMOV30H,AMOVA,#6FHSUBBA,13HMOV31H,A3-14 编写程序,若累加器 A 的内容分别满足下列条件时,程序则至 LABEL 存储单元,设 A 中存放的是无符号数。LABEL:3-15 已知(SP)=25H,(PC)=2345H,(24H)=12H,(25H)=34H,(26H)=56H.问此时执行“RET 指令后,(SP 尸?,(PC 尸?答:(SP)=23H,(PC)=3412HA=10CJNEA,#10H,LABLAB:JNCLABELA0JNZLAB
24、ELLABEL:LABEL:(A)=10MOVR0,AMOVA,#10CJNEA,R0,LABLAB:JNCLABEL执行 RET 寸,PC 十(SP),SPSP-1,PC2(SP),SPSP-13-16 若(sp)=25H,(PC)=2345H,标号 LABEL 所在的地址为 3456H,问执行调用指令LCALLLABEL 后,堆栈指针和堆栈内容发生什么变化?(PC)的值等于什么?答:最后堆栈指针 SP=27H 堆栈指针 SP=26HtSP 内容为 45H,指针 SP=27H 处内容为23Ho 最后程序计数器指针 PC=3456H执行 LCALL 后,POPC+3SSP+1,(SP)PCL,
25、SKSP+1,(SP)PCH,PC 一 addU6。3-17 试编写程序,查找在内部 RAM 勺 20H50Hl 元中是否有 0AAH 这一数据。若有,则将 51H 单元置 01H,若未找到,则将 51H 单元置 00HoMOV51H,#00HMOVR0,#20HLOOP:MOVA,R0CJNEA,#0AAH,NEXTINC51HSJMPEEENEXT:INCR0CJNER0,#51H,LOOPEEE:SJMP$RAM2000H205FH元中出现00H 的次数,;RO 设为计数器,初始为 0;置片外 RAMS 始地址;置传送数据个数;外部 RAMI 元内容送 A;传送数据不为 0 跳转;传送数
26、据为 0,计数器加 1;下一个地址;地址没找完就继续;统计结果存入 50H 单元;暂停3-19 已知 R3 和 R4 中存有一个 16 位的二进制数,高位在 R3 中代位在 R4 中。请编程将其求补,并存回原处。答:首先假设 R&R4 中是原码,根据原码求补的方法当最高位(R3 的 D7;先设没找到;起始地址;取出数字;不相等就跳转;相等将 51 单元置 1;找到转去结束;下一个地址;地址没找完就继续;暂停3-18 试编写程序,统计在外部并将统计结果丰收入内部 RAM50Hl 元MOVR0,#00HMOVDPTR,#2000HMOVR1,#60HLOOP:MOVXA,DPTRJNZNE
27、XTINCR0NEXT:INCDPTRDJNZR1,LOOPMOV50H,R0SJMP$位)为 0 时表示为正数,那么补码与原码相同,当最高位为 1 时,表明是负数,负数的补码是最高位不变,其余位取反加 1.MOVA,R3MOVR4,AJBACC.7,NEGMOVA,R3SJMP$CPLANEG:MOVA,R4ADDCA,#00HCPLASETBACC.7CLRCMOVR3,AADDA,#01HSJMP$3-20 编写一个程序,把片外 RAMA2000H 开始存放的 10 个数传送到片内RAM30K 始单元。START:MOVR0,#30HINCR0MOVR1,#10HINCDPTRMOVDP
28、TR,#2000HDJNZR1,LOOPLOOP:MOVXA,DPTRSJMP$MOVR0,A3-21 试编程将内部 RAM 勺 30H 至 4FH 单元的内容分别传送到外部 RAM 勺2040H205FK 元。START:MOVR0,#30HMOVR1,#20HMOVDPTR,#2040HLOOP:MOVA,R0MOVXDPTR,A3-22 若外部 RAM 勺(2000H)=X,(2001H)=Y,编程实现 Z=3X+2Y 结果存入内部 RAM 勺 20H 单元,设 Z=255oSTART:MOVDPTR,#2000HMOVXA,DPTRMOVB,#03HMULABMOVR0,A3-23 试
29、对内部 RAM20K 元的内容进行判断, 若为正数,转向 2100H 若为负数,转向 2200H;若为 0,转向 2300HSTART:MOVA,20HJBACC.7,NEGINCDPTRINCR0DJNZR1,LOOPSJMP$INCDPTRMOVXA,DPTRADDA,AADDA,R0MOV20H,A;为负数JNBACC.7,POSILJMP#2100HSJMPEEENEG:LJMP#2200HSJMPEEEPOSI:LJMP#2300HSJMPEEEEEE:SJMP$3-24 已知 30T31H 中存有一个 16 位二进制数,高位在前低位在后。试编程将它们乘 2,再存回原单位中。STAR
30、T:MOVA,31HADDCA,30HADDA,31HMOV30H,AMOV31H,ASJMP$MOVA,30H3-25 已知从外部 RAM2000HFF 始的单元中有 20 个带符号的补码数, 试编程把正数和 0取出来存放到内部 RAM20Hzp 始的存储单元中(负数为作处理)。START:MOVR0,#20HMOVDPTR,#2000HMOVR1,#20HLOOP:MOVXA,DPTRJBACC.7,NEGMOVR1,AINCR1NEG:INCDPTRDJNZR0,LOOPSJMP$第四章汇编语言程序设计4-1 什么叫伪指令?伪指令与指令有什么区别?答:伪指令不属于单片机指令集中的指令,在
31、汇编时不产生目标代码,不影响程序的执行,仅指明在汇编时执行一些特定的操作。如为程序指定一个存储区、将一些数据、表格常数存放在指定的存储单元、对地址赋用户名等。指令是计算机所能执行的一种基本操作的描述,是计算机软件的基本单元。51 单片机单片机的指令有二种表达方式:机器码指令和汇编语言指令。;为 0;需处理的数的个数;需处理数的起始地址;用于存储的目标地址;负数不需处理4-2 循环程序由哪几部分组成?答:由初始化部分、循环处理部分、循环控制部分、循环结束部分这四部分组成。4-3 什么是子程序?对于子程序设计有什么要求?答:一段具有某一特定功能,能被其它程序所调用,调用结束后能自动返回到调用处的程
32、序块就称为子程序。对子程序设计的要求:4-4 试对下列程序进行人工汇编,并说明此程序的功能。ORG1000H地址;指令码ACDL:MOVR0,#25H;1000H7825MOVR1,#2BH;1002H792bMOVR2,#06H;1004H7A06CLRC;1006HC3CLRA;1007HE4LOOP:MOVA,R0;1008HE6ADDCA,R1;1009H37DECR0;100AH18DECR1;100BH19DJNZR2,LOOP;100CHDAFASJMP$;100EH80FEEND;1008H-100EH=-06H 其补码为(11111010)什0FAH功能:将 25H 单及前
33、5 个数与 2BH 单元及前 5 个数分 6 组相加,结果丢弃4-5 从内部 RAM 勺 20H 单元开始,有 15 个数据。试编一程序,把其中的正数、负数分别送到 41H 和 61H 开始的存储单元,并分别将正数、负数的个数送40H 单元和 60H 单元。MOVR0,#41HMOVR1,#61HMOVSP,#2EHMOVR3,#00HMOVR4,#00HMOVR7,#15LOOP:POPACC;存放正数的起始地址;存放负数的起始地址;指明栈顶地址;正数个数;负数个数;需判断数的个数;出栈放入 A单元中存放一个代码。若此代码为十进制数的 ASCII 码,则将其相应的十进制数送片内 RAM 勺
34、50H 单元,否则将此单元置成 0FFHMOVA,40HCLRCSUBBA,#30H;数字比其 ASCII 码值小 30HJCLOOP;存的 ASCII 值小于 0 的 ASCII 码值跳转JBACC.7,NEGCJNEA,#00HLOOP1SJMPLOOPLOOP1MOVR0,AINCR0INCR3SJMPLOOP2NEG:MOVR1,AINCR1INCR4LOOP2DJNZR7,LOOPMOV40H,R3MOV60H,R4SJMP$END;负数跳转;非负非零转正数处理;零不处理,取下一个数;正数保存;正数存放地址加 1;正数个数加 1;未结束就继续;将负数送负数保存地址;负数地址加 1;负
35、数个数加 1;未结束就继续;正数个数送 40H 单元;负数个数送 60H 单元4-6 设内部 RAM4130H 和 31H 单元中有二个带符号数求出其中的大数存放在32H 单元中MOVA,30HSJMP$XRLA,31HLOOP1:MOV32H,31HJBACC.7,LOOPMOVA,30HSUBBA,31HJCLOOP1MOV32H,30HSJMP$LOOP:MOVA,30HJBACC.7,LOOP1MOV32H,ASJMP$4-7 试编制实现 ASCII 码转十进制数的程序。在8032 单片机内 RAM 勺 40HMOVR0,AMOVA,#09HSUBBA,R0;减 30H 后差大于 0,
36、是否不;大于 9?JCLOOP;差大于 9,跳转MOV50H,R0;将数字存入 50H 单元SJMP$LOOP:MOV50H,#0FFH;不是数字,存入 0FFHSJMP$END4-8试编程将存放在 8032单片机内部 RAMfr 首址为 20H长度为 50H的数据快传送到片外 RAM;20H 为首址的连续单元中。MOVR0,#20HINCR0MOVR1,#20HINCR1MOVR7,#50HDJNZR7,LOOPLOOP:MOVA,R0SJMP$MOVXR1,A4-9 设一个字符串存放在 8032 单片机内部 RAMW20H 为首址的连续单元中,字符串以回车结束。 要求统计该字符串中字符 C
37、(C=43 竹的个数,并将其存入外部 RAM 勺 40H 单元。试编写实现上述要求的程序。INCR2LOOP2:INCR0SJMPLOOPEXIT:MOVDPTR,#0040HMOVA,R2MOVXDPTR,ASJMP$END4-10 设有一长度为 20H 的字符串,它存放在片外RAM1000Hz 首地址的连续单元中。试编制将其中数字与字母分开并将它们送到片内 RAM 以 30H 和 50HMOVR0,#20HMOVR2,#00HLOOP:MOVA,R0XRLA,#0DH;判断是否是回车符JZEXITMOVA,R0XRLA,#43HJNZLOOP2为首地址的连续单元中的程序oMOVDPTR,#
38、1000HMOVR7,#20HMOVR0,#30HMOVR1,#50HLOOP:MOVXA,DPTRCJNEA,#30H,LOOP1SJMPISNUMLOOP1:JNCLOOP2SJMPISCHARLOOP2:CJNEA,#3AH,LOOP3LOOP3:JCISNUMSJMPISCHAR4-14 设片外 RAMA1000H 单元开始存放 100 个无符号 8 位二进制数。试编程将它们从大到小依次入片内 RAMA10H 开始的单元中。MOVR7,#100MOVDPTR,#1000HMOVR0,#10HLOOP:MOVXA,DPTRISCHAR:MOVR1,AINCR1INCR0SJMPNEXTS
39、JMPNEXTNEXT:INCDPTRISNUM:CLRCDJNZR7,LOOPSUBBA,#30HSJMP$MOVR0,AEND4-11 试编程将片内 RAMEDATA 仲元开始的 20H 个单字节依次与 DATA 理元为起始地址的 20H 个单字节进行交换MAIN:MOVR7,#20HDATA1EQU20HMOVR0,AINCR0DATA2EQU40HINCR1MOVR0,#DATA1MOVR1,#DATA2LOOP:MOVA,R0XCHA,R1DJNZR7,LOOPSJMP$END4-13 设片内 RAM 勺 20H4FH1 元中有若个无符号数,试编程求出其中的最大值及所在单元地址,将最
40、大值存入片内址存入片内 RAM 勺 51H 单元。MOVR0,#20HMOVR7,#20HMOVA,R0MOVR2,AMOVA,R0MOVR1,ALOOP:INCR0CLRCSUBBA,R0JNCLOOP1RAMB50H 单元,最大值所在单元地MOVA,R0MOVR2,AMOVA,R0MOVR1,ALOOP1:MOVA,R1DJNZR7,LOOPMOV50H,R1MOV51H,R2SJMP$ENDMOVR0,AINCDPTRINCR0DJNZR7,LOOP4-15 设有 2 个 4B 的 BCD:X=24350809Y=12450379X 从片内 RAM 勺25H 单元开始存放,Y 从片内 R
41、AM 勺 35H 单元开始存放,求两数的和。设数据在内存中按照低字节在前,高字节在后的顺序存放。CLRCLOOP:MOVA,R0ADDCA,R1DAAMOVR0,AINCR0INCR1DJNZR7,LOOPSJMP$END4-16 设晶振频率为 6MHz 试编一能延时 20ms 的子程序答:一个机器周期 T=12/6*106=2 囱,延时 20ms 需要 20000/2=10000 个机器周期。工作需要机器周期数NOP;1MOVR7,#99MOVR6,#99NEXT:MOVR0,#10HMOVA,R0MOVR1,ALOOP2INCR0MOVA,R0CLRCSUBBA,R1JNZLOOP3SJM
42、PLOOP4LOOP3JCLOOP4MOVA,R0DECR0MOVR0,AMOVA,R1INCR0MOVR0,ALOOP4:MOVA,R0MOVR1,ADJNZR7,LOOP2DECR6MOVA,R6MOVR7,AINCR6DJNZR6,NEXTSJMP$ENDMOV25H,#24HMOV26H,#35HMOV27H,#08HMOV28H,#09HMOV35H,#12HMOV36H,#45HMOV37H,#03HMOV38H,#79HMOVR7,#04HMOVR0,#25HMOVR1,#35H拟用以下程序:START:MOVR6,#data1;1LOOP1MOVR7,#data2;1NOP;1
43、LOOP:NOP;1NOP;1NOP;1DJNZR7,LOOP;2DJNZR6,LOOP;2RET;2延时周期数为 1+(5*data2+5)*data1+2,选择最合适的 datal 和data2Data1=200,data2=99,延时机器周期数为 10003 个,延时 20.006ms4-17 利用查表技术将累加器 A 中的一位 BCDB 转换成相应的十进制数的七段码,结果仍放在A中(设显示管 09的七段码分别是40H,79H,24H,30H,19H,12H,02H,78H,00H,1BH。SUB1:INCAMOVCA,A+PCRETDB40H,79H,24H,30H,19H,12H,0
44、2H,78H,00H,1BH4-18 试编一采用查表法求 120 的二次方数的子程序。 要求: X 在累加器 A 中, 1wXw20,二次方高位存放在 R6 中,低位存放在 R7 中。SUB:MOVDPTR,#0100HMOVR0,AADDA,R0MOVR0,AMOVCA,A+DPTRMOVR7,AINCDPTRMOVA,R0MOVCA,A+DPTRMOVR6,ARETORG102HDB01H,00H,04H,00H,09H,00H,10H,00H,19H,00HDB24H,00H,31H,00H,40H,00H,51H,00H,64H,00HDB79H,00H,90H,00H,0A9H,00
45、H,0C4H,00H,0E1H,00HDB00H,01H,21H,01H,44H,01H,69H,01H,90H,01H第五章 MCS-51 单片机中断系统5-1MCS-51 单片机的中断系统由哪些功能部件组成?分别有什么作用?答:51 单片机的中断系统由与中断有关的特殊功能寄存器(中断允许控制寄存器 IE、中断优先等控制寄存器 IP、定时器/计数器控制寄存器 TCONT2CON 用行口控制寄存器SCONf 口 6 个中断源(2 个外部中断源 INTOP3.2、INT1P3.3,3 个定时器/计数器中断源 T0P3.4、T1P3.5、T2P1.0),1 个串行接口中断源(RXDp3.0接收数据
46、中断、TXDpP3.1发送数据中断)组成。中断允许控制寄存器 IE 由七个控制位构成,其中 D7 位 EA 是所有中断的总开关,若EA=1CPUfr 断允许,EA=0 时,CPUW 蔽一切中断请求。其余 6 位 D5D0 分别控制 6 个中断源,置 1 为允许申请中断,清 0 为禁止申请中断。其字节地址是 A8H 位地址是 A8HAD和 AFH 每位都可由软件来置 1 或清 0。中断优先等控制寄存器 IP 用于设置每个中断的优先级,该寄存器由 6 个控制位构成(D5D1 分别控制每个中断源的优先级,置 1 为高优先级,置 0 为低优先级。其位地址为B8HBDH 每位都可由软件来置 1 或清 0
47、。定时器/计数器控制寄存器 TCON?节地址 88H,其位地址 88H8FH 除 D6 和 D4 位用于控制定时器/计数器 0、1 启停外,其余 6 位分二组分别控制定时器/计数器 0、1 的中断信号方式(IT0/IT1),外部中断请求标志位(IE0/IE1)、溢出标志位(TF0/TF1)、T2CON?节地址为 C8H 可按位寻址,但只有 2 位(D7 和 D6 位)用作中断控制,当 T2EX(P1.1 脚)的负跳变有效时 T2 的硬件置 D6 位 EXF2(T2CON.6=1,tmCPU 申请中断。当 T2 计数溢出时由硬件置 D7(TF2,T2CON.7=1,向 CPU 申请中断。用行口控
48、制寄存器 SCON?节地址为 98H,其位地址 98H9FH 与中断有关的只有 D0 位和 D1 位。用行口发送了一帧信息,便由硬件置 TI=1,向 CPU 申请中断。用行口接收一邓一帧信息,便由硬件置 RI=1,向 CPU 申请中断。5-2MCS-51 系列单片机能提供几个中断源?答:MCS-51 系列单片机能提供 6 个中断源,。5-3MCS-51 单片机的中断系统中有几个优先级?如何设定?MCS-51单片机有2个中断优先级。 各个中断源的优先级是由特殊功能寄存器IP来确定,IP 中和各个中断源对应位为 1 时,此中断源为高优先级,否则为低优先级。在同一优先级中,各个中断源的优先顺序是由自
49、然优先级来确定的。5-4CPU 响应中断有哪条件?在什么情况下中断响应会受阻?答:CPU 向应中断的基本条件有以下三个:有中断源提出中断请求。中断总允许位EA=1,即 CPUFF 放中断。申请中断的中断源的中断允许位(ET2、ESET1、EX 幺 ETQEX。为 1,即没有被屏蔽。在中断源提出中断申请后,有二种情况可以使中断受阻:中断允许寄存器 IE 中对应于有中断请求的控制位为 0,屏蔽了中断请求,即 CPUS 无法收到中断请求。中断允许寄存器IE 的 D7 位(EA 位)为 0,即 CPUS 有开放中断响应。CPUE 在处理同等级或高等级中断时,CPUt 在处理完该中断并返回执行一条指令后
50、才响应新中断请求。现行的机器周期不是所执行指令的最后一个机器周期。正在执行的指令是 RETI 或访问 IE、IP 指令。5-5 简述 MCS-51 系列单片机的中断响应过程。答:MCS-51 系列单片机的中断响应过程是按照以下顺序执行的:开中断一中断请求一中断判断一中断响应一中断返回。5-6MCS-51 单片机中断响应时间是否固定?为什么?答:MCS-51 单片机中断响应时间不固定,因为当中断源向 CPU 提出中断请求时,CPUE 在执行的指令的指令周期是不一样的,一般情况下中断响应时间在 38 个机器周期之间。当然如果中断到来时是在处理同级或高级中断服务程序中,则响应时间就无法估计了。5-7
51、MCS-51 中若要扩充 8 个中断源,可采用哪些方法?如何确定优先级?答:一般可采取中断加查询方式,软件先查询到的为高优先级,最后查询到的为低优先级。5-88031 芯片的 INT0、INT1 引脚分别输入压力超限、温度超限中断请求信号,定时器/计数器 0 作定时检测的实时时钟,用户规定的中断优先权排队次序为:压力超限一温度超限一定时检测。要求确定 IE、IP 的内容,以实现上述要求。答:IE 设 87H,IP设 05HoIE1000Vz中断屏蔽IK的内容为8711,IP的内容为05H第六章 MCS-51 单片机定时器/计数器6-1MCS-51 单片机内部设有几个定时器/计数器?它们是由哪些专用寄存器组成的?设有 3 个定时器/计数器 T0、T1、T2。限评测许限许超允检允超允力断时断度断压中定中温中I-一T温度高优温度高优它们由特殊功能寄存器工作方式寄存器 TMO 四节地址 89H,不能按位寻址,用来控制T0 和 T1 的工作方式),TCO 腑制寄存器(字节地址 88H,位地址 88H8FH 用高 4 位控制定时器/计数器 0、1 的启、停,和作溢出标志位),定时器/计数器 2 的控制寄存器 T2CON 其字节址 C8H 位地址 C8HCFH 组成, 各定时器/计数器还有 1 个 16 位工作寄存器 (TL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电影拍摄道具的回收与再利用考核试卷
- 城市规划旅游规划与开发考核试卷
- 碳酸饮料行业的产品包装设计考核试卷
- 糖果国际贸易实务与谈判考核试卷
- 2025年的北京市房屋租赁合同
- 2025简化版企业间借款协议合同
- 2025劳动合同书(标准版本)
- 2025存量房买卖合同附件
- 苏溪镇某创业园(二)标准厂房工程、广西钦州某燃煤电厂一期2×600MW机组工程施工组织设计
- 苏教版化学高中化学必修2全集教案(送课件习题)
- 全国河大音像版初中信息技术八年级上册第三章第三节《循环结构程序设计》教学设计
- 企业健康管理计划规划方案讨论
- 隧道高空作业施工方案
- 危险性较大的分部分项工程专项施工方案严重缺陷清单(试行)
- 深信服超融合HCI技术白皮书-20230213
- 2025年陕西省土地工程建设集团有限责任公司招聘笔试参考题库附带答案详解
- 《多样的中国民间美术》课件 2024-2025学年人美版(2024)初中美术七年级下册
- 人教版 七年级 下册 语文 第四单元《青春之光》课件
- 2024物业管理数字化升级服务合同
- 灌浆作业安全操作规程(3篇)
- 药品追回管理制度内容
评论
0/150
提交评论