㈠ 利用单片机控制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;t<123;t++);
}
void main()
{
P1=0xff;
delay(500);
temp=0xfe; //有点怪,led接在P2.3~P2.6
for(j=0;j<4;j++)
{
P1=temp;
delay(500);
temp=_crol_(temp,1);
}
P1=0xff;
while(1);
}
㈡ 求单片机设计8个led灯同时闪烁的程序,
请设计一个8个led同时全部闪烁的程序
#include <reg51.h>
main ()
{int i;
while (1)
{for (i=0;i<=30000;i++);
P1=~P1;
}
}
㈢ 单片机考试,亮灯:8个灯依次按学号后八位闪烁,每位数字是什么就闪烁多少次,如为0则不亮。循环。
#include<reg51.h>
#defineucharunsignedchar
#defineuintunsignedint
uchart;
ucharcodenum[]={9,1,2,0,2,1,2,1};
ucharcodeledp[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//预定的写入P0的值
uchara=0,b=0;
voiddelay(uintz)
{
uintx,y;
for(x=0;x<z;x++)
for(y=0;y<255;y++);
}
voidmain(void)
{
ucharj=0,k;
while(1)
{
for(k=0;k<num[j];k++)//取数组num[]的数字,也就是灯闪几下的数字
{
P0=ledp[j]; //向p0口送值,也就是那个灯亮
delay(200);
P0=0xff; //将灯全灭
delay(200);
}
j++;//j加一,也就是在while循环中,for语句中j改变,
if(j==8)
{j=0;}
}
}
㈣ 利用单片机控制8个发光二极管,实现8个灯同时闪烁的控制程序
以51位例,使用P1的八个IO口控制。
先定义:
sbit
LED0=P1^0;
sbit
LED1=P1^1;
........
以此类推,定义八个。
然后在主循环中:
LED0=0;
延时一段时间;
LED0=1;
就可以看到闪烁了。
㈤ 单片机用MOV,DJNZ,CLE,等写8个LED灯按顺序闪的程序怎样写呢还有每步的解释~~谢谢~~
MOVLW 0X00
MOVWF TRISB;将portb设为输出状态
MOVLW B'1000000'
LOOP:
MOVWF DATA1
MOVWF PORTB;点亮第一个灯
CALL DELAY;调延时,这样能看到灯亮的效果
BCF DATA1,C;使进位c为0
RRF DATA1,F;循环右移
GOTO LOOP;继续执行
这样就可以到达你要的效果。如果你想控制亮灯的次数也可以加个终止条件,如:
你想8个灯顺序闪10下,那么
movlw d‘10’
movwf count
decfsz count,f
goto loop
end
如果有不对的地方,你再自己改下,反正大概的流程就这样
㈥ 单片机控制8个灯依次亮,全亮了,再依次灭的c语言流程图,顺便加上解释,不然看不懂
1、创建项目,如图所示。
㈦ 单片机流水灯八个灯依次点亮,然后一起闪烁的程序代码
一般是系统故障了
建议前往官方售后检测维修一下
㈧ 8个LED指示灯循环闪烁的程序(单片机)
1:设置一个变量i,它可以从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);
}
(8)单片机8个灯依次闪烁鸣叫扩展阅读:
注意事项:
#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;//所有的灯都亮着
}
}
㈨ 单片机C51编程,要求实现8盏LED灯的闪烁,这样写可以实现吗渣渣求助大佬,谢谢啦
主程序应该有两个延时,而且还要有主循环语句,否则只执行一遍。
void main()
{
while(1)
{
P1=0xff;
delay(500);
P1=0x00;
delay(500);
}
}
这个效果是8个灯,同时亮,同时灭的。
㈩ 单片机流水灯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++);
}
(10)单片机8个灯依次闪烁鸣叫扩展阅读
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);
}
}
}