汇编语言的检测问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 01:57:49
八个位开关控制led灯,而且用一个七段数码管显示led灯的个数
例如:两个开关逼和,对应两个led灯亮 数码管显示“2”

将5各开关表明为1.2.3.4.5 其中1为最高优先权,7段数码管显示最高优先权的标号
例如:2,4,5闭合时 对应的灯亮 数码管显示2

说说大概的步骤和相关的语句就可以了 谢谢·!~

八个位开关控制led灯,而且用一个七段数码管显示led灯的个数
例如:两个开关逼和,对应两个led灯亮 数码管显示“2”

这个问题可以这样,所有8开关都检测过去,每检测到有闭合就计数值+1.
MOV CL,8

COUNT=0
L1:左移1位(或右移位也可以)
JC L2 ;发现CF=1则跳转到L2记录下来
JMP L3
L2:COUNT=COUNT+1
L3:LOOP L1
这样就统计出这8位开关构成的一个字节里的1的个数.

将5各开关表明为1.2.3.4.5 其中1为最高优先权,7段数码管显示最高优先权的标号
例如:2,4,5闭合时 对应的灯亮 数码管显示2

先把1,2,3,4,5接在第1位,第2位,第3位,第4位,第5位,
MOV CL,8
COUNT=0
L1:右移1位
JNC L2 ;
JMP OUT ;有CF马上结束,跳出来。
L2: COUNT=COUNT+1;无CF,每移动一次后都自动加1
LOOP L1
OUT:COUNT=COUNT+1
最后将COUNT的值送段码,显示

由于不是知道你的系统是单片机还是80X86的,所以给你理一个思路.还有你的LED是共阴极还是共阳极,位检测也不一样。