今天准备重新把课设时自己焊的51单片机班子拿出来玩一玩。我的板子晶振是12MHZ的,LED灯只有两个,分别接了P0.0和P0.1。
下面是跑马灯的实现,P0是一个8位的数,每个位就代表了它对应的IO口的电平输出,当然因为我的板子设计时LED另一端接的VCC而不是GND,所以另一端,也就是单片机端需要给出一个低电平才可以让LED灯亮。
#include<reg52.h>
void delay_ms(unsigned int n)
{
unsigned int i=0,j=0;
for(i=0;i<n;++i)
for(j=0;j<123;++j);
}
void delay_s(unsigned int n)
{
unsigned int i=0;
for(i=0;i<1000;++i)
delay_ms(1);
}
void all_up(void)
{
P0=0x0;
}
void all_down(void)
{
P0=0x0;
}
void flash_together(void)
{
unsigned int i = 0;
while(1)
{
P0=0x00;
delay_s(1);
P0=0xff;
delay_s(1);
}
}
void flash_swap(void)
{
unsigned int i = 0;
while(1)
{
P0=0x01;
delay_s(1);
P0=0x2;
delay_s(1);
}
}
void main(void)
{
flash_swap();
}
完整项目文件见,有任何问题欢迎评论或者邮箱联系我。?