当前位置:
文档之家› 单片机C语言LED灯点亮程序完全版
单片机C语言LED灯点亮程序完全版
while(i--);//延时
}
}
例子4
#include<>
#include<>
#defineuintunsignedint
#defineucharunsignedchar
uchartemp,num,num1;
sbitbeep=P2^3;
voiddelay(uint);
voidmain()
{
temp=0xfe;
voidmain()//主函数
{
unsignedinti;//定义一个int型变量
while(1)
{
i=50000;//变量赋初值为50000
led1=0;//点亮灯
while(i--);//延时
i=50000;
led1=1;//熄灭灯
while(i--);
}
}
3例子1357灯同时亮
#include<>//52单片机头文件
while(i--);//延时
i=50000;//变量赋初值为50000
P1=0xdf;//点亮第六个灯
while(i--);//延时
i=50000;//变量赋初值为50000
P1=0xbf;//点亮第七个灯
while(i--);//延时
i=50000;//变量赋初值为50000
P1=0x7f;//点亮第八个灯
for(y=600;y>0;y--);
}*/
voiddelay(uintz)
{
uintx;
uchary;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
例子3#include<>
#defineuintunsignedint
#defineucharunsignedchar
sbitD1=P1^0;
sbitled1=P1^0;//单片机管脚位声明
sbitled3=P1^2;//单片机管脚位声明
sbitled5=P1^4;//单片机管脚位声明
sbitled7=P1^6;//单片机管脚位声明
voidmain()//主函数
{
led1=0;//将单片机口清零
led3=0;//将单片机口清零
led5=0;//将单片机口清零
voiddelay(uint);
voidmain()
{
while(1)
{
D1=0;
delay(1200);
D1=1;
delay(1200);
}
}
voiddelay(uintz)
{uLeabharlann ntx;uchary;for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
单片机C语言LED灯点亮程序完全版
1例子1第二个灯亮
#include<>
voidmain()
{
P1=0xfd;
}
#include<>
SbitD1=P1^0;
Voidmain()
{
D1=0
}
注意:稍微改程序时需重新hex化
例子2第一个灯亮
#include<>include<>//52单片机头文件
sbitled1=P1^0;//单片机管脚位声明
{
uintx,y;
for(x=100;x>0;x--)
for(y=600;y>0;y--);
}
带参数的比不带参数的要方便
例子2无参和有参的对比#include<>
#defineuintunsignedint
#defineucharunsignedchar
sbitD1=P1^0;
//voiddelay();
while(1)
{
for(num1=0;num1<3;num1++)
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;
delay(100);
temp=_crol_(temp,1);
P1=0xff;
beep=1;
delay(100);
}
}
for(num1=0;num1<3;num1++)
例子1#include<>
#defineuintunsignedint
#defineucharunsignedchar
sbitD1=P1^0;
voiddelay();%注意分号不能少
voidmain()
{
while(1)
{
D1=0;
delay();
D1=1;
delay();
}
}
voiddelay()
for(y=110;y>0;y--);
}
4延时子程序
voiddelay()
{
uintx;
for(x=100;x>0;x--){};
}
For的嵌套
voiddelay()
{
uintx,y;%局部变量
for(x=100;x>0;x--)%小括号后不加分号
for(y=600;y>0;y--);%小括号后的分号表示该语句是上一条语句的,分号将该句与下句隔开(或者{for(y=600;y>0;y--);})#include<>
{
for(num=0;num<8;num++)
{
P1=temp;
beep=0;
delay(100);
temp=_cror_(temp,1);
P1=0xff;
beep=1;
delay(100);
}
}
while(1);
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
while(i--);//延时
i=50000;//变量赋初值为50000
P1=0xfb;//点亮第三个灯
while(i--);//延时
i=50000;//变量赋初值为50000
P1=0xf7;//点亮第四个灯
while(i--);//延时
i=50000;//变量赋初值为50000
P1=0xef;//点亮第五个灯
voiddelay(uint);%带一个参数的,参数类型必须要写,参数可不写。比如可以写成uintz。也可以带多个参数
voidmain()
{
while(1)
{
D1=0;
delay(1200);%亮2秒
D1=1;
delay(1200);
}
}
/*
voiddelay()
{
uintx,y;
for(x=100;x>0;x--)
led7=0;//将单片机口清零
while(1);//程序停止在这里,在后面会讲到为什么这样写。
}
例子21357同时亮
#include<>//52单片机头文件
voidmain()//主函数
{
P1=0xaa;
while(1);//程序停止在这里,在后面会讲到为什么这样写。
}
例子3流水灯一个一个接着亮不循环
#include<>//52单片机头文件
voidmain()//主函数
{
unsignedinti;//定义一个int型变量
while(1)
{
i=50000;//变量赋初值为50000
P1=0xfe;//点亮第一个灯
while(i--);//延时
i=50000;//变量赋初值为50000
P1=0xfd;//点亮第二个灯