收藏 分销(赏)

单片机课程形考作业指导2.doc

上传人:s4****5z 文档编号:8928422 上传时间:2025-03-08 格式:DOC 页数:8 大小:61.50KB 下载积分:10 金币
下载 相关 举报
单片机课程形考作业指导2.doc_第1页
第1页 / 共8页
单片机课程形考作业指导2.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
第三章 89C51指令系统 第十章 系统实用程序 一、填空题: 1、 CPU在取指令时,采用 寄存器进行寻址;CPU在访问64KB的片外数据存储器时,一般采用 寄存器进行寻址。(PC,DPTR) 2、 当需要从51单片机程序存储器取数据时,采用的指令操作码应为 。(MOVC) 3、 假定(A)=68,(R5)=79 ,执行下列指令后,累加器A内容为 。(47H) ADD A, R5 DA A 4、若A中数据为63H,那么PSW的最低位(奇偶位P)为 。(用“1”或“0”表示)(0) 5、访问89C51片外数据存储器采用的是 寻址方式。89C5片外可直接寻 址的程序存储空间最大可达 KB,可直接寻址的数据存储空间最大可达 KB。(寄存器间接寻址,64,64) 6、20根地址线的寻址范围可达 。(1MB) 7、指令AJMP的调用范围是 ,指令LJMP的调用范围是 。(2KB,64KB) 二、简答题: 1、访问内部RAM单元可以采用哪些寻址方式?访问外部RAM单元可以采用哪些寻址方式?访问特殊功能寄存器(SFR)可以采用哪些寻址方式? 答:对特殊功能寄存器只能采用直接寻址方式;对单片机内部RAM的高128个字节(80H~FFH),只能采用寄存器间接寻址;对外部扩展的数据存储器只能用MOVX指令访问,即寄存器间接寻址方式;而内部RAM的低128个字节(00H~7FH)既能用直接寻址方式,也能用寄存器间接寻址方式。 2、访问外部数据存储器和程序存储器可以用哪些指令来实现?举例说明。 答:访问外部数据存储器可以用以下指令实现: MOVX A, @Ri ;((Ri))→A,寄存器Ri指向的片外RAM地址中的内容送到累加器A中 MOVX @Ri, A ;A→((Ri)),累加器中内容送到寄存器Ri指向的片外RAM地址中 MOVX A, @DPTR ;((DPTR))→A,数据指针指向的片外RAM地址中的内容送到累 加器A中 MOVX @DPTR,A;A→((DPTR)),累加器中内容送到数据指针指向的片外RAM地址中 访问程序存储器可以用以下指令实现: MOVC A, @A+DPTR ;((A+DPTR))→A,表格地址单元中的内容送到累加器A中 MOVC A,@A+PC;PC+1→PC,((A+PC))→A,表格地址单元中的内容送到累加器A 3、 试用下列3种寻址方式编程,将立即数0FH送入内部RAM的30H单元中。 (1) 立即寻址方式;(2) 寄存器寻址方式;(3) 寄存器间接寻址方式 答:(1)立即寻址方式: MOV 30H, #0FH (2)寄存器寻址方式: MOV R5, #0FH MOV 30H, R5 (3)寄存器间接寻址方式:MOV @R1, #0FH MOV 30H, @R1 4、试根据指令编码表写出下列指令的机器码。   (1)MOV  A,#88H 74H, 88H   (2)MOV  R3,50H 0ABH, 50H   (3)MOV  P1.1,#55H 75H, 91H, 55H   (4)ADD   A,@R1 27H (5)SETB  12H D2H, 12H 5、写出实现下列要求的指令或程序片段。 (1) 将R0的内容传送到R1; (2) 内部RAM的20H单元内容传送到寄存器R1; (3) 内部RAM的20H单元的D7和D3位清零,其它位保持不变; (4) 外部RAM的1000H单元内容传送到内部RAM的60H单元中; (5) 外部RAM的1000H单元内容传送到寄存器R2; (6) 清除累加器高4位。 答:(1)MOV A, R0 MOV R1, A (2)MOV R1, 20H (3)MOV A, 20H ANL A, #77H (4)MOV DPTR, #1000H MOVX A, @DPTR MOV 60H, A (5)MOV DPTR, #1000H MOVX A, @DPTR MOV R2, A (6)ANL A, #0FH 6、指出以下指令中源操作数的寻址方式: (1) MOV R7 ,#77H ;立即寻址 (2) MOV A, @R0 ;寄存器间接寻址 (3) MOVC A, @A+DPTR ;变址寻址 (4) SETB EA ;位寻址 (5) MOV A, SBUF ;直接寻址 (6) MOVC A, @A+PC ;变址寻址 (7) MOVX A ,@DPTR ;寄存器间接寻址 (8) SJMP LOOP ;相对寻址 (9) INC DPTR ;寄存器寻址 (10) CLR 20H ;位寻址 (11) CLR C ;位寻址 (12) PUSH 03H ;直接寻址 7、试编写—段程序,将R3中的数乘4(用移位指令)。 答: MOV A, R3 MOV 23H, #02H L0:DJNZ 23H, L1 L1: RL A SJMP L0 8、已知A = 83H,R0 = 17H,(17H)= 34H,请写出执行完下列程序段后A的内容。 答: ANL A, #17H A = 03H ORL 17H, A (17H)= 37H A = 03H XRL A, R0 A = 34H CPL A A = CBH 9、设NEXT是目标指令标号,其值为0123H,求下列指令的机器码。 (1) 0100H: SJMP NEXT 解: rel=0123H-(0100H+2)=21H 0102H: …… 机器码为:0100H: 80H 21H (2) 7100H: LJMP NEXT 解: 机器码为:7100H: 02H 01H 23H (3) 0123H NEXT:SJMP NEXT 解: rel=0123H-(0123H+2)=-2=0FEH, 故机器码为:0123H: 80H 0FEH (4) 0178H: AJMP NEXT 解:当前PC =0178H+2 =017AH = 00000 001 0111 1010 B ;目标指令地址0123H提供的低11位地址为 001 0010 0011代入机器码格式中, 故机器码为:0178H: 21H 23H (001 00001H 0010 0011B) 10、执行某LCALL指令后,堆栈内容如图所示,问该 指令的首址是多少?它执行前SP的内容为多少?子程 序中的两条现场保护指令依次是什么? 答:该指令首址4A50H,执行前SP的内容是2FH, 程序中的两条现场保护指令依次是: PUSH ACC PUSH PSW 三、简单编程题: 1、编程,查找在内部RAM的20H~50H单元中是否有0AAH这个数,若有将51H单元置 01H;若未找到,将51H单元置0。 答: MOV R0, #20H MOV R1, #31H LOOP:CJNE @R0, #0AAH, NEXT SJMP LT NEXT: INC R0 DJNZ R1, LOOP MOV 51H, #00H SJMP ED LT: MOV 51H, #01H ED: RET 2、编程,查找片内RAM的20H~50H单元中出现00H的次数,并将查找的结果存入51H。 答: MOV R0, #20H MOV R1, #31H CLR A LP: MOV @R0, #00H, NEXT INC A NEXT:INC R0 DJNZ R1, LP MOV 51H, A RET 3、片外RAM中存有一个若干字符的数据块,首址为SOURCE,要传到内部RAM以DIST开始的区域直到遇到“$”时结束。“$”也要传送。 答: MOV DPTR, #SOURCE MOV R0, #DIST LOOP: MOVX A, @DPTR MOV @R0, A CJNE A, #24H, NEXT SJMP ED NEXT:INC DPTR INC R0 SJMP LOOP ED: RET 4、编程把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。 答: MOV DPTR, #2000H MOV R0, #30H MOV R2, #08H LOOP: MOVX A, @DPTR MOV @R0, A INC DPTR INC R0 DJNZ R2, LOOP RET 5、 若单片机得主频为12MHz,试用循环转移指令编制延时20ms的延时子程序。并说明这种软件延时方式的优缺点。 解: 1T=12×(1÷12MHZ)=1μs DELAY: MOV R7, #20 ;1T LP: MOV R6, #250 ;外循环指令, 1T×R7 L0: NOP NOP DJNZ R6, L0 ;内循环指令, 4T×R7×R6 DJNZ R7, LP ;外循环指令, 2T×R7 RET ;2T 延时时间t= 1T+4T×R7×R6+(1T+2T)×R7+2T= 250×20×4T+63T≈20ms ;取平均值 6、编程把A中的二进制数转换成三位BCD码,并存入片内RAM50H、51H、52H单元。50H存百位。 解: ORG 1000H MOV B, #64H DIV AB MOV 50H, A; 存百位 MOV A, #10 XCH A, B DIV AB MOV 51H, A ;存十位 MOV 52H, B ;存个位 RET 7、编子程序,将R1中的2个十六进制数转换为ASCII后存入R3、R4中。 解: ORG 0200H MAIN:MOV A, R1 ANL A, #0FH ACALL HCA; 调转换子程序 MOV R3, A MOV A, R1 SWAP A ANL A, #0FH ACALL HCA; 调转换子程序 MOV R4, A SJMP $ ORG 0100H HCA: CJNE A, #09H, LP SJMP EE ;=09,L1 LP: JC L1 ; A小于09H, L1 ADD A, #37H ;大于09H,加37H SJMP EE L1: ADD A, #30H ;小于等于09H,加30H EE: RET 8、编程计算片内RAM区50H~59H十个单元中数的算术平均值,将结果存放在5AH中。 解:程序如下: (设10个单元的和小于255) MOV R0, #50H MOV R2, #10 MOV A, #0 LP: ADD A, @R0 INC R0 DJNZ R2, LP MOV B, #10 DIV AB MOV 5AH, A SJMP $ 9、在片外RAM 3200H开始的单元中有100个有符号数,试编程统计其中正数、负数和0的个数分别存入片内RAM 30H、31H、32H。 解: MOV DPTR, #3200H MOV R7, #100 MOV 30H, #0 MOV 31H, #0 MOV 32H, #0 LP: MOVX A, @DPTR CJNE A, #0, L1 INC 32H ;=0计数器加1 SJMP NEXT L1: JB ACC.7,L2; ACC.7=1即为负数到L2(这里若用JC或JNC都不妥) INC 30H ; 否则为正数,计数器加1 SJMP NEXT L2: INC 31H NEXT: DJNZ R7, LP RET
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

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

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

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

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服