2-2
LED闪烁代码
#include <REGX52.H>
#include <INTRINS.H>
void Delay500ms(void) //@12.000MHz
{
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;//1111 1110
Delay500ms();
P2=0xFF;//1111 1111
Delay500ms();
}
}
函数执行机理和延时函数
函数的执行原理。
当文件烧录进去后单片机会一遍又一遍的执行函数,也就说是函数执行一遍后又从头开始执行。而引入while函数是为了决定函数是否执行。括号中的为逻辑语句。例如while(2>1)括号中的逻辑为True,可已执行,反之亦然。如果while()函数中括号中的数字是0则while函数不执行,如果为其他数字则可以执行。
如何获取延时函数
在stc-ISP软件中。在右侧的一连串的工具中找到软件延时计算器。
选择系统频率是根据单片机上晶振的频率选择要保持一致。定时长度和单位可以自行选择。而对于指令集要自行选择自己所用板子的型号。例如STC-Y1就是我所用的STC89/90系列。选择完成后就生成了延时函数就自行复制就可以了。