PIC 16F870 / závady / artefaktů na PORTA, PORTB a PORTC

R

ripkars

Guest
Zdravím všechny,
Jsem setkávají glitching / artefakt účinky na výstupu zámky spojené s PORTA, PORTB a PORTC registrů PIC 16F870.
Kód, který píše tyto porty je:

Kód:SCL_UP EQU H'0020 '

SCL_DN EQU H'0021 '

SDA_ORG EQU H'0022 '

TBYTE EQU H'0023 '

LAMP1 EQU H'0024 '

LAMP2 EQU H'0025 '

T_LAMP1 EQU H'0026 '

T_LAMP2 EQU H'0027 '

TEMPB EQU H'0028 '

TEMPC EQU H'0029 'ORG 00H

; PORTA -> LED diod TLAČÍTKO

; PORTB -> DATA (SDA)

; PORTC -> CLOCK (SCK)BCF STATUS, 7, vypněte všechny přerušeníBSF STATUS, 5; Přepnout do banky 1

MOVLW b'00000111 '; nastavit Porta kolíky na digitální vysílání

MOVWF ADCON1, I / O (místo analogický)

MOVLW b'00000001 '; Nastavte Port kolíky

MOVWF TRISA; pro výstup (s výjimkou RA0).

BSF STATUS, 5; Přepnout do banky 1 znovu (není nutné?)

MOVLW b'00000000 '; set port B na výstup

MOVWF TRISB;

BSF STATUS, 5; Přepnout do banky 1 znovu (není nutné?)

MOVLW b'00000000 '; Set Port C na výstup

MOVWF TRISC;

BCF STATUS, 5; přepnout zpět do banky 0MOVLW d'5 '

MOVWF SCL_UP

MOVLW d'5 '

MOVWF SCL_DN

MOVLW d'150 '

MOVWF LAMP1

MOVLW d'150 '

MOVWF LAMP2

MOVF LAMP1, 0

MOVWF T_LAMP1

MOVF LAMP2, 0

MOVWF T_LAMP2

MOVLW B'00000000 '; inicializovat adresu registru

MOVWF TBYTE

CLRW; Hlavní cyklus

RESTART

BSF PORTA, 2, zapněte RA2 (zelená dioda LED)

CALL GENERIC_DELAY

BCF PORTA, 2; vypnout RA2

BTFSS PORTA, 0, pokud je RA0 UP -> begin

GOTO RESTART

BCF PORTA, 2

; GOTO (OTHER_CODE_NOT_POSTED_BUT_FOR_SURE_NOT_IMPORTANT); Loop blikající LED

GENERIC_DELAY

CLRW

DLY_GEN DECFSZ LAMP1, 1

GOTO DLY_GEN

DECFSZ LAMP2, 1

GOTO DLY_GEN

; RICARICO LAMP1 E LAMP2

MOVF T_LAMP1, 0

MOVWF LAMP1

MOVF T_LAMP2, 0

MOVWF LAMP2

RETURN

 
LED bliká, ale čas, který zůstává ve vypnutém stavu trvá asi 2 až 3 instrukce čas, a na to, co stát má zpoždění generických říká.
byste měli používat simulátor, takže si můžete najít chyby, jako je tenhle snadno.

pozdravy.

 
narcizzo u měli pravdu: po vypálení pic s tímto kódem
Kód:

RESTART

BSF PORTA, 2; accendo RA2 (Led VERDE)

CALL GENERIC_DELAY

BCF PORTA, 2; spengo RA2

CALL GENERIC_DELAY

BTFSS PORTA, 0; se RA0 C až -> Cominicia

GOTO RESTART

BCF PORTA, 2

GOTO MAIN_LOOP
 

Welcome to EDABoard.com

Sponsor

Back
Top