Gå til innhold

plages med programmering av pic 16F628(a)


Anbefalte innlegg

hei jeg har lagd meg en PIC programmer slik som Denne

jeg skal programmere en 16F628(a) men hver gang jeg prøver å overføre programmet får jeg opp "Verify failed at adress 0000h". kretsen jeg skal bruke Denne ICen i er en RGB LED mood lamp

og programmet som er funnet på samme siden ser slik ut:

 

HEX

Klikk for å se/fjerne innholdet nedenfor
:020000040000FA

:020000000428D2

:08000800FF30A200FF30A3004D

:1000100024140130A700FF30A8000130A9000130EE

:10002000AA00A01076232D087F397B235C232210A1

:100030006F232217692322156D23A2116C2322122C

:100040006B23A2126A23A2146E23A2176823231023

:100050006723A310662323116523A31164232312AE

:100060006323A312622323136123A313602322308B

:100070004A22051D4A283C22AB00AC0100306E200C

:10008000AB013C22AC0000306E20AB01AC013C2245

:100090006E206C28FF30A8000130A9000130AA00B2

:1000A000AB01FF30AC0000306E200130AB00AC0182

:1000B00000306E20AB01AC01FF306E20AB0101308F

:1000C000AC0000306E20FF30AB00AC0100306E2081

:1000D000AB01AC0101306E2039286D28AD00AE01B6

:1000E000AB080319AB282B08280203187B28280823

:1000F0002B02AE00822828082B02031882282B0826

:100100002802AE002E08AF00AF08031D8828AB28D8

:1001100034222808B4002908B5002A08B6002708A8

:1001200062222B08280203189728A80A9A2801306F

:100130002802A800851C9D282221051BA028A9288B

:100140002808B4002908B5002A08B600270862224A

:100150009D28AF038428AC080319E6282C0829023F

:100160000318B62829082C02AE00BD2829082C0245

:100170000318BD282C082902AE002E08AF00AF08D6

:10018000031DC328E62834222808B4002908B50036

:100190002A08B600270862222C0829020318D22850

:1001A000A90AD52801302902A900851CD8282221B6

:1001B000051BDB28E4282808B4002908B5002A0814

:1001C000B60027086222D828AF03BF28AD0803195C

:1001D00021292D082A020318F1282A082D02AE0031

:1001E000F8282A082D020318F8282D082A02AE0044

:1001F0002E08AF00AF08031DFE282129342228084D

:10020000B4002908B5002A08B600270862222D0884

:100210002A0203180D29AA0A102901302A02AA006D

:10022000851C13292221051B16291F292808B40023

:100230002908B5002A08B600270862221329AF034F

:10024000FA280800051D2B293C22B0003C22B100F1

:100250003C22B2003129FF30B0000130B100013042

:10026000B200FE30B300342285183729332A300813

:10027000B4003108B5003208B60027086222B30B7B

:100280003329051B44294D293008B4003108B50035

:100290003208B600270862224129051D56293C2252

:1002A000B0003C22B1003C22B2005C29FF30B0001B

:1002B000FF30B1000130B200FE30B30034228518A7

:1002C0006229332A3008B4003108B5003208B6007C

:1002D00027086222B30B5E29051B6F297829300895

:1002E000B4003108B5003208B600270862226C2934

:1002F000051D81293C22B0003C22B1003C22B20005

:1003000087290130B000FF30B1000130B200FE306B

:10031000B300342285188D29332A3008B4003108FF

:10032000B5003208B60027086222B30B8929051BE5

:100330009A29A3293008B4003108B5003208B60064

:10034000270862229729051DAC293C22B0003C22D7

:10035000B1003C22B200B2290130B000FF30B10040

:10036000FF30B200FE30B30034228518B829332A9A

:100370003008B4003108B5003208B6002708622200

:10038000B30BB429051BC529CE293008B4003108A8

:10039000B5003208B60027086222C229051DD729F8

:1003A0003C22B0003C22B1003C22B200DD290130E9

:1003B000B0000130B100FF30B200FE30B300342293

:1003C0008518E329332A3008B4003108B500320813

:1003D000B60027086222B30BDF29051BF029F92993

:1003E0003008B4003108B5003208B6002708622290

:1003F000ED29051D022A3C22B0003C22B1003C221E

:10040000B200082AFF30B0000130B100FF30B20066

:10041000FE30B300342285180E2A332A3008B40087

:100420003108B5003208B60027086222B30B0A2A49

:10043000051B1B2A242A3008B4003108B5003208F5

