好心人,能帮我解决一下吗?

[复制链接]
3289|17
 楼主| wuweige 发表于 2007-2-2 13:08 | 显示全部楼层 |阅读模式
mov  37h,#05h
mov  36h,#05h
inC 37h
MOV A,37h
CJNE A,#0aH,DISPLAY
MOV 37h,#00H

inC 36h
MOV A,36h
CJNE A,#0ah,DISPLAY
MOV 36h,#00H

以上为加一显示的程序,我想改成减一的程序,能进行。54。 
53。52。 51。50,49.的数码显示变化不知如何修改,请大家帮
助改一改,先谢谢了。
 
duanhnhy 发表于 2007-2-2 15:57 | 显示全部楼层

RE

能不能再具体点?这样一点点没法帮你呀!最好把整个程序贴上来!
 楼主| wuweige 发表于 2007-2-2 16:27 | 显示全部楼层

想做个999999倒数器,其中减一程序不会写,望大伙能启发我

highway 发表于 2007-2-2 16:32 | 显示全部楼层

DEC是减1,然后变换为BCD即可,从低字节开始减

binbinwb 发表于 2007-2-2 16:36 | 显示全部楼层

把完整的程序贴上来看看先

yf_tech 发表于 2007-2-2 16:47 | 显示全部楼层

来了

mov  37h,#05h
mov  36h,#05h
DEC  inC 37h
MOV  A,37h
CJNE A,#0,DISPLAY
MOV  37h,#0AH

DEC  36h
MOV  A,36h
CJNE A,#0,DISPLAY
MOV  36h,#0AH
stycx 发表于 2007-2-2 16:56 | 显示全部楼层

999999? 大了点,几位一组分开处理吧

 楼主| wuweige 发表于 2007-2-2 17:14 | 显示全部楼层

回复

main:mov  30h,#09h
mov  31h,#09h
mov  32h,#09h
mov  33h,#09h
mov  34h,#09h
mov  35h,#09h

deC 35h
MOV A,35h
CJNE A,#00H,DISPLAY
MOV 35h,#0aH

deC 34h
MOV A,34h
CJNE A,#00H,DISPLAY
MOV 34h,#0aH

deC 33h
MOV A,33h
CJNE A,#00H,DISPLAY
MOV 33h,#0aH

deC 32h
MOV A,32h
CJNE A,#00H,DISPLAY
MOV 32h,#0aH

deC 31h
MOV A,31h
CJNE A,#00H,DISPLAY
MOV 31,#0ah

deC 30h
MOV A,30h
CJNE A,#00H,DISPLAY
MOV 30h,#0aH
aJMP DISPLAY
ret

以上为草稿,大意是按一下键,999999数字减一,变成999998,再按一下,变成999997,。。。以次类推,根据大概意思,程序该如何修改,请指教
highway 发表于 2007-2-2 17:14 | 显示全部楼层

错了,应该使用SUBB,低字节减去,再高的减0

不明白联系我
 楼主| wuweige 发表于 2007-2-2 17:20 | 显示全部楼层

请问highway大侠,你能再说具体点吗,咋联系你呀?

5880527 发表于 2007-2-2 17:52 | 显示全部楼层

个人意见

个人感觉还是不要这样处理的好,如果其他地方还要用到这个数据,999999=F423FH,你用SUBB减好些的,显示时再转换一下
diannaoza 发表于 2007-2-2 17:59 | 显示全部楼层

SUBB这么减行不?

1:
ORG 0000H
AJMP BEG

ORG 0030H
BEG:

MOV 30H,#02
MOV 31H,#03
LOOP:

MOV A,30H
SUBB A,#01
MOV 30H,A

JNC LLL1
CLR C

MOV A,31H
SUBB A,#01H
MOV 31H,A

LLL1:
NOP
AJMP LOOP
END


2:
;;;ORG 0000H
AJMP BEG

ORG 0030H
BEG:

MOV 30H,#02
MOV 31H,#03
LOOP:
MOV A,30H
SUBB A,#01

JNC LLL1
MOV 30H,A
CLR C

MOV A,31H
SUBB A,#01H

MOV 31H,A
SJMP LLL2
LLL1:
MOV 30H,A
LLL2:



AJMP LOOP
END
dengm 发表于 2007-2-2 19:02 | 显示全部楼层

-1 就是 +99999

  
        MOV R7, #99H  ; HI BCD
        MOV R6, #99H  ; MID BCD
        MOV R5, #99H  ; LOW BCD

LOOP:
        ACALL DEC1
        ACALL DISPLAY
      SJMP LOOP

DEC1:  ; + 999999 === -1
      MOV A, #99H   
      ADD A, R5
      DA A
      MOV R5, A
     
      MOV A, #99H
      ADDC A, R6
      DA A
      MOV R6, A
 
      MOV A, #99H
      ADDC A, R7
      DA A
      MOV R7, A
   
      RET
    
 楼主| wuweige 发表于 2007-2-2 19:18 | 显示全部楼层

我需要把37h--30h中的数转换成压缩的BCD码吗?

joson 发表于 2007-2-2 19:29 | 显示全部楼层

送显的话就需要了

 楼主| wuweige 发表于 2007-2-2 19:53 | 显示全部楼层

回复

那是不是如下操作:
首先30h--37h中的数转换成3个双字节的数,然后调用加999999程序,最后把3个双字节的数再分成6个单字节的数送显示,对吗?
zlove1984 发表于 2007-2-2 22:03 | 显示全部楼层

插入

你这个接口实验
可不容易啊!!
呵呵!
你不知道要按位显示么?
diannaoza 发表于 2007-2-2 23:18 | 显示全部楼层

经典呀

 -1 就是 +99999 

  
        MOV R7, #99H  ; HI BCD
        MOV R6, #99H  ; MID BCD
        MOV R5, #99H  ; LOW BCD

LOOP:
        ACALL DEC1
        ACALL DISPLAY
      SJMP LOOP

DEC1:  ; + 999999 === -1
      MOV A, #99H   
      ADD A, R5
      DA A
      MOV R5, A
     
      MOV A, #99H
      ADDC A, R6
      DA A
      MOV R6, A

      MOV A, #99H
      ADDC A, R7
      DA A
      MOV R7, A
   
      RET 
 
学习了!谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

36

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部