单片机原理与应用及C51程序设计__杨加国主编_完整版答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.写出完成下列要求的指令。 (1)累加器 A 的低 2 位清零,其余位不变。 ANL A,#11111100B (2)累加器 A 的高 2 位置“1” ,其余位不变。 ORL A,#11000000B
(3)累加器的高 4 位取反,其余位不变。 XRL A,#11110000B
(4)累加器第 0 位、2 位、4 位、6 位取反,其余位不变。 XRL A,#01010101B
MOV @R0,A MOV A,#00 MOVX @DPTR,A INC INC DPTR R0
DJNZ R2,LOOP SJMP $ 17.编程将片外 RAM 的 1000H 单元开始的 100 个字节数据相加,结 果放于 R7R6 中。 程序: MOV DPTR,#1000H MOV R2,#100 MOV R7,#00
9.设(A)=83H, (R0)=17H, (17H)=34H,分析当执行完下面指令 段后累加器 A、R0、17H 单元的内容。 ANL A,#17H ORL 17H,A XRL CPL A,@R0 A ;A=03H ; (17H)=37H ;A=34H ;A=CBH
结果:A=CBH, (R0)=17H, (17H)=37H
程序: MOV C,P1.1 ORL ANL ORL C,P1.2 C,P1.0 C,/P1.3
MOV P1.4,C 14.下列程序段汇编后,从 1000H 单元开始的单元内容是什么? ORG TAB: 1000H DB 12H,34H DS DW 3 5567H,87H
答: (1000H)=12H, (1001H)=34H, (1002H)=00H, (1003H) =00, (1004H)=00, (1005H)=67H, (1006H)=55H, (1007H)=87H, (1008H)=00H 15.试编一段程序,将片内 RAM 的 20H、21H、22H 单元的内容依次 存入片外 RAM 的 20H、21H、22H 中。 程序: MOV R0,#20H MOV R2,#03H LOOP:MOV A,@R0 MOVX @R0,A INC R0
MOV DPTR,#4000H MOV @DPTR,A (7)ROM 的 1000H 单元内容送到片内 RAM 的 50H 单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,@A+DPTR MOV 50H,A (8)ROM 的 1000H 单元内容送到片外 RAM 的 1000H 单元中。 MOV A,#0 MOV DPTR,#1000H MOVC A,@A+DPTR MOVX @DPTR,A 5.区分下列指令有什么不同? (1)MOV A,20H 和 MOV A,#20H 答:前者源操作数是直接寻址,后者源操作数立即寻址。 (2)MOV A,@R1 和 MOVX A,@R1 答:前者源操作数是访问片内数据存储器,后者源操作数访问片 外数据存储器低 256 字节。 (3)MOV A,R1 和 MOV A,@R1 答:前者源操作数是寄存器寻址,后者源操作数寄存器间接寻址。 (4)MOVX A,@R1 和 MOVX A,@DPTR 答:前者源操作数是访问片外数据存储器低 256 字节,后者源操
结果: (20H) =10H、 (10H) =10H、 (40H) =0CAH、 P2=0CAH 和 P1=0CAH 7.已知(A)=02H, (R1)=7FH, (DPTR)=2FFCH,片内 RAM(7FH) =70H,片外 RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出 以下各条指令执行后目标单元的内容。 (1)MOV A,@R1 (2)MOVX @DPTR,A 02H 结果:累加器 A 等于 70H 结果:片外 RAM(2FFCH)单元等于
单片机原理与应用及 C51 程序设计
第一章
第二章
第三章
1.在 MCS-51 单片机中,寻址方式有几种?其中对片内 RAM 可以用 哪几种寻址方式?对片外 RAM 可以用哪几种寻址方式? 答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻 址(立即寻址) 、寄存器数寻址(寄存器寻址) 、存储器数寻址(直接 寻址方式、寄存器间接寻址方式、变址寻址方式)和位寻址,指令的 寻址有绝对寻址和相对寻址。片内 RAM 寻址有:寄存器寻址、直接 寻址方式和寄存器间接寻址方式。片外 RAM 寻址有:寄存器间接寻 址方式。 2.在对片外 RAM 单元寻址中,用 Ri 间接寻址与用 DPTR 间接寻址有 什么区别? 答:片外数据存储器寻址中,用 Ri 间接寻址只能访问低端的 256 字节单元,而用 DPTR 作指针间接访问可访问整个 64K 字节。 3.在位处理中,位地址的表示方式有哪几种? 答:1.直接位地址(00H~0FFH) 。例如:20H 2.字节地址带位号。例如:20H.3 表示 20H 单元的 3 位。 3.特殊功能寄存器名带位号。例如:P0.1 表示 P0 口的 1 位。
Байду номын сангаас
MOV C,22H.5 MOV A.5,C MOV C,23H.6 MOV A.6,C MOV C,23H.7 MOV A.7,C MOV R2,A 20.用查表的方法实现一位十六进制数转换成 ASCII。 程序: (设一位十六进制数放在 R2 中, 轮换的 ASCII 也放于 R2 中) C16STASC:MOV DPTR,#TAB MOV A,R2 MOVC A,@A+DPTR MOV R2,A RET TAB:DB 30H,31H,32H,33H,34H,35H,36H,37H DB 38H,391H,41H,42H,43H,44H,45H,46H
DJNZ R2,LOOP SJMP $ 16.编程实现将片外 RAM 的 2000H~2030H 单元的内容,全部搬到片 内 RAM 的 20H 单元开始位置,并将源位置清零。 程序: MOV R0,#20H MOV DPTR,#2000H MOV R2,#31H LOOP: MOVX A,@DPTR
后,再存入 R6 中 ADD A,R6 MOV R6,A MOV R7 中 ADDC A,#00 MOV R7,A SJMP $ 19.编程实现把片内 RAM 的 20H 单元的 0 位、1 位,21H 单元的 2 位、3 位,22H 单元的 4 位、5 位,23H 单元的 6 位、7 位,按原位置 关系拼装在一起放于 R2 中。 程序: MOV C,20H.0 MOV A.0,C MOV C,20H.1 MOV A.1,C MOV C,21H.2 MOV A.2,C MOV C,21H.3 MOV A.3,C MOV C,22H.4 MOV A.4,C A ,B ;结果的高字节加上进位位后存入
21.编程统计从片外 RAM2000H 开始的 100 个单元中“0”的个数放 于 R2 中。 程序: MOV DPTR,#2000H MOV R3,#100 MOV R2,#00
LOOP: JNZ INC
MOVX A,@DPTR NEXT R2 DPTR
NEXT:INC
DJNZ R3,LOOP SJMP $
第四章
4-2 有哪里些数据类型是 MCS-51 系列单片机直接支持的? 答:见 P89,基本类型:字符型,整型,长整型,浮点型,特殊功能 寄存器; 构造类型:数组类型,结构体类型,共用体,枚举 指针类型 空类型 4-3 C51 特有的数据结构类型有哪些? 答:特殊功能寄存器,位类型 4-4 C51 的存储类型有几种?它们分别表示的存储器区域是什么? 答:见 P94 页:存储器类型有:data, bdata,idata,pdata,xdata 4-5 C51 中 bit 位与 sbit 位有什么区别? 答:bit 是定义一个一般的位变量;而使用 sbit 定义可位寻址字节 或是特殊功能寄存器的的位,定义时必指定其位地址,其存储空间为 内部 RAM 中的位寻址区 20H-2FH(位地址为:00H~7FH) ,
MOV R6,#00 LOOP: ADD MOVX A,@DPTR A,R6
MOV R6,A MOV A,R7 ADDC A,#0 MOV R7,A INC DPTR
DJNZ R2,LOOP SJMP $ 18.编程实现 R4R3R2,结果放于 R7R6R5 中。 程序: ORG 0100H
MUL1:MOV A,R2 MOV B,R3 MUL 积的 R5 MOV R5,A MOV R6,B MUL2:MOV A,R2 MOV B,R4 MUL AB ;R2R4,结果的低字节与 R6 相加 ;结果的高字节存入 R6 中暂存起来 AB ;R2R3,结果的低字节直接存入
11.说明 LJMP 指令与 AJMP 指令的区别? 答: LJMP 指令后面提供的是 16 位目标地址, 所以可以转移到 64KB 程序存储器的任意位置,缺点是:执行时间长,字节数多。 AJMP 指令后带的是 11 位直接地址,执行时,先将程序指针 PC 的值加 2 (该指令长度为 2 字节) , 然后把指令中的 11 位地址 addr11 送给程序指针 PC 的低 11 位, 而程序指针的高 5 位不变, 只能在当前 2K 范围内转移。 12.设当前指令 CJNE A,#12H,10H 的地址是 0FFEH,若累加器 A 的值为 10H, 则该指令执行后的 PC 值为多少?若累加器 A 的值为 12H 呢? 答:指令执行后的 PC 值为 1011H,若累加器 A 的值为 12H,则指 令执行后的 PC 值为 1001H。 13.用位处理指令实现 P1.4=P1.0(P1.1P1.2)/P1.3 的逻辑功能。
(3)MOVC
A,@A+DPTR 结果: 累加器 A 等于 64H 结果: 累加器 A 等于 00H, 片内 RAM (7FH)
(4)XCHD A,@R1 单元等于 72H
8.已知: (A)=78H, (R1)=78H, (B)=04H,CY=1,片内 RAM(78H) =0DDH, (80H)=6CH,试分别写出下列指令执行后目标单元的结果和 相应标志位的值。 (1)ADD A,@R1 (2)SUBB A,#77H (3)MUL AB 等于 1,OV 等于 0 (4)DIV AB OV 等于 0 (5)ANL 78H,#78H ;片内 RAM(78H)单元等于 58H (6)ORL A,#0FH (7)XRL 80H,A ;累加器 A 等于 7FH ;片内 RAM(80H)等于 14H ; 累加器 A 等于 1EH, B 寄存器等于 00H, CY、 ;累加器 A 等于 55H,CY 等于 1 ;累加器 A 等于 00H,CY 等于 0 ;累加器 A 等于 E0H,B 寄存器等于 01H,CY
作数访问片外数据存储器整个 64K 字节。 (5)MOVX A,@DPTR 和 MOVC A,@A+DPTR
答:前者源操作数是访问片外数据存储器,后者源操作数访问程 序数据存储器。 6.设片内 RAM 的(20H)=40H, (40H)=10H, (10H)=50H, (P1) =0CAH。分析下列指令执行后片内 RAM 的 20H、40H、10H 单元以及 P1、P2 中的内容。 MOV R0,#20H MOV A,@R0 MOV R1,A MOV A,@R1 MOV @R0,P1 MOV P2,P1 MOV 10H,A MOV 20H,10H ;R0=20H ;A=40H ;R1=40H ;A=10H ; (40H)=0CAH ;P2=0CAH ; (10H)=10H ; (20H)=10H
4.位符号地址。例如:TR0 是定时/计数器 T0 的启动位。 4.写出完成下列操作的指令。 (1)R0 的内容送到 R1 中。 MOV A,R0 MOV R1,A (2)片内 RAM 的 20H 单元内容送到片内 RAM 的 40H 单元中。 MOV 40H,20H (3)片内 RAM 的 30H 单元内容送到片外 RAM 的 50H 单元中。 MOV A,30H MOV R0,#50H MOVX @R0,A (4)片内 RAM 的 50H 单元内容送到片外 RAM 的 3000H 单元中。 MOV A,50H MOV DPTR,#3000H MOVX @DPTR,A (5)片外 RAM 的 2000H 单元内容送到片内 RAM 的 20H 单元中。 MOV DPTR,#2000H MOVX A,@DPTR MOV 20H,A (6)片外 RAM 的 1000H 单元内容送到片外 RAM 的 4000H 单元中。 MOV DPTR,#1000H MOVX A,@DPTR
相关文档
最新文档