㈠ 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);
}
流水灯几点说明:
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,用于控制流水灯的四种效果,仿真图如下。