单片机课后习题答案.ppt

上传人:本田雅阁 文档编号:2092018 上传时间:2019-02-12 格式:PPT 页数:37 大小:289.85KB
返回 下载 相关 举报
单片机课后习题答案.ppt_第1页
第1页 / 共37页
单片机课后习题答案.ppt_第2页
第2页 / 共37页
单片机课后习题答案.ppt_第3页
第3页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机课后习题答案.ppt》由会员分享,可在线阅读,更多相关《单片机课后习题答案.ppt(37页珍藏版)》请在三一文库上搜索。

1、1、见书P20-表2.2, P21 P22表2.2 3、 8031片内RAM地址空间低128字节(00H- 7FH)为真正的RAM区,为连续空间,其中 (00H-1FH)共32单元是4个通用工作寄存 器区,每个区有8个通用寄存器R0-R7,片内 RAM的20H-2FH 为位寻址区域,位地址范 围为00H-7FH,片内RAM的30H-7FH为数 据缓冲区,一般可用来开辟堆栈区。高128字 节(80H-FFH)为特殊功能寄存器区SFR, SFR为不连续区,8031有18个SFR,占21个字节。 5、见书P32 第三章 解:MCS-51指令系统按功能可分为类: (1)数据传送 (2)算术运算 (3)

2、逻辑运 (4)位操作 (5)控制转移 具有种寻址方式;其对应的寻址范围如下表: 1、MCS-51指令系统按功能可分为几类?具有几种寻址方式? 它们的寻址范围如何? 寻址方式 寻址范围 立即寻址程序存储器(指令的常数部分) 直接寻址内部RAM低128个字节; 特殊功能寄存器SFR 寄存器寻址R0R7;A、B、DPTR、C 寄存器间接 寻址 内部RAM; 外部数据存储器 及扩展 I/O 变址寻址程序存储器 相对寻址程序存储器 位寻址内部RAM中的20H2FH的128个位; SFR可位寻址(字节地址能被整除的SFR)的位 寻址方式及相应的寻址空间 2、设内部RAM中(59H)=50H ,写出当执行下

3、列程序段后寄 存器A ,R0和内部RAM中50H ,51H 单元的内容为何值? MOV A, 59H;(A)50H MOV R0, A;(R0)=50H MOV A,#00; (A)00H MOV R0 , A; 50H=00H MOV A, #25H; (A)25H MOV 51H , A ; (51H)25H MOV 52H , #70H ; (52H)70H 结果为:(A)25H (R0)=50H (50H)00H (51H)25H 3、PSW中 Cy与OV 有何不同?下列程序段执行后Cy=? OV=? MOV A , #56H ADD A ,#74H Cy: 进位标志。如果操作结果在最

4、高位有进位输出(加法), 或借位输入(减法)时,Cy置位,否则清“”该位又 是布尔处理器的累加器C. OV: 溢出标志。用于表示有符号数算术运算的溢出。当次高位 发生向最高位进位而最高位不发生进位或反之时,发 生 溢出,OV置位,否则清“” 0101 0110 + 0111 0100 1100 1010 结果: Cy, OV 4、MOVC A , A+DPTR与 MOVX A , DPTR 指 令有何不同? 答: MOVC A , A+DPTR: 为程序存储器内容送累加器指令 MOVX A , DPTR:为外部数据存 储器 内容送累加器指令 、AJMP , LJMP, SJMP指令功能上有何不

5、同? 答: AJMP是2KB范围内的无条件短跳转指令 LJMP是64KB范围内的无条件长跳转指令 SJMP是256B范围内的相对转移指令 6设堆栈指针(SP)=60H ,内部 RAM 中(30H)=24H, (31H)=10H 执行下列程序后,61H ,62H ,30H ,31H ,DPTR及SP 中 的内容将有何变化? PUSH 30H; (61H)=24H PUSH 31H; (62H)=10H POP DPL; (DPL )=10H POP DPH; (DPH )=24H MOV 30H , #00H ; (30H)=00H MOV 31H , #0FFH; (31H)=0FFH 结果为

