单片机用汇编语言编写一个。用十个按钮分别控制十个灯。比如:按下按钮K1 LED1灯亮。按下"

单片机用汇编语言编写一个。用十个按钮分别控制十个灯。比如:按下按钮K1 LED1灯亮。按下"k2LED2灯亮 可以用十个输入和十个输出端吗。还有按下一个按钮延时10s并锁住其它按钮。10s之后循环 麻烦详细说说。谢谢。还有一定好评

检测是否有按键按下,相应的指示灯点亮,并熄灭其它的指示灯。至于10S锁住其他按钮,如果程序不做其它的事情,最简单的方法就是点亮指示灯后延时10S,再回到主函数扫描其它按键即可追问

能用汇编帮我写下吗,我是菜鸟。

追答

KEY1 BIT P1.0字数限制了,KEY1 - KEY8接P1.0-P1.7
KEY9 BIT P2.0
KEY10 BIT P2.1 ;按钮

LED1 BIT P3.0字数限制了,LED1 - LED8接P3.0-P3.7
LED9 BIT P0.0
LED10 BIT P0.1 ;指示灯,L点亮
LED_PORT EQU P0
LED_PORT1 EQU P3
ORG 00H
JMP MAIN
//按键去抖动,延时200 * 100 = 20000us = 20ms
FILTER:
MOV R7,#100
SETB TR0
FILTER1:
JNB TF0,$
CLR TF0
DJNZ R7,FILTER1
CLR TR0
RET
//延时10S,5 * 100 * 20MS = 10S
DELAY:
MOV R6,#5
DELAY1:
MOV R5,#100
DELAY2:
CALL FILTER
DJNZ R5,DELAY2
DJNZ R6,DELAY1
RET
MAIN:
MOV A,#0FFH
MOV P0,A
MOV P1,A
MOV P2,A
MOV P3,A
MOV TM0D,#02H
MOV TH0,#56
MOV TH0,TL0 ;timer0模式2,在12M晶振下,延时200us
LOOP:
JB KEY1,LOOP_1
CALL FILTER
JB KEY1,LOOP_1
MOV LED_PORT,#0FFH
MOV LED_PORT1,#0FFH
CLR LED1
CALL DELAY
JNB KEY1,$
LOOP_1:
JB KEY2,LOOP_2
CALL FILTER
JB KEY2,LOOP_2
MOV LED_PORT,#0FFH
MOV LED_PORT1,#0FFH
CLR LED2
CALL DELAY
JNB KEY2,$
LOOP_2:
;2-N和上面的相同
LOOP_N:
JMP LOOP
END

追问

怎么不能变异呢 还有按钮接高电平还是低电平 输出的是低电平还高的

追答

按钮是低电平有效的,你把完整程序贴出来看看

追问

这个程序我还没看懂呢

追答

啊?那是什么不能变啊

追问

等等昂。如果按钮是低电平。能帮我写个完整的吗就是直接能下载到单片机

追答

你把你现在的硬件连接说一下吧,好照着你的硬件来写

追问

有8个开关 接的P1.0-P1.7 现在就接8个了 这样方便写程序 输出是P0.0到P0.7 这样就好办了吧 还有10S延时和按住一个锁其他键
我都接好了

追答

;按键按下为低电平;指示灯低电平点亮,和按键端口0-7相对应
ORG 00H
JMP MAIN
//延时20ms
FILTER:
MOV TL0,#(45536 MOD 256);在12M晶振下,延时20MS
MOV TH0,#(45536 / 256)
SETB TR0
JNB TF0,$
CLR TF0
CLR TR0
RET
//延时10S
DELAY:
MOV R6,#5
DELAY1:
MOV R5,#100
DELAY2:
CALL FILTER
DJNZ R5,DELAY2
DJNZ R6,DELAY1
RET
MAIN:
MOV A,#0FFH
MOV P1,A
MOV P0,A
MOV B,A
MOV TM0D,#01H ;TIMER0模式1
LOOP:
MOV A,P1
CPL A
JZ LOOP
;因为字数限制,这个程序是一起判断所有的按键,只要有1个或多个按键按下都会输出
;如果同时按下多个按键,延时10S后,放开其中一个按键,会再次延时10S
;你测试好之后可以再改成每个按键分开判断
CALL FILTER
MOV A,P1
CPL A
JZ LOOP
CPL A
CJNE A,B,LOOP1

JMP LOOP ;避免相同按键一直按下时,重复延时
LOOP1:
MOV P0,A
MOV B,A
CALL DELAY
JMP LOOP
END

追问

直接复制就可以了吧

追答

嗯,直接输入的,可能有错误,自己改一下就行

追问

不知道行不行,先给你个好评 看你打的字比我都多 知道你不是为了好评来的 为了是分享自己的成功

温馨提示:答案为网友推荐,仅供参考
相似回答