PIC16F84

C

cwt

Guest
Moi ..
Tällä hetkellä olen yrittänyt annetun PIC16F84 toimimaan sarjapäätettä rinnakkain tietojen muuntimen ..
I'll liittää minun lähdekoodin tästä ..
Ei ongelma-ala, kun yritän minun koodi.
The 8LEDs (edustaa 8 rinnakkain bittiä) ei syttyä vastaavasti.Joskus tulee oikea tuotos, joskus tapana.Suurimman osan ajasta, se on väärä tuotos.

<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
LUETTELO p = 16F84
include "P16F84.inc"

;------------------------------------------------- -----------------

CBLOCK 0x20; alkaen osoite yleinen diaari

BIT_COUNTER
NEXT_BIT
DELAY_COUNT
TEMP_STORE

ENDC

;------------------------------------------------- -----------------

BSF STATUS, RP0; alustaa RA0 syötteenä
MOVLW 0x01
MOVWF TRISA
BCF STATUS, RP0
CLRF PORTA

BSF STATUS, RP0; initialise portB tuotokseksi
MOVLW 0x00
MOVWF TRISB
BCF STATUS, RP0
CLRF PORTB

Goto START; mene päävalikkoon ohjelma

;------------------------------------------------- -----------------START_DELAY MOVLW 0x0C; subroutine viivyttää 52us
MOVWF DELAY_COUNT
START_WAIT NOP
DECFSZ DELAY_COUNT, 1
Goto START_WAIT
RETURN

;------------------------------------------------- ------------------

BIT_DELAY MOVLW 0x18; subroutine viivyttää 104us
MOVWF DELAY_COUNT
BIT_WAIT NOP
DECFSZ DELAY_COUNT, 1
Goto BIT_WAIT
RETURN

;------------------------------------------------- ------------------

START BTFSC PORTA, 0; havaita aloittaa bittinen
Goto START
CALL START_DELAY; varmista aloittaa bit on yhä olemassa
BTFSC PORTA, 0
Goto START

MAIN CLRF PORTB

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 0

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 1

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 2

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 3

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 4

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 5

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 6

CALL BIT_DELAY
BTFSC PORTA, 0
BSF TEMP_STORE, 7

CALL BIT_DELAY
MOVF TEMP_STORE, 0
MOVWF PORTB

Goto START

END

 
cwt wrote:

Joskus tulee oikea tuotos, joskus tapana.
Suurimman osan ajasta, se on väärä tuotos.
<img src="http://www.edaboard.com/images/smiles/icon_sad.gif" alt="Surullinen" border="0" />
 
Sain 51us ja 99us (lukuun ottamatta CALL instruction) teidän 2 viive rutiineja on karkea count.Ystävällisesti tarkistaa niitä uudelleen.

 
Mitä tulokytkentä varten RS232 näyttää?

MAX232 tai transistori tai suora yhteys?

Miten olette kokoonpanoasetuksia sulakkeet varten 16C84?

ystävällisin terveisin

 
Sinun viive rutiinit olisi OK, se ei ole todellakaan väliä, jos viive 49 tai 51 (tai 102 sijasta 104) meille

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Hymyillä" border="0" />Haluaisin kuitenkin tarkistaa Temp_Store kuin unohtaa, poista se sen jälkeen, kun olet saanut 8 databits ...

CALL BIT_DELAY
MOVF TEMP_STORE, 0
MOVWF PORTB;<-- insert this here

CLRF TEMP_STORE;
<- lisätä täällä

Goto STARTystävällisin terveisin

 

Welcome to EDABoard.com

Sponsor

Back
Top