32爱心流水灯的程序代码(心形流水灯程序汇编语言32个灯)

http://www.itjxue.com  2023-03-18 09:17  来源:未知  点击次数: 

用89C52单片机控制32个LED流水灯的C语言程序,

/***32灯流水——火柴天堂作品-20130520***/

/***52单片机,12MHz晶振,P0-P3 接32颗LED,低电平驱动***/

#include"REG52.h"//包含52头文件

#define TRUE 1//定义布尔量'1':真

#define FALSE 0//定义布尔量'0':假

#define uchar unsigned char//定义 无符号字符型数据 简称

#define uint unsigned int//定义 无符号整型数据 简称

#define th0 0xb1

#define tl0 0xe0//20ms at 12MHz Fosc in Model 1

#define LED_Port1 P0

#define LED_Port2 P1

#define LED_Port3 P2

#define LED_Port4 P3

#define LED_AllOff LED_Port1=LED_Port2=LED_Port3=LED_Port4=0xff

#define LED_AllOn LED_Port1=LED_Port2=LED_Port3=LED_Port4=0

#define LED_Status 43//1步全亮+32步单亮+10步闪烁

#define LED_Marquee 32

bit T20msFlag=0;

void Timer0() interrupt 1

{

TL0=tl0;

TH0=th0;

T20msFlag=TRUE;

}

void TimerInit()

{

TMOD=0x01;

TH0=th0;

TL0=tl0;

TR0=1;

ET0=1;

EA=1;

}

void LED_Out()

{

static uchar led_status=0;

if(T20msFlag)

{

T20msFlag=FALSE;

led_status=++led_status%LED_Status;

}

if(led_status led_status=LED_Marquee)

{

LED_AllOn;

switch((led_status-1)3)

{

case 0:LED_Port1=1((led_status-1)%8);break;

case 1:LED_Port2=1((led_status-1)%8);break;

case 2:LED_Port3=1((led_status-1)%8);break;

case 3:LED_Port4=1((led_status-1)%8);break;

default:led_status=0;break;

}

}

else

{

if(!led_status led_status%2) LED_AllOn;

else LED_AllOff;

}

}

void main()

{

TimerInit();

while(1)

{

LED_Out();

}

}

stm32 流水灯代码问题

初始化就不说了,main函数中的While是一个死循环,LED0,1,2,3低电平有效,

LED0=0;

LED1=1;

LED2=1;

LED3=1;

这几行表示点亮LED0.而熄灭LED1,2,3,

所以进入while循环后,首先点亮LED0,然后系统等待0.5s,然后再依次点亮LED1,LED2,LED3,间隔都是0.5s,依次点亮以后进入下一次while循环。

单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)

单片机流水灯C语言程序的源代码如下:

#include //51系列单片机定义文件

#define uchar unsigned char //定义无符号字符

#define uint unsigned int //定义无符号整数

void delay(uint); //声明延时函数

void main(void)

{

uint i;

uchar temp;

while(1)

{

temp=0x01;

for(i=0;i8;i++) //8个流水灯逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp=1;

}

temp=0x80;

for(i=0;i8;i++) //8个流水灯反向逐个闪动

{

P1=~temp;

delay(100); //调用延时函数

temp=1;

}

temp=0xFE;

for(i=0;i8;i++) //8个流水灯依次全部点亮

{

P1=temp;

delay(100); //调用延时函数

temp=1;

}

temp=0x7F;

for(i=0;i8;i++) //8个流水灯依次反向全部点亮

{

P1=temp;

delay(100); //调用延时函数

temp=1;

}

void delay(uint t) //定义延时函数

{

register uint bt;

for(;t;t--)

for(bt=0;bt255;bt++);

}

扩展资料

51单片机流水灯的源代码如下

#includereg51.h

#includeintrins.h

void?delay(int?a)

{

int?i;

while(a--)for(i=0;i110;i++);

}

main()

{

int?i;

while(1)

{

P0=0xfe;

for(i=0;i8;i++)

{

P0=_crol_(P0,1);

delay(500);

}

}

}

(责任编辑:IT教学网)

更多

推荐Windows服务器文章