为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

单片机实验四

2020-03-09 8页 doc 25KB 19阅读

用户头像

is_954223

暂无简介

举报
单片机实验四实验四  计算机数制的变换编程实验 一、实验目的: 1.掌握多字节二进制数与BCD码相互转换的编程原理。 2.掌握数据的拼装和拆卸方法和所使用的逻辑指令。 二、实验任务: 1.假设在43H~40H单元中有4个BCD码(高位在43H中),要转换成二进制数,转换结果存放在R3(高位)、R2(低位)中。 2.假设一个待转换的二进制数存放在R3、R2中,欲将其转换成BCD数,存放到一个数据区(44H~40H)中,(44H存高位、40H存低位)。 3.设在30H和31H单元中有一个8位数据: (30H)=X7X6X5X4X3X2X1X...
单片机实验四
实验四  计算机数制的变换编程实验 一、实验目的: 1.掌握多字节二进制数与BCD码相互转换的编程原理。 2.掌握数据的拼装和拆卸方法和所使用的逻辑指令。 二、实验任务: 1.假设在43H~40H单元中有4个BCD码(高位在43H中),要转换成二进制数,转换结果存放在R3(高位)、R2(低位)中。 2.假设一个待转换的二进制数存放在R3、R2中,欲将其转换成BCD数,存放到一个数据区(44H~40H)中,(44H存高位、40H存低位)。 3.设在30H和31H单元中有一个8位数据: (30H)=X7X6X5X4X3X2X1X0 (31H)=Y7Y6Y5Y4Y3Y2Y1Y0 现在要从30H单元中取出低5位,并从31H单元中取出低3位完成拼装,拼装结果存放在40H单元中: (40H)=Y2Y1Y0 X4X3X2X1X0 试编写程序实现之。    4. 假设片内30H-35H存放了单字节二进制无符号数,试编写完成下列表达式的计算 (30H)*(31H)+(32H)*(33H)+(34H)*(35H) 结果存放在36H开始的片内存储单元中。 三、实验说明: 1、由于人们习惯于十进制数,所以不少外设的输入输出设备仍采用BCD码。BCD码是以二进制形式出现的十进制数。 二进制数    00010011B=19 (十进制数) BCD数    00010011B=13 (十进制数) 显然BCD数是一种假二进制数,应用程序中经常会碰到BCD码与二进制数相互转换问题。转换的方法很多,下面介绍两种比较典型的BCD码转换成二进制数的方法: 假设在43H~40H单元中有4个BCD码,要转换成二进制数,转换结果存放在R3R2中(如下所示): 分析:3615=3*103+6*102+1*101+5 =((3*10+6)*10+1)*10+5 这是一个迭代算式,内核是高位乘十再加相邻的低位,MCS-51有乘法指令,所以直接用乘法等指令即可完成转换。 BCD数转换成二进制数程序流程图如下: 由于4位BCD数的最大值是9999,转换成二进制数为270FH,不会超过两个字节,所以转换时只需保存低两个字节即可。 2、相反,假设一个待转换的16位二进制数存放在R3R2中,欲将其转换成BCD数,存放到一个数据区(44H~40H)中,结果应为: 为什么结果要5个单元呢?因为16位二进制数最大为FFFFH,转换结果为65535,共5位,所以要用5个单元。实际转换时可以采用迭代乘法或连减法。 (1)采用迭代乘法的编程原理:因为16位二进制数可变换成: a15a14a13…a2a1a0=((…(0*2+a15)*2+a14……)*2+a0 所以,将二进制数从最高位逐次左移入BCD码寄存器的最低位,并每次都实现(…)*2+ai的运算,共循环16次即可完成16位二进制数转换成BCD数的过程。 二进制数转换成BCD数程序流程图如下: (2)若采用连减法,即从二进制数中连续减去十的幂次,连减法的原理是: 求得万位计数值后,再将余数减去103,方法类同,可得千位、百位、十位,最后的余数即为个位。另外: 104=2710H          103=03E8H 102=0064H          101=000AH 因此,可采用查表的办法实现对十的幂次的连减。程序流程图学生自己独立完成。 3、在PC机、仿真器和实验系统上编辑、汇编和调试程序。 四、实验程序参考: BCD——二进制 ORG 0000H LJMP MAIN ORG 0030H MAIN:     MOV R0,#43H MOV R7,#03H MOV A,#00H MOV R2,A MOV R3,A MOV A,@R0 MOV B,#0AH MUL AB MOV R2,A MOV R3,B LOOP:    CLR C DEC R0 ADD A,@R0 MOV R2,A MOV A,R3 ADDC A,#00H MOV R3,A DEC R7 MOV A,R7 JZ OVER MOV A,R2 MOV B,#0AH MUL AB MOV R2,A MOV R4,B MOV A,R3 MOV B,#0AH MUL AB CLR C ADD A,R4 MOV R3,A MOV A,R2 AJMP LOOP OVER:    AJMP OVER END 数据拼装 ORG 0000H MOV R0,#30H MOV A,@R0 ANL A,#1FH MOV R2,A INC R0 MOV A,@R0 ANL A,#07H SWAP A RL A ADD A,R2 MOV 40H,A END
/
本文档为【单片机实验四】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索