上次学习了点灯实验未成功的原因可能在于单片机,由于新的单片机还未到不能下定结论
单片机中LED灯的控制值为真时亮如“1”时亮,“0”时灭
此图为单片机中八个LED灯的连接图
此图是进制转换
在亮灯的基础上使LED的闪烁即一会亮一会灭,需要让他执行两个语句,先灭后亮以此循环。
但是由于单片机频率很快,闪烁较快会被误认为一直亮,需要在此基础上加上延时的语句。
#include <REGX52.H>
#include <TNTRIN.H>
void Delay500ms()
{
unsigned char i, j, k;
_nop_();
i = 4;
j = 205;
k = 187;
do
{
do
{
while (--k);
} while (--j);
} while (--i);
} //此处设一个函数用来延长时间,stc中生成的
void main()
{
while(1) //无限循环
{
p2=0xfe; //使led灯亮
Delay500ms(); //引用延时函数 延时半秒
p2=0xff; //使led灯灭
Delay500ms(); //引用延时函数 同样延时半秒
}
}
由于单片机串口问题无法实操