|
#include "reg52.h "
#define uint unsigned int
#define uchar unsigned char
sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
sbit k1=P3^0;
sbit k3=P3^3;
sbit k2=P3^2;
sbit key=P3^1;
sbit beep=P1^5;
uchar code table[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
uint num;
void keyscan();
void display();
void delay(uint i)
{
while(i--);
}
void DigDisplay(uchar i)
{
for(i=0;i<2;i++)
{
switch(i)
{
case(0):
LSA=0;LSB=0;LSC=0; break;
case(1):
LSA=1;LSB=0;LSC=0; break;
}
P0=table[num];
delay(100);
P0=0x00;
}
}
void display()
{
DigDisplay(0);
P0=table[num%10];
delay(10);
P0=0x00;
DigDisplay(1);
P0=table[num/10];
delay(10);
P0=0x00;
}
void Int1Init()
{
IT1=1;
EX1=1;
EA=1;
}
void Int1() interrupt 2
{
delay(1000);
if(k3==0)
{
delay(10);
if(k3==0)
{
P0=table[num];
num++;
}
else
{
delay(1000);//Ñóê±ò»Ãë
if(k3==0)
{
num+=2;
// if(num==0)
// {num=9;}
while(!k3);
}
}
}
}
void Int0Init()
{
IT0=1;
EX0=1;
EA=1;
}
void Int0() interrupt 0
{
delay(1000);
if(k2==0)
{
delay(10);
if(k2==0)
{
P0=table[num];
num--;
if(num==0)
{num=9;}
while(!k2);
}
}
}
void keyscan()
{
if(k1==0)
{
delay(50);
if(k1==0)
{
P0=table[num];
num=0;
}
}
if(key==0)
{
delay(20);
if(key==0)
{
while(1)
{
long uint m;
P0=0x00;
for(m=0;m<=9;m++)
{
P0=table[m];
P2=0xf1;
delay(19505);
beep=~beep;
}
}
}
}
}
void main()
{
while(1)
{
Int0Init();
Int1Init();
DigDisplay();
keyscan ();
display();
}
}
QQ圖片20190206121844.jpg (201.61 KB, 下載次數(shù): 31)
下載附件
2019-2-7 07:34 上傳
|
|