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