51单片机学习日记,所使用的板子是STC89C52rc的开发板,今日学习的部分为独立按键孔子LED二进制闪烁,实现功能为按下一次按键,亮一次,代码如下
#include <REGX52.H>
void Delay(unsigned int xms) //@12.000MHz,延时程序,整个循环单次循环1ms
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
void main() //主程序
{
while(1)
{
if(P3_1==0) //判断按键P3_0是否按下
{
Delay(20);
while(P3_1==0); //检测是否按下,还按下就空循环,已经松手,往下执行
Delay(20);
P2_0=~P_0;
}
}
}
代码进阶,每按下一次,二进制数字的增长一位,按照接下来的闪烁。
#include <REGX52.H>
void Delay(unsigned int xms) //@12.000MHz,延时程序,整个循环单次循环1ms
{
unsigned char i, j;
while(xms--)
{
i = 2;
j = 239;
do
{
while (--j);
} while (--i);
}
}
void main() //主程序
{
unsigned char LEDNum=0; //定义char类型变量为0,为0000 0000
while(1)
{
if(P3_1==0) //判断按键P3_0是否按下
{
Delay(20);
while(P3_1==0); //检测是否按下,还按下就空循环,已经松手,往下执行
Delay(20);
LEDNum++;
P2=~LEDNum;
}
}
}