单片机八个led灯依次点亮什么意思(单片机8个灯依次点亮)
用单片机控制8个LED灯,8个LED灯从左到右依次点亮一次,再从右到左依次点亮一次
假设51单片机,P1口点亮,低电平点亮。
unsigned char x =0xfe,i=0;
for(i=0,i<8;i++)
{
x=_crol_(x,1);
P1=x;
delay500ms();
}
for(i=0,i<8;i++)
{
x=_cror_(x,1);
P1=x;
delay500ms();
}
单片机C语言编程:让8个LED流水灯以0.2s时间间隔从左到右依次点亮然后重复实现
#includereg52.h
#includeintrins.h
void delay(unsigned int z );
void main()
{
unsigned int a;
unsigned char b=0xfe;
for(a=0;a8;a++)
{
P1=b;//P1口接8个LED灯
delay(200);
b=_crol_ (b,1);
}
}
void delay(unsigned int z)
{
unsigned int i;
for(;z0;z--) //延迟时间自己算吧
for(i=110;i0;i--);
}
用汇编写这个容易点
main: mov a,#0feh
mov r0,#8
loop: mov p1,a
acall delay
rl a
djnz r0,loop
delay:mov r6,#0ffh
loop1: mov r7,#01h
djnz r7,$
djnz r6,loop1
ret
end
好像是这样,延迟时间可能不太准,也是P1口接8个LED灯
8个彩灯依次点亮,求电路图和工作原理。
C语言1:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#includereg52.h//包含reg.52文件
#define uint unsigned int//宏定义
#define uchar unsigned char//宏定义
void delay(uint z);//声明延时函数
uint a;//定义循环用变量
uchar code table[]={
0xff,0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};//定义循环用数据表格
void main()//main函数
{
a=0;//给a赋初值
P1=table[a];//将a所在的table中的值赋给P1口
while(1)//while循环
{
delay(1000);//1S延时子程序
if(a==8)//测试a是否等于8
a=0;//给a赋值
a++;//a的值加一
P1=table[a];//将a所在的table中的值赋给P1口
}
}
void delay(uint z)//1ms延时子程序,通过z值改变延时
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
C语言2:
/*该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#includereg52.h//包含reg.52文件
#define uint unsigned int//宏定义
#define uchar unsigned char//宏定义
void delay(uint z);//声明延时函数
uint a;//定义循环用变量
uchar code table[]={
0xff,0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f};//定义循环用数据表格
void main()//main函数
{
a=8;//给a赋初值
P1=table[a];//将a所在的table中的值赋给P1口
while(1)//while循环
{
delay(100);//1S延时子程序
if(a==0)//测试a是否等于8
a=8;//给a赋值
a--;//a的值加一
P1=table[a];//将a所在的table中的值赋给P1口
}
}
void delay(uint z)//1ms延时子程序,通过z值改变延时
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
C语言3:
/* 该实验是流水灯(8个发光二极管循环点亮),功能是8个发光二极管循环以1S间隔点亮*/
#includereg52.h//包含reg.52文件
#includeintrins.h//包含左右循环移位子函数库文件
#define uint unsigned int//宏定义
#define uchar unsigned char//宏定义
void delay(uint z);//声明延时函数
uint a;//定义循环用变量
void main()//main函数
{
a=0xfe;//给a赋初值
while(1)//while循环
{
P1=a;
delay(1000);//1S延时子程序
a=_crol_(a,1);
}
}
void delay(uint z)//1ms延时子程序,通过z值改变延时
{
uint x,y;
for(x=z;x0;x--)
for(y=110;y0;y--);
}
单片机控制八个发光二极管并使其以1S时间间隔循环点亮,C语言中,把流水灯的循环方式以数组的形式存到了表中,然后调用,是很方便的,学校实验室都提倡这么写。延时参数是毫秒单位,很准确。
单片机控制8个灯依次亮,全亮了,再依次灭的c语言流程图,顺便加上解释,不然看不懂
1、创建项目,如图所示。
2、创建延迟函数。
3、创建C语言主函数。设计unsigned char k=0;变量。
4、添加循环效果。
5、点亮灯,通过k++,改变效果。
6、添加延迟效果,单片机就可以控制8个灯依次亮,全亮了,然后再依次灭。
单片机八个led 从左到右依次单个点亮,从右到左再依次点亮;然后从左到右每次增加一个led 点亮
#includereg51.h
#includeintrins.h
#define uchar unsigned char
void delay(uchar a)
{
uchar i;
while(a--)for(i=0;i120;i++);
}
main()
{
uchar i,led;
while(1)
{
led=0xfe;
for(i=0;i8;i++)
{
P1=led;
delay(200);
led=_crol_(led,1);
}
led=0x7f;
for(i=0;i8;i++)
{
P1=led;
delay(200);
led=_cror_(led,1);
}
led=0xfe;
for(i=0;i8;i++)
{
P1=led;
led=led1;
delay(200);
}
led=0x00;
for(i=0;i8;i++)
{
P1=led;
led=(led1)|0x80;
delay(200);
}
P1=0x7e;delay(200);
P1=0x3c;delay(200);
P1=0x18;delay(200);
P1=0x00;delay(200);
P1=0x18;delay(200);
P1=0x3c;delay(200);
P1=0x7e;delay(200);
P1=0xff;delay(200);
}
}
[img]关于单片机八个led灯依次点亮什么意思和单片机8个灯依次点亮的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。微信号:ymsc_2016
相关文章
发表评论
评论列表
- 这篇文章还没有收到评论,赶紧来抢沙发吧~