PIC 16f628-problem

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
baltazar
Inlägg: 106
Blev medlem: 19 oktober 2003, 21:50:18

PIC 16f628-problem

Inlägg av baltazar »

Jag har försökt programmera en 16f628 flera i dagar....
Kan inte fatta vad som är fel, tycker jag har provat allt. Jag har tillgång till en "proffs"-programmerare, jag har programmerat en 16f84 utan några som helst problem så den verkar ju fungera riktigt. Jag har gjort ett riktigt enkelt progrm som bara blinkar en lysdiod, men inte ens det funkar.
Det enda som händer är att lysdioden lyser konstant när MCLR är på+ och slocknar på-.

Finns det någon som kan vara snäll och hjälpa mig!

Så här ser det ut:
Programmerare: Advantech LabTool 48 uppdaterad till LabTool 48XP
Program: Advantech LabTool 48

4 Mhz kristall

Ansluningar:
Ben 5 jord
Ben 14 +
Ben 4 + (MCLR)
Ben 11 (Rb5) lysdiod till jord via 1K
Ben 15 Kristall + 15 pF till jord
Ben 16 - " - -"-
Alla andra ben "hänger i luften" men är programmerade till utgångar



list p=16f628
#include <p16f628.inc>

__CONFIG _CP_OFF & _WDT_OFF & _BODEN_ON & _PWRTE_ON & _XT_OSC & _MCLRE_ON & _LVP_OFF

;***** VARIABLE DEFINITIONS

STATUS EQU 0x03
porta EQU 0x05
portb EQU 0x06
trisa EQU 0x85
trisb EQU 0x86
w_temp EQU 0x70
status_temp EQU 0x71
var1 EQU 0x72
var2 EQU 0x73

;*****************************************************
ORG 0x000
goto init
ORG 0x004
movwf w_temp
movf STATUS,w
movwf status_temp
call wait
movf status_temp,w
movwf STATUS
swapf w_temp,f
swapf w_temp,w
retfie

;*****************************************************

init clrw
movwf porta
bsf STATUS,5
bcf STATUS,6
movlw 0x00
movwf trisa
movlw b'00000000'
movwf trisb
bcf STATUS,5
goto main
;*****************************************************

wait movlw 0xff
movwf var2
loop2 movlw 0xff
movwf var1
loop1 decfsz var1,1
goto loop1
decfsz var2,1
goto loop2
return
;**********************************************************
main clrwdt
bsf portb,5
nop
call wait
nop
bcf portb,5
nop
goto main
end
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

Jag är nästan alltid snäll... Ibland iallafall...

Lysdioden blinkar som den ska. Den lyser i typ en sekund eller så och är sedan släckt i 0.00001 sekunder. :-)

Det fungerar säkert bättre med både en wait vid tänd och en wait vid släckt lysdiod.

Kod: Markera allt

bcf portb,5 
nop 
call wait                <---  Lägg till waiten här åxå!
goto main 
end
Användarvisningsbild
baltazar
Inlägg: 106
Blev medlem: 19 oktober 2003, 21:50:18

Inlägg av baltazar »

Herregud! Nu känner jag mig riktigt korkad... :oops: var det så enkelt...
Tack Mats!
Ska prova imorron igen...
Användarvisningsbild
Xyzzy
Inlägg: 1260
Blev medlem: 30 januari 2004, 22:31:07
Ort: Uppsala, Sweden

Inlägg av Xyzzy »

Om du bara vill ha LEDen blinka kan du alltid koppla ett motstånd mellan utgången och MCLR, och sedan en konding mellan MCLR och GND, fast... det blir ju lite bökigare om du vill kunna ändra frekvens :roll:

Förlåt, kan KUNDE bara inte låta bli *visslar*
matseng
Inlägg: 2360
Blev medlem: 16 september 2003, 17:18:13
Ort: Dubai, United Arab Emirates
Kontakt:

Inlägg av matseng »

baltazar skrev:Herregud! Nu känner jag mig riktigt korkad... :oops: var det så enkelt...
Jag såg inte felet jag heller förrän jag kört programmet ett varv i MPLAB's simuator.
Användarvisningsbild
EagleSpirit
Inlägg: 1288
Blev medlem: 27 maj 2003, 23:15:48
Ort: Västerås
Kontakt:

Inlägg av EagleSpirit »

du skulle ju iofs kunna använda comf instruktionen. Då blir programmet lite kortare :roll:
Skriv svar