帮忙解释一下这个程序的每句指令的意思好吗?我是菜鸟,谢谢了~
6、用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。编出汇编语言程序。解:ORG0100HABC:SETBP1.0SETBP1.7JBP...
6、 用89C51的P1口,监测某一按键开关,使每按键一次,输出一个正脉冲(脉宽随意)。编出汇编语言程序。
解: ORG 0100H
ABC:SETB P1.0
SETB P1.7
JB PI.7,$
JNB P1.7,$
CLR P1.0
MOV R2,#0
DAY: NOP
NOP
DJNZ R2,DAY
SJMP ABC 展开
解: ORG 0100H
ABC:SETB P1.0
SETB P1.7
JB PI.7,$
JNB P1.7,$
CLR P1.0
MOV R2,#0
DAY: NOP
NOP
DJNZ R2,DAY
SJMP ABC 展开
1个回答
展开全部
ORG 0100H 程序从0100H处开始,因为前面的要留给堆栈或者其他
ABC:SETB P1.0 将P1.0的置1
SETB P1.7 将P1.7置1
JB PI.7,$ 循环检测P1.7的低电平,如果收到高电平,程序就向下进行
JNB P1.7,$ 同上,但是此处检测的为高电平,低电平程序向下
CLR P1.0 P1.0置0
MOV R2,#0 R2寄存器置0
DAY: NOP 什么都不做,
NOP 什么都不做
DJNZ R2,DAY 将R2-1,不为0就跳转到DAY,相当于在此处循环,除非R2=0
SJMP ABC 跳回ABC,程序开始处
ABC:SETB P1.0 将P1.0的置1
SETB P1.7 将P1.7置1
JB PI.7,$ 循环检测P1.7的低电平,如果收到高电平,程序就向下进行
JNB P1.7,$ 同上,但是此处检测的为高电平,低电平程序向下
CLR P1.0 P1.0置0
MOV R2,#0 R2寄存器置0
DAY: NOP 什么都不做,
NOP 什么都不做
DJNZ R2,DAY 将R2-1,不为0就跳转到DAY,相当于在此处循环,除非R2=0
SJMP ABC 跳回ABC,程序开始处
追问
你好,我知道各个指令的意思,你可以帮我解答一下JB PI.7,$和JNB P1.7,$在这里的作用?
追答
第一个检测按键是否按下。第二就是检测案件是否松开,建议增加延时,去抖动。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询