snimiti program u PIC 16F877
20.10.2008. u 22:52 · pre 219 meseci
#1
poitrebna mi je pomoć!!!!!
dali je moguće da je sledeći program (dole) neispravan???
ako je ispravan,ne znam zašto ne mogu da ga prebacim u PIC 16F877
imam PICFlash2 programer
Molim vas ako je moguće da mi pojasnite korak po korak proceduru
Šta mi je još potrebno i kako da budem siguran da se program nalazi u PIC-u
unapred puno hvala,..
'Program korektor napona.
'Meri mrezni napon i zavisno od rezultata merenja
'ukljucuje odgovarajuci relej i tako na autotransformatoru
'bira odgovrajuci izvod zavisno od mreznog napona.
Define ADC_BITS 10 ' Broj bita
Define ADC_CLOCK 1 ' Klok (0=Oscilator /8)
AD_Rez var word ' Rezultat AD konverzije
Napon var word ' Promenljiva za dobijanje napona
TRISA = %11111111 ' Port A je ulazni
TRISC = 0 ' Port D je izlazni
ADCON1 = %10000010 ' Port A je u analognom modu, 0 i 5V su
' referentni naponi a rezultat je desno formatiran.
Dummy var byte ' Promenljiva za 32 bitno delenje i mnozenje
symbol DQ = porte.2 ' DQ linija za termometar
symbol Greska = portb.5 'Linija LED diode greske
symbol Rucni = portb.4 'Linija za identifikaciju rucnog rada
symbol Rucni_rad = portb.2 'Linija za identifikaciju rucnog rada
temperatura Var Word ' Izracunata temperatura
temper1 Var Word ' Izracunata temperatura
count_remain Var Byte ' Ostatak
count_per_c Var Byte ' Po stepenu C
Pocetak:
'----------------MERI TEMPERATURU--------------------------------------
OWOut DQ, 1, [$CC, $44] ' Start merenja temperature
Sacekaj:
OWIn DQ, 4, [count_remain] ' Provera da li jos traje
IF count_remain = 0 Then Sacekaj
OWOut DQ, 1, [$CC, $BE] ' Procitaj temperaturu
OWIn DQ, 0, [Temperatura.LOWBYTE, Temperatura.HIGHBYTE, Skip 4, count_remain, count_per_c]
Temperatura = (((Temperatura >> 1) * 100) - 25)+ (((count_per_c - count_remain)*100) / count_per_c)
Temper1 = Temperatura / 100
If Temper1 < 70 Then Radi
High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
PortD = $00
Goto Pocetak
'-------------RAD KOREKTORA------------------------------------------
Radi:
' Procitaj 1 kanal na RA2 i prikazi
ADCIN 2, AD_Rez ' Izvrsi konverziju na RA2 i 16 bita i rezultat smesti u AD_Rez.
Dummy = AD_Rez * 5 * 100
Napon = Div32 1023
Pause 5000 ' Pauza 10 sec
' - - - - Napon 180 - 190 - - - - - - - - - - - - - - - - - -
If AD_Rez > 731 Then RE2
PortC = $01
Goto REE
' - - - - Napon 190 - 200 - - - - - - - - - - - - - - - - - -
RE2: If AD_Rez > 775 Then RE3
PortC = $02
Goto REE
' - - - - Napon 200 - 210 - - - - - - - - - - - - - - - - - -
RE3: If AD_Rez > 811 Then RE4
PortC = $04
Goto REE
' - - - - Napon 210 - 220 - - - - - - - - - - - - - - - - - -
RE4: If AD_Rez > 867 Then RE5
PortC = $08
Goto REE
' - - - - Napon iznad 220 - - - - - - - - - - - - - - - - - -
RE5: PortC = $10
Pause 2000 ' Pauza 2 sekunda
REE:
Goto Pocetak ' Kreni ponovo na merenje
'------------RUCNI RAD----------------------------
Iskljucen:
PortC = $10
Rucni = 1
Return
End ' Kraj programa
dali je moguće da je sledeći program (dole) neispravan???
ako je ispravan,ne znam zašto ne mogu da ga prebacim u PIC 16F877
imam PICFlash2 programer
Molim vas ako je moguće da mi pojasnite korak po korak proceduru
Šta mi je još potrebno i kako da budem siguran da se program nalazi u PIC-u
unapred puno hvala,..
'Program korektor napona.
'Meri mrezni napon i zavisno od rezultata merenja
'ukljucuje odgovarajuci relej i tako na autotransformatoru
'bira odgovrajuci izvod zavisno od mreznog napona.
Define ADC_BITS 10 ' Broj bita
Define ADC_CLOCK 1 ' Klok (0=Oscilator /8)
AD_Rez var word ' Rezultat AD konverzije
Napon var word ' Promenljiva za dobijanje napona
TRISA = %11111111 ' Port A je ulazni
TRISC = 0 ' Port D je izlazni
ADCON1 = %10000010 ' Port A je u analognom modu, 0 i 5V su
' referentni naponi a rezultat je desno formatiran.
Dummy var byte ' Promenljiva za 32 bitno delenje i mnozenje
symbol DQ = porte.2 ' DQ linija za termometar
symbol Greska = portb.5 'Linija LED diode greske
symbol Rucni = portb.4 'Linija za identifikaciju rucnog rada
symbol Rucni_rad = portb.2 'Linija za identifikaciju rucnog rada
temperatura Var Word ' Izracunata temperatura
temper1 Var Word ' Izracunata temperatura
count_remain Var Byte ' Ostatak
count_per_c Var Byte ' Po stepenu C
Pocetak:
'----------------MERI TEMPERATURU--------------------------------------
OWOut DQ, 1, [$CC, $44] ' Start merenja temperature
Sacekaj:
OWIn DQ, 4, [count_remain] ' Provera da li jos traje
IF count_remain = 0 Then Sacekaj
OWOut DQ, 1, [$CC, $BE] ' Procitaj temperaturu
OWIn DQ, 0, [Temperatura.LOWBYTE, Temperatura.HIGHBYTE, Skip 4, count_remain, count_per_c]
Temperatura = (((Temperatura >> 1) * 100) - 25)+ (((count_per_c - count_remain)*100) / count_per_c)
Temper1 = Temperatura / 100
If Temper1 < 70 Then Radi
High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
High Greska
pause 500
Low Greska
pause 500
PortD = $00
Goto Pocetak
'-------------RAD KOREKTORA------------------------------------------
Radi:
' Procitaj 1 kanal na RA2 i prikazi
ADCIN 2, AD_Rez ' Izvrsi konverziju na RA2 i 16 bita i rezultat smesti u AD_Rez.
Dummy = AD_Rez * 5 * 100
Napon = Div32 1023
Pause 5000 ' Pauza 10 sec
' - - - - Napon 180 - 190 - - - - - - - - - - - - - - - - - -
If AD_Rez > 731 Then RE2
PortC = $01
Goto REE
' - - - - Napon 190 - 200 - - - - - - - - - - - - - - - - - -
RE2: If AD_Rez > 775 Then RE3
PortC = $02
Goto REE
' - - - - Napon 200 - 210 - - - - - - - - - - - - - - - - - -
RE3: If AD_Rez > 811 Then RE4
PortC = $04
Goto REE
' - - - - Napon 210 - 220 - - - - - - - - - - - - - - - - - -
RE4: If AD_Rez > 867 Then RE5
PortC = $08
Goto REE
' - - - - Napon iznad 220 - - - - - - - - - - - - - - - - - -
RE5: PortC = $10
Pause 2000 ' Pauza 2 sekunda
REE:
Goto Pocetak ' Kreni ponovo na merenje
'------------RUCNI RAD----------------------------
Iskljucen:
PortC = $10
Rucni = 1
Return
End ' Kraj programa
Potpis
1. Ko zna više, bog mu je dalje
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
2. Ko zna manje, bog mu je bliže
3. Ko ništa ne zna, njemu bog može biti svako
Re: snimiti program u PIC 16F877