05-29-2015, 09:12 PM
Kad vec imam nesto vremena pitao bih i za malu pomoc oko ovog koda.Kad tasterima zadam vrednost napona do koji ce da puni kako u ovom kodu da ubacim da tu vrednost zapamti kad se skine sa napajanja i kad se ponovo ukljuci da ta vrednost ostane.Imam samo jos jedan pin slobodan (RA4) i nije problem napraviti da se detektuje netanak napona pa dok ima struje u kondenzatoru da se zapamti (WRITE) zadata vrednost ali neznam kako je posle pojaviti (READ) da ostane kao sto je bilo podeseno jer nemam slobodan taster,tj gde i kako ovde ubaciti READ ?
cmcon=7
DEFINE OSC 4
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100 'cekanje inicijalizacije displeja
Define ADC_BITS 10 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
ANSEL=%00000001
ADCON1=%10000000
ADCON0=%11000101
TRISA.1=0 'DIODA UKLJUCUJE KAD JE MERENI NAPON VECI OD ZADATI
porta.1=0
trisb.1=0 'DIODA KAD JE MERENI NAPON MANJI OD ZADATI
portb.1=0
TRISA.2=1 'POVECAVA ZADATU VREDNOST
TRISA.3=1 'SMANJUJE ZADATU VREDNOST
BROJ Var WORD
MILAN VAR WORD
MILAN=0
POCETAK:
lcdout $fe,$c0
lcdout "GRANICA = ",DEC2 (MILAN/100),".", DEC2 MILAN
IF PORTA.2=0 THEN
MILAN=MILAN+1
lcdout $fe,$c0
lcdout "GRANICA = ",DEC2 (MILAN/100),".", DEC2 MILAN
ENDIF
IF PORTA.3=0 THEN
MILAN=MILAN-1
lcdout $fe,$c0
lcdout "GRANICA = ",DEC2 (MILAN/100),".", DEC2 MILAN
ENDIF
ADCIN 0 , BROJ
BROJ = ( BROJ */ 500)>>2*10
lcdout $FE, $80, "DC NAPON =",DEC (BROJ/100),".", DEC2 BROJ,"V "
pause 10
if broj > MILAN then
porta.1=1
ELSE
porta.1=0
endif
if BROJ < MILAN THEN
PORTB.1= 1
ELSE
PORTB.1=0
ENDIF
GOTO POCETAK:
END
cmcon=7
DEFINE OSC 4
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100 'cekanje inicijalizacije displeja
Define ADC_BITS 10 ' Set number of bits in result
Define ADC_CLOCK 3 ' Set clock source (3=rc)
Define ADC_SAMPLEUS 50 ' Set sampling time in uS
ANSEL=%00000001
ADCON1=%10000000
ADCON0=%11000101
TRISA.1=0 'DIODA UKLJUCUJE KAD JE MERENI NAPON VECI OD ZADATI
porta.1=0
trisb.1=0 'DIODA KAD JE MERENI NAPON MANJI OD ZADATI
portb.1=0
TRISA.2=1 'POVECAVA ZADATU VREDNOST
TRISA.3=1 'SMANJUJE ZADATU VREDNOST
BROJ Var WORD
MILAN VAR WORD
MILAN=0
POCETAK:
lcdout $fe,$c0
lcdout "GRANICA = ",DEC2 (MILAN/100),".", DEC2 MILAN
IF PORTA.2=0 THEN
MILAN=MILAN+1
lcdout $fe,$c0
lcdout "GRANICA = ",DEC2 (MILAN/100),".", DEC2 MILAN
ENDIF
IF PORTA.3=0 THEN
MILAN=MILAN-1
lcdout $fe,$c0
lcdout "GRANICA = ",DEC2 (MILAN/100),".", DEC2 MILAN
ENDIF
ADCIN 0 , BROJ
BROJ = ( BROJ */ 500)>>2*10
lcdout $FE, $80, "DC NAPON =",DEC (BROJ/100),".", DEC2 BROJ,"V "
pause 10
if broj > MILAN then
porta.1=1
ELSE
porta.1=0
endif
if BROJ < MILAN THEN
PORTB.1= 1
ELSE
PORTB.1=0
ENDIF
GOTO POCETAK:
END