led八位流水灯左右循环闪烁

led八位流水灯左右循环闪烁,第1张

可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。

具体实现方法可以参考如下程序:<pre t="code" l="cpp">#include <reg51h>

#include <intrinsh>

#define uint unsigned int

#define uchar unsigned char

void delay(uint a);

void main()

{

P1=0xfe;

while(1)

{

// 向左循环点亮LED

for(i=0; i<7; i++)

{

P1=_crol_(P1,1); // 左移一位,点亮下一位LED

delay(55);

}

// 向右循环点亮LED

for(i=0; i<7; i++)

{

P1=_cror_(P1,1); // 右移一位,,点亮上一位LED

delay(55);

}

}

}

// 延时函数,延时a毫秒

void delay(uint a)

{

uint x,y;

for(x=a;x>0;x--)

for(y=110;y>0;y--);

}

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

#include<reg51h>

#include<intrinsh>

仿真图效果。

ORG 0000H

LJMP MAIN

ORG 000BH

LJMP T0ISR

ORG 0030H

MAIN:

MOV TMOD,#01H

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

SETB ET0

SETB EA

CLR P10

MOV R2,#10

SJMP $

T0ISR:

CLR TR0

MOV TH0,#HIGH(65536-50000)

MOV TL0,#LOW(65536-50000)

SETB TR0

DJNZ R2,T0E

CPL P10

MOV R2,#10

T0E:

RETI

END

以上就是关于led八位流水灯左右循环闪烁全部的内容,包括:led八位流水灯左右循环闪烁、51单片机按键控制按下K1四个led灯循环亮,再按一下全灭,c程序怎么写、用汇编语言编写51单片机程序,让LED灯亮一秒灭一秒,无限循环,时钟是6等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: https://outofmemory.cn/zz/9988562.html

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

发表评论

登录后才能评论

评论列表(0条)

保存