PIC 16F877 montāža kodu

S

sal

Guest
Es esmu darba ar PIC 16F877
Mana PIC programma lasījums ieguldījums porta, tad liecina, produkcijas portB
Mana problēma ir, kad porta ir 10001, tad tas būs RB0 = 1, ja porta ir 10011 tas dos RB1 = 1
bet, kad porta ir 10011, ir dos gan RB0, RB1 = 1
Kā es varu atrisināt šo problēmu?Es gribu, kad porta ir 10011, ir padarīt RB1 = 1 tikai
Paldies par jebkuru ieteikumu.

 
Es nevaru nozvejas problēmu, ja nokopēsit PORTA par PORTB tas būs vienāds definīciju, jūs rakstāt, ka Jūsu programma PORTB ir vienāds ar PORTA tad kur ir problēma?Ja jums ir 10011 par PORTA (RA0 = RA1 = 1), tad jums ir jābūt RB0 = RB1 = 1.

Izmēģiniet šo kodu (nav pārbaudīts, bet vajadzētu strādāt

<img src="http://www.edaboard.com/images/smiles/icon_biggrin.gif" alt="Loti laimīgs" border="0" />

).

Kods:# Ietvert p16F877.inc

__config _HS_OSC & _WDT_OFF & _LVP_OFF & _PWRTE_ONORG 0RESET

nop

Goto STARTORG 4START

BSF STATUSS, RP0

movlw b'11111111 "Set PORTA virziena visas ieejas

movwf TRISA

movlw b'00000000 "Set PORTB virziena visas izejas

movwf TRISB

BCF STATUS, RP0GALVENIE

movf PORTA, W; kopēšana PORTA līdz W

movwf PORTB, Copy W uz PORTB

Iet GALVENIE

beigas

 
mana problēma ir tā, ka: kad es wrote 10001 jo porta RB0 = 1, kad es wrote 10011 uz porta es nevēlos RB0 = 1, es tikai vēlos RB1 = 1
Paldies par jūsu atbildi

 
Ir daudz zināt, kādi būtu valsts otras tapas, nemainīgi no iepriekšējiem valsts, spiesta 0 spiesti 1?

Ja Jums nav jārūpējas par citu tapas varat mēģināt izmantot kaskādes kombināciju btfss, btfsc instrukciju, lai uzstādītu vai notīriet izejas pin accordling jūsu vajadzību.

Bye
Pow

 
salīgs rakstīja:

Es esmu darba ar PIC 16F877

Mana PIC programma lasījums ieguldījums porta, tad liecina, produkcijas portB

Mana problēma ir, kad porta ir 10001, tad tas būs RB0 = 1, ja porta ir 10011 tas dos RB1 = 1

bet, kad porta ir 10011, ir dos gan RB0, RB1 = 1

Kā es varu atrisināt šo problēmu?
Es gribu, kad porta ir 10011, ir padarīt RB1 = 1 tikai

Paldies par jebkuru ieteikumu.
 
Paldies visiem atbalsta.Man risinājums jau ir.Te ir mana pirmkodu

Quote:

SARAKSTS P = 16F877, W =- 302

__CONFIG 0x3D32; HS MODE, WDT OFFstatuss equ H'0003 "

z equ H'0002 "

PORTA equ 0x05; Bank0

PORTB equ 0x06TRISA equ 0x85; Bank1

TRISB equ 0x86

ADCON1 equ 0x9FX equ 0x70; RAM

Y equ 0x71

Z equ 0x72

ROUND equ 0x73

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

ORG 0x0000BANKSEL ADCON1; Izvēlēties ADCON1 <bank1>

MOVLW B'00000111 "PORTA, Porte = ciparu portu

; MOVLW B'00000000 "PORTA, Porte = analogais ports

MOVWF ADCON1

MOVLW B'11111111 "RA3: RA0

MOVWF TRISA

MOVLW B'00000000 "PORTB = izejas

MOVWF TRISBBANKSEL PORTA; Izvēlēties PORTA <bank0>Cilpa

movlw 0x01; w = 10001

xorwf PORTA, w

btfsc statusu, z, ja Z-karoga nav noteikts, izlaidiet atpakaļ

BSF PORTB, 0; atpakaļ, ja RA0 kas

movlw 0x02

xorwf PORTA, w

btfsc statusu, z

BSF PORTB 1

movlw 0x03

xorwf PORTA, w

btfsc statusu, z

BSF PORTB, 2

Iet Loop
KAVĒJUMS CLRF X; Nokavējums ~ 500 ms

CLRF Y

MOVLW 0,13

MOVWF Z

DECFSZ X 1

Iet $ -1

DECFSZ Y 1

Iet -3 $

DECFSZ Z, 1

Iet uz -5 $

RETURNEND

 

Welcome to EDABoard.com

Sponsor

Back
Top