51单片机用汇编语言实现八个LED的全亮全灭
1个回答
2016-11-08
展开全部
;以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秒同时亮和灭的变化。
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秒同时亮和灭的变化。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
迪凯特科技(北京)有限公司
2023-07-28 广告
2023-07-28 广告
单片机串口通信的原理是利用单片机的串口通信模块,通过把数据转化为一位一位的用时序方式传送数据,实现单片机与外部设备之间的数据通信。
串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以...
点击进入详情页
本回答由迪凯特科技(北京)有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询