闪烁灯
----------------------------------------------------------------------------------------------------------------------
[实验要求]
点亮与单片机P1.0口相连的发光二极管,延时0.2S,然后熄灭,延时0.2S,再点亮,如此循环下去。
[实验目的]
初步了解单片机IO口输出高低电平的作用,延时函数的时间估算。
[硬件电路]
[源代码]
#include<reg51.h>
/**********************************************************
上面这行是一个"文件包含"处理。所谓"文件包含"是指一个文件将另外一个文件的内容全部包含进来这里的程序虽然只写了一行,但C编译器在处理的时候却要处理几十或几百行,这里包含reg51.h的目的在于本程序要使用P1这个符号,而P1是在reg51.h这个头文件中定义的。大家可以在编译器目录下面用记事本打开这个文件看看。
*********************************************************/
sbit P1_0=P1^0; //定义IO口这步的目的是让编//译器知道P1_0代表的就是单片机的P1.0口
void delay02s(void) //延时0.2秒子程序
{
unsigned char i,j,k; //定义3个无符号字符型变量。
for(i=20;i>0;i--) //三个FOR循环用来延时,这里为
for(j=20;j>0;j--) //什么是0.2S大家可以用WAVE
for(k=248;k>0;k--); //高断点仿真一下,就可知道大概
} //是0.2S了。
void main(void) //每一个C语言程序有且只有一个主函数,
{
while(1) //循环条件永远为真,以下程序一直执行下去。
{
P1_0=0; // I/O口P1.0输出低电平,小灯被点亮。
delay02s(); //延时经过0.2秒。
P1_0=1; // I/O口P1.0输出高电平,小灯熄灭。
delay02s(); //延时经过0.2秒。
}
}
|