#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit rck=P0^0;
sbit sck=P0^1;
sbit si=P0^2;
sbit key1=P1^0;//按鍵接在P1^0口
sbit key2=P1^1;//按鍵接在P1^1口
uint b=0,a=0,c=0;//全局定義并賦初值
uchar code num[]={0x80,0xed,0x42,0x48,0x2c,0x18,0x10,0xcc,0x00,0x08};
void write_date(uchar temp)
{
uint i;
for(i=0;i<8;i++)
{
temp>>=1;
sck=0;
si=CY;
sck=1;
}
}
void key()
{
if(key1==0)//如果按鍵1被拉為低電平
{
while(!key1);//由低電平變為高電平(即手松開),則執行下面語句
b++;
if(b==9)b=0;//如果b=0,則重新調零
}
else if(key2==0)//分析方法同key1
{
while(!key2);
a++;
if(a==9)a=0;
}
write_date(num[b]);
write_date(num[a]);
rck=0;
rck=1;
}
void main()
{
write_date(num[0]);
write_date(num[0]);
while(1)//掃描按鍵是否被按,如果其中的一個被按或兩個同時被按,則執行
{
key();//調用key函數
}
}