:10044000B60027086222182A051D2D2A3C22B0007A

:100450003C22B1003C22B200332AFF30B000013010

:10046000B1000130B2000800851F392A3230A700E0

:100470003B2A0530A70008000830B3005622B30B12

:100480003E2AA408031D472A0130492A492A240884

:10049000492A0800AB002B08A4000130A500A601E2

:1004A0001830AC005622AC0B522A08000030A618B7

:1004B000FF3A261BFF3AA61BFF3A013EA40DA50DED

:1004C000A60D0800B7002011A0112012A0122013C1

:1004D000A01334083502031D862A34083602031D92

:1004E000862A3608023C03187C2A02303602B600FF

:1004F00001303502B500852A3608023C031C852AE6

:100500003608013EB5000230B407BB2A3408350274

:10051000031D982A3408023C0318922A0130350240

:10052000B500972A3408023C031C972AB40ABB2A58

:1005300034083602031DAA2A3408023C0318A42AF0

:1005400001303602B600A92A3408023C031CA92A4D

:10055000B40ABB2A36083502031DBB2A3608023C02

:100560000318B62A01303502B500BB2A3608023C12

:10057000031CBB2AB50A340835020318EE2A3508D5

:1005800036020318CC2A3608B8003508B9003408FA

:10059000BA0020162017ED2A360835020318DD2A86

:1005A000360834020318DD2A3508B8003408B900CB

:1005B0003608BA00A015A016ED2A36083502031831

:1005C000ED2A340836020318ED2A3508B80036083B

:1005D000B9003408BA00A015A017202B3508340242

:1005E0000318202B360835020318FF2A3408B800F8

:1005F0003508B9003608BA0020152017202B350819

:1006000036020318102B360834020318102B340856

:10061000B8003608B9003508BA002015A017202BFD

:10062000350836020318202B340836020318202B15

:100630003608B8003408B9003508BA002016A016EC

:100640003A08BB0039083A02BA0038083902B90042

:1006500083168330620083123808FF3CBC003908DF

:10066000FF3CBD003A08FF3CBE000B113C08810076

:10067000861406158615572320198610A019061111

:10068000201A86113D0881005723A01A8610201BCE

:100690000611A01B86113E08810057238610061103

:1006A00086113B0881005723B70B352B5B2B0B1DA5

:1006B000572B0B11080008007F2307309F0008000C

:1006C000702B702B702B702B702B702B702B702B52

:1006D000732B732B732B732B732B732B732B732B2A

:1006E0002308660008002208650008000108AE0023

:1006F0002E08AD000800AB002B0862000800831232

:0407000003130800D7

:02400E00623F0F

:00000001FF

 

OG .JAL

 

Klikk for å se/fjerne innholdet nedenfor

-- file : ikea_mood_lamp.jal

-- author : Toon Beerten

-- date : 21 August 2006

-- purpose : mood lamp program

-- contact : [email protected]

-- website : http://tobe.nimio.info

--

-- Copyright © 2006 Toon Beerten

-- Free for non-commercial use

-- This software must be purchased if it is to be used in commercial endeavors,

-- but may be used free-of-charge for other purposes.

 

include 16f628_4

include jpic

include jlib

include jpwm3 -- custom pwm library

include jdelay

include jrtl -- jrtl = operators

include random3 -- random library

 

-- i use IntRC I/O, PWRT ON, BODEN ON, rest off

-- tick MCLR off when programming!!

var byte time = 1

var byte R = 255

var byte G = 1

var byte B = 1

var bit pause = false

 

option = option & 0x7f

disable_a_d_functions

-- disable_ad_inputs

 

pin_a0_direction = output

pin_a6_direction = input -- controls pause

pin_a2_direction = input -- random function

pin_a3_direction = output

pin_a4_direction = output

pin_a5_direction = output

pin_a1_direction = input -- controls transition

pin_a7_direction = input -- controls speed

pin_b0_direction = output

pin_b1_direction = output

pin_b2_direction = output

pin_b3_direction = output

pin_b4_direction = output

pin_b5_direction = output

pin_b6_direction = output

pin_b7_direction = output

 

 

-- randomize

randomize(34)

-- procedures

 

procedure speed is -- controls speed

if pin_a7 == high then

time = 50

else

time = 5

end if

end procedure

 

procedure flash is -- program to abruptly switch to another color

 

var byte RR

var byte GG

var byte BB

 

 

if pin_a2 == high then

RR = random_byte

GG = random_byte

BB = random_byte

else

RR = 255

GG = 1

BB = 1

end if

 

For 254 loop

