求一个完整的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,最后两个灯亮....

用汇编语言怎么实现,不会写中断程序!
展开
 我来答
47okey
推荐于2016-05-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:5900
采纳率:75%
帮助的人:2305万
展开全部

ORG 00H

AJMP MAIN

ORG 13H

AJMP EX1INT

ORG 0030H


 

MAIN:

MOV P1,#0

SETB EA

SETB EX1

SETB IT1

 

MAIN1:

MOV P1,A 

AJMP    MAIN1


 

EX1INT:

INC A

CJNE A,#0,RTI

MOV A,#0

RTI:

RETI


 

 

END 

更多追问追答
追问
这个是不是没有延时?
追答

没要求延时吧

做而论道
高能答主

2012-10-28 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
按照楼主的电路,下列程序就可以达到加一的效果。

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。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式