好文档 - 专业文书写作范文服务资料分享网站

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

天下 分享 时间: 加入收藏 我要投稿 点赞

1例子1第二个灯亮

#include〈reg52、h〉 void main() { P1=0xfd; }

#include

D1=0 }

注意:稍微改程序时需重新hex化 例子2第一个灯亮

#include〈reg52、h> //52单片机头文件 sbit led1=P1^0; //单片机管脚位声明 void main()?? //主函数 {

?led1=0;?? //将单片机P1、0口清零 ?while(1); //程序停止在这里,在后面会讲到为什么这样写。 }

例子3第一个灯亮

#include〈reg52、h> //52单片机头文件 void main() //主函数 {

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

2例子1第三个灯闪烁fir循环 #include〈reg52、h〉 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<reg52、h> sbit D2=P1^2; unsigned int a; void main()

a=5000; ?D2=0; while(a—-); ?a=5000; D2=1; while(a——); }

2、#include

?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<reg52、h> //52单片机头文件 void main() //主函数 {

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

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

#include〈reg52、h〉 //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

#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〈reg52、h>

例子1#include〈reg52、h〉

#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〈reg52、h〉 #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<reg52、h〉 #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)

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

1例子1第二个灯亮#include〈reg52、h〉voidmain(){P1=0xfd;}#include//52单片机头文件
推荐度:
点击下载文档文档为doc格式
2233h7snuv5dq8n1sig30fluh9bohz00um5
领取福利

微信扫码领取福利

微信扫码分享