speed

if pin_a1 == low then

return

end if

PWM_OUT(RR,GG,BB, time)

end loop

 

while pin_a6 == high loop

PWM_OUT(RR,GG,BB, time)

end loop

 

if pin_a2 == high then

RR = random_byte

GG = random_byte

BB = random_byte

else

RR = 255

GG = 255

BB = 1

end if

 

For 254 loop

speed

if pin_a1 == low then

return

end if

PWM_OUT(RR,GG,BB, time)

end loop

 

while pin_a6 == high loop

PWM_OUT(RR,GG,BB, time)

end loop

 

if pin_a2 == high then

RR = random_byte

GG = random_byte

BB = random_byte

else

RR = 1

GG = 255

BB = 1

end if

 

For 254 loop

speed

if pin_a1 == low then

return

end if

PWM_OUT(RR,GG,BB, time)

end loop

 

while pin_a6 == high loop

PWM_OUT(RR,GG,BB, time)

end loop

if pin_a2 == high then

RR = random_byte

GG = random_byte

BB = random_byte

else

RR = 1

GG = 255

BB = 255

end if

 

For 254 loop

speed

if pin_a1 == low then

return

end if

PWM_OUT(RR,GG,BB, time)

end loop

 

while pin_a6 == high loop

PWM_OUT(RR,GG,BB, time)

end loop

if pin_a2 == high then

RR = random_byte

GG = random_byte

BB = random_byte

else

RR = 1

GG = 1

BB = 255

end if

 

For 254 loop

speed

if pin_a1 == low then

return

end if

PWM_OUT(RR,GG,BB, time)

end loop

 

while pin_a6 == high loop

PWM_OUT(RR,GG,BB, time)

end loop

if pin_a2 == high then

RR = random_byte

GG = random_byte

BB = random_byte

else

RR = 255

GG = 1

BB = 255

end if

 

For 254 loop

speed

if pin_a1 == low then

return

end if

PWM_OUT(RR,GG,BB, time)

end loop

 

while pin_a6 == high loop

PWM_OUT(RR,GG,BB, time)

end loop

if pin_a2 == high then

RR = random_byte

GG = random_byte

BB = random_byte

else

RR = 255

GG = 1

BB = 1

end if

 

end procedure

 

 

 

procedure fade(byte in Rnew, byte in Gnew, byte in Bnew) is

-- fade from 1 colour to another

-- passing 0 means stay the same

var byte counter = 0

 

if Rnew != 0 then

if Rnew > R then

counter = Rnew - R

elsif Rnew < R then

counter = R - Rnew

end if

For counter loop -- (R,G,B)

speed

PWM_OUT(R,G,B, time)

if Rnew > R then

R = R + 1

else

R = R - 1

end if

if pin_a1 == high then -- other mode

flash

end if

while pin_a6 == high loop -- pause

PWM_OUT(R,G,B, time)

end loop

end loop -- (Rnew,Gnew,Bnew)

end if

 

if Gnew != 0 then

if Gnew > G then

counter = Gnew - G

elsif Gnew < G then

counter = G - Gnew

end if

For counter loop -- (R,G,B)

speed

PWM_OUT(R,G,B, time)

if Gnew > G then

G = G + 1

else

G = G - 1

end if

if pin_a1 == high then -- other mode

flash

end if

while pin_a6 == high loop -- pause

PWM_OUT(R,G,B, time)

end loop

end loop -- (Rnew,Gnew,Bnew)

end if

 

if Bnew != 0 then

if Bnew > B then

counter = Bnew - B

elsif Bnew < B then

counter = B - Bnew

end if

For counter loop -- (R,G,B)

speed

PWM_OUT(R,G,B, time)

if Bnew > B then

B = B + 1

else

B = B - 1

end if

if pin_a1 == high then -- other mode

flash

end if

while pin_a6 == high loop -- pause

PWM_OUT(R,G,B, time)

end loop

end loop -- (Rnew,Gnew,Bnew)

end if

 

end procedure

 

-- main loop

 

forever loop

 

-- we start at R = 255, G = 1, B = 1

 

 

if pin_a2 == high then

fade(random_byte,0,0)

fade(0,random_byte,0)

fade(0,0,random_byte)

else

R = 255

G = 1

B = 1

fade(0,255,0)

fade(1,0,0)

fade(0,0,255)

fade(0,1,0)

fade(255,0,0)

fade(0,0,1)

end if

 

end loop

 

 

 

Takker for all hjelp.

 

og BTW jeg er grønn på programmering av IC kretser, bare så det er sagt

