原理图(此次用到的部分)
P2中的某个口为1(高电平)时,无电流流过,对应的二极管不会被点亮
代码
#include <reg52.h>
void delay(unsigned int k)
{
int i,j;
while(k--)
{
for(i = 1000;i>0;--i)
for(j = 110;j>0;--j);
}
}
void main()
{
unsigned char i = 0;
P2 = ~0x01;
while(1)
{
if(i==7)
i=0;
else
i+=1;
P2 = ~(0x01<<i);
delay(1);
}
}
#include <reg52.h>
sbit beep = P1^5;
void delay(unsigned int k)
{
while(k--);
}
void main()
{
unsigned char i = 0;
P2 = ~0x01;
while(1)
{
if(i==7)
i=0;
else
i+=1;
P2 = ~(0x01<<i);
beep = ~beep;
delay(100);
}
}
遇到的问题
没什么大问题,就是delay()里k–写成了–k这种脑瘫问题