[程序源码] 请教一段汇编语言

[复制链接]
1272|6
 楼主| 1dqmoon 发表于 2017-3-9 14:44 | 显示全部楼层 |阅读模式
51单片机,看到这么一段程序, 实在想不通 这段实现了啥功能,
感觉像是计数, 可用08H 09H 这样的内部RAM来计数, 太少见了。
请教高手指点一二
换成C语言应该是啥样?

Q0054:             JNB   P1.1,Q006C
                   CLR   C
                   MOV   A,09H
                   SUBB  A,#30H
                   MOV   A,08H
                   SUBB  A,#75H
                   JNC   Q006C
                   INC   09H
                   MOV   A,09H
                   JNZ   Q0054
                   INC   08H
                   SJMP  Q0054
Q006C:             JNB   P1.1,$
                   LCALL Q01C1
                   CLR   C
                   MOV   A,09H
                   SUBB  A,#30H
                   MOV   A,08H
                   SUBB  A,#75H
                   JNC   Q00DD
mcu5i51 发表于 2017-3-9 14:55 | 显示全部楼层
好像比较7530后++
海里蛐蛐 发表于 2017-3-10 08:11 | 显示全部楼层
是个按键或者开关消抖程序,如果p1.1持续维持一段时间的低电平,就等待P1.1高电平后 执行Q01c1
ddllxxrr 发表于 2017-3-10 11:05 | 显示全部楼层
想换C语言,就得用反汇编软件去反汇编,如果楼主不怕麻烦可以试下
 楼主| 1dqmoon 发表于 2017-3-10 22:51 | 显示全部楼层
海里蛐蛐 发表于 2017-3-10 08:11
是个按键或者开关消抖程序,如果p1.1持续维持一段时间的低电平,就等待P1.1高电平后 执行Q01c1 ...

多谢兄弟, 可能是按键消抖

可是后半段在干什么? 就只是单纯的减数吗、

Q006C:             JNB   P1.1,$
                   LCALL Q01C1
                   CLR   C
                   MOV   A,09H
                   SUBB  A,#30H
                   MOV   A,08H
                   SUBB  A,#75H
                   JNC   Q00DD
海里蛐蛐 发表于 2017-3-11 14:55 | 显示全部楼层
1dqmoon 发表于 2017-3-10 22:51
多谢兄弟, 可能是按键消抖

可是后半段在干什么? 就只是单纯的减数吗、

按键释放一段时间。在按下才有效。如果释放的时间没到就按下,延长上次剩余时间+减的这个数时间
 楼主| 1dqmoon 发表于 2017-3-31 09:27 | 显示全部楼层
海里蛐蛐 发表于 2017-3-11 14:55
按键释放一段时间。在按下才有效。如果释放的时间没到就按下,延长上次剩余时间+减的这个数时间 ...

搞定了, 多谢兄弟!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

63

主题

253

帖子

0

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