Sådan output en gnaske på PORT C ved hjælp af PIC-C

T

techie

Guest
PIC-C
PIC16F873
RC7, RC6, RC4, RC3 tilsluttet til LCD-port (4-bit)
RC3, RC2 forbundet til 2 relæer
RC1, RC0 forbundet til 2 Buttons (Input)

Hvordan får jeg output-4-bit data om RC7-RC4 uden at forstyrre resten af havnen pins

 
Først læse en Portb, derefter ændre din bits, derefter foretage en skrive.På denne måde får kun dine bits ændret, andre bor det samme.Kan en anden person også bekræfte dette?

 
Kode:Temp = PORTC; / * Læs port * /

Temp & = 0x0f; / * Clear høje bits, holde lav bit * /

Temp | = (newValue <<4); / * Shift-4-bit ny værdi til hi nippe fastsætte og og / klar bits * /

PORTC = Temp; / * Skriv ny værdi til port * /

 
denne kode asummes, at du indstiller PORTC som "FAST_IO", så det vil ikke ændre din TRISC konfiguration
Kode:# brug FAST_IO (C)void portc_init (void) (

set_tris_c (0x03); / / lavere bits er input ...

)void lcd_out4 (unsigned char nippe) (

output_c ((nippe <<4) | (input_c () & 0x0F));

)

 
Der er et problem med teknikken suggestd af "btbass".Det skifter retning af havnen, før du læser den, så den vender tilbage til status på benene, som altid er nul.Så RC2 og RC3 gå tilbage til lav tilstand.

Jeg er lidt usikker på metoden foreslået af Kurenai.Det giver andet resultat end forventet.

 
Hej,
Aldrig tro hvad du læser på havnen pins, medmindre de er konfigureret som input.

Port Pin læse-, efter-skriver kan forårsage elendighed og problemer - især hvis der er nogen kapacitive eller betydelig belastning på output pins.

Hvis du ønsker robust og pålidelig kode bruger en port-klon-register.
Har alle dine læse-modify-skrive-aktioner på klon-register, så skriv det til havnen (ben).

Dette gælder for alle programmerings sprog og processorer.

Denne situation er hjulpet af processorer, der har en havn LATCH register (f.eks 18FXXXX serien), hvor låsen register fungerer som output-klon.

Men - som havnen låsen, hvis ofte del af havnen, silicium strukturen er det ikke ukendt heller ikke ualmindeligt, at eksterne kredsløb til at forårsage et output pin til at glimre i en forandret smæklås tilstand.

Jeg er sikker på du alle backup du vigtige design filer - så hvorfor ikke gøre det samme for vigtige og nødvendige datafiler i en mikro?

Polymath

 
Endte med at bruge lidt efter lidt opdatering af 4 port ben.Koden ser grimt ud, men virker.

 

Welcome to EDABoard.com

Sponsor

Back
Top