单片机C语言LED灯点亮程序完全版.docx
- 文档编号:29400055
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:11
- 大小:15.53KB
单片机C语言LED灯点亮程序完全版.docx
《单片机C语言LED灯点亮程序完全版.docx》由会员分享,可在线阅读,更多相关《单片机C语言LED灯点亮程序完全版.docx(11页珍藏版)》请在冰豆网上搜索。
单片机C语言LED灯点亮程序完全版
1例子1第二个灯亮
#include
voidmain()
{
P1=0xfd;
}
#include
SbitD1=P1^0;
Voidmain()
{
D1=0
}
注意:
稍微改程序时需重新hex化
例子2第一个灯亮
#include
sbitled1=P1^0;//单片机管脚位声明
voidmain()//主函数
{
led1=0;//将单片机P1.0口清零
while
(1);//程序停止在这里,在后面会讲到为什么这样写。
}
例子3第一个灯亮
#include
voidmain()//主函数
{
P1=0xfe;//将单片机P1口的8个口由高到低分别赋值为11111110
while
(1);//程序停止在这里,在后面会讲到为什么这样写。
}
2例子1第三个灯闪烁fir循环
#include
sbitD2=P1^2;
unsignedinta;
voidmain()
{
D2=0;
for(a=0;a<=10000;a++){};
D2=1;
for(a=0;a<=10000;a++){};
}
例子2第三个闪烁while循环
#include
sbitD2=P1^2;
unsignedinta;
voidmain()
{
a=5000;
D2=0;
while(a--);
a=5000;
D2=1;
while(a--);
}
2.#include
sbitled1=P1^0;//单片机管脚位声明
voidmain()//主函数
{
unsignedinti;//定义一个int型变量
while
(1)
{
i=50000;//变量赋初值为50000
led1=0;//点亮灯
while(i--);//延时
i=50000;
led1=1;//熄灭灯
while(i--);
}
}
3例子1357灯同时亮
#include
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同时亮
#include
voidmain()//主函数
{
P1=0xaa;//将单片机P1口的8个口由高到低分别赋值为10101010
while
(1);//程序停止在这里,在后面会讲到为什么这样写。
}
例子3流水灯一个一个接着亮不循环
#include
voidmain()//主函数
{
unsignedinti;//定义一个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
#defineuintunsignedint
#defineucharunsignedchar
uchartemp,num,num1;
sbitbeep=P2^3;
voiddelay(uint);
voidmain()
{
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);
}
}
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
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
例子1#include
#defineuintunsignedint
#defineucharunsignedchar
sbitD1=P1^0;
voiddelay();%注意分号不能少
voidmain()
{
while
(1)
{
D1=0;
delay();
D1=1;
delay();
}
}
voiddelay()
{
uintx,y;
for(x=100;x>0;x--)
for(y=600;y>0;y--);
}
带参数的比不带参数的要方便
例子2无参和有参的对比#include
#defineuintunsignedint
#defineucharunsignedchar
sbitD1=P1^0;
//voiddelay();
voiddelay(uint);%带一个参数的,参数类型必须要写,参数可不写。
比如可以写成uintz。
也可以带多个参数
voidmain()
{
while
(1)
{
D1=0;
delay(1200);%亮2秒
D1=1;
delay(1200);
}
}
/*
voiddelay()
{
uintx,y;
for(x=100;x>0;x--)
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;
voiddelay(uint);
voidmain()
{
while
(1)
{
D1=0;
delay(1200);
D1=1;
delay(1200);
}
}
voiddelay(uintz)
{
uintx;
uchary;
for(x=z;x>0;x--)
for(y=20;y>0;y--);
}
5循环左移三位如10100101(a5)-00101101(2d)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 语言 LED 点亮 程序 完全