求个高手帮忙用80c51单片机汇编编写一段程序,通过实验箱上的钮子开关K1、K2、K3控制发光二极管的亮或灭。

①使用P3口作为信号输入口,P1口作为信号输出口。
②用三个钮子开关控制三支发光二极管,若三开关同时接高电平或同时接低电平,发光二极管均熄灭;若仅有一开关接高电平,相应的一支发光二极管亮,剩下两支则灭;若有两开关同时接高电平,则相应的两支发光二极管灭,剩下一支则亮。
③编写程序的首地址设为4000H。
谢谢!~

P3口作为按键的信号输入,你程序扫描P3口的3个开关的高电平,并得出相应的按键值,3个按键,总共8个组合,000,001,010,011,100,101,110,111。先查看P3.0口,如果为1或者0,跳到相应的程序--就剩4个组合了,在这个4个程序里查看P3.1口,也有1或者0,也相应跳到程序中--就剩2中组合了,在这2个程序里查看P3.2口,也有1或者0,这样就可以控制P1口直接接电阻驱动控制LED灯了。
用C语言就简单多了,直接switch语句就解决了,估计这道题用汇编是锻炼逻辑能力的。。。。用C就没意义了。追问

我是需要一段汇编编写的程序。。谢谢~

追答

要程序我帮不了你了,汇编我还要翻书,让别人帮你吧。。。

追问

哦。谢谢了

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-01
假设P3.0接K1信号,P3.1接K2信号,P3.2接K3信号
ORG 4000H
LJMP START
START:MOV A,P3
ANL A,#07H //屏蔽P3口高5位,只有P3.0-P3.2
JZ L1 // A=0,说明P3.0-P3.2全为0
CJNE A,#07H,L2 //A=7,说明P3.0-P3.2全为1
L1: MOV P1,#00H
SJMP L3
L2: CJNE A,#03H,L4 //P3.0、P3.1=1
MOV P1,#04H
SJMP L3
L4: CJNE A,#06H,L5 //P3.1、P3.2=1
MOV P1,#01H
SJMP L3
L5: CJNE A,#05H,L6 //P3.0、P3.2=1
MOV P1,#02H
SJMP L3
L6: MOV P1,A
L3: RET本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网