能否解释下这段程序

[复制链接]
1492|7
手机看帖
扫描二维码
随时随地手机跟帖
Karlshen|  楼主 | 2010-1-19 22:34 | 显示全部楼层 |阅读模式
多路开关控制指示灯,P1.0-1.3接LED,P1.4-1.7接开关,按下开关,对应的LED发光。
ORG  00H
START: MOV  A,P1  ;读取P1口数据
SWAP A   ;交换A中高四位与低四位的位置
ORL  A,#0F0H  ;与0F0H相或
MOV  P1,A  ;将开关状态送LED显示
SJMP START
END

能否解释下这段程序?最后输出结果是什么?
xiaoxin1986| | 2010-1-20 05:21 | 显示全部楼层
好像是读取开关的状态,然后去控制三个灯的亮灭

使用特权

评论回复
laslison| | 2010-1-20 23:08 | 显示全部楼层
汇编那:lol

使用特权

评论回复
jerkoh| | 2010-1-20 23:30 | 显示全部楼层
ORG  00H
START: MOV  A,P1  ;读取P1口数据
SWAP A   ;交换A中高四位与低四位的位置      开关低半字节      灯到高半字节
ORL  A,#0F0H  ;与0F0H相或                灯到高半字节全置1  开关低半字节状态保持            
MOV  P1,A  ;将开关状态送LED显示           P1高半字节全1为开关  低半字节是开关的状态给灯显示
SJMP START                                                此时高半字节是全1,回到开始 看有没按下
END

使用特权

评论回复
Karlshen|  楼主 | 2010-1-21 21:35 | 显示全部楼层
交换语句开关的顺序还是原来的吧?

使用特权

评论回复
Karlshen|  楼主 | 2010-1-21 21:40 | 显示全部楼层
P1高半字节全1输出,开关会有变化吗?汇编实在是很菜

使用特权

评论回复
linhai2009| | 2010-1-22 00:24 | 显示全部楼层
应该是全部灯都亮了

使用特权

评论回复
lovelyegle| | 2010-1-26 12:42 | 显示全部楼层
解释得很详细

使用特权

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

本版积分规则

81

主题

734

帖子

1

粉丝