51单片机按键控制继电器和共阴七段数码管,要求四个按键各对应一个继电器和数码管,按键按一下继电器闭合数码管显示对应k的数字,再嗯一下继电器断开数码管变成0。
#include<reg51.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
sbit JDQ1=P2^0;
sbit JDQ2=P2^1;
sbit JDQ3=P2^2;
sbit JDQ4=P2^3;
void Delay10ms( );
void main()
{
bit k1flag=0;
bit k2flag=0;
bit k3flag=0;
bit k4flag=0;
JDQ1=JDQ2=JDQ3=JDQ4=1;
while(1)
{
if(k1==0)
{
Delay10ms();
if(k1==0)
{
k1flag=!k1flag;
while(k1==0);
}
}
if(k1flag==1)
{
JDQ1=0;//继电器1吸合
}
else
{
JDQ1=1;//继电器1断开
}
if(k2==0)
{
Delay10ms();
if(k2==0)
{
k2flag=!k2flag;//转换变量
while (k2==0); //等待按键弹起
}
}
if(k2flag)
{
JDQ2=0;// 继电器2吸合
}
else
{
JDQ2=1;// 继电器2断开
}
if(k3==0)
{
Delay10ms(); //延时10ms
if(k3==0)
{
k3flag=!k3flag;
while (k3==0);
}
}
if(k3flag)
{
JDQ3=0;// 继电器3吸合
}
else
{
JDQ3=1;// 继电器3断开
}
if(k4==0)
{
Delay10ms();
if(k4==0)
{
k4flag=!k4flag;
while (k4==0);
}
}
if(k4flag)
{
JDQ4=0;// 继电器4吸合
}
else
{
JDQ4=1;// 继电器4断开
}
}
}
void Delay10ms(void)
{
unsigned char a,b,c;
for(c=1;c>0;c--)
for(b=38;b>0;b--)
for(a=130;a>0;a--);
} 这是控制继电器的程序,求大神改成同时控制七段数码管的,数码管P0端。