《单片机C语言LED灯点亮程序完全版(6页).doc》由会员分享,可在线阅读,更多相关《单片机C语言LED灯点亮程序完全版(6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-单片机C语言LED灯点亮程序完全版-第 6 页1例子1第二个灯亮#includevoid main()P1=0xfd;#includeSbit D1=P10;Void main()D1=0注意:稍微改程序时需重新hex化例子2第一个灯亮#include /52单片机头文件sbit led1=P10; /单片机管脚位声明void main() /主函数led1=0;/将单片机P1.0口清零while(1); /程序停止在这里,在后面会讲到为什么这样写。例子3第一个灯亮#include /52单片机头文件void main() /主函数P1=0xfe; /将单片机P1口的8个口由高到低分别赋值为
2、11111110while(1); /程序停止在这里,在后面会讲到为什么这样写。2例子1第三个灯闪烁fir循环#includesbit D2=P12;unsigned int a;void main() D2=0;for(a=0;a=10000;a+);D2=1;for(a=0;a=10000;a+);例子2第三个闪烁while循环#includesbit D2=P12;unsigned int a;void main() a=5000;D2=0;while(a-);a=5000;D2=1;while(a-);2.#include /52单片机头文件sbit led1=P10; /单片机管脚位
3、声明void main() /主函数unsigned int i; /定义一个int型变量while(1)i=50000; /变量赋初值为50000led1=0;/点亮灯while(i-); /延时i=50000;led1=1; /熄灭灯while(i-); 3例子1 3 5 7灯同时亮#include /52单片机头文件sbit led1=P10; /单片机管脚位声明sbit led3=P12; /单片机管脚位声明sbit led5=P14; /单片机管脚位声明sbit led7=P16; /单片机管脚位声明void main() /主函数led1=0;/将单片机P1.0口清零led3=0;
4、/将单片机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个口由高到低分别赋值为10101010while(1); /程序停止在这里,在后面会讲到为什么这样写。例子3流水灯一个一个接着亮不循环#include /52单片机头文件void main() /主函数unsigned int i; /定义一个int型变量while(1)i=50000; /变量赋初值
5、为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; /变量赋初值
6、为50000P1=0xbf;/点亮第七个灯while(i-); /延时i=50000; /变量赋初值为50000P1=0x7f;/点亮第八个灯while(i-); /延时例子4#include#include #define uint unsigned int #define uchar unsigned char uchar temp,num,num1;sbit beep=P23;void delay(uint);void main() temp=0xfe;while(1)for(num1=0;num13;num1+)for(num=0;num8;num+)P1=temp;beep=0;de
7、lay(100);temp=_crol_(temp,1);P1=0xff;beep=1;delay(100);for(num1=0;num13;num1+)for(num=0;num0;x-)for(y=110;y0;y-);4延时子程序void delay()uint x;for(x=100;x0;x-);For的嵌套void delay()uint x,y;%局部变量for(x=100;x0;x-) %小括号后不加分号for(y=600;y0;y-);%小括号后的分号表示该语句是上一条语句的,分号将该句与下句 隔开(或者for(y=600;y0;y-);)#include例子1#inclu
8、de#define uint unsigned int #define uchar unsigned char sbit D1=P10;void delay();%注意分号不能少void main()while(1)D1=0;delay();D1=1;delay();void delay()uint x,y;for(x=100;x0;x-)for(y=600;y0;y-);带参数的比不带参数的要方便例子2无参和有参的对比#include#define uint unsigned int #define uchar unsigned char sbit D1=P10;/void delay();
9、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;x0;x-)for(y=600;y0;y-);void delay(uint z)uint x;uchar y;for(x=z;x0;x-)for(y=20;y0;y-);例子3#include#define uint unsigned int #define uchar unsigned char sbit D1=P10;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;x0;x-)for(y=20;y0;y-);5循环左移三位如10100101(a5)-00101101(2d)
限制150内