6、: (61H)=24H (62H)=10H (30H)=00H (31H)=0FFH (DPTR)=2410H (SP)=60H 60H 61H 62H 24H 10H SP 7、试分析以下程序段,当执行程序后,位地址00H 和01H 中的 内容将为何值?P1 口的8条I/O线为何状态? ORG 0000H CLR C MOV A, #66H JC LOOP1 CPL C SETB 01H LOOP1: ORL C, ACC.0 JB ACC.2, LOOP2 LOOP2: MOV P1, A SJMP $ END 结果如下: (00H)= 0 ( bit ) (01H)= 1 ( bit )

7、 (P1)=66H 8.要完成以下的数据传送,应如何用MCS-51指令实现? (1)R1的内容传送到R0 ; 解: MOV A, R1 MOV R0, A (2)片外RAM 20H单元内容送R0 ; MOV DPTR, #0020H MOVX A, DPTR MOV R0, A (3)片外 RAM 20H单元的内容送片内RAM 20H单元; MOV DPTR, #0020H MOVX A, DPTR MOV 20H, A (4)片外RAM 1000H单元的内容送片内 RAM 20H 单元; MOV DPTR, #1000H MOVX A, DPTR MOV 20H, A (5)ROM 2000

8、H单元的内容送R0单元; MOV A, #00H MOV DPTR, #2000H MOVC A, A+DPTR MOV R0, A (6)ROM 2000H 单元的内容送片内RAM 20H单元; MOV 20H, A (7)ROM 2000H单元的内容送片外RAM 20H单元。 MOV A, #00H MOV DPTR, #2000H MOVC A, A+DPTR MOV DPTR, #0020H MOVX DPTR,A 9.分析以下程序每一条指令执行结果: MOV A , #25H;(A)=25H MOV R1 , #33H ;(R1)=33H MOV 40H , #1AH ;(40H)=

9、1AH MOV R3 , #40H;(R3)=40H ADD A , R1 ;(A)=58H ADDC A , R3;(A)=72H ADDC A , 40H;(A)=8CH 10、设 A=83H , R0=17H , (17h)=34H,执行下面程序段后, (A)=? 解: ANL A , #17H ;(A )= 03H ORL 17H , A;( 17H ) = 37H XRL A ,R0; (A )= 34H CPL A; (A )= CBH 结果:( A ) = 0CBH 11、两个4位BCD码数相加,被加数和加数分别存于(次序为 千 位,百位在低地址中,十位,个位在高地址中), 和数

10、 放在50H, 51H ,52H中( 52H用于存放最高位的进位) , 试 编写加法程序。 解:(30H)(31H)+(40H)(41H)=(52H)( 51H)(50H) MOVA, 31H CLR A ;不影响Cy AC OV ADDA, 41H ADDC A,#00H DAA MOV 52H, A ;存最高位的进位 MOV50H, A ;存低位和 MOVA, 30H ADDC A,40H DAA MOV 51H,A ;存高位和 ORG 0000H MOV R0, #1FH MOV R2,#49(31H);单元长度 LOOP: INC R0 ;起始单元 MOV A,R0 CJNE A,#0

11、AA, NEXT0 MOV 51H, #01H SJMP ENDD NEXT0: DJNZ R2, LOOP MOV 51H, #00H ENDD: SJMP $ END 12、试编写一程 序, 查找内部RAM 单元的20H50H 中是否有0AAH 这一数据,若 有,则将51H 单 元置为01H , 若 没有, 则使 51H 单元置0 13、用布尔指令,求解逻方程: PSW.5=P1.3*ACC.2+B.5*P1.1 PSW.5=P1.5*B.4+ACC.7*P1.0 ORG 0000H MOVC, ACC.2 ANLC, P1.3 MOV00H,C ;( 00H ) = P1.3*ACC.2

