Bonjour à tous,
Je vais commencer par vous expliquer mon projet et ensuite le problème.
J'ai réalisé un afficheur à leds fonctionnant en 12V avec 2 chiffres sur le principe d'un afficheur 7 segments. Sur les rubans de leds, des résistances sont déjà intégrés. Les segments sont reliés en anode commune et j'ai multiplexé mon afficheur sur le principe de l'image en pièce jointe.
Pour la partie électronique, je travaille sur un PIC16F876 avec un Quartz de 20MHz. Le pic fonctionnant en 5V, j'ai intégré un circuit intégré ULN2003 sur le port B pour les différents segments (Leds de 12V). Pour piloter les anodes des afficheurs, j'utilise un transistor PNP: le BC557B pour être précise.
Le problème est que les sorties anodes du pic restent à l'état haut. Sur le simple programme ci-dessous pour afficher le chiffre 1 sur AN0, AN0 est à l'état haut et je demande à AN1 d'être à l'état bas mais pourtant elle reste à l'état haut. C'est mon problème et je ne vois pas d'où ça vient. Est-ce que quelqu'un aurait un indice pour moi svp?
Merci!
,Ajouté aussi les balises code obligatoires pour les programmesCode:., #define _LEGACY_HEADERS 0X00 #include <pic.h> // invalide la protection du code // invalide le watchdog // selectionne un quartz de 20Mz pour horloge cpu // invalide la programmation faible tension __CONFIG(UNPROTECT & WDTDIS & HS & LVPDIS ); #include <string.h> /********************************* programme principal *************************************************/ void main() { TRISA0=TRISA1=0; TRISB0=TRISB1=TRISB2=TRISB3=TRISB4=TRISB5=TRISB6= 0;; PCFG3=0; PCFG2=PCFG1=PCFG0=1; RA0=RA1=0; RB0=RB1=RB2=RB3=RB4=RB5=RB6=0; while(1) { RA0=1; RA1=0; RB1=RB2=1; }}
-----