第一范文网 - 专业文章范例文档资料分享平台

单片机答案 - 20140523214400

来源:用户分享 时间:2025/10/28 8:31:23 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

END

(18) 将Acc.3位送Acc.0位。 答: MOV C, ACC.3 MOV ACC.0, C END

(19) 用MCS-51位指令,实现P1.3?P1.2?P1.1?P1.0的逻辑运算。

答: MOV C, P1.3 ANL C, /P1.2 MOV 20H.0, C ;暂存 MOV C, P1.1 ORL C, P1.0 CPL C ORL C, 20H.0 END

3-6 假设4位BCD码压缩存放在R3、R2中,试编写BCD减1的程序段,并在仿真机上验证。 答: ;相当于WXYZ+10000-1=WXYZ+9999 CLR C; MOV A, R2 ADD A, #99 DA A MOV R2, A MOV A, R3 ADDC A, #99 DA A MOV R3, A END

3-7 利用双DPTR功能,将存放在程序存储区内的数表(共计16字节,首地址为DATATAB)传送到以4000H为首地址的外部RAM中。 答: AUXR1 EQU 0A2H MOV DPTR, #DATATAB INC AUXR1 MOV DPTR, #4000H MOV R7, #16 ;16 个字节 MOV A, #0 ;最开始的位置

LOOP: MOV R6, A ;暂存A的值

MOVC A, @A+DPTR ;注意用MOVC,同时职能用A做变址寄存器 INC DPTR MOVX @DPTR, A ;注意使用MOVX指令 MOV A, R6

INC DPTR

I INC A ;A的值增1,指向下一个字节 DJNZ R7, LOOP DATATAB: DB 01H,02H, 03H,04H, 01H,02H,03H,04H

END

3-8 将存放在R3、R2中的三位压缩BCD码转换为二进制形式。 答: 三位BCD码<999 MAIN:

MOV A, R2 ANL A, #0F0H SWAP A MOV B, #10 MUL AB

MOV B, A //存放十位 MOV A, R2 ANL A, #0FH

ADD A, B //加个位 MOV R2, A //暂存 //

MOV A, R3 ANL A, #0FH MOV B, #100 MUL AB // ADD A, R2 // MOV R2, A //

MOV A, B // ADDC A, #0 MOV R3, A

3-9 将存放在R2中不超过十进制99的二进制数转换为压缩BCD码,结果存放在R2中。

答: MOV A, R2

MOV B, #10 DIV AB SWAP A ORL A,B MOV R2,A

3-10 在32位除16位的多位除法运算中,如果已知除数在8000H~FFFFH之间,为缩短运算时间,是否需要扩展被除数?请写出相应的程序段。

答:不需要,因为32位二进制(FFFFFFFFH)表示的最大十进制数为4294967295,除以80000H~FFFFH之间的数,其结果<=1FFFFH(注:“1”存放在进位位),所以用32位已经

足够存放商和余数。

程序如下: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV 42H, #0FFH MOV 43H, #0FFH MOV 44H, #0FFH MOV 45H, #0FFH ; MOV 46H, #80H MOV 47H, #00H // //MOV 40H, #0 //MOV 41H, #0 MOV R7, #16 LOOP1: ;整体左移1位 CLR C MOV R1, #4 ;移动4个字节 MOV R0, #45H ;从最低位开始移 LOOP2: MOV A, @R0 RLC A MOV @R0, A DEC R0 DJNZ R1, LOOP2 MOV F0, C ;暂存移出的最高位 // CLR C MOV A, 43H SUBB A, 47H MOV R3, A // MOV A, 42H SUBB A, 46H MOV R2, A // ANL C, /F0 ;进位标志cy为0及F0为1均属于没有借位的情况 ;没有借位,商置1,用差替换 JC NEXT MOV 43H, R3

MOV 42H, R2 ORL 45H, #01H NEXT: ;有借位,在保留被减数,商的最后一位清零(移位时已将0移入商的最后一位) DJNZ R7, LOOP1 NOP

////////////////////////////////////////////////////////// END

3-11 假设程序头中含有如下变量定义伪指令

TXDBUF DATA #40H (注意:原题错误,应该去掉“#”号,下同) BDATA DATA #28H

(1) 请指出“MOV R0,#TXDBUF”指令和“MOV R0,TXDBUF”指令源操作数的寻址方式。

答:“MOV R0,#TXDBUF”指令(立即寻址);“MOV R0,TXDBUF”指令(直接寻址) (2) 执行如下程序段后,内部RAM 40H~4FH单元的内容是什么?28H单元的内容又是什么?

MOV BDATA,#10H MOV R0,#TXDBUF CLR A LOOP: MOV @R0,A INC A INC R0 DJNZ BDATA,LOOP END

答:内部RAM 40H~4FH单元的内容是:0~F,28H单元的内容是0 3-12 指出复位后工作寄存器组R7~R0的物理地址。如果希望快速保护工作寄存器组,请写出将2区作为当前工作寄存器区的程序段。

答:(1) 07H~00H. (2) SETB RS1 CLR RS0

3-13 简述顺序程序结构与分时操作程序结构的异同,以及这两种程序设计的注意事项。 答:略

习题四参考答案

4-1 增强型MCS-51有几个中断优先级?试通过修改IP、IPH寄存器内容,使串行口的中断优先级最高,定时器T1的中断优先级最低。

答:(1)4 ;

(2)MOV IPH ,#00010000B, MOV IP ,#00010000B

4-2 MCS-51外中断有几种触发方式?一般情况下,采用哪种触发方式较好? 答:两种,边沿触发

4-3 CPU响应中断请求后,不能自动清除哪些中断请求标志?

搜索更多关于: 单片机答案 - 20140523214400 的文档
单片机答案 - 20140523214400.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c483j79jgls2v3bv3zrgi_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top