int btn;//io½Ó¿Ú int count=0;
void outp(unsigned int addr, char data) // Output byte to port { __asm
{ mov dx, addr mov al, data out dx, al } }
char inp(unsigned int addr) // Input byte from port { char result; __asm
{ mov dx, addr in ax, dx
mov result, ax }
return result; }
void delay() //ÑÓ³Ùº¯Êý {
int t=0;
for(t=0;t<100;t++) {}; }
void nian(int x)//¶ÔÄê·Ý½øÐд¦Àí {
n1=x/1000; x=x-1000*n1; n2=x/100; x=x-100*n2; n3=x/10; n4=x-10*n3; }
void yue(int x)//¶ÔÔ½øÐд¦Àí
8
{
if(x>9) {
y2=x; x=x-y2; y1=x/10; } else { y2=x; y1=0; } }
void tian(int x)//¶ÔÈÕ½øÐд¦Àí {
t2=x; x=x-t2; t1=x/10; }
void shi(int x)//¶Ôʱ½øÐд¦Àí {
s2=x; x=x-s2; s1=x/10; }
void fen(int x)//¶Ô·Ö½øÐд¦Àí { f2=x; x=x-f2; f1=x/10; }
void miao(int x)//¶ÔÃë½øÐд¦Àí {
m2=x; x=x-m2; m1=x/10; }
void xingqi(void)//¶ÔÐÇÆÚ´¦Àí {
if(y2==1&&y1==0) { y1=1; y2=3;
9
} else if(y2==2&&y1==0) { y1=1; y2=4; }
xq=((10*n1+n2)/4-2*(10*n1+n2)+(10*n3+n4)+(10*n3+n4)/4+13*(10*y1+y2+1)/5+10*t1+t2+1)%7; }
void xienian()//дÄêµ½ÊýÂë¹Ü { int i=0; outp(IOA,shuma[i]);
outp(IOB,table[n1]); i++; delay();
outp(IOA,shuma[i]);
outp(IOB,table[n2]); i++; delay();
outp(IOA,shuma[i]);
outp(IOB,table[n3]); i++; delay();
outp(IOA,shuma[i]);
outp(IOB,table[n4]); delay();
}
void xieyue()//дÔµ½ÊýÂë¹Ü {
int i=4;
outp(IOA,shuma[i]);
outp(IOB,table[y1]); i++;
10
delay();
outp(IOA,shuma[i]);
outp(IOB,table[y2]); i++; delay();
}
void xietian()//дÌìµ½ÊýÂë¹Ü { int i=6; outp(IOA,shuma[i]);
outp(IOB,table[t1]); i++; delay();
outp(IOA,shuma[i]);
outp(IOB,table[t2]); i++; delay(); } void xieshi()//дСʱµ½ÊýÂë¹Ü { int i=0; outp(IOC1,shuma[i]); outp(IOB1,table[s1]); delay(); i++; outp(IOC1,shuma[i]); outp(IOB1,table[s2]); delay(); } void xiefen()//д·ÖÖÓµ½ÊýÂë¹Ü
11