流水灯单片机程序代码8个灯(单片机八个流水灯程序)

http://www.itjxue.com  2023-03-03 14:04  来源:未知  点击次数: 

51单片机c语言编写一个流水灯程序,要求如下(不能用数组,8个led指示灯从两边往中间移动,然后再分开)

?//流水灯

#include?"reg52.h"

#define?LED_PORT?P3

void?delay(unsigned?char?time)

{

?unsigned?char?i,j,k;

?for(i=0;itime;i++)

?{

??for(j=0;j200;j++)

??{

???for(k=0;k200;k++);

??}

?}

}

void?main()

{

?unsigned?char?i,halfbyteh=0x80,halfbytel=0x01;

?while(1)

?{

??halfbyteh=0x80;

??halfbytel=0x01;

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

??{

???//LED_PORT=halfbyteh|halfbytel;//高电平点亮??

???LED_PORT=~(halfbyteh|halfbytel);//低电平点亮

???halfbyteh=halfbyteh1;

???halfbytel=halfbytel1;

???delay(10);

??}

?}

}

单片机C语言编程:让8个LED流水灯以0.2s时间间隔从左到右依次点亮然后重复实现

#includereg52.h

#includeintrins.h

void delay(unsigned int z );

void main()

{

unsigned int a;

unsigned char b=0xfe;

for(a=0;a8;a++)

{

P1=b;//P1口接8个LED灯

delay(200);

b=_crol_ (b,1);

}

}

void delay(unsigned int z)

{

unsigned int i;

for(;z0;z--) //延迟时间自己算吧

for(i=110;i0;i--);

}

用汇编写这个容易点

main: mov a,#0feh

mov r0,#8

loop: mov p1,a

acall delay

rl a

djnz r0,loop

delay:mov r6,#0ffh

loop1: mov r7,#01h

djnz r7,$

djnz r6,loop1

ret

end

好像是这样,延迟时间可能不太准,也是P1口接8个LED灯

利用单片机控制8个发光二极管,设计8个灯同时闪烁的控制程序?

方法:

1:设定一个变量i,可以从0到3循环的变化

2:检测一个经过消抖处理的按键,按一下,i+1

3:当i值为各个值时,执行相应的花样。

流水灯参考程序

#include

#include

#define uchar unsigned char

uchar j,temp;

void delay(unsigned int ms)

{

uchar t;

while(ms--)

for(t=0;t123;t++);

}

void main()

{

P1=0xff;

delay(500);

temp=0xfe; //有点怪,led接在P2.3~P2.6

for(j=0;j4;j++)

{

P1=temp;

delay(500);

temp=_crol_(temp,1);

}

P1=0xff;

while(1);

}

设计8个流水灯灯从中间依次向两边闪烁的C语言程序,不胜感激

1.51单片机C语言实现循环8个流水灯左移三次,后右移三次。

例程:

#includereg51.h??//51单片机头文件

#include?intrins.h?//包含有左右循环移位子函数的库

#define?uint?unsigned?int????//宏定义

#define?uchar?unsigned?char??//宏定义

sbit?beep=P2^3;

void?delay(uint?z)??//延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.

{????????????????????//delay(500);大约延时500ms.

????uint?x,y;

????for(x=z;x0;x--)

????????for(y=110;y0;y--);????

}

void?main()????????????//主函数

{

????uchar?a,i,j;

????while(1)????????//大循环

????{

????????a=0xfe;?????//赋初值

????????for(j=0;j3;j++)?for(i=0;i8;i++)???//左移三次

????????{

????????????P1=a;???????//点亮小灯

????????????beep=0;?????//开启蜂鸣器

????????????delay(50);?//延时50毫秒

????????????beep=1;?????//关闭蜂鸣器

????????????delay(50);??//再延时50毫秒

????????????a=_crol_(a,1);?//将a变量循环左移一位

????????}

????????a=0x7f;

???????for(j=0;j3;j++)?for(i=0;i8;i++)??//右移三次

????????{

????????????P1=a;???????//点亮小灯

????????????beep=0;?????//开启蜂鸣器

????????????delay(50);?//延时50毫秒

????????????beep=1;?????//关闭蜂鸣器

????????????delay(50);???//再延时50毫秒

????????????a=_cror_(a,1);?//将a变量循环右移一位

????????}????????

????}

}

2.51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8031单片机,后来随着Flash rom技术的发展,8031单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。

8个LED指示灯循环闪烁的程序(单片机)

1:设置一个变量zhidaoi,它可以从0循环到3

2:检测一个已取消缓冲的键。按“+1”

3:当I值为每个值时,执行相应的模式。

水量灯参考程序

#include

#include

#定义uchar无符号字符

Ucharj,温度;

无效延迟(无符号整型ms)

Uchart;

(女士)

对于(t = 0;T 123;T + +);

Voidmain()

P1=0XFF;

延迟(500);

Temp=0xfe;//奇怪,led连接在P2.3~P2.6

对于(j = 0;J 4;J + +)

P1=temp;

延迟(500);

Temp=_crol_(Temp,1);

P1=0XFF;

(1);

扩展资料:

注意事项:

#include“reg52。这个文件为单片机定义了一些特殊的功能寄存器

Typedef无符号int在16以下;//以声明的方式定义数据类型

无符号charu8;

//LED灯

Sbitleda=P0;

Sbitled1=P0^0;

Sbitled2=P0^1;

Sbitled3=P0^2;

Sbitled4=P0^3;

Sbitled5=P0^4;

Sbitled6=P0^5;

Sbitled7=P0^6;

Sbitled8=P0^7;

无效延迟(16岁以下)

,(我);

Voidmain()

而(1)

勒达=1;//所有的灯都亮着

//从左到右熄灭

Led1=0;

延迟(50000);//延迟时间约为450毫秒

Led2=0;

延迟(50000);//延迟时间约为450毫秒

Led3=0;

延迟(50000);//延迟时间约为450毫秒

Led4=0;

延迟(50000);//延迟时间约为450毫秒

Led5=0;

延迟(50000);//延迟时间约为450毫秒

Led6=0;

延迟(50000);//延迟时间约为450毫秒

Led7=0;

延迟(50000);//延迟时间约为450毫秒

Led8=0;

延迟(100000);//延迟大约900毫秒

//从右到左照明

Led8=1;

延迟(50000);//延迟时间约为450毫秒

Led7=1;

延迟(50000);//延迟时间约为450毫秒

Led6=1;

延迟(50000);//延迟时间约为450毫秒

Led5=1;

延迟(50000);//延迟时间约为450毫秒

Led4=1;

延迟(50000);//延迟时间约为450毫秒

Led3=1;

延迟(50000);//延迟时间约为450毫秒

Led2=1;

延迟(50000);//延迟时间约为450毫秒

Led1=1;

延迟(50000);//延迟时间约为450毫秒

勒达=1;//所有的灯都亮着

(责任编辑:IT教学网)

更多

推荐3DMAX教程文章