小白初学
按键按完数码管不能保持,只有按下按键的时候才显示数字,松开后又变为00了。
#include "reg52.h"
unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char pos[2]={0x01,0x02};
unsigned int temp=0x00;
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
{for(j=0;j<120;j++);}
}
void BUTTON()
{
unsigned int temp1,temp2;
P1=0xf0;
if(P1!=0xf0)
{
delay(50);
temp1=P1;
P1=0x0f;
if(P1!=0x0f)
{
temp2=P1;
}
temp=temp1+temp2;
}
}
void SEG1()
{
if (temp==0xee)
{
P3=pos[1];
P2=~seg[1];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xed)
{
P3=pos[1];
P2=~seg[2];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xeb)
{
P3=pos[1];
P2=~seg[3];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xe7)
{
P3=pos[1];
P2=~seg[4];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xde)
{
P3=pos[1];
P2=~seg[5];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xdd)
{
P3=pos[1];
P2=~seg[6];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xdb)
{
P3=pos[1];
P2=~seg[7];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xd7)
{
P3=pos[1];
P2=~seg[8];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xbe)
{
P3=pos[1];
P2=~seg[9];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xbd)
{
P3=pos[1];
P2=~seg[0];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0xbb)
{
P3=pos[1];
P2=~seg[1];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0xb7)
{
P3=pos[1];
P2=~seg[2];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x7e)
{
P3=pos[1];
P2=~seg[3];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x7d)
{
P3=pos[1];
P2=~seg[4];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x7b)
{
P3=pos[1];
P2=~seg[5];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x77)
{
P3=pos[1];
P2=~seg[6];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else
{
P3=pos[1];
P2=~seg[0];
delay(5);
P3=pos[0];
P2=~seg[0];
}
}
void main()
{
while(1)
{
BUTTON();
SEG1();
}
}
按键按完数码管不能保持,只有按下按键的时候才显示数字,松开后又变为00了。
#include "reg52.h"
unsigned char seg[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char pos[2]={0x01,0x02};
unsigned int temp=0x00;
void delay(unsigned int n)
{
unsigned int i,j;
for(i=0;i<n;i++)
{for(j=0;j<120;j++);}
}
void BUTTON()
{
unsigned int temp1,temp2;
P1=0xf0;
if(P1!=0xf0)
{
delay(50);
temp1=P1;
P1=0x0f;
if(P1!=0x0f)
{
temp2=P1;
}
temp=temp1+temp2;
}
}
void SEG1()
{
if (temp==0xee)
{
P3=pos[1];
P2=~seg[1];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xed)
{
P3=pos[1];
P2=~seg[2];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xeb)
{
P3=pos[1];
P2=~seg[3];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xe7)
{
P3=pos[1];
P2=~seg[4];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xde)
{
P3=pos[1];
P2=~seg[5];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xdd)
{
P3=pos[1];
P2=~seg[6];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xdb)
{
P3=pos[1];
P2=~seg[7];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xd7)
{
P3=pos[1];
P2=~seg[8];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xbe)
{
P3=pos[1];
P2=~seg[9];
delay(5);
P3=pos[0];
P2=~seg[0];
}
else if (temp==0xbd)
{
P3=pos[1];
P2=~seg[0];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0xbb)
{
P3=pos[1];
P2=~seg[1];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0xb7)
{
P3=pos[1];
P2=~seg[2];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x7e)
{
P3=pos[1];
P2=~seg[3];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x7d)
{
P3=pos[1];
P2=~seg[4];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x7b)
{
P3=pos[1];
P2=~seg[5];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else if (temp==0x77)
{
P3=pos[1];
P2=~seg[6];
delay(5);
P3=pos[0];
P2=~seg[1];
}
else
{
P3=pos[1];
P2=~seg[0];
delay(5);
P3=pos[0];
P2=~seg[0];
}
}
void main()
{
while(1)
{
BUTTON();
SEG1();
}
}