Lenke til kommentar
Videoannonse
Annonse
Hvilket program programmerer du IC'en med? Har du valgt rett device på dette programmet du bruker?

8425012[/snapback]

 

Jeg bruker IC prog.

innstillingene jeg bruker ser slik ut.

Klikk for å se/fjerne innholdet nedenfor

dump6do6.png

 

og jeg har lastet ned xp driveren til icprog og installert den.

Lenke til kommentar

Den vanligste feilen er at brenneren ikke får brennespenning (skal være 13,5 volt om jeg ikke husker feil). Jeg tipper at det er en maskinvarefeil...

 

gtp_usb_lite_dip.jpg

Hvis du ser på oversikten, bør du sjekke tilkoblingene på PIC DIP18. Se at du har 13,5 volt på VPP, 5 volt på VDD, og sjekk om du har jord.

Lenke til kommentar
Den vanligste feilen er at brenneren ikke får brennespenning (skal være 13,5 volt om jeg ikke husker feil). Jeg tipper at det er en maskinvarefeil...

 

Klikk for å se/fjerne innholdet nedenfor
gtp_usb_lite_dip.jpg

Hvis du ser på oversikten, bør du sjekke tilkoblingene på PIC DIP18. Se at du har 13,5 volt på VPP, 5 volt på VDD, og sjekk om du har jord.

8429273[/snapback]

 

jeg har 5v når jeg måler fra vdd til jord men på vpp har jeg ikke 13v

Lenke til kommentar
jeg har 5v når jeg måler fra vdd til jord men på vpp har jeg ikke 13v

8430162[/snapback]

Now there's your problem...

 

Brennespenningen skal være 13 volt når man enten leser eller brenner PICen. Ellers er den null...

8434977[/snapback]

 

 

Når jeg måler brennespenningen må jeg få IC prog til å lese eller skrive til ICen?

eller kan jeg måle når den står idle?

Lenke til kommentar

Gå på Settings -> Hardware Check -> Klikk på "Enable MCLR"

 

Hvis du krysser av "Enable Data out" skal "Data in" krysses av hvis programmeren er på. Det krysses ut hvis "Enable Data out" krysses ut igjen.

 

Det er vanlig at sånne JDM programmere ikke tilfører nok spenning, og det kan være lurt å bruke en ekstern strømkilde. En 7812 + to dioder mellon jord på spenningsregulatoren og jord vil gi 13.2 volt.

Lenke til kommentar
Gå på Settings -> Hardware Check -> Klikk på "Enable MCLR"

 

Hvis du krysser av "Enable Data out" skal "Data in" krysses av hvis programmeren er på. Det krysses ut hvis "Enable Data out" krysses ut igjen.

 

Det er vanlig at sånne JDM programmere ikke tilfører nok spenning, og det kan være lurt å bruke en ekstern strømkilde. En 7812 + to dioder mellon jord på spenningsregulatoren og jord vil gi 13.2 volt.

8437056[/snapback]

 

Kan du tegne opp et skjema for hvordan dette blir? ut i fra skjemaet som jeg linker til lengre opp.

Lenke til kommentar
Sånn. Du må sette MCLR på inverted i Hardware menuen.

 

Jeg bruker en modda joule theif for å få 17V fra 12V linjen på PCen. Du kan også bruke en extern strømforsyning, bare den deler jordingen med PCen.

8438749[/snapback]

 

da kan jeg bare ta en hobbystrømforsyning og koble på da så lenge den er på samme forgreineren som pcen?

Lenke til kommentar

Det kan hende jeg tar feil, men jeg tror jord på en JDM-programmerer ligger på -5v. Hvis du da får 13v inn på MCLR fra en ekstern strømforsyning, får du vel 18v på MCLR i forhold til jord. Eller er jeg helt på jordet nå?

 

Geir A.

Lenke til kommentar

Jepp.

 

Har du sjekket om programmeren funker ennå? Det kan godt hende at den fungerer som den skal uten en ekstern 13V kilde. Sjekk at du får riktig signaler fra programmeren med "hardware check" i ICprog. Hvis ikke må programmeren fikses, eller at ICprog må konfigures riktig først.

Lenke til kommentar
  • 2 uker senere...

Noen her som kan lage en PCB layout til denne JDM programmeren Uzzors2k linker til eller?

jeg klarer bare å lage Layouts til enklere kretser.

har ikke mye erfaring etter å bare snart være ferdig med førsteåret på elfag.

 

Klikk for å se/fjerne innholdet nedenfor

jdmprog.gif

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...