导航:首页 > 操作系统 > 51单片机da指令用于

51单片机da指令用于

发布时间:2022-09-27 06:10:00

1. 汇编中的DA指令是怎么回事,是转成8421BCD码么

DA是十进制调整指令,一般跟在加法减法指令后面,用于将二进制的加法减法指令运算后,将二进制结果调整为十进制数。
例如:#5FH用DA后,个位数上的F调整为十进制的15,就会向十位产生一个进位。结果调整为65H。
调整后的数是十进制数即8421BCD码。
如果是#AAH,#FFH等,经DA调整 都能变为十进制数,即110和165.

2. 关于单片机DA指令

我没有看到给R3自动加1的程序
在MOV A, R3后加入

ADD A, #01H
DA A
MOV R3, A

两个功能
1. 自动加1
2. 将十六位转换为10进制,比如,09H转换一下,还是09
0AH转换一下,就成了10了,这主要就是为了显示,
但你的是发光二极管显示,并不是数码管显示的,它显示出来的肯定是乱码,
如果你不转换,也就是不加DA的话,那么二极管显示的就是2进制数据,这样还可以看出来到底按了多少次,但搞成这个样子,就得重新算了,
显示的数据是两个8进制,高四位显示十位,低四位显示个位,是十进制数,得仔细看了

3. 求教,单片机中的DA指令是指啥啊

DA A;这条指令是十进制调整指令,用来在进行十进制运算(BCD码)时进行校正的。
当两个BCD码加法时,01H+09H应该是等于10H,但由于 单片机的加法指令是二进制的运算,加完之后得到的结果是0AH,这时就需要再加上一个06H。
DA这条指令就是起这个作用。

4. 求教,单片机中的DA指令是指啥啊

DA
A;这条指令是十进制调整指令,用来在进行十进制运算(BCD码)时进行校正的。
当两个BCD码加法时,01H+09H应该是等于10H,但由于
单片机的加法指令是二进制的运算,加完之后得到的结果是0AH,这时就需要再加上一个06H。
DA这条指令就是起这个作用。

5. 请教:51单片机,用汇编语言实现指令DAA的功能

DA A指令,是专门用于BCD码加法计算调整的,例如,计算十进制数26+17,用指令:
MOV A ,#26H
ADD A ,#17H
这样计算的结果是3DH,这不是十进制数,在加法指令后加上DA A,则进行十进制数调整,调整后的结果就是43了。

6. 单片机中调整指令:DA A是什么意思

BCD码转换指令;
比如说:
81D+91D=172D
而:
81H+91H=112H
这里为了将81H+91H结果与81D+91D一致,经过DA有:
DA(112H)=112H+60H=172H
虽然一个是16进制一个是10进制但172在形式上是相等的。

MOV R5,#81H
MOV A, #91H
ADD A, R5
DA A
首先81H+91H=112H,此时AC=0,Cy=1,A=12H,所以DA A后A=12H+60H=72H,AC=0,Cy=1,结果为172H,当然运算应该理解为81D+91D=172D。

7. MCS-51 系列单片机的十进制调整指令只适用运算。() A错 B对

答:MCS-51 系列单片机的十进制调整指令DA A,只适用加法运算指令ADD、ADDC两条指令。

8. 用51单片机编程

单片机中只有一条语句是对进制调整的
DA A 对累加器A的结果进行十进制调整
如果随意对一个累加器A中的二进制数据进行“二进制转十进制”调整是没有任何实际意义的!

DA调整的对象是ADD或ADDC以后的结果,而且是BCD码相加以后才能够加以调整,否则没有实际意义!

比如,现在我想执行12D+39D也就是两个十进制数相加这样一个加法(有时候程序处理的需要,数据在单片机中是以BCD码的形式存储的,也就是12H和39H(十六进制),但我们可以人为将它们看为12D和39D(十进制),而且还希望相加以后的结果为51H,也就是说符合十进制运算规则12+39=51,而不是4BH的结果),但这样的十进制加法运算在单片机中是不能够直接实现的。因为单片机只能够执行二进制加法指令,也就是所有的运算都按照二进制中的规则进行!

于是就出现了DA调整指令!

现在12H+39H,将12H放于A中,执行 ADD A,#39H指令,则结果为4BH,这不是我们希望的51H的数据形式!!这时执行DA A 指令后,就会将A中的数据调整为51H(具体调整过程和原理你可以详细看书,如果单片机书中讲的不详细,那么微机原理中一定说的非常详细),而我们按照BCD码规则就将其看为51D,符合我们的要求!

