Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
Bonjour, je dois réaliser un affichage sur un afficheur 7 segments. Cet afficheur sera commandé par un SAA 1064 et le SAA 1064 sera commandé par bus i2c par un PIC 16F877.
Mon problème c'est que je n'ai pas d'affichage, je pense que mon cablage est bon et que j'ai un probème de programmation.
J'ai mis des résistances de rappel, les signaux SCL et SDA du PIC arrivent bien sur les broches 24 et 23 du SAA.
Voici mon programme :
#include <maqc.h> //appel de l'entête
#use fast_io (c)
#use delay (clock=4000000) //quartz à 4Mhz
#use I2C(master,sda=PIN_C4,scl=PIN_ C3)
void main(void)
{
bit_clear(tris_c,3);
bit_clear(tris_c,4);
for(;
{
i2c_start(); //condition de départ
i2c_write(0x70); //esclave à l'@ 70h
i2c_write(0x01); //bits d'instruction
i2c_write(0x48); //bits de controle
i2c_write(0xff); //allumage de toutes les Leds
i2c_stop();
}
}
Merci de m'aider en modifiant mon programme ou en me m'écrivant un autre programme.
Re : Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
for(;
C'est quoi ca ??
25/02/2008 - 08h05
Laurent.P
Date d'inscription
février 2008
Messages
15
Re : Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
Finalement j'ai réussi à allumer mon afficheur mais je n'arrive pas à l'éteindre, voici mon programme :
#use I2C(master,sda=PIN_C4,scl=PIN_ C3)
void main(void)
{
bit_set(tris_c,3);
bit_set(tris_c,4);
for(;
{
i2c_start(); //condition de départ
i2c_write(0x70); //esclave SAA à l'@ 70h
i2c_write(0x00); //adresse du registre de configuration
i2c_write(0x20); //mode statique avec 6mA
i2c_write(0xff); //allumer tous les segments du digit 1
delay_ms(1000); //pendant 1s
i2c_write(0x00); //allumer tous les segments du digit 1
delay_ms(1000); //pendant 1s
i2c_write(0xff); //allumer tous les segments du digit 2
delay_ms(1000); //pendant 1s
i2c_write(0x00); //allumer tous les segments du digit 2
delay_ms(1000); //pendant 1s
i2c_stop();
}
}
Merci de m'aider à éteindre mon afficheur en corrigeant mon programme.
25/02/2008 - 12h22
cherwam07
Date d'inscription
mars 2006
Localisation
Ardeche
Âge
28
Messages
364
Re : Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
J'ai survolé le datasheet du composant, j'ai l'impression que les trames i2c sont un petit plus compliquées que ce que tu envois.
Est-ce que pa hasard il ne faudrait pas envoyer l'adresse a chaque fois ?
Quelque chose dans ce style
Code:
while(1) { // Plus joli que for(; ; )
i2c_write(0x70); //esclave SAA à l'@ 70h
i2c_write(0x00); //adresse du registre de configuration
i2c_write(0x20); //mode statique avec 6mA
i2c_write(0xff); //allumer tous les segments du digit 1
delay_ms(1000); //pendant 1s
i2c_write(0x70); //esclave SAA à l'@ 70h
i2c_write(0x00); //adresse du registre de configuration
i2c_write(0x20); //mode statique avec 6mA
i2c_write(0x00); //eteindre tous les segments du digit 1
delay_ms(1000); //pendant 1s
}
21/04/2009 - 14h26
looys
Date d'inscription
avril 2009
Âge
26
Messages
10
Re : Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
svp..je doit réalisé un affichage par saa1064,ce dernier est commander par circuit rcm 2200. la branche adr est lié àa la masse..comment faire le programme. merci de m aidé
<***************>
Pas d'adresse dans les posts, merci de relire la charte.
Dernière modification par HULK28 ; 25/04/2009 à 11h06.
Re : Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
ich habe einen probléme, einen Mikroprozessor rabbit 2000 zu programmieren, der einen Kreislauf saa 1064 durch i2c befiehlt. Programmierung mit dinamic c.. svp hilft mir
De plus le forum est francophone, désolé.
Dernière modification par HULK28 ; 25/04/2009 à 11h07.
18/05/2009 - 09h33
looys
Date d'inscription
avril 2009
Âge
26
Messages
10
Re : Problème de programmation PIC 16F877, SAA 1064 et afficheurs 7 segments
svp aide moi..j'ai une probléme de programmer la carte rcm 22000 par dynamic c pour commander le SAA1064 par i2c .