打印

谁有51单片机两个寄存器减法的程序?

[复制链接]
2040|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xawanggang78|  楼主 | 2010-11-10 08:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
wh6ic| | 2010-11-10 09:00 | 只看该作者
分两个字节,先判断低字节是否为0,然后低字节减一,低不为0时一次减法过程结束,若低字节为0,判断高是否为0,若高也为0,将高低字节置为3200,否则高字节也减一,一次减法过程结束;重复以上过程。

使用特权

评论回复
板凳
xawanggang78|  楼主 | 2010-11-10 09:07 | 只看该作者
两个字节分别存放的是十进字数还是十六进字数?

使用特权

评论回复
地板
wh6ic| | 2010-11-10 09:11 | 只看该作者
本帖最后由 wh6ic 于 2010-11-10 11:57 编辑

dec0:  mov  r6, #1 + high 3200
           mov  r7, #low 3200
dlp1:   djnz  r7, dlp2
           djnz  r6, dlp2
           sjmp dec0
dlp2:   ...
           ...
           ljmp dec0

51下有个变通的办法,设初值为-3200到DPTR,DPTR支持加一操作。
dec1:  mov  dptr, #-3200
dlp0:   inc    dptr
           mov  a, dpl
           orl    a, dph
           jnz   dlp0
           ...
           ...
           ljmp  dec1

使用特权

评论回复
5
xawanggang78|  楼主 | 2010-11-10 09:11 | 只看该作者
能编写具体的程序代码吗?谢谢!!!

使用特权

评论回复
6
xawanggang78|  楼主 | 2010-11-10 09:17 | 只看该作者
wh6ic兄!把程序写完整吗!谢谢!

使用特权

评论回复
7
xawanggang78|  楼主 | 2010-11-10 12:22 | 只看该作者
还有把3200用数码管显示出来,谢谢大侠!!

使用特权

评论回复
8
xawanggang78|  楼主 | 2010-11-12 08:47 | 只看该作者
在wh6ic兄的提示下,我已经把这搞定了,非常谢谢!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

19

帖子

1

粉丝