|
30黑幣
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit B1=P3^6;
sbit B2=P3^7;
sbit buzzer=P3^5;
sbit clear=P3^4; // ???????B1,B2,BUZZER,CLEAR
uchar code distab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code keytab[8][8]={{1,2,3,4,5,6,7,8}, // ????????
{9,10,11,12,13,14,15,16},
{17,18,19,20,21,22,23,24},
{25,26,27,28,29,30,31,32},
{33,34,35,36,37,38,39,40},
{41,42,43,44,45,46,47,48},
{49,50,51,52,53,54,55,56},
{57,58,59,60,61,62,63,64},
};
uchar bed_NO;
uchar btime;
uchar itime; //???????bed_NO??uchar btime??uchar itime
void delay(uint x) //???????????
{ uint i,j;
for(i=0;i<x;i++)
{
for(j=0;j<10;j++)
{;;}
}
}
void display(void) //??????????
{
uchar a10,a1;
a10=bed_NO/10;
a1=bed_NO%10;
P1=distab[a10];
B1=1;
delay(10);
B1=0;
P1=distab[a1];
B2=1;
delay(10);
B2=0;
}
void key(void) //???????
{
uchar hang,lie;
P0=0x00;P2=0xff;
delay(1);
if(P2!=0xff)
{
delay(5); //????5???????????
if(P2!=0xff)
{
switch(P2&0xff) //??????
{
case 0xfe:lie=0;break;
case 0xfd:lie=1;break;
case 0xfb:lie=2;break;
case 0xf7:lie=3;break;
case 0xef:lie=4;break;
case 0xdf:lie=5;break;
case 0xbf:lie=6;break;
case 0x7f:lie=7;break;
}
P2=0xff;P0=0xff;
switch(P0&0xff) // ??????
{
case 0xfe:hang=0;break;
case 0xfd:hang=1;break;
case 0xfb:hang=2;break;
case 0xf7:hang=3;break;
case 0xef:hang=4;break;
case 0xdf:hang=5;break;
case 0xbf:hang=6;break;
case 0x7f:hang=7;break;
}
P2=0xff;P0=0x00;
while(P2!=0xff);
bed_NO=keytab[hang][lie];TR0=1; //??????????bed_NO
}
else
bed_NO=0;
}
}
void time_init(void) // ????????????
{
TMOD=0x01;
TH0=(65536-8333)/256; // ?????
TL0=(65536-8333)%256;
EA=1;
ET0=1;
}
void time(void) interrupt 1 using 1 // ?????ж??
{
TH0=(65536-8333)/256;
TL0=(65536-8333)%256;
itime++;
if(itime>=100)
{
itime=0;
btime++;
if(btime>3){TR0=0;btime=0;}
buzzer=!buzzer;
}
}
void main(void)
{
time_init();
for(;;)
{
key();
display();
if(TR0==0){buzzer=1;}
if(clear==0) //???????????
{
delay(10);
if(clear==0)
{
bed_NO=0;
}
}
}
}
|
-
-
新建文件夾.rar
2019-12-25 09:25 上傳
點(diǎn)擊文件名下載附件
42.52 KB, 下載次數(shù): 6
|