求一个完整的AT89C51单片机LED控制程序,汇编语言的
请看清楚,是汇编语言的,不是C语言要实现以下:8个LED灯按照16进制加一方式点亮P1口的8个引脚分别连接8个LED灯P3.3,即INT1,外部中断1申请引脚连接一个按钮...
请看清楚,是汇编语言的,不是C语言
要实现以下:
8个LED灯按照16进制加一方式点亮
P1口的8个引脚分别连接8个LED灯
P3.3,即INT1,外部中断1申请引脚连接一个按钮K1,用按钮控制电路
使K1每拨动一次,加一,
最初是00000000B ,对应8个LED,全灭
+1,变成00000001B,只有最后一个灯亮
+1,00000010B,只有倒数第二个灯亮
+1,00000011B,最后两个灯亮....
用汇编语言怎么实现,不会写中断程序! 展开
要实现以下:
8个LED灯按照16进制加一方式点亮
P1口的8个引脚分别连接8个LED灯
P3.3,即INT1,外部中断1申请引脚连接一个按钮K1,用按钮控制电路
使K1每拨动一次,加一,
最初是00000000B ,对应8个LED,全灭
+1,变成00000001B,只有最后一个灯亮
+1,00000010B,只有倒数第二个灯亮
+1,00000011B,最后两个灯亮....
用汇编语言怎么实现,不会写中断程序! 展开
展开全部
按照楼主的电路,下列程序就可以达到加一的效果。
ORG 0000H
SJMP MAIN
ORG 0013H
SJMP X1_INT
ORG 0030H
MAIN:
SETB IT1
SETB EX1
SETB EA
MOV A, #255
SJMP $ ;等待中断
X1_INT:
DEC A ;减一,相当于加一
MOV P1, A ;因为是低电平发光
;---------------下面延时约2ms
DJNZ R7, $
DJNZ R7, $
DJNZ R7, $
DJNZ R7, $
RETI ;返回
END
ORG 0000H
SJMP MAIN
ORG 0013H
SJMP X1_INT
ORG 0030H
MAIN:
SETB IT1
SETB EX1
SETB EA
MOV A, #255
SJMP $ ;等待中断
X1_INT:
DEC A ;减一,相当于加一
MOV P1, A ;因为是低电平发光
;---------------下面延时约2ms
DJNZ R7, $
DJNZ R7, $
DJNZ R7, $
DJNZ R7, $
RETI ;返回
END
更多追问追答
追问
额,这几个R7明显有问题吧,延时么。。。。
追答
呵呵,明显没有问题。
是延时。
每行,DJNZ R7, $,循环256遍,延时512us。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询