您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 交通运输 > 单片机C语言LED灯点亮程序完全版
1例子1第二个灯亮#includereg52.hvoidmain(){P1=0xfd;}#includereg52.hSbitD1=P1^0;Voidmain(){D1=0}注意:稍微改程序时需重新hex化例子2第一个灯亮#includereg52.h//52单片机头文件sbitled1=P1^0;//单片机管脚位声明voidmain()//主函数{led1=0;//将单片机P1.0口清零while(1);//程序停止在这里,在后面会讲到为什么这样写。}例子3第一个灯亮#includereg52.h//52单片机头文件voidmain()//主函数{P1=0xfe;//将单片机P1口的8个口由高到低分别赋值为11111110while(1);//程序停止在这里,在后面会讲到为什么这样写。}2例子1第三个灯闪烁fir循环#includereg52.hsbitD2=P1^2;unsignedinta;voidmain(){D2=0;for(a=0;a=10000;a++){};D2=1;for(a=0;a=10000;a++){};}例子2第三个闪烁while循环#includereg52.hsbitD2=P1^2;unsignedinta;voidmain(){a=5000;D2=0;while(a--);a=5000;D2=1;while(a--);}2.#includereg52.h//52单片机头文件sbitled1=P1^0;//单片机管脚位声明voidmain()//主函数{unsignedinti;//定义一个int型变量while(1){i=50000;//变量赋初值为50000led1=0;//点亮灯while(i--);//延时i=50000;led1=1;//熄灭灯while(i--);}}3例子1357灯同时亮#includereg52.h//52单片机头文件sbitled1=P1^0;//单片机管脚位声明sbitled3=P1^2;//单片机管脚位声明sbitled5=P1^4;//单片机管脚位声明sbitled7=P1^6;//单片机管脚位声明voidmain()//主函数{led1=0;//将单片机P1.0口清零led3=0;//将单片机P1.2口清零led5=0;//将单片机P1.4口清零led7=0;//将单片机P1.6口清零while(1);//程序停止在这里,在后面会讲到为什么这样写。}例子21357同时亮#includereg52.h//52单片机头文件voidmain()//主函数{P1=0xaa;//将单片机P1口的8个口由高到低分别赋值为10101010while(1);//程序停止在这里,在后面会讲到为什么这样写。}例子3流水灯一个一个接着亮不循环#includereg52.h//52单片机头文件voidmain()//主函数{unsignedinti;//定义一个int型变量while(1){i=50000;//变量赋初值为50000P1=0xfe;//点亮第一个灯while(i--);//延时i=50000;//变量赋初值为50000P1=0xfd;//点亮第二个灯while(i--);//延时i=50000;//变量赋初值为50000P1=0xfb;//点亮第三个灯while(i--);//延时i=50000;//变量赋初值为50000P1=0xf7;//点亮第四个灯while(i--);//延时i=50000;//变量赋初值为50000P1=0xef;//点亮第五个灯while(i--);//延时i=50000;//变量赋初值为50000P1=0xdf;//点亮第六个灯while(i--);//延时i=50000;//变量赋初值为50000P1=0xbf;//点亮第七个灯while(i--);//延时i=50000;//变量赋初值为50000P1=0x7f;//点亮第八个灯while(i--);//延时}}例子4#includereg52.h#includeintrins.h#defineuintunsignedint#defineucharunsignedcharuchartemp,num,num1;sbitbeep=P2^3;voiddelay(uint);voidmain(){temp=0xfe;while(1){for(num1=0;num13;num1++){for(num=0;num8;num++){P1=temp;beep=0;delay(100);temp=_crol_(temp,1);P1=0xff;beep=1;delay(100);}}for(num1=0;num13;num1++){for(num=0;num8;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;x0;x--)for(y=110;y0;y--);}4延时子程序voiddelay(){uintx;for(x=100;x0;x--){};}For的嵌套voiddelay(){uintx,y;%局部变量for(x=100;x0;x--)%小括号后不加分号for(y=600;y0;y--);%小括号后的分号表示该语句是上一条语句的,分号将该句与下句隔开(或者{for(y=600;y0;y--);})#includereg52.h例子1#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitD1=P1^0;voiddelay();%注意分号不能少voidmain(){while(1){D1=0;delay();D1=1;delay();}}voiddelay(){uintx,y;for(x=100;x0;x--)for(y=600;y0;y--);}带参数的比不带参数的要方便例子2无参和有参的对比#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitD1=P1^0;//voiddelay();voiddelay(uint);%带一个参数的,参数类型必须要写,参数可不写。比如可以写成uintz。也可以带多个参数voidmain(){while(1){D1=0;delay(1200);%亮2秒D1=1;delay(1200);}}/*voiddelay(){uintx,y;for(x=100;x0;x--)for(y=600;y0;y--);}*/voiddelay(uintz){uintx;uchary;for(x=z;x0;x--)for(y=20;y0;y--);}例子3#includereg52.h#defineuintunsignedint#defineucharunsignedcharsbitD1=P1^0;voiddelay(uint);voidmain(){while(1){D1=0;delay(1200);D1=1;delay(1200);}}voiddelay(uintz){uintx;uchary;for(x=z;x0;x--)for(y=20;y0;y--);}5循环左移三位如10100101(a5)-00101101(2d)
本文标题:单片机C语言LED灯点亮程序完全版
链接地址:https://www.777doc.com/doc-7026416 .html