51单片机用汇编语言实现八个LED的全亮全灭

51单片机用汇编语言实现八个LED的全亮全灭,第1张

以89c51单片机为例敏世坦,假定用P1控制LED:

IO_LED EQU P1

led_0 BIT P1.0

led_1 BIT P1.1

led_2 BIT P1.2

led_3 BIT P1.3

led_4 BIT P1.4

led_5 BIT P1.5

led_6 BIT P1.6

led_7 BIT P1.7

定义开关LED的数据,假定LED正极一端接桥桐电源,另一端通过限流电阻接I/O端口:

DATA_CloseLED EQU 11111111B

DATA_OpenLED EQU 00000000B

ORG 0000H

AJMP MAIN

ORG 0030H

-----------------------

延时0.5秒程序(注:此延时函数摘自STC-ISP)

DELAY500MS: @12.000MHz

PUSH 30H

PUSH 31H

PUSH 32H

MOV 30H,#4

MOV 31H,#205

MOV 32H,#180

NEXT:

DJNZ 32H,NEXT

DJNZ 31H,NEXT

DJNZ 30H,NEXT

POP 32H

POP 31H

POP 30H

RET

-----------------------

下面是主程序

MAIN:

MOV IO_LED,#DATA_CloseLED同时关闭8个LED

LCALL DELAY500MS延时0.5秒

MOV IO_LED,#DATA_OpenLED同时打开8个LED

LCALL DELAY500MS延时0.5秒

LJMP MAIN循环

END

上面程序演示了8个LED间返伍隔0.5秒同时亮和灭的变化。

在四个灯循环点亮的状态下,每点亮旁做散一个灯需要延时,如果调胡亩用延时子程序,按键就显示不灵敏了,所以,采用定时器运氏中断的方式控制延时,就不影响按键了。

#include<reg51.h>

#include<intrins.h>

仿真图效果。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12390281.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存