思路大体上跟上次一样没有啥本质上的区别
所以只需要控制一个灯亮灭亮灭即可
不过单片机的指令周期较短,灯闪烁通过人眼观察不到
所以延时函数在这里就很重要
话不多说,直接在stc-isp 上生成一个 500ms的代码(选的时候注意观察自己的芯片,晶振频率)
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
只需要在我们的程序上面添加一个延时函数即可
稍微注意一下:函数里面有个Nop 指令,需要添加头文件 #include <INTRINS.H>
下面我们直接看程序就可以了
#include <REGX51.H>
#include <INTRINS.H>
void Delay500ms() //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 129;
k = 119;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
}
void main()
{
while(1)
{
P2 = 0xFE;
Delay500ms();
P2 = 0xFF;
Delay500ms();
}
}
喜欢的小伙伴的可以试一下