单片机芯片采用ATmel公司89c52芯片。
1.流水灯电路图
2.四位按键
3.C语言代码(简单的按键控制灯的明暗)
#include <reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
void main()
{
P1=0xff;
while(1)
{
led1=k1;
led2=k1;
/* if(k1==0)
{
led1=0;
led2=0;
}
else
{
led1=1;
le12=1;
}*/
led3=k2;
led4=k2;
led5=k3;
led6=k3;
led7=k4;
led8=k4;
}
}
只有当按键按住超过一定时间,才亮灯,并且每次按键都反转指示灯的状态
#include <reg52.h>
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7;
sbit k1=P3^4;
sbit k2=P3^5;
sbit k3=P3^6;
sbit k4=P3^7;
void delay(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=112;j>0;j--);
}
void main()
{
P1=0xff;
while(1)
{
if(k1==0)
delay(5000); //只有当按键按住时间到达5s,才点亮指示灯
if(k1==0)
{
while(k1==0);
led1=~led1;
}
}
}
简单的单片机程序,首先要了解电路的各个引脚的输出,其次对应库函数编写C语言代码。