12、 MOVC,B.5 ANLC,P1.1;C=B.5*P1.1 ORL C, 00H MOV PSW.5, C END 第四章 4.1 伪指令( 1、 汇编起始指令 ORG 2、等值指令EQU 3、 定义字节指令DB 4、 定义字指令DW 5、 汇编结束指令END ) 4.2 汇编语言程序设计 4.2.1 简单程序设计 4.2.2 分支程序设计 4.2.3 循环程序设计 (概念;单、多重循环 ) 4.2.4 散转程序设计(属分支程序的一种) 4.2.5 子程序和参数传递( 子程序的概念、调用) 4.2.6 查表程序设计 4.2.7 数制转换 4.2.8 运算程序(加、 减、乘、 除) 小结 Ch

13、4 作业: 5、 7、 9 P73 5试编写程序,将内部 RAM中DATA1单元 开始的20个单字节 数 据依次与DATA2单 元 为起始地址的20个 单 字节数据进行交换 换。 ORG 0000H DATA1 EQU 20H DATA2 EQU 40H MOV R0, #DATA1 MOV R1, #DATA2 MOV R2, #20 LP: MOV A, R0 XCH A, R1 MOV R0, A INC R0 INC R1 DJNZ R2, LP SJMP $ END 5 7编写将一个单字 节十六进制数转换 为十进制数的子程 序。 解法 ORG 0000H ; HEX1 EQU 30H

14、 ; DD1 EQU 40H ; DD2 EQU 41H MOV A, 30H MOV B, #100 DIV AB MOV 40H, A MOV A, #10 XCH A, B DIV AB SWAP A ORL A, B MOV 41H, A SJMP $ END ORG0000H MOVA, 30H ADDA, #00H DAA MOV40H, A CLR A ADDC A, #00H MOV41H, A SJMP $ END 解法 是错的 DA A指 令是针对 两个十进 制数相加 的调整指 令 7 ORG0000H BLOCK EQU 20H LEN EQU 10H MAX EQU 6

15、0H MOV R0, #BLOCK MOV R1, #MAX MOV R2, #LEN DEC R2 MOV A, R0 MOV 40H, A 8在内部RAM的BLOCK开始的单元中有一无符号数据块, 数据块长度存入LEN单元。试编程求其中最大数并存入 MAX单元中。 L1: INCR0 MOVA, R0 CJNE A, 40H, L2 SJMP NEX L2: JC NEX MOV 40H, A NEX: DJNZ R2, L1 MOV R1, 40H SJMP $ END 9试编程将内部RAM中1H43H单元 中的数左移4位,移出部分送40H单元。 (2): ORG 0000H MOV 4

16、0H, #00H MOV R0, #4 LP1: MOV R1, #43H MOV R2, #03H CLR C LP2: MOV A, R1 RLC A MOV R1, A DEC R1 DJNZ R2, LP2 MOV A, 40H RLC A MOV 40H, A DJNZ R0, LP1 SJMP $ END 解法一:用移位循环 (1): ORG 0000H MOV 40H, #00H MOV R0, #4 LP1: MOV R1, #43H MOV R2, #04H CLR C LP2:MOV A, R1 RLC A MOV R1, A DEC R1 DJNZ R2, LP2 DJN

17、Z R0, LP1 SJMP $ END 9 地址40H41H42H43H 转化前数据XXH56H78H9AH 转化后 ORG 0000H MOV R0, #40H MOV R1, #41H MOV R3, #3 MOV 40H, #00H LP: MOV A, R1 SWAP A ANL A, #0FH ADD A, R0 MOV R0, A MOV A, R1 ANL A, #0FH SWAP A MOV R1, A INC R0 INC R1 DJNZ R3, LP SJMP $ END 解法 解法 用交换指令 ORG 0000H MOV 40H, #00H MOV R0, #40H M

18、OV R1, #41H MOV R2, #3 LP: MOV A, R1 SWAP A 41L 40L 41L 41H 41H 40H 41H 40H INC R0 INC R1 DJNZ R2, LP SJMP $ END MOV R0, A MOV A, R0 XCHD A, R1 MOV R1, A 41H 41L 40L 解法: ORG 0000H MOV 40H,#00H MOV R0,#41H MOV R2,#3 LP1:MOV A, R0 SWAP A MOV R0, A INC R0 DJNZ R2, LP1 MOV R1, #42H MOV R2, #3 LP2:XCHD A

