焊接资讯

您现在的位置是:首页 > led灯 > 正文

led灯

8个led灯依次点亮程序汇编语言(8个led灯循环点亮程序汇编语言)

工品易达2022-10-16led灯13

汇编语言编一个八个灯,由左至右循环闪烁的程序~~~谢谢

首先,是单灯如何点亮的问题,无非就是某个gpio口输出高电平或者低电平(由外部电路决定)使灯亮灭,假设输出高电平为亮,输出低电平为灭。

其次,1hz闪烁,即代表定时1s开、关灯。所以要用到定时器。

代码如下:

#include

"stdio.h"

#define

led_on

p1.1

=

1;

#define

led_off

p1.1

=

0;

bit

flag_1s;

bit

flag_cnt;

void

main(void)

{

sys_init();

while(1)

{

if(flag_1s

==

1)

{

flag_1s

=

0;

if(flag_cnt

^=

1)

led_on;

else

led_off;

}

}

}

sys_init()

{

//

初始化mcu的io口

//

初始化定时器

}

void

timer_isr

(void)

interrupt

1

{

//

定时器中断处理函数

1s

进入一次

flag_1s

=

1;

}

[img]

怎么用汇编语言编写八个灯依次点亮后不能熄灭,然后按倒顺序依次熄灭

假设P1口接8个LED灯,灯控制部分程序如下:

LEDCTL:

MOV P1,#0FEH ;点亮第一个灯

LCALL DELAY

MOV R0,#7

LEDLP1:

CLR C

MOV A,P1

RLC A

MOV P1,A

LCALL DELAY

DJNZ R0,LEDLP1

MOV R0,#8

LEDLP2:

SETB C

MOV A,P1

RRC A

MOV P1,A

LCALL DELAY

DJNZ R0,LEDLP2

LJMP LEDCTL

DELAY:

MOV R1,#100

DELAY1:

MOV R2,#200

DJNZ R2,$

DJNZ R1,DELAY1

RET

8路流水灯汇编语言程序的写法

汇编语言程序如下:

;假设1:D1~D8八个彩灯接在P1口,输出低电平发光

;假设2:系统晶振为12MHz

;假设3:N = 5

;程序如下:

ORG 0000H

MOV R3, #5           ;N=5

LOOP0:

MOV A,   #0FFH     

MOV P1, #0FFH        ;开始时全灭

;-------------------------------逐个点亮

MOV R2, #8

LOOP1: CLR C

RLC A

MOV P1, A

CALL DL500MS

DJNZ R2, LOOP1

;-------------------------------逐个熄灭

MOV R2, #8

LOOP2: SETB C

RLC A

MOV P1, A

CALL DL500MS

DJNZ R2, LOOP2

;-------------------------------全亮、全灭交替

MOV R2, #4

LOOP3: MOV P1, #0           ;全亮

CALL DL500MS

CALL DL500MS           ;共1s

MOV P1, #255         ;全灭

CALL DL500MS           ;0.5s

DJNZ R2, LOOP3

;-------------------------------

DJNZ R3, LOOP0

MOV P1, #01001001B   ;5、显示为0100 1001

CALL DL500MS

CALL DL500MS           ;共1s

SJMP 0000H             ;重新开始N遍

;-------------------------------延时子程序

DL500MS:

MOV R5, #9      ;1T

DL1:   MOV R6, #128    ;1T

DL2:   MOV R7, #215    ;1T

NOP              ;1T

DL3:   DJNZ R7, DL3     ;2T   2 * 215 = 430 T

DJNZ R6, DL2     ;2T   [1+1+430+2] * 128 = 55552 T

DJNZ R5, DL1     ;2T   [1+55552+2] * 9 = 499995 T

RET              ;2T   1 + 499995 + 2 = 499998 T

;-------------------------------------

END

扩展资料:

实现8路流水灯的原理:

下图为主控芯片和流水灯模块的原理图。

流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。

要实现流水灯功能,只要将LED1~LED8依次点亮、熄灭,依始类推,8只LED变会一亮一暗的做流水灯了。

实现8个LED流水灯程序用中文表示为:

P1.0低、延时、P1.0高、P1.1低、延时、P1.1高、P1.2低、延时、P1.2高、P1.3低、延时、P1.3高。

P1.4低、延时、P1.4高、P1.5低、延时、P1.5高、P1.6低、延时、P1.6高、P1.7低、延时、P1.7高、返回到开始、程序结束。   

各位单片机达人帮个忙 用汇编语言做一个 发光二极管循环点亮的程序 要求 使八只发光二极管做循环点亮一次

发光二极管循环点亮

八只发光二极管左循环点亮一次、然后右循环点亮一次。

循环。

仿真试验成功。

用汇编语言编流水灯,有8个LED灯,LED1~LED8 灯按顺序点亮,每个等亮一秒转到下个灯,一直循环亮

这个流水灯是很普通的一种花样,假设LED接P1口,程序如下:

ORG 0000H

LJMP MAIN

0RG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000) ;50毫秒定时

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

MOV A,#0FEH

MOV P1,A

MOV R2,#20

SJMP $

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

DJNZ R2,T0E ;1秒未到直接退出

MOV R2,#20

RL A

MOV P1,A ;1秒一变的花样流水灯。

T0E:

RETI

END

8个led灯依次点亮程序汇编语言的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于8个led灯循环点亮程序汇编语言、8个led灯依次点亮程序汇编语言的信息别忘了在本站进行查找喔。微信号:ymsc_2016

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~