使用 SN8P2501B 接收 15 键的源程序

[复制链接]
hfbjjs | 2011-11-7 00:36:22 | 显示全部楼层
              BTS0       P_IR                         _IR=0则跳过下一指令
               INCMS      YH2                       _IR=1则YH2+1
               BTS1       P_IR                       _IR=1则跳过下一指令
               CLR        YH2                         _IR=0则YH2=0
;================================================
实际就是: P_IR=1 就计数,遇上P_IR=0就清零寄存器,不够高电平>8*10US=800US就不用计数了.
这样明白么?
仅供参考!

c475301174 | 2011-11-7 12:15:55 | 显示全部楼层
下载不下来
majun8743470 | 2011-11-10 10:02:22 | 显示全部楼层
看了,都是汇编的,好久不用了,生疏了,不过还是感谢!
DOO | 2011-12-12 20:22:17 | 显示全部楼层
不错,刚好要用SONIX 的片子来开发。。。
zhvdo | 2012-5-15 18:26:44 | 显示全部楼层
有一句不明白 JMP    $+1  代表什么意思
admin | 2012-5-16 07:32:49 | 显示全部楼层
是跳过一行指令的意思。
zhvdo | 2012-5-16 09:32:40 | 显示全部楼层
admin 发表于 2012-5-16 07:32 static/image/common/back.gif
是跳过一行指令的意思。

再请问版主一下,code 中出现的 MOV_   ,CMPRS0, CMPRS1,是定义的macro吗?,本段代码对应的是原理图的哪一部分,能否说明一下?谢谢!
admin | 2012-5-17 18:40:42 | 显示全部楼层
这个要请 hfbjjs 回答了。他比较清楚。
风雨路601 | 2012-5-23 08:15:04 | 显示全部楼层
LZ辛苦了,支持一下!
hfbjjs | 2012-5-24 04:45:52 | 显示全部楼层
MOV_ : 这是 SN 本身就有的 宏, 意思是:
MOV     A,M0
MOV     M1,A
   宏:
MOV_     M1,M0
;==============================================
CMPRS0, CMPRS1,是 自己 定义的 macro
原来系统有 CMPRS 指令, 就是比较 2 个数字的大小, 如果相等 则 Z=1 ,C=1.
如果不相等,就有 > 则 Z=0, C=1 ,或 < 则 Z=0 ,C=0 .
CMPRS0 : 是属于 < 的宏.把 Z=0, C=0 判断包含在 宏 里了!
CMPRS1 : 是属于 > 的宏. 把 Z=0, C=1 判断包含在 宏 里了!
这样仅仅书写简单一些,实则是 CMPRS  后再判断 FC =0  还是 =1 ,按照需要进行跳转.
仅供参考!
您需要登录后才可以回帖 登录 | 注册

本版积分规则