1例子1第二个灯亮
#include
void main()
{
P1=0xfd;
}
#include
Sbit D1=P1^0;
Void main()
{
D1=0
}
注意:稍微改程序时需重新hex化
例子2第一个灯亮
#include
sbit led1=P1^0; //单片机管脚位声明
void main() //主函数
{
led1=0; //将单片机P1.0口清零
while(1); //程序停止在这里,在后面会讲到为什么这样写。
}
例子3第一个灯亮
#include
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
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
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
void main() //主函数
{
P1=0xaa; //将单片机P1口的8个口由高到低分别赋值为10101010
while(1); //程序停止在这里,在后面会讲到为什么这样写。}
例子3流水灯一个一个接着亮不循环
#include
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)