导航:首页 > 操作系统 > 单片机led灯实验

单片机led灯实验

发布时间:2023-06-26 04:05:39

单片机 8个LED灯随机闪烁怎么做

1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。

㈡ 单片机点亮一个LED灯的电路图实训内容所有的原件以及原件特点

单片机点亮一个LED灯,需要以下元件。80c51系列单片机一片,ch340一片,12Mhz晶体两个,22pf电容两个,4.7k电阻一个,10uf电容一个,轻触开关一个,LED灯一个,2.2k 1/4w电阻一个,USB座一个,USB线一根。这些元件的特点由其自身特性决定的。

㈢ 单片机原理流水灯实验报告

单片机原理流水灯实验报告:一、实验目的:进一步熟习keil仿真软件、proteus仿真软件的使用。认识并熟习单片机坦斗I/O口和LED灯的电路构造,学会建让友磨立简单的流水灯电路。掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。

㈣ 单片机实验利用定时器控制八个LED灯每隔1S每四个为一组轮流点亮

03 8只LED左右来回点亮

/* 名称:8只LED左右来回点亮

说明:程序利用循环移位函数_crol_和_cror_形成来回滚动的效果

*/

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

//延时

void DelayMS(uint x)

{

uchari;

while(x--)

{

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

}

}

//主程序

void main()

{

uchari;

P2=0x01;

while(1)

{

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

{

P2=_crol_(P2,1);//P2的值向左循环移动

DelayMS(150);

}

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

{

P2=_cror_(P2,1);//P2的值向右循环移动

DelayMS(150);

}

}

}

04 花样流水灯

/* 名称:花样流水灯

说明:16只LED分两组按预设的多种花样变换显示

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

uchar code Pattern_P0[]=

{

0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,

0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

uchar code Pattern_P2[]=

{

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf9,0xf3,0xe7,0xcf,0x9f,0x3f,0xff,

0xe7,0xdb,0xbd,0x7e,0xbd,0xdb,0xe7,0xff,0xe7,0xc3,0x81,0x00,0x81,0xc3,0xe7,0xff,

0xaa,0x55,0x18,0xff,0xf0,0x0f,0x00,0xff,0xf8,0xf1,0xe3,0xc7,0x8f,0x1f,0x3f,0x7f,

0x7f,0x3f,0x1f,0x8f,0xc7,0xe3,0xf1,0xf8,0xff,0x00,0x00,0xff,0xff,0x0f,0xf0,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,

0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,

0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,

0x00,0xff,0x00,0xff,0x00,0xff,0x00,0xff

};

//延时

void DelayMS(uint x)

{

uchari;

while(x--)

{

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

}

}

//主程序

void main()

{

uchari;

while(1)

{ //从数组中读取数据送至P0和P2口显示

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

{

P0=Pattern_P0[i];

P2=Pattern_P2[i];

DelayMS(100);

}

}

}

05 LED模拟交通灯

/* 名称:LED模拟交通灯

说明:东西向绿灯亮若干秒,黄灯闪烁5次后红灯亮, 红灯亮后,南北向由红灯变为绿灯,若干秒后南北向黄灯闪烁5此后变红灯,东西向变绿灯,如此重复。

*/

#include<reg51.h>

#define uchar unsigned char

#define uint unsigned int

sbit RED_A=P0^0; //东西向灯

sbit YELLOW_A=P0^1;

sbit GREEN_A=P0^2;

sbit RED_B=P0^3; //南北向灯

sbit YELLOW_B=P0^4;

sbit GREEN_B=P0^5;

uchar Flash_Count=0,Operation_Type=1; //闪烁次数,操作类型变量

//延时

void DelayMS(uint x)

{

uchari;

while(x--)for(i=0;i<120;i++);

}

//交通灯切换

void Traffic_Light()

{

switch(Operation_Type)

{

case1: //东西向绿灯与南北向红灯亮

RED_A=1;YELLOW_A=1;GREEN_A=0;

RED_B=0;YELLOW_B=1;GREEN_B=1;

DelayMS(2000);

Operation_Type=2;

break;

case2: //东西向黄灯闪烁,绿灯关闭

DelayMS(300);

YELLOW_A=~YELLOW_A;GREEN_A=1;

if(++Flash_Count!=10)return; //闪烁5次

Flash_Count=0;

Operation_Type=3;

break;

case3: //东西向红灯,南北向绿灯亮

RED_A=0;YELLOW_A=1;GREEN_A=1;

RED_B=1;YELLOW_B=1;GREEN_B=0;

DelayMS(2000);

Operation_Type=4;

break;

case4: //南北向黄灯闪烁5次

DelayMS(300);

YELLOW_B=~YELLOW_B;GREEN_B=1;

if(++Flash_Count!=10)return;

Flash_Count=0;

Operation_Type=1;

}

}

