当前位置:文档之家› 单片机C语言LED灯点亮程序完全版

单片机C语言LED灯点亮程序完全版

单片机C语言LED灯点亮程序完全版
单片机C语言LED灯点亮程序完全版

1例子1第二个灯亮

#include

void main()

{

P1=0xfd;

}

#include

Sbit D1=P1^0;

Void main()

{

D1=0

}

注意:稍微改程序时需重新hex化

例子2第一个灯亮

#include //52单片机头文件

sbit led1=P1^0; //单片机管脚位声明

void main() //主函数

{

led1=0; //将单片机P1.0口清零

while(1); //程序停止在这里,在后面会讲到为什么这样写。

}

例子3第一个灯亮

#include //52单片机头文件

void main() //主函数

{

P1=0xfe; //将单片机P1口的8个口由高到低分别赋值为11111110 while(1); //程序停止在这里,在后面会讲到为什么这样写。

}

2例子1第三个灯闪烁fir循环

#include

sbit D2=P1^2;

unsigned int a;

void main()

{

D2=0;

for(a=0;a<=10000;a++){};

D2=1;

for(a=0;a<=10000;a++){};

}

例子2第三个闪烁while循环

#include

sbit D2=P1^2;

unsigned int a;

void main()

{

a=5000;

D2=0;

while(a--);

a=5000;

D2=1;

while(a--);

}

2.#include //52单片机头文件

sbit led1=P1^0; //单片机管脚位声明

void main() //主函数

{

unsigned int i; //定义一个int型变量

while(1)

{

i=50000; //变量赋初值为50000

led1=0; //点亮灯

while(i--); //延时

i=50000;

led1=1; //熄灭灯

while(i--);

}

}

3例子1 3 5 7灯同时亮

#include //52单片机头文件

sbit led1=P1^0; //单片机管脚位声明

sbit led3=P1^2; //单片机管脚位声明

sbit led5=P1^4; //单片机管脚位声明

sbit led7=P1^6; //单片机管脚位声明

void main() //主函数

{

led1=0; //将单片机P1.0口清零

led3=0; //将单片机P1.2口清零

led5=0; //将单片机P1.4口清零

led7=0; //将单片机P1.6口清零

while(1); //程序停止在这里,在后面会讲到为什么这样写。

}

例子2 1 3 5 7同时亮

#include //52单片机头文件

void main() //主函数

{

P1=0xaa; //将单片机P1口的8个口由高到低分别赋值为10101010

while(1); //程序停止在这里,在后面会讲到为什么这样写。}

例子3流水灯一个一个接着亮不循环

#include //52单片机头文件

void main() //主函数

{

unsigned int i; //定义一个int型变量

while(1)

{

i=50000; //变量赋初值为50000

P1=0xfe; //点亮第一个灯

while(i--); //延时

i=50000; //变量赋初值为50000

P1=0xfd; //点亮第二个灯

while(i--); //延时

i=50000; //变量赋初值为50000

P1=0xfb; //点亮第三个灯

while(i--); //延时

i=50000; //变量赋初值为50000

P1=0xf7; //点亮第四个灯

while(i--); //延时

i=50000; //变量赋初值为50000

P1=0xef; //点亮第五个灯

while(i--); //延时

i=50000; //变量赋初值为50000

P1=0xdf; //点亮第六个灯

while(i--); //延时

i=50000; //变量赋初值为50000

P1=0xbf; //点亮第七个灯

while(i--); //延时

i=50000; //变量赋初值为50000

P1=0x7f; //点亮第八个灯

while(i--); //延时

}

}

例子4

#include

#include

#define uint unsigned int

#define uchar unsigned char

uchar temp,num,num1;

sbit beep=P2^3;

void delay(uint);

void main()

{

temp=0xfe;

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++)

{

for(num=0;num<8;num++)

{

P1=temp;

beep=0;

delay(100);

temp=_cror_(temp,1);

P1=0xff;

beep=1;

delay(100);

}

}

while(1);

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

4延时子程序

void delay()

{

uint x;

for(x=100;x>0;x--){};

}

For的嵌套

void delay()

{

uint x,y; %局部变量

for(x=100;x>0;x--) %小括号后不加分号

for(y=600;y>0;y--); %小括号后的分号表示该语句是上一条语句的,分号将该句与下句隔开(或者{for(y=600;y>0;y--);})#include

例子1#include

#define uint unsigned int

#define uchar unsigned char

sbit D1=P1^0;

void delay(); %注意分号不能少

void main()

{

while(1)

{

D1=0;

delay();

D1=1;

delay();

}

}

void delay()

{

uint x,y;

for(x=100;x>0;x--)

for(y=600;y>0;y--);

}

带参数的比不带参数的要方便

例子2无参和有参的对比#include

#define uint unsigned int

#define uchar unsigned char

sbit D1=P1^0;

//void delay();

void delay(uint);%带一个参数的,参数类型必须要写,参数可不写。比如可以写成uint z。也可以带多个参数

void main()

{

while(1)

{

D1=0;

delay(1200);%亮2秒

D1=1;

delay(1200);

}

}

/*

void delay()

{

uint x,y;

for(x=100;x>0;x--)

for(y=600;y>0;y--); }*/

void delay(uint z)

{

uint x;

uchar y;

for(x=z;x>0;x--)

for(y=20;y>0;y--); }

例子3#include

#define uint unsigned int #define uchar unsigned char sbit D1=P1^0;

void delay(uint);

void main()

{

while(1)

{

D1=0;

delay(1200);

D1=1;

delay(1200);

}

}

void delay(uint z)

{

uint x;

uchar y;

for(x=z;x>0;x--)

for(y=20;y>0;y--);

}

5循环左移三位如10100101(a5)-00101101(2d)

相关主题
文本预览
相关文档 最新文档