也就是说加数和被加数都是BCD码的形式,最大也只可能是99H,也就是我们十进制数中的99,只有这样才会有实际的意义!
所以DA A指令只用于十进制BCD码加法指令以后,否则是没有实际意义的!
在单片机中数据就是以二进制存放的也可以说是以16进制存放(4位二进制就是16进制),所以一般来说在单片机只有二进制转十进制才有意义,通过单片机将十进制转二进制是没意义的。 这个一般都是我们自己把一个十进制数转成二进制再送给单片机处理。
非得编写程序的话 程序如下
----------------------------------------------------------------------
;二进制整数(2位)转换为十进制整数(组合BCD码)
;入口: R3,R4
;出口: R0
IBTD22 : MOV A,R0
PUSH A
MOV R7,#03H
CLR A
IBD221 : MOV @R0,A
INC R0
DJNZ R7,IBD221
POP A
MOV R0,A
MOV R7,#10H
IBD222 : PUSH A
CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV B,#03H
IBD223 : MOV A,@R0
ADDC A,@R0
DA A
MOV @R0,A
INC R0
DJNZ B,IBD223
POP A
MOV R0,A
DJNZ
--------------------------------------------------
;二进制整数(M位)转换为十进制整数(组合BCD码)
;入口: R1,M,N
;出口: R0
IBTDMN : MOV A,R0
MOV R2,A
MOV A,R1
MOV R3,A
MOV B,N
CLR A
IBDMN1 : MOV @R0,A
INC R0
DJNZ B,IBDMN1
MOV A,M
SWAP A
RR A
CLR C
MOV R7,A
IBDMN2 : MOV A,R2
MOV R0,A
MOV A,R3
MOV R1,A
MOV B,M
IBDMN3 : MOV A,@R1
RLC A
MOV @R1,A
INC R1
DJNZ B,IBDMN3
MOV B,N
IBDMN4 : MOV A,@R0
ADDC A,@R0
DA A
JNB ACC.4,IBDMN5
SETB C
CLR ACC.4
IBDMN5 : MOV @R0,A
INC R0
DJNZ B,IBDMN4
DJNZ R7,IBDMN2
MOV A,R2
MOV R0,A
RET
----------------------------------------------------------------
BCD整数转换为二进制整数(1位)
;入口: R0(高位地址),R7
;出口: R4
IDTB1: CLR A
MOV R4,A
IDB11: MOV A,R4
MOV B,#0AH
MUL AB
ADD A,@R0
INC R0
MOV R4,A
DJNZ R7,IDB11
RET
------------------------------------------
;BCD整数转换为二进制整数(N位)
;入口: R1(高位地址),M,N
;出口: R0
IDTBMN : MOV A,R0
MOV R2,A
MOV B,N
CLR A
IDBMN1 : MOV @R0,A
INC R0
DJNZ B,IDBMN1
MOV A,R2
MOV R0,A
MOV A,M
MOV NCNT,A
IDBMN2 : MOV R7,N
CLR A
CLR F0
IDBMN3 : XCH A,@R0
MOV B,#0AH
MUL AB
MOV C,F0
ADDC A,@R0
MOV F0,C
MOV @R0,A
INC R0
MOV A,B
DJNZ R7,IDBMN3
MOV A,R2
MOV R0,A
MOV A,@R1
INC R1
ADD A,@R0
MOV @R0,A
DJNZ NCNT,IDBMN2
RET
----------------------------------------------------------
NDIV31 : MOV A,R2
MOV B,R7
DIV AB
PUSH A
MOV R2,B
MOV B,#10H
NDV311 : CLR C
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
MOV F0,C
CLR C
SUBB A,R7
JB F0,NDV312
JC NDV313
NDV312 : MOV R2,A
INC R4
NDV313 : DJNZ B,NDV311
POP A
CLR OV
JZ NDV314
SETB OV
NDV314 : XCH A,R2
MOV R7,A
RET

阅读全文

与51单片机da指令用于相关的资料

热点内容
编译原理词法未来前景 浏览:890
唐子睿 浏览:640
有弹窗广告的小说网站 浏览:744
大陆战争老电影全部 浏览:966
我的世界迪哥使用的服务器是什么 浏览:733
淘宝批量压缩图片 浏览:208
php5217漏洞 浏览:511
泰国 什么什么嫂 恐怖片 浏览:377
高中生打气球解压视频 浏览:7
无水印电影下载网站推荐 浏览:703
大尺度男性露j电影有哪些 浏览:353
蚁群算法飞行器 浏览:554
好看的免费电影网站 浏览:633
适合情侣在私人影院的电影 浏览:647
编程器备份固件 浏览:520
微信朋友圈照片压缩了 浏览:218
台湾鸭子电影三部曲 浏览:859
android设置前景色 浏览:191
专门百度小程序开发源码 浏览:235
安卓手机为什么微信不能更新到最新版本 浏览:817