//主程序

void main()

{

while(1)Traffic_Light();

}

06 单只数码管循环显示0~9

/* 名称:单只数码管循环显示0~9

说明:主程序中的循环语句反复将0~9的段码送至P0口,使数字0~9循环显示

*/

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

uchar codeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};

//延时

void DelayMS(uint x)

{

uchart;

while(x--)for(t=0;t<120;t++);

}

//主程序

void main()

{

uchari=0;

P0=0x00;

while(1)

{/* for(;i<11;i++){ P0=~DSY_CODE[i]; DelayMS(300);} //注:另一方案 */

P0=~DSY_CODE[i];

i=(i+1)%10;

DelayMS(300);

}

}

㈤ 单片机led左右灯实验:要求: 八个LED灯依次向左再向右,循环点亮,间隔闪烁

你现在的程序就有问题啊。我给你改改吧。一会儿给你发程序附件。你要的就是流水灯程序呗,就是先从左向右依次点亮led灯然后在从右向左依次点亮对吧。

程序已经给你传到附件里面了,用电脑下载吧,传的c程序你可以直接用。有什么不懂的再问我吧。(你的编程风格很有问题啊,程序写的一坨,层次不清晰没有标注,我初学的时候也犯了这样的错误,将来你写大篇幅的程序的时候会出现一堆问题的,清晰地编程风格非常重要,仅仅是建议。)

㈥ 单片机流水闪烁灯的实验目的

学习基础知识。

㈦ 51单片机LED灯闪烁实验,具体分析一下以下程序每一步的作用,完全看不懂。。。

#include<reg51.h>
void delay(unsigned int i);
main() //主函数
{
P2=0x55; //P2口:0101 0101 从左到右:第一个口低电平,第二个口高电平。。。。
delay(600); //延时600,不延时你来不及看见灯亮
P2=0xaa; /*P2口输出端取反,1010 1010 高电平变低电平,低电平变高电平,(原来亮的关掉,原来不亮的亮)*/
delay(600);
}
void delay(unsigned int i) //这个是延时函数
{
unsigned char j;
for(i;i>0;i--)
for(j=255;j>0;j--) ;
}
这样应该明白了吧!不过你这个程序,按一下复位(或者打开一次电源)只亮一下。加个循环就可以不停的闪啦!

㈧ 单片机led流水灯实验步骤

一个小的程序是不需要专门绘制流程图的。其实在初学阶段,画好流程图能帮助我们整理好程序设计的脉络,让程序变得有条理。在编程的时候,流程图像一个指路明灯引领着程序的走向,所以应该养成良好的习惯,在编写程序之前,绘制一份流程图。

流程图的绘制方法很简单,一些编程类书籍有过专门的介绍,在本书就不再讲述了。怎样才能达到我们演示的流水灯的效果,就是让P1端口在间隔一段时间后,输出不同的值?假设我们想要的效果是某一时刻,只有一个LED小灯亮,而间隔的时间是一秒,当I/O端口输出高电平的时候,LED小灯是不亮的,当I/O端口输出低电平的时候,LED小灯才亮。如图所示,P1的值用十六进制可以表示为FEH,因为四位二进制数可以表示一位十六进制数。我们得出在不同LED小灯被点亮的时候,P1端口输出的状态程序流程图还是比较简单的,P1口在间隔一段时间之后,输出不同的值,然后返回到程序执行的起点,重新开始执行,这样就会循环往复不断地出现流水的效果。

阅读全文

与单片机led灯实验相关的资料

热点内容
android获取apn 浏览:69
phpfpm进程池 浏览:791
解压掏耳朵音频 浏览:670
爬香山解压 浏览:948
算法导论回溯 浏览:339
开盘指标源码查询 浏览:526
有道云保存服务器出错 浏览:639
生成360文件夹 浏览:1004
图库的文件夹是哪个 浏览:505
程序员为什么药学日语 浏览:423
熟悉linux常用命令 浏览:860
印度外卖小哥是程序员 浏览:413
绍兴程序员开发驻场流程 浏览:546
索纳塔8的压缩比 浏览:16
私有云主要服务器 浏览:939
为什么主题解压那么慢 浏览:862
怎么下载扫描二维码的手机app 浏览:729
云服务器创建私有镜像的时候一定要关机吗 浏览:115
php开发学习门户 浏览:387
传奇游戏服务器怎么设置 浏览:825