学习C51单片机——LED灯闪烁(学习笔记Keil5)
1、延时函数编写
ISP软件中有一个功能是可以自动生成延时函数的,要选择延时计算器模块,晶振频率选则跟自己单片机一样的,时长自己可以任意定,指令集也要注意根据自己的单片机型号选择
void Delay500ms(void) //延时函数
{
unsigned char data i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
2、运行代码展示
使用while循环语句,在循环语句中调用延时函数,使LED灯不断重复亮灭的过程,后面编译执行生成hex文件,然后烧入单片机中即可
#include "REG52.H" //此文件中定义了单片机的一些特殊功能寄存器
#include "INTRINS.H" //此文件中定义了_nop_语句
void Delay500ms(void) //延时函数
{
unsigned char data i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while (1)
{
P2 = 0xFE; // 二进制转换为11111110,P2.0端口设置为低电平,低电平点亮
Delay500ms();
P2 = 0xFF; // 二进制转换为11111111,P2.0端口设置为高电平,高电平灯灭
Delay500ms();
}
}