51單片機中關於點亮燈管的簡單程序:
(1)點亮第一盞燈:
<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>
sbit D1=P1^0;
void main()
{
D1=0;
}
</span>
若要點亮第二盞,改爲sbit D2=P1^0;
(2)在reg52.h文件中添加:sbit D1=P1^0;
用於點亮第一盞燈,若要點亮第二盞燈,sbit D2=P1^1;以此類推
<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>
void main()
{
D1=0;
}
</span>
(3)使用進制數來點亮燈
<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>
void main()
{
P1=0xfd;//(十六進制,1111 1101,第二盞燈亮)
}
</span>
(4)燈光的閃爍
<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>
sbit p1_1=p1^0;
unsigned int a;
void main()
{
while(1)
{
a=50000;
p1_1=0;
while(a--);
a=50000;
p1_1=1;
while(a--);
}
}
</span>
(5)燈光閃爍的延遲
<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>
void delay();
//sbit D1=P1^0;(因爲在reg52.h文件已經加了註釋,便可以直接使用
void main()
{
while(1)
{
D1=0;
delay();
D1=1;
delay();
}
}
void delay()
{
unsigned int x,y;
for(x=100;x>0;x--)
for(y=2000;y>0;y--);
}
</span>
(6)流水燈的實現
<span style="font-family:Microsoft YaHei;font-size:18px;">#include<reg52.h>
#include <intrins.h> //包含_crol_函數的頭文件
void delay(unsigned int z);
unsigned char temp;
void main()
{
temp=0xfe;
P1=temp;
while(1)
{
temp=_crol_(temp,1);//左移一位
delay(100);
P1=temp;
}
}
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)
for(y=500;y>0;y--);
}
</span>