#include #include #include //__CONFIG(XT & PROTECT & LVPDIS & PWRTEN & DEBUGDIS & BORDIS & WDTDIS & DPROT & WP1 & WP2 & WP3); __CONFIG(XT & PROTECT & LVPDIS & PWRTEN & DEBUGDIS & BORDIS & WDTDIS & DPROT & PROTECT); //__CONFIG(XT & LVPDIS & PWRTEN & DEBUGEN & BORDIS & WDTDIS); unsigned char ad=0,nu=0; unsigned char t1n=0; unsigned char tmp=128,tmp0=128; void Initial(void); void interrupt t1rb(void); void tmr1(void); char Int2Char(char nm); void main(void) { Initial(); while(1) { if(ad>=2) ADON=1; if(ad>=3) { ad=0; ADGO=1; } if(ADIF) { ADIF=0; ADON=0; tmp0=ADRESH; break; } } while(1) { if(ad>=2) ADON=1; if(ad>=3) { ad=0; ADGO=1; } if(ADIF) { ADIF=0; ADON=0; tmp=ADRESH; } if(RB0) { if(tmp>=(tmp0+7)) { PORTC=Int2Char(nu); if(t1n>=((255-tmp)/4)) { t1n=0; nu++; } if(nu>=10) nu=0; } // else if(tmp<(tmp0+2)) { // t1n=0; PORTC=0; if(t1n>=((255-tmp)/4)) { t1n=0; nu++; } if(nu>=10) nu=0; } } else { if(tmp<(tmp0-7)) { PORTC=Int2Char(nu); if(t1n>=(tmp/4)) { t1n=0; nu--; } if(nu>=10) nu=9; } // else if(tmp>=tmp0-2) { // t1n=0; PORTC=0; if(t1n>=(tmp/4)) { t1n=0; nu--; } if(nu>=10) nu=9; } } } } void Initial(void) { PORTA=0; PORTB=0; PORTC=0; TRISA=0b00000001; TRISB=0b00000001; TRISC=0; ADCON0=0b01000000; ADCON1=0b00001110; TMR1IF=0; TMR1IE=1; T1CON=0b00000001; TMR1L=0xf0; TMR1H=0xd8; OPTION=0b00001000; INTCON=0b11000000; ADIF=0; // tmp=128; } void interrupt t1rb(void) { if(TMR1IE&&TMR1IF) tmr1(); } void tmr1(void) { TMR1ON=0; TMR1IF=0; t1n++; ad++; TMR1L=0xf0; TMR1H=0xd8; TMR1ON=1; } char Int2Char(char nm) { switch(nm) { case 0: return 0x3f; case 1: return 0x06; case 2: return 0x5b; case 3: return 0x4f; case 4: return 0x66; case 5: return 0x6d; case 6: return 0x7d; case 7: return 0x07; case 8: return 0x7f; case 9: return 0x6f; default: return 0x0; } }