8个led灯循环闪烁课程设计
① 求单片机设计8个led灯同时闪烁的程序,
八个灯接在单片机的P1口(P0,P2,P3,P4都一样)
while(1)
{
delay(你想要延时的时间);专属
P1=0xff;
delay(你想要延时的时间);
P1=0;
}
注意led最好加驱动,不然单片机会坏的。
② 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);
}
(2)8个led灯循环闪烁课程设计扩展阅读:
注意事项:
#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;//所有的灯都亮着
}
}
③ 设计一个具有8个LED灯,要求从右向左依次点亮一秒后熄灭,循环往复的单片机程序。跪求
#include"reg52.h"//此文件中定义了单片机的一些特殊功能寄存器
typedef unsigned int u16;//对数据类型进行声明定义
typedef unsigned char u8;
//LED灯命名
sbit leda=P0;
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
sbit led5=P0^4;
sbit led6=P0^5;
sbit led7=P0^6;
sbit led8=P0^7;
void delay(u16 i)
{
while(i--);
}
void main()
{
while(1)
{
leda=1;//全部灯亮
//从左到右依次熄灭
led1=0;
delay(50000);//大约延时450ms
led2=0;
delay(50000);//大约延时450ms
led3=0;
delay(50000);//大约延时450ms
led4=0;
delay(50000);//大约延时450ms
led5=0;
delay(50000);//大约延时450ms
led6=0;
delay(50000);//大约延时450ms
led7=0;
delay(50000);//大约延时450ms
led8=0;
delay(100000);//大约延时900ms
//从右到左依次点亮
led8=1;
delay(50000);//大约延时450ms
led7=1;
delay(50000);//大约延时450ms
led6=1;
delay(50000);//大约延时450ms
led5=1;
delay(50000);//大约延时450ms
led4=1;
delay(50000);//大约延时450ms
led3=1;
delay(50000);//大约延时450ms
led2=1;
delay(50000);//大约延时450ms
led1=1;
delay(50000);//大约延时450ms
leda=1;//全部灯亮
}
}
(3)8个led灯循环闪烁课程设计扩展阅读:
main()应用:
1、C++中的main函数
C++继承了C语言的大部分特性,因此保留了“程序总是从main函数开始执行,且总是默认从main函数的return语句或结尾处结束运行”这一传统,
但是要注意,C++中的main函数要想作为程序执行的出入口,必须写在全局(Global)范围,不能写成某个结构体或某个类的成员。
虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。
C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。
2、Java中的main函数
Java同样是以main函数作为程序执行出入口的,但Java作为“更纯洁”的面向对象语言,它的main函数与C/C++有很大的不同。
首先,返回值的概念淡化,在Java Application中main不允许返回值,因此int main是被禁止的,必须使用void main,int main仅限在JavaBean中使用。
其次,Java中所有的函数必须属于类,没有什么全局函数一说,因此main函数不能是全局成员,必须是某个类的成员。
第三,由于main函数变成了类的成员函数,因此要想直接被系统调用,还必须使用public static使其成为静态函数并具有公开权限。
第四,main函数的参数被简化,只需要提供字符串数组即可,不需要提供参数个数(这是由于Java的数组具有下标检查功能的原因)
Java Application中的main函数一般格式如下(类名可以自定义,但保存为Java源码时,主文件名必须与类名相同,否则可能无法运行)
public class MainDemo{
public static void main(String[]args){
//TODO:在此处写入主函数的内容
}
}
Java Applet的运行机制与Java Application完全不同,因此不需要main函数
3、C#中的main函数
C#中的main函数与Java大同小异,同样必须是类成员,同样使用字符串数组作唯一参数,同样是静态函数,同样的void main,
与之不同的是:main的首字母变成了大写,即"Main函数“,且是否限定为public级别已经无所谓了(默认没有public,但某些场合可能还是需要public)
另外,需要注意的是,C#中不再有”类名必须与主文件名同名“的限制,即使类名不和主文件名相同,程序照样可以运行。
C#应用程序中的main函数默认是这样的(注意main的首字母已是大写)
C#和C/C++、java不同的是C#不在拘泥于必须从main()函数开始执行,C#是属于事件触发。
class Program{
static void Main(string[]args){
//TODO:在此处写入主函数的内容
}
}
④ 8个LED灯循环闪烁。
51单片机就能实现 数字电路的话 麻烦
⑤ 用单片机设计8个led灯同时闪烁的程序,
#includereg52.h
void LED_turnon()
{
}
void Delay1s()
{
}
void LED_turnoff()
{
}
void main()
{
while(1)
{
LED_turnon();
Delay1s();
LED_turnoff();
Delay1s();
}
}
⑥ 汇编语言编程 8 个LED 灯循环闪烁。
你的问题我帮你在半导体器件应用技术论坛发过帖子了,就等待那边的高手解答。如果问题比较急,你可以登录论坛然后搜索你的标题看别人的回答也行。
⑦ 8个LED灯怎么不能循环闪烁我用Proteus和Keil,图画的没问题,就是不知程序错在哪
#include "reg52.h"
#define uchar unsigned char;
uchar num,t;
void main()
{
num=0xfe;
t=0;
TMOD=0x10;
EA=1;
ET1=1;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
while(1)
{
if(t==7)
t=0;
}
}
void time0() interrupt 3
{
【 TH0=(65536-50000)/256;//请问,你到底是想用定时器1还是定时器0
TL0=(65536-50000)%256;】
t++;
【 num=num|0x01;
num=num<<1;】这两行调换位置
P1=num;
}
从你犯的这两个问题可以看出,你是一位初学者。遇到问题知道来网上进行求助,说明你懂得应用网络这个资源,但是,我建议在往后的学习中能够细心一点,这样能避免很多不必要的问题。建议多看一点别人写的比较正规的程序,注意格式,你的程序什么注释也没有。
要学会自己找问题,自己解决问题,我们要学习是方法,如何解决问题的方法。
说多了!个人之言,仅供参考!
⑧ 利用8个LED灯设计一组循环彩灯,要有多种花型自动变换(至少6种),并且自定义控制开关,
moleledwater(clk,led,s)
inputclk;
input[1:0]s;
output[7:0]led;
reg[7:0]led=0;
reg[1:0]olds=0;
always@(posedgeclk)olds<=s;
always@(posedgeclk)
if(olds^s)
case(s)
2'b00:led<=1;//*a
2'b01:led<=1;
2'b10:led<=8'b1010_1010;
2'b11:led<=8'b0000_0111;
endcase
else
case(s)
2'b00:led<={led[6:0],led[7]};//*b
2'b01:led<={led[0],led[7:1]};
2'b10:led<=~led;
2'b11:led<={led[6:0],led[7]};
endcase
endmole
//第一种:一个灯亮,从右往左逐个移动,并循环
//第二种:一个灯亮,从左往右逐个移动,并循环
//第三种:一个间一个灯亮,并交替循环
//第四种:三个灯亮,从右往左逐个移动,并循环
//当然可以再多一些花样:
//如:灯从右往左逐步点亮
//*a改为:led<=1;
//*b改为:led<=(&led)?1:{led[6:0],1'b1};
⑨ 用单片机设计8个led灯同时闪烁的程序!!
AT8951单片机控制8个发光二极管跑马灯课程设计程序。我给你