网站大量收购闲置独家精品文档,联系QQ:2885784924

51单片机结构及指令.ppt

  1. 1、本文档共115页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
51单片机结构及指令,单片机汇编指令,单片机指令,单片机指令周期,单片机指令表,pic单片机汇编指令,单片机移位指令,单片机c语言指令集,单片机指令集,单片机c语言指令

MOV R0, A ; 积的低位送R0 MOV R1, B ; 积的高位送R1 MOV A, R7 ; 第一个因数的高位送A MOV B, R4 ; 第二个因数的低位送B MUL AB ; 第一个因数的高位乘以第二个因数的低位 ADD A, R1 ; 部分积相加,形成进位Cy MOV R1, A ; 部分积相加送R1 MOV A, B ; 部分积的进位Cy加到高位 ADDC A, #00H MOV R2, A MOV A, R6 ; 第一个因数的低位送A MOV B, R5 ; 第二个因数的高位送B MUL AB ; 第一个因数的低位乘以第二个因数的高位 ADD A, R1 ; 部分积相加,形成进位Cy MOV R1, A ; 回送部分积 MOV A, R2 ADDC A, B ; 部分积相加 MOV R2, A ; 回送部分积 MOV A, #00H ; 部分积的进位Cy加到高位 ADDC A, #00H MOV R3, A ; 回送部分积 MOV A, R7 ; 第一个因数的高位送A MOV B, R5 ; 第二个因数的高位送B MUL AB ; 第一个因数的高位乘以第二个因数的高位 ADD A, R2 ; 部分积相加,形成进位Cy MOV R2, A ; 回送部分积 MOV A, R3 ADDC A, B ; 部分积相加 MOV R3, A ; 回送部分积 RET END 2.5.2 数制转换程序 [例题11] 将双字节二进制数转换成BCD码(十进制数)。 解:将二进制数转换成BCD码的数学模型为: (a15a14…a1a0)2=(a15×215+a14×214+…+a1×21+a0×20)10 上式右侧即为欲求的BCD码。它可作如下变换 (a15×214+a14×213+…+a1)×2+a0 括号里的内容可变为:(a15×213 +a14×212+a13×211+…+a2)×2+a1 括号里的内容可变为:(a15×212+a14×211+a13×210+…+a3)×2+a2 …… 经过16次的变换后,括号里的内容可变为: (0×2+a15)×2+a14 所以括号里的内容的通式为ai+1×2+ai,即为二进制数转换成BCD码的公因式。 在程序设计中,可利用左移指令(乘以2)实现ai+1×2,采用循环计算16次公因式的方法来完成二进制数转换成BCD码。 入口参数:16位无符号数送R3, R2。 出口参数:共有5位BCD数,万位→R6;千、百位→R5;十、个位→R4位。 程序流程图如右图所示。 程序如下: ORG 1000H BINBCD1: CLR A ; A 清0 MOV R4, A ; 清0出口参数寄存器 MOV R5, A MOV R6, A MOV R7, #10H ; 设置循环次数16 LOOP: CLR C ; 标志位Cy清0,为二进制数×2作准备 MOV A, R2 ;ai+1×2 RLC A MOV R2, A MOV A, R3 RLC A MOV R3, A MOV A, R4 ADDC A, R4 ; 带进位自身相加,相当于乘2 DA A MOV R4, A MOV A, R5 ADDC A, R5 DA A MOV R5, A MOV A, R6 AD

文档评论(0)

mydoc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档