19、, R1 DEC R1 DJNZ R2, LP2 MOV 43H, A SJMP $ END 第五章 4、简述MCS-51单片机的中断响应过程。 答:单片机一旦响应中断请求, 就由硬件完成以下功能: (1) 根据响应的中断源的中断优先级, 使相应的优先级状 态触发器置 1; (2) 执行硬件中断服务子程序调用, 并把当前程序计数器 PC的内容压入堆栈; (3) 清除相应的中断请求标志位(串行口中断请求标志 RI和 TI除外); (4) 把被响应的中断源所对应的中断服务程序的入口地 址(中断矢量)送入PC, 从而转入相应的中断服务 程序。 4 5、说明MCS-51单片机响应中断后,中断服务的入口

20、地址? 答:中断服务的入口地址如下表: 5 中断系统功能是可以通过上述特殊功能寄存器进行统一管理 的,中断系统初始 化是指用户对这些特殊功能寄存器中的各控制位进行赋值。初始化步骤如下: 1、开相应中断源的中断; 2、设定所用中断源的中断优先级; 3、若为外部中断,则应规定低电平还是负边沿的中断触发方式。 请写出INT1为低电平触发的中断系统初始化程序 解()采用位操作指令 SETB EA SETB EX1 ; 开INT1中断 SETB PX1 ;令INT1为高优先级 CLR IT1 ; 令INT1为电平触发 (2)采用字节型指令 MOVIE, #84H ; 开INT1中断 ORL IP, #0

21、4H ;令INT1为高优先级 ANL TCON, #0FBH ; 令INT1为 电平触发 8、补例:中断系统的初始化 TCON TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 IE EA X ET2 ES ET1 EX1 ET0 EX0 IP X X PT2 PS PT1 PX1 PT0 PX0 10、MCS-51的中断服务程序能否存放在64KB程序 存储器的任意区域?如何实现? 答:可以。 在相应的中断源的中断程序入口 地址处,用一条长跳转指令 (LJMP Add16),转到相应64K 程序存储器的任意地址(Add16) 处,执行相应的中断程序 10 第六章 1、8051单片

22、机内设有几个可编程的定时器/计数器?它们有几种工 作方式,如何选择和设定?作为定时器或计数器应用时, 它们 的波特率各是多少? 2、(1)定时器/计数器做定时器用时,其定时间与哪些因素有 关?作计数器用时,对外界计数频率有何限制? 答:(1)与fosc、机器周期、计数器的长度、定时/计数器初值. (2)1到0跳变计数、在S5P2采样、下个周期S3P1出现在 计数器中。(至少需要个机器周期) 4、某一8051单片机系统,晶振频率为6MHz,现要从单片 机P1.7的引脚输出一个连续的5Hz方波信号,请编写程 序。 3、单片机的晶振频率为6MHz,若只使用T0产生500us定 时,可以选择哪几种定时

23、方式?分别写出定时器的方式 控制字和计数初值。 5、某单片机系统,时钟频率为12MHz,定时器/计数器T0 用于20ms定时,T1用于100次计数,两者均要求重复工 作,问: (1)外部计数脉冲应从何引脚输出? (2)试编写达到上述要求的程序。 (3)利用定时器/计数器T0,T1编写延时2s的程序。 7、怎样选择串行口的工作模式?REN位的作用是什么 ? T1和 RI位何时置1,何时清0? 6、为什么T1用作串行波特率发生器时常用工作方式2 ? 若T1设置为方式2,用作波特率发生器,晶振频率 为 6MHz,求可能产生的波特率的变化范围。 第 七章 3. 访问外部ROM和RAM的时序 图 2.8 读外部程序ROM时序 8 图 2 - 9 读外部数据RAM时序 图 2.10 写外部数据RAM的时序

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1