单片机LED灯的使用

来源:互联网 发布:2016网络流行歌曲 编辑:程序博客网 时间:2024/05/05 03:23
#include<reg52.h>
/*void delay(unsigned char i)//使用循环语句,实现延时
{
unsigned char j;
unsigned char k;
for(j = 0; j < 255; j++)
for(k = 0; k < i; k++);
}*/
void delay(unsigned int i);//延时函数,i最大取值65535 ,最大延时0.65535s
void fun1(void);//全部亮
void fun2(void);//全部灭掉
void fun3(void);//LED2,4,6,8亮
void fun4(void);//全部亮和全部灭交替,延时0.5s
void fun5(void);//LED2,4,6,8和LED1,3,5,7交替亮,
void fun6(void);//一个LED灯循环移位,先左移后右移
void fun7(void);//2个LED灯循环移位
void fun8(void);//使用P1口实现8个LED灯从中间到两边,循环移位
void fun9(void);//使用P1,P2口实现8个LED灯从中间到两边,一个LED灯亮的循环移位
void fun10(void);//流水灯
void fun11(void);//移动流水灯


void main(void)
{
while(1)
{
fun4();
fun5();


//fun4();
fun6();


//fun4();
fun7();


//fun4();
fun8();

//fun4();
fun10();

//fun4();
fun11();
}
}
void delay(unsigned int i)//延时函数,i最大取值65535 ,最大延时0.65535s
{
while(--i);
}
void fun1(void)//全部亮
{
P1 = 0X00;
}
void fun2(void)//全部灭掉
{
P1 = 0XFF;
}
void fun3(void)//LED2,4,6,8亮
{
P1 = 0XAA;
}
void fun4(void)//全部亮和全部灭交替,延时0.5s
{
P1 = 0x00;
delay(50000);
P1 = 0xFF;
delay(50000);
}
void fun5(void)//LED2,4,6,8和LED1,3,5,7交替亮,
{
P1 = 0XAA;
delay(50000);
P1 = 0x55;
delay(50000);
}
void fun6(void)//一个LED灯循环移位,先左移后右移
{
    unsigned char i;
for(i = 0; i <= 7; i++)
{
P1 = ~(1 << i);
delay(50000);
}
for(i = 6; i >= 1; i--)
{
P1 = ~(1 << i);
delay(50000);
}
}
void fun7(void)//2个LED灯循环移位
{
unsigned char i;
unsigned char j;
for(i = 0; i <= 7; i++)
{
j = i + 1;
if(j > 7)
{
j -= 8;
}
P1 = ~((1 << i)|(1 << j));
delay(50000);
}
}
void fun8(void)//使用P1口实现8个LED灯从中间到两边,循环移位
{
unsigned char i;
unsigned char str[]={0X18,0X24,0X42,0X81,0X42,0X24,0X18,0X00,0X18,0X3C,0X7E,0XFF,0X7E,0X3C,0X18,0X00} ;
for(i = 0; i <=15 ; i++)
{
P1 = ~str[i];
delay(50000);
}
}
void fun9(void)//使用P1,P2口实现8个LED灯从中间到两边,一个LED灯亮的循环移位
{
unsigned char i;
while(1)
{
for(i = 0; i <= 3; i++)
{
P1 = ~(1 << i);
P2 = ~(1 << i);
delay(50000);
}
for(i = 2; i >=1; i--)
{
P1 = ~(1 << i);
P2 = ~(1 << i);
delay(50000);
}
}
}
void fun10(void)
{
unsigned char i;
for(i = 0; i <= 8; i++)
{
P1 = 0XFF;
delay(50000);
P1 >>= i ;
delay(50000);
}
for(i = 0; i <= 8; i++)
{
P1 = 0XFF;
delay(50000);
P1 <<= i ;
delay(50000);
}
}
void fun11(void)
{
unsigned char i;
P1 = 0XFF;
delay(50000);
for(i =1; i <= 8;i++)
{
P1 >>= i;
delay(50000);
}
P1 = ~0X7F;
delay(50000);
for(i = 1; i <= 7; i++)

P1 = ~(~P1 >> i); 
delay(50000);
}
for(i =1; i <= 8;i++)
{
P1 <<= i;
delay(50000);
}
P1 = ~0XFE;
delay(50000);
for(i = 1; i <= 7; i++)

P1 = ~(~P1 << i); 
delay(50000);
}
}
0 0
原创粉丝点击