|
#i nclude <REG51.H> #i nclude <ABSACC.H> #define uchar unsigned char #define uint unsigned int #define DAC0832 XBYTE[0x6000] uchar code SEG7[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f}; uchar code act[3]={0xfe,0xfd,0xfb}; sbit P1_7=P1^7; sbit INC_KEY=P2^5; sbit DEC_KEY=P2^4; void delay(uint k); int cnt; /******************************/ void main(void) { TMOD=0x01; TH0=-(1000/256); TL0=-(1000%256); TR0=1; IE=0x82; while(1) { if(!INC_KEY) {delay(30); if(!INC_KEY)cnt++; if(cnt>255)cnt=255; delay(100);} //============== if(!DEC_KEY) {delay(30); if(!DEC_KEY)cnt--; if(cnt<0)cnt=0; delay(100);} /*****************************/ DAC0832=cnt; } } /************************************/ void delay(uint k) //延时k*1mS子函数 { uint i,j; for(i=0;i<k;i++){ for(j=0;j<60;j++) {;}} } /***********************************/ void timer0(void) interrupt 1 using 1 {static uchar disbit; TH0=-(1000/256); TL0=-(1000%256); switch(disbit) { case 0:{P1=SEG7[(cnt*49/25)/100];P1_7=1;}break; case 1:{P1=SEG7[(cnt*49/25)%100/10];}break; case 2:{P1=SEG7[(cnt*49/25)%100%10];}break; default:break; } P2=act[disbit]; disbit++; if(disbit>2)disbit=0; } |