导航:首页 > 操作系统 > 51单片机花样流水灯

51单片机花样流水灯

发布时间:2024-08-07 03:32:51

㈠ 51单片机流水灯程序

程序如下:

#include <reg52.h>

sbit led1 = P2^0;

sbit led2 = P2^1;

sbit led3 = P2^2;

sbit led4 = P2^3;

sbit led5 = P2^4;

sbit led6 = P2^5;

sbit led7 = P2^6;

sbit led8 = P2^7;


void main()

{

int i,j;

//点亮第一个灯

led1 = 1;

led2 = 0;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//延时1秒

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

{

for(j = 0; j < 1000; ++j)

{

;//什么也不做

}

}

//点亮第二个灯

led1 = 0;

led2 = 1;

led3 = 0;

led4 = 0;

led5 = 0;

led6 = 0;

led7 = 0;

led8 = 0;

//点亮剩余的灯

//省略……

while(1);

}

(1)51单片机花样流水灯扩展阅读:

流水灯几点说明:

void:因为该延时函数不需要返回值,所以写为void

delay1s:该函数的函数名,命名需要符合C语言的标识符命名规则。

(): 不需要传入参数,所以括号中为空

至此我们可以把流水灯程序写为以下形式:

㈡ 51单片机实现流水灯,计数器显示灯亮的序号

51单片机实现流水灯,计数器显示灯亮的序号。程序中用的变量ledi和b重复了,只用b就行。把主程序第二行声明换成b,画红线的3行删掉,红箭头的是替换。强调,原来b不能在那里赋值为0,这样b永远为0,虽然有b++,下面还有b=0,又回0了。

㈢ 51单片机中如何用汇编语言编写流水灯

流水灯就是51单片机控制led灯依次点亮的控制方式。具体程序如下:

ORG 0000H;复位启动
AJMP START;
ORG 001BH;T1中断
AJMP T1INT;

;定义变量========================
YSJSEQU 30H;延时计数器
LEDEQU 31H;LED控制缓冲器

;主程序==========================
START:MOV LED,#0FEH;初始化数据
MOV YSJS,#0;
MOV TMOD,#10H;定时器1工作于方式1,16位定时器
MOV TL1,#0B0H;设置定时初值
MOV TH1,#3CH;定时时间=50mS
SETB ET1;使能定时器1中断
SETB TR1;启动定时器1
SETB EA;开总中断

MOV P1,LED;初始化流水灯
LOOP:JMP LOOP;循环等待中断
T1INT:PUSH PSW;定时器1中断程序
PUSH ACC;保护现场
MOV TH1,#3CH;定时时间=50mS
MOV TL1,#0B0H;
INC YSJS;

PUSH ACC;保护ACC
MOV A,YSJI;
CJNE A,#2,QT1;50mS*2=100mS
MOV P1,LED;
MOV A,LED;
RL A;累加器A的值循环左移1位
MOV LED,A;
MOV YSJS,#0;
QT1:POP ACC;恢复现场
POP PSW;
RETI;返回主程序
END;汇编程序结束

(3)51单片机花样流水灯扩展阅读:

实现流水灯的三个方法:

第一种,总线方法实现流水灯。这是一种比较笨但又最易理解的方法,采用顺序程序结构,用位指令控制P1口的每一个位输出高低电平,加上延时函数,即可控制每个LED灯的亮灭。

第二种,移位方法实现流水灯采用循环程序结构编程。首先在程序开始给P1.0口送一个低电平,其它位为高。然后延时一段时间再让低电平往高位移动,这样就实现“流水”的效果了。

第三种,库函数实现流水灯。利用左移函数进行。

㈣ 单片机流水灯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;i<8;i++) //8个流水灯逐个闪动

{

P1=~temp;

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

temp<<=1;

}

temp=0x80;

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

{

P1=~temp;

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

temp>>=1;

}

temp=0xFE;

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

{

P1=temp;

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

temp<<=1;

}

temp=0x7F;

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

{

P1=temp;

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

temp>>=1;

}

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

{

register uint bt;

for(;t;t--)

for(bt=0;bt<255;bt++);

}

(4)51单片机花样流水灯扩展阅读

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

#include<reg51.h>

#include<intrins.h>

voiddelay(inta)

{

inti;

while(a--)for(i=0;i<110;i++);

}

main()

{

inti;

while(1)

{

P0=0xfe;

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

{

P0=_crol_(P0,1);

delay(500);

}

}

}

㈤ 怎样用单片机做一个简单的流水灯

单片机流水灯代码:#include<reg51.h>//51头文件void delay(int t)//定义延时函数{int j;while(t--){for(j=0;j<500;j++);}}void main(){int i;while(1){for(i=0;i<7;i++)//循环点亮LED,到第7个LED延时一会就结束循环。

在这个单片机流水灯代码中,假设使用的是8051单片机。需要定义8个LED灯,分别连接到P1端口的不同引脚上。然后使用一个循环结构来控制这8个LED灯按照一定的顺序逐个亮起,形成流水灯的效果。

具体来说,使用for循环来控制LED灯的亮灭顺序。在每次循环中,通过给P1端口赋值来控制LED灯的亮灭状态。例如,给P1端口赋值为0x01,那么第一个LED灯就会亮起,其他LED灯则熄灭。然后使用delay函数来延迟一段时间,以便观察到LED灯的亮灭变化。接着再给P1端口赋值为0x02,第二个LED灯就会亮起,其他LED灯则熄灭。以此类推,直到最后一个LED灯亮起为止。

最后,我们需要在程序中定义delay函数,以便实现LED灯的亮灭延迟。这个函数可以通过使用while循环来实现,需要注意的是,在实际应用中,需要根据不同的单片机型号和硬件环境来进行相应的调整和修改。

单片机流水灯的定义

单片机流水灯是一种常见的电子装置,通过单片机控制多个LED灯以一定的顺序逐个亮起,形成流水般的效果。其原理是通过编写程序来控制单片机的输出端口,从而控制LED灯的亮灭状态。在实际应用中,可以使用不同的单片机型号和开发环境来实现流水灯功能,具体的实现方法会因硬件环境和软件工具的不同而有所差异。

一般来说,实现流水灯功能需要以下步骤:首先确定单片机型号和开发环境,并熟悉指令集和寄存器配置。然后确定LED灯的连接方式,并编写程序来控制LED灯的亮灭状态。最后在程序中添加延时函数来实现LED灯的亮灭延迟。在编写程序时,需要注意语法错误和逻辑错误,并进行测试和调试,以确保程序能够正确运行并实现预期的流水灯效果。

㈥ 51单片机16路流水灯怎么用C语言写,并求每个步骤的讲解

我给你个简单的例子:

#include<AT89X51.H>//预处理文件里面定义了特殊寄存器的名称如P1口定义为P1

voidmain(void)

{

//定义花样数据

constunsignedchardesign[32]={0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F,

0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0xFF,

0xFF,0xFE,0xFC,0xF8,0xF0,0xE0,0xC0,0x80,0x0,

0xE7,0xDB,0xBD,0x7E,0xFF};

unsignedinta;//定义循环用的变量

unsignedcharb;//在C51编程中因内存有限尽可能注意变量类型的使用

//尽可能使用少字节的类型,在大型的程序中很

受用

do{

for(b=0;b<32;b++)

{

for(a=0;a<30000;a++);//延时一段时间

P1=design[b];//读已定义的花样数据并写花样数据到P1口

}

}while(1);

}

程序中的花样数据可以自以去定义,因这里我们的LED要AT89C51的P1引脚为低电平才

会点亮,所以我们要向P1口的各引脚写数据O对应连接的LED才会被点亮,P1口的八个引

脚刚好对应P1口特殊寄存器的八个二进位,如向P1口定数据0xFE,转成二进制就是

11111110,最低位D0为0这里P1.0引脚输出低电平,LED1被点亮。如此类推,大家不难算

出自己想要做的效果了。

留个邮箱给你发个入门文档

㈦ 用51单片机写程序,4个按键灯控制8个彩灯切换九种灯光效果

P1口接8个LED灯,P3口接4个按键K1~K4,用于控制流水灯的四种效果,仿真图如下。

阅读全文

与51单片机花样流水灯相关的资料

热点内容
达芬奇项目服务器有什么用 浏览:852
自制怎么捏都可以复原的解压球 浏览:611
qq软件管理怎么加密 浏览:738
手机使用代码编程器 浏览:937
单片机四位99秒表制作流程图 浏览:615
压缩包软件如何安装 浏览:765
我的世界服务器1122地址 浏览:3
苹果如何与安卓系统连接服务器 浏览:932
农业银行app学生缴费怎么切换 浏览:468
福建在哪个app上有安康码 浏览:545
用友商贸宝t1登录找不到加密狗 浏览:555
区间测速算法不正确 浏览:331
appstore转到哪个国家比较好 浏览:924
程序员为什么被公司埋炸弹 浏览:941
linuxds18b20驱动 浏览:137
集群大数据编译命令 浏览:536
什么狼人杀app好 浏览:303
hadoop压缩命令 浏览:655
croe壳命令 浏览:77
抽干文件夹图片 浏览:950