《江力版 单片机答案(3页).doc》由会员分享,可在线阅读,更多相关《江力版 单片机答案(3页).doc(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-第三章 作业参考答案3-10. 己知(A)=7AH,(R0)=34H,(34H)=A5H,请写出分别执行下面各条指令后累加器A的内容。 (1)MOVA,R0 ;(A)=34H (2)MOVA,R0 ;(A)=A5H (3)MOVA,34H ;(A)=A5H (4)MOVA,#34H ;(A)=34H3-12. 1设(R0)=32H,(A)=48H,片内RAM中(32H)=60H,(40H)=61H。请指出在执行下列程序段后上述各单元内容的变化。 MOV A,R0 ; (A)=(32H)=60H MOV R0,40H ; (32H)=61H MOV 40H,A ; (40H)=(A)=60H
2、MOV R0,#40H ; (R0)=40H即:执行完程序段后,(R0)=40H, (A)=60H, 片内RAM中,(32H)=61H, (40H)=60H3-13 已知(A)=83H,(R0)=47H,(47H)=34H。请写出执行完下列程序段后A的内容。 ANL A,47H ;(A)=83H34H=00H ORL 47H,A ;(47H)=34H00H=34H XRL A,R0 ;(A)= SWAP A ;(A)=43H 答:执行完程序段后,(A)=43H3-14 14. 说明下段程序执行过程中,SP的内容及堆栈中内容的改变过程。 MOV SP,#30H ;(SP)=30H MOV 30H
3、,#55H MOV 40H,#66H PUSH 30H ;(SP)=31H, 堆栈区中(31H)=55H PUSH 40H ;(SP)=32H, 堆栈区中(32H)=66H POP 30H ;先将堆栈区中32H单元的内容送入30H单元,使(30H)=66H, 再使 ;SP值减1,即: (SP)=31H POP 40H ;先将堆栈区中31H单元的内容送入40H单元,使(40H)=55H, 再使 ;SP值减1,即: (SP)=30H 最终,(SP)=30H, 内部RAM中,(30H)=66H, (40H)=55H. 3-15 编程实现两个16位二进制数的减法。设被减数放在40H、41H单元中,减数
4、放在50H、51H单元,差仍存于被减数地址单元中,减数、被减数都是低地址单元存放低8位。解:CLC C MOV A, 40H SUBB A, 50HMOV 40H, A MOV A, 41H SUBB A, 51H MOV 41H,A3-16. 编写一BCD码拼字程序,将存放在40H、41H单元的两个一位十进制数的BCD码合并构成一个字节的压缩BCD码,并将结果保存在42H单元中(高地址单元的BCD码放在高4位)。分析:设(40H)=XYH, (41H)=WZH, 则,合并结果为(42H)=ZYH, X,Y,W,Z取值09.解: MOV A, 40H ANL A,#0FH MOV B, A M
5、OV A,41H ANL A, #0FH SWAP A ORL A, B MOV 42H, A 3-17. 把片外数据存储器4020H单元中的数据读到累加器中,应用哪几条指令?解:方法1: MOV DPTR,#4020H 方法2: MOV P2,#40H MOVX A,DPTR MOV R0,#20H MOVX A,R03-18. 试编写程序将外部RAM 5000H单元内容传送至外部RAM 6030H单元。 解: MOV DPTR,#5000HMOVX A, DPTRMOV DPTR,#6030HMOVX DPTR, A3-20. 试编写一段程序,将累加器A的高4位由P1口的高4位输出,P1口
6、低4位保持不变。 分析: 设(A)=XYH, (P1)=WZH, 则执行结果为: (P1)=XZH, 解: ANL A, #0F0H ;(A)=X0H ANL P1,#0FH ;(P1)=0ZH ORL P1, A ;(P1)=XZH21. 试编写一段程序,将P1口的高5位置位,低3位不变。 ORL P1, #11111000B 或 ORL P1, #0F8H25. 使用位操作指令实现下列逻辑关系。 (1)P1.0=(10HPl.1)(ACC.0CY) (2)P1.3=(ACC.2P1.0)(ACC.1P1.1)解:(1) ORL C, ACC.0 MOV F0, C ;令 F0=ACC.0C
7、Y MOV C, 10H ;注意 此处的10H是一个位地址而非字节地址 ORL C, P1.1;令 CY=(10H) Pl.1 ANL C, F0 ;令CY=(10H) Pl.1)(ACC.0CY) MOV P1.0, C (2) MOV C, ACC.2 ANL C, P1.0 MOV 20H, C ;令20H=(ACC.2P1.0) MOV C, ACC.1 ORL C, P1.1 ;令 CY=(ACC.1P1.1);位指令中没有XRL 指令,只能用 MOV 21H, C ;令21H= (ACC.1P1.1)ANL C, /20HMOV F0,CMOV C,20H ANL C, /21H ORL C, F0 ; 令C=(ACC.2P1.0)(ACC.1P1.1) MOV P1.3, C 26. 试编程将内部RAM 30H3FH单元中的内容全部清0(利用循环转移指令)。解:MOV R0,#30HMOV R7,#10H ; 30H3FH共10H个数据LOOP: MOV R0, #00H INC R0DJNZ R7, LOOP27. 在程序存储器中有一个常数表,从2040H单元开始分别存放表格的第0项、第1项第n项,试编程查出表格第m项的内容。 解: MOV DPTR,#2040H MOV A, #m MOVC A, A+DPTR-第 3 页-
限制150内