单片机C语言学习知识LED灯点亮程序完全版.doc
,.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个口由高到低分别赋值为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; /单片机管脚位声明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;/将单片机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; /变量赋初值为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#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;delay(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#include#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();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)
收藏
编号:2584473
类型:共享资源
大小:31.02KB
格式:DOC
上传时间:2020-04-22
8
金币
- 关 键 词:
-
单片机
语言
学习
知识
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)
展开阅读全文
淘文阁 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。