send_byte(tab[dis_i[1]]); send_byte(tab[dis_i[0]]|0x01); }
/*****************中断函数**********************/ #include \#include \#include \
uchar cnt=0; uchar key=0x00; uchar vo=0; uchar step=1;
sbit oe=P2^4;
void delay(uint z) {
uchar x,y; for(x=0;x for(y=0;y<220;y++); } void cnt0() { if(cnt==0) { uFiliter(); cov_u(); disp_u(); delay(500); } } void cnt1() { if(cnt==1) { iFiliter(); cov_i(); disp_i(); delay(500); } } /*****读取AD转换结果****/ void int0() interrupt 0 using 2 { uchar i; EX0=0; oe=1; P0=0xff; if(cnt==0) { for(i=0;i<9;i++) { ad_u[i]=ad_u[i+1]; } ad_u[9]=P0; } if(cnt==1) { for(i=0;i<9;i++) { ad_i[i]=ad_u[i+1]; } ad_i[9]=P0; } oe=0; EX0=1; } /******键盘中断******/ void int1() interrupt 2 using 3 { uchar tep; EX1=0; delay(20); tep=P1; tep=~tep; tep&=0xf0; if(tep!=0) { switch(tep) { case 0x10:key=0x01;break; case 0x20:key=0x02;break; case 0x40:key=0x03;break; case 0x80:key=0x04;break; default:key=0xff;break; } while(tep!=0) { tep=P1; tep=~tep; tep&=0xf0; } if(key==0x01) { key=0xff; if(vo<240) vo+=1*step; else vo=240; dac0832(vo); } if(key==0x02) { key=0xff; if(vo>1*step) vo-=1*step; else vo=0; dac0832(vo); } if(key==0x03) { key=0xff;