单片机作业答案2.doc

上传人:豆**** 文档编号:23828855 上传时间:2022-07-02 格式:DOC 页数:6 大小:137KB
返回 下载 相关 举报
单片机作业答案2.doc_第1页
第1页 / 共6页
单片机作业答案2.doc_第2页
第2页 / 共6页
点击查看更多>>
资源描述

《单片机作业答案2.doc》由会员分享,可在线阅读,更多相关《单片机作业答案2.doc(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机作业答案2.精品文档.作业答案2第2章 MCS-51单片机指令系统与汇编语言程序设计4. 假定累加器A中的内容为30H,执行指令1000H:MOVC A,A+PC后,把程序存储器( 1031H )单元的内容送入累加器A中。6. 指出下列指令中的源操作数的寻址方式(1)MOV R0,#30H 立即寻址(2)MOV A,30H 直接寻址(3)MOV A,R0 寄存器间接寻址(4)MOVX A,DPTR 寄存器间接寻址(5)MOVC A,A+DPTR 变址寻址(6)MOV P1,P2 直接寻址(7)MOV C,30H 位寻址(8)MUL AB

2、 寄存器寻址(9)MOV DPTR,#1234H 立即寻址(10)POP ACC 直接寻址(11)SJMP $ 相对寻址7. 指出下列各指令在程序存储器中所占的字节数(1)MOV DPTR,#1234H 3字节(2)MOVX A, DPTR 1字节(3)SJMP LOOP 2字节(4)MOV R0,A 1字节(5)AJMP LOOP 2字节(6)MOV A,30H 2字节(7)LJMP LOOP 3字节(8)MOV B,#30H 2字节15设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H, 62H, 30H, 31H, DPTR及SP中

3、的内容将有何变化?PUSH 30H PUSH 31H POP DPLPOP DPHMOV 30H, #00H MOV 31H, #0FFH解:结果为: 61H、62H单元为堆栈单元,其内容已被弹出栈。 (30H)=00H (31H)=0FFH (DPTR)=2410H(SP)=60H17完成以下的数据传送过程(1)R1的内容传送到R0。(2)片外RAM 20H单元的内容送R0。(3)片外 RAM 20H单元的内容送片内RAM 20H单元。(4)片外RAM 1000H单元的内容送片内 RAM 20H单元。(5)ROM 2000H单元的内容送R0。(6)ROM 2000H单元的内容送片内RAM 2

4、0H单元。(7)ROM 2000H单元的内容送片外RAM 20H单元。解:CPU内部RAM用MOV指令,不能在两个Rn/Ri之间直接传送。片外 RAM用MOVX指令:低256B,可在A与Ri之间传送;64KB范围内,可在A与DPTR之间传送。 ROM用MOVC指令,只能用MOVC A,A+DPTR/MOVC A,A+PC。(1)R1的内容传送到R0 ; MOV A, R1 MOV R0, A(2)片外RAM 20H单元内容送R0 ; MOV R1, #20H MOVX A, R1 MOV R0, A(3)片外 RAM 20H单元的内容送片内RAM 20H单元; MOV R0, #20H MOV

5、X A, R0 MOV 20H, A(4)片外RAM 1000H单元的内容送片内 RAM 20H 单元; MOV DPTR, #1000H MOVX A, DPTR MOV 20H, A(5)ROM 2000H单元的内容送R0单元; CLR A MOV DPTR, #2000H MOVC A,A+DPTR MOV R0, A(6)ROM 2000H 单元的内容送片内RAM 20H单元; CLR A MOV DPTR, #2000H MOVC A,A+DPTRMOV 20H, A(7)ROM 2000H单元的内容送片外RAM 20H单元。 CLR A MOV DPTR, #2000H MOVC

6、A,A+DPTR MOV R0, #20H MOVX R0, A19编程将片内RAM的40H60H单元中内容送到片外RAM以3000H开始的单元中。并将原片内RAM数据块区域全部清0。解: ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP, #60HMOV R7,#21HMOV R1,#40HMOV DPTR,#3000HLOOP: MOV A,R1MOVX DPTR,A MOV R1, #00HINC R1INC DPTRDJNZ R7,LOOPSJMP $END23设有100个有符号数,连续存放在片外RAM以2000H为首地址的存储区中,试编程统计其中正数、负数

7、、零的个数。解: ORG 0000HLJMP MAINORG 0030HMAIN:MOV SP, #60HMOV R2,#100CLR AMOV R3,AMOV R4,AMOV R5,AMOV DPTR,#2000HLOOP:MOVX A,DPTRCJNE A,#00H,NET1INC R3SJMP NET3NET1:JB ACC.7,NET2INC R4SJMP NET3NET2:INC R5NET3:INC DPTRDJNZ R2,LOOP SJMP $END24试编一查找程序,从外部RAM首地址为2000H、长度为9FH的数据块中找出第一个ASCII码A,将其地址送到20A0H和20A1

8、H单元中。解: ORG0000HLJMPMAINORG0030HMAIN: MOV SP, #60HMOVDPTR,#2000H MOVR7,#9FHLP0: MOVX A,DPTR CJNE A, #41H, LP1 MOVR2,DPL MOVR3,DPH MOVDPTR,#20A0H MOV A, R2 MOVXDPTR,AINC DPTR MOV A, R3 MOVXDPTR,A SJMP LP2LP1: INC DPTRDJNZR7, LP0LP2: RETEND另一种方法:ORG 0000H LJMP START ORG 0030HSTART: MOV R7,#9FH MOV DPT

9、R,#2000H MOV R6,#00H ;R6为DPTR地址的低八位LOOP: MOVX A,DPTR CJNZ A,#65,LOOP1 MOV DPTR,#20A0H MOV A,R6 MOVX,DPTR,A ;把字符A的低八位地址放到20A0H地址中 INC DPTR MOV A,#20H MOVX DPTR,A ;把字符A的高八位地址放到20A1H地址中 SJMP $LOOP1: INC R6 INC DPTR DJNZ R7,LOOP SJMP $ END27编程实现将片外RAM中2400H2450H单元中的数传送到2500H2550H单元中。 解: ORG0000HLJMPMAIN

10、ORG0030HMAIN: MOV SP, #60HMOVR7,#51HMOVDPTR, #2400HLOOP: MOVXA,DPTRINCDPHMOVXDPTR,A MOVDPH, #24HINCDPTRDJNZR7 ,LOOPSJMP$END另一种方法:ORG0000HLJMPMAINORG0030HMAIN: MOV SP, #60HMOVR7,#51HMOVDPTR, #2400HLOOP: MOVXA,DPTRPUSHDPH INCDPHMOVXDPTR,A POP DPHINCDPTRDJNZR7 ,LOOPSJMP$END另一种方法:ORG0000HLJMPMAINORG0030HMAIN: MOV SP, #60HMOV30H,#24HMOV31H,#00HMOV32H,#25HMOV33H,#00HMOVR2,#51HLOOP: MOVDPH,30HMOVDPL,31HMOVXA,DPTRMOVDPH,32HMOVDPL,33HMOVXDPTR,AINC31HINC33HDJNZR2,LOOPSJMP$END

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