w_com(0x0c); w_com(0x06); w_com(0x01); w_com(0x80); for(i=0;i<6;i++)
w_date(lcd1[i]);
w_com(0x80+10); for(i=196;i<200;i++)
w_date(lcd2[i]);
w_com(0x80+40); for(i=0;i<7;i++) w_date(lcd3[i]);
}
void findkey() { bit keyg; H1=H2=0; keyg=L1&L2&L3; if(!keyg) { TR1=0;
flag=31;//关掉定时器。
H2=1;
21
H1=0;
if(L1==0) key=1; else if(L2==0) key=2; else if(L3==0) key=3; H2=0; H1=1;
if(L1==0) key=4; else if(L2==0) key=5; else if(L3==0) key=6;
}
while(!keyg) {H1=H2=0;
keyg=L1&L2&L3;}
}
void fangbo() {
if(flag<16)
out=zp[p-1];
else out=fp[p-1];
}
22
void juchibo() { }
void sanjiaobo() { }
void int0 () interrupt 3 {
if(flag==0) {fout=fp[p-1];out=fp[p-1];} else{fout=fout+jbch;out=(uchar)(fout+0.5);}
if(flag==0) {fout=fp[p-1];out=fp[p-1];} else if(flag>16)
{fout=fout-sbch;out=(uchar)(fout+0.5);}
else {fout=fout+sbch;out=(uchar)(fout+0.5);}
if(f==1)
{TH1=0XFE; TL1=0XC8;}
flag++;
if(flag==32) flag=0; switch(b)
{case 1: fangbo();break; case 2: juchibo();break; case 3: sanjiaobo();break;}
23
cs=wre=0;; cs=wre=1;
}
void main() { uint i,j; TMOD=0x10; TH1=0xfe; TL1=0xc8; EA=1; ET1=1; init(); TR1=1; while(1) { indkey(); while(key!=0) {
TR1=0;flag=31;
switch(key)
24
{
case 1:bg=1;b++;if(b==4) b=1;break; case 2:fg=1;f++;if(f==11) f=1;break; case 5:fg=1;if(f==1) f=11;f--;break; case 3:pg=1;p++;if(p==51) p=1;break; case 6:pg=1;p--;if(p==0) p=50;break; case 4:break; }
if(fg)
{
if(f==1) {TMOD=0x10;
TH1=0xfe;TL1=0xc8;}
else {TMOD=0X20;TH1=hz[f-1];TL1=TH1;} j=f*6; w_com(0x80); for(i=j-6;i w_date(lcd1[i]); fg=0; } else if(pg) { j=p*4; w_com(0x80+10); 25