• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

AD转换成模拟量,汇编实现问题!

如AD=0FAH(250), 8位精度,5V基准,则此时对应的电压应该是FA/FF*5=250/255*5=4.902V,如何用汇编语言实现这一转换呢?即250*5/255的这个转换?
全部回复(6)
正序查看
倒序查看
dxgung
LV.8
2
2009-11-12 21:32
先自己顶一下!
0
回复
2009-11-13 22:52
@dxgung
先自己顶一下!
AD芯片型号都没有,别人怎么给你说啊?或用单片机内带AD的也行!
0
回复
dxgung
LV.8
4
2009-11-15 11:40
@firefox886
AD芯片型号都没有,别人怎么给你说啊?或用单片机内带AD的也行!
感谢您的关注,我是想知道实现这种算法的原理,比如像怎样移位(左移/右移,移多少次),然后加/减之类的实现算法.我想不同的芯片也仅仅指令的不同吧,但算法应该是一样的,期待您的指点.
0
回复
lhdasd
LV.4
5
2009-11-16 11:33
@dxgung
感谢您的关注,我是想知道实现这种算法的原理,比如像怎样移位(左移/右移,移多少次),然后加/减之类的实现算法.我想不同的芯片也仅仅指令的不同吧,但算法应该是一样的,期待您的指点.
大师,你是说在比如数码显示出来,对吗,这样有一个算法
;*******************************************************************************

;文件:频率表——转换
;作者:罗工        
;公司:
;日期:25/4/2005
;
;*******************************************************************************
;****************16位二进制数转换为BCD码************
;入口参数:     L_BYTE低字节    H_BYTE高字节
;出口参数:      W0,W1,W2        BCD的最高位在W0中

BT_BCD:
                BCLR       FC
                B0MOV       R,#10H
                
                MOV       A,#00H
                MOV       W0,A
                MOV       W1,A
                MOV       W2,A
LOOP16:         RLCM      L_BYTE
                RLCM      H_BYTE
                RLCM      W2
                RLCM      W1
                RLCM      W0
                DECMS     R
                JMP       LOOP17
                RET
LOOP17:         CLR       Y
                B0MOV       Z,#1AH
                CALL      ABCD
                B0MOV       Z,#1BH
                CALL      ABCD
                B0MOV       Z,#1CH
                CALL      ABCD
                JMP       LOOP16

ABCD:           MOV       A,#03H
                ADD       A,@YZ
                MOV        W3,A
                BTS0      W3.3
                MOV        @YZ,A
                MOV        A,#30H
                ADD        A,@YZ
                MOV        W3,A
                BTS0      W3.7
                MOV       @YZ,A
                RET
0
回复
2009-11-16 12:24
@dxgung
感谢您的关注,我是想知道实现这种算法的原理,比如像怎样移位(左移/右移,移多少次),然后加/减之类的实现算法.我想不同的芯片也仅仅指令的不同吧,但算法应该是一样的,期待您的指点.
大虾,你的想法是不对的!你选好单片机以后指令是不能改变的了,除非你自已开发一套指令!不同的芯片时序都不一样,那么程序(指令的组合)也就不一样了!关于左,右移都有相关的指令!移多少次这就要根据需要来确定!加减也有相关的指令!多字节的加减乘除你看一下书吧!这些基础教程上都有的!
0
回复
2009-12-13 10:31
就按你的算式写就行了嘛

要方便的话找一个双字节数的乘除法子程序

要精度高就再多乘个大点的数,保留多少位就看你的精度要求了
0
回复