;Szia! Kijavítottam a forráskódodat, hasonlítsd össze a tiéddel! ; A címkék, operandusok stb. között használd a "TAB" billentyűt, így áttekinthetőbb lesz! ;------------------------------------------------------------------------------------------------------------------ LIST P=16F877A #INCLUDE "P16F877A.INC" __CONFIG _HS_OSC&_WDT_OFF&_PWRTE_ON&_LVP_OFF&_CPD_OFF&_WRT_OFF&_CP_OFF ;Itt is volt hiba, pl. FOSC_HS stb. CBLOCK 0X20 ;a 0x20 egy szabad memória rész kezdő címe A1 ;a szabad memória egyik részének a neve (az időzítéshez kell) A2 ;a szabad memória másik részének a neve (az időzítéshez kell) ENDC ;a konfigurációnak a vége ORG 0 BEALL CLRF PORTB ;ez így elmegy, de a többi portot is be kellene állítani BANKSEL TRISB CLRF TRISB BANKSEL PORTB ;én ezt így írnám meg, hogy minden I/O egyértelmű legyen ;BEÁLL BSF STATUS,RP0 ;BANK1-be átlépünk ; MOVLW 0x06 ;PORTA Digitális I/O-vá tétel (ha szükséges) ; MOVWF ADCON1 ;Mindegyik PORTA digitális (ha szükséges) ; MOVLW B'00000000' ;Betöltjük az akksiba a TRISA-ba irandót ; MOVWF TRISA ;Beállítjuk a PORTA-t kimenetnek (a nullák miatt) ; MOVLW B'00000000' ;Betöltjük az akksiba a TRISB-be irandót ; MOVWF TRISB ;Beállítjuk a PORTB-t kimenetnek (a nullák miatt) ; MOVLW B'00000000' ;Betöltjük az akksiba a TRISD-be irandót ; MOVWF TRISC ;Beállítjuk a PORTC-t kimenetnek (a nullák miatt) ; MOVLW B'00000000' ;Betöltjük az akksiba a TRISC-be irandót ; MOVWF TRISD ;Beállítjuk a PORTD-t kimenetnek (a nullák miatt) ; MOVLW B'00000000' ;Betöltjük az akksiba a TRISE-be irandót ; MOVWF TRISE ;Beállítjuk a PORTE-t kimenetnek (a nullák miatt) ; BCF STATUS,RP0 ;BANK0-ba visszalépünk PROGRAM MOVLW B'00000001' ;kiegészítettem nyolc bit-re, így egyértelmű a többi kimenet is MOVWF PORTB CALL IDO ;szubrutin hívás MOVLW B'00000010' MOVWF PORTB CALL IDO MOVLW B'00000100' MOVWF PORTB CALL IDO MOVLW B'00001000' MOVWF PORTB CALL IDO MOVLW B'00000100' MOVWF PORTB CALL IDO MOVLW B'00000010' MOVWF PORTB CALL IDO GOTO PROGRAM ;ugrik aPROGRAM címkére ; MOVLW B'00000001' ;ezt kihagynám mert dupla ideig világítana az első LED ; MOVWF PORTB ; CALL IDO ; GOTO PROGRAM IDO MOVLW d'150' ;0-255 ig beírható szám (d'xxx' decimális) futófénynél kb. D'150' MOVWF A1 ;bekerül az A1 memóriába ID MOVLW d'150' ;0-255 ig beírható szám (d'xxx' decimális) futófénynél kb. D'150' MOVWF A2 ;bekerül az A2 memóriába ID1 NOP ;nem csinál semmit, időhúzás NOP NOP NOP NOP DECFSZ A2,f ;csökkenti az A2 tartalmát eggyel, amikor nulla lesz kihagy egy sort GOTO ID1 ;visszaugrik az ID1 címkére DECFSZ A1,f ;csökkenti az A1 tartalmát eggyel, amikor nulla lesz kihagy egy sort GOTO ID RETURN ;szubrutinból visszatérés a hívás helyét követő sorhoz END ;Üdv Zoli