89C51单片机 4*4矩阵键盘加流水灯问题,求个汇编程序代码。
要求加个流水灯,用中断程序控制(仪器箱没有与门)。按一个键流水灯暂停2秒,然后流水灯继续运行。按另外一个键流水灯再暂停。依次类推。急死啦--...
要求加个流水灯,用中断程序控制(仪器箱没有与门)。按一个键流水灯暂停2秒,然后流水灯继续运行。按另外一个键流水灯再暂停。依次类推。急死啦- -
展开
3个回答
展开全部
;其实很简单,都不用判断键值,有键按下暂停2S程序如下:
ORG 0000H
LJMP STA
ORG 000BH
LJMP T0ISR
ORG 0030H
STA:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB ET0
SETB EA
MOV 30,#0FEH
MOV R2,#0
CLR 00H
LOOP:
MOV P1,#0F0H
MOV A,P1
CJNE A,#0F0H,LOOP1
SJMP LOOP
LOOP1:
LCALL DELAY
MOV A,P1
CJNE A,#0F0H,LOOP2
SJMP LOOP
LOOP2:
SETB 00H
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,0B0H
SETB TR0
JNB 00H,T0ISR1
INC R2
MOV A,R2
CJNE A,#40,T0ISRE
MOV R2,#0
CLR 00H
SJMP T0ISRE
T0ISR1:
MOV A,30H
RL A
MOV 30H,A
MOV P0,A
T0ISRE:
RETI
DELAY:
MOV R0,#20
DELAY1:
MOV R1,#250
DJNZ R1,$
DJNZ R0,DELAY1
RET
END
ORG 0000H
LJMP STA
ORG 000BH
LJMP T0ISR
ORG 0030H
STA:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB ET0
SETB EA
MOV 30,#0FEH
MOV R2,#0
CLR 00H
LOOP:
MOV P1,#0F0H
MOV A,P1
CJNE A,#0F0H,LOOP1
SJMP LOOP
LOOP1:
LCALL DELAY
MOV A,P1
CJNE A,#0F0H,LOOP2
SJMP LOOP
LOOP2:
SETB 00H
SJMP LOOP
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,0B0H
SETB TR0
JNB 00H,T0ISR1
INC R2
MOV A,R2
CJNE A,#40,T0ISRE
MOV R2,#0
CLR 00H
SJMP T0ISRE
T0ISR1:
MOV A,30H
RL A
MOV 30H,A
MOV P0,A
T0ISRE:
RETI
DELAY:
MOV R0,#20
DELAY1:
MOV R1,#250
DJNZ R1,$
DJNZ R0,DELAY1
RET
END
展开全部
这个只2 个键,不用矩阵键盘简单。矩阵键盘里用2 个键当独立按键用。
不知道你的硬件接线,无法写。
另外你的按键功能 描述看不太明白
不知道你的硬件接线,无法写。
另外你的按键功能 描述看不太明白
追问
就是4*4键盘嘛,每一个键按下去都让流水灯暂停2S。仪器箱是伟福LAB8000.。。
追答
没有见过伟福LAB8000仪器
不知你的流水灯接哪个口
按1 键流水停2 秒,按2键流水暂停,那再按1键呢?怎么类推法?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
4*4键盘写程序的时候用反转扫描法,然后把流水灯暂停程序放到中断程序中,按一次按键执行一次中断
追问
就是按一次执行一次中断哇。可是我不会写程序-0-
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询