meiliang212
级别: 略有小成
精华主题: 0
发帖数量: 79 个
工控威望: 201 点
下载积分: 965 分
在线时间: 18(小时)
注册时间: 2017-03-21
最后登录: 2019-10-08
查看meiliang212的 主题 / 回贴
楼主  发表于: 2017-03-31 15:46
BIN K2X0  D0
MOV D0  K2Y0
模拟时改变x0~x7中的数值  D0的数值到7就不动了
如当x0为1,x1为1,x2为1时K2X0为7  , D0为7  ,K2Y0为7(y0,y1,y2有输出)

当x0为1,x1为1,x2为1,x3为1时k2x0为15,  D0还是7 没有改变,k2Y0也为7
这是怎么回事呢  D0 不是要跟着改变为15吗?之后k2Y0为15,y0,y1,y2,y3都有输出吗?
wengine
级别: 家园常客
精华主题: 0
发帖数量: 60 个
工控威望: 633 点
下载积分: 955 分
在线时间: 84(小时)
注册时间: 2015-03-02
最后登录: 2024-10-15
查看wengine的 主题 / 回贴
1楼  发表于: 2017-03-31 17:31
这种写法是错的,BIN是将BCD码转换为二进制数,
BIN K2X0  D0,你这么写表示将K2X0中的数当作BCD码
MOV D0  K2Y0,而这里则是直接输出,
这样写的话,大部分情况下,K2X0跟K2Y0里的数是不一样的。
wengine
级别: 家园常客
精华主题: 0
发帖数量: 60 个
工控威望: 633 点
下载积分: 955 分
在线时间: 84(小时)
注册时间: 2015-03-02
最后登录: 2024-10-15
查看wengine的 主题 / 回贴
2楼  发表于: 2017-04-01 10:14
K2X0是拨码盘输入?K2Y0是数码管输出?
是的话应该这样写
BIN K2X0  D0
BCD D0  K2Y0

如果K2X0,K2Y0只是普通的输入输出,想把它当作0101的二进制数,则这样写
mov K2X0  D0
MOV D0  K2Y0