besoin d'aide avec le programme d'interface DS1307 avec 16F877

E

Elizabeth Ann

Guest
bonjour tout le monde.

Je suis nouveau ici, je voudrais demander de l'aide concernant mon projet, qui, à l'interface DS1307 avec 16F877.i sera essentiellement l'utilisation de ce médicament sur ma programmable distributeur, DS1307 et
j'ai besoin que mon horloge et la synchronisation de sorte que les médicaments seront toujours à l'heure.Comment puis-je appeler le DS1307 de sorte que si un délai prédéfini est atteint (entrée par le clavier), le microcontrôleur un signal d'alarme et un voyant clignotant?
en passant,
je suis en utilisant le langage C et CCS C Compiler.

Merci beaucoup.

Elizabeth Ann

 
Elizabeth Ann a écrit:

bonjour tout le monde.Je suis nouveau ici, je voudrais demander de l'aide concernant mon projet, qui, à l'interface DS1307 avec 16F877.
i sera essentiellement l'utilisation de ce médicament sur ma programmable distributeur, DS1307 et j'ai besoin que mon horloge et la synchronisation de sorte que les médicaments seront toujours à l'heure.
Comment puis-je appeler le DS1307 de sorte que si un délai prédéfini est atteint (entrée par le clavier), le microcontrôleur un signal d'alarme et un voyant clignotant?

en passant, je suis en utilisant le langage C et CCS C Compiler.Merci beaucoup.Elizabeth Ann
 
bonjour H_D_R ...

c'est exact, je suis en train d'utiliser mon PIC 16F877a microcontrôleur.

Comment puis-je conserver du temps manuellement à l'aide du clavier et comment puis-je vérifier si mon heure est atteint?

thanks a lot.

Elizabeth Ann

 
Elizabeth Ann a écrit:

bonjour H_D_R ...c'est exact, je suis en train d'utiliser mon PIC 16F877a microcontrôleur.Comment puis-je conserver du temps manuellement à l'aide du clavier et comment puis-je vérifier si mon heure est atteint?thanks a lot.Elizabeth Ann
 
wow, très rapide réponse,
je vous remercie.

Oui, je suis à la fois le stockage d'alarme et l'horloge.

i am using DS1307 avec 16F877a, et je suis dans le programme de construction de la CCS C.

des suggestions?merci encore.

 
Elizabeth Ann a écrit:

wow, très rapide réponse, je vous remercie.Oui, je suis à la fois le stockage d'alarme et l'horloge.i am using DS1307 avec 16F877a, et je suis dans le programme de construction de la CCS C.des suggestions?
merci encore.
 
Les morceaux de programme,
j'ai fait à l'aide de CCS PIC16F877 version 3.249:Lors de la déclaration:
Code:////////////////////////////////////////////////// //////////////////////

void init_I2C (void)

(

output_float (I2C_SCL);

output_float (I2C_SDA);

)

////////////////////////////////////////////////// //////////////////////

int1 i2c_ready (unsigned int8 adresse)

(

int1 ack;

i2c_start (); / / Si la commande écrire est reconnue,

ack = i2c_write (adresse) / / puis l'appareil est prêt.

i2c_stop ();

return (! ack);

)

////////////////////////////////////////////////// //////////////////////

void I2CSendByte (unsigned int8 Chip, unsigned int8 adresse, unsigned int8 data_value)

(

/ / / While (! I2c_ready (adresse));

/ / / I2c_stop ();

delay_us (10); / * Solução Empirica * /

i2c_start (); / * * CONDITION START /

i2c_write (Chip | Escrita); / * SLAVE ADRESSE -> WRITE * /

i2c_write (adresse); / * ADRESSE WORD * /

i2c_write (data_value); / * écrire des données * /

i2c_stop (); / * STOP ETAT * /

delay_ms (50); / * Solução Empirica * /

)////////////////////////////////////////////////// //////////////////////

unsigned int8 I2CGetByte (unsigned int8 Chip, unsigned int8 adresse)

(

unsigned int8 data_value;

/ / / I2c_stop ();

delay_us (10); / * Solução Empirica * /

i2c_start (); / * * CONDITION START /

i2c_write (Chip | Escrita); / * SLAVE ADRESSE -> WRITE * /

if (Chip == SELECT_LM75A)

i2c_write (ENDERECO_TEMPERATURA); / * ADRESSE WORD * /

autre

i2c_write (adresse); / * ADRESSE WORD * /

delay_us (10); / * Solução Empirica * /

i2c_start (); / * CONDITION SATRT * /

i2c_write (Chip | Leitura); / * SLAVE ADRESSE -> LIRE * /

if (Chip == SELECT_LM75A)

(

TemperaturaDaPlaca = i2c_read (); / * LECTURE DES DONNEES * /

data_value = (unsigned int8) TemperaturaDaPlaca;

TemperaturaDaPlaca <<= 8;

TemperaturaDaPlaca | = i2c_read (); / * LECTURE DES DONNEES * /

)

autre

data_value = i2c_read (); / * LECTURE DES DONNEES * /

i2c_stop (); / * STOP ETAT * /

delay_ms (50); / * Solução Empirica * /

return (data_value);

)

////////////////////////////////////////////////// //////////////////////

void ds1307_send_byte (unsigned int8 adresse, unsigned int8 data_value)

(

I2CSendByte (SELECT_DS1307, adresse, data_value);

)

////////////////////////////////////////////////// //////////////////////

unsigned int8 ds1307_get_byte (unsigned int8 adresse)

(

unsigned int8 Resposta;

Réponse = I2CGetByte (SELECT_DS1307, adresse);

retour (réponse);

)

////////////////////////////////////////////////// //////////////////////

void ds1307_send_time (void)

(

delay_us (10); / * Solução Empirica * /

i2c_start (); / * * CONDITION START /

i2c_write (SELECT_DS1307 | Escrita); / * SLAVE ADRESSE -> WRITE * /

i2c_write (MINUTES); / * ADRESSE WORD * /

i2c_write (Minuto_ds1307_digitos); / * écrire des données * /

i2c_write (Hora_ds1307_digitos); / * écrire des données * /

i2c_write (Semana_ds1307_digitos); / * écrire des données * /

i2c_write (Dia_ds1307_digitos); / * écrire des données * /

i2c_write (Mes_ds1307_digitos); / * écrire des données * /

i2c_write (Ano_ds1307_digitos); / * écrire des données * /

i2c_stop (); / * STOP ETAT * /

delay_ms (50); / * Solução Empirica * /

)

////////////////////////////////////////////////// //////////////////////

void ds1307_get_time (void)

(

i2c_start ();

i2c_write (SELECT_DS1307 | Escrita);

i2c_write (MINUTES);

i2c_start ();

i2c_write (SELECT_DS1307 | Leitura);

Minuto_ds1307_digitos = i2c_read ();

Hora_ds1307_digitos = i2c_read ();

Semana_ds1307_digitos = i2c_read ();

Dia_ds1307_digitos = i2c_read ();

Mes_ds1307_digitos = i2c_read ();

Ano_ds1307_digitos = i2c_read ();

i2c_stop ();

)

////////////////////////////////////////////////// //////////////////////
 
je suis la mise en œuvre mon projet d'abord en simulation seulement.i am using PROTEUS VSM 7.1, et le clavier-PHONE dans ce simulateur est le seul que j'utilise.

d'autres suggestions?

merci.Ajouté après 9 minutes:vous remercier, andre_teprom,

Je vais essayer de mettre en œuvre ce code le plus vite possible et je vais vous dire les résultats dès que je serai de retour.

merci encore.

 
Citation:

je suis la mise en œuvre mon projet d'abord en simulation seulement.
i am using PROTEUS VSM 7.1, et le clavier-PHONE dans ce simulateur est le seul que j'utilise.
 
H_D_R a écrit:Elizabeth Ann a écrit:

wow, très rapide réponse, je vous remercie.Oui, je suis à la fois le stockage d'alarme et l'horloge.i am using DS1307 avec 16F877a, et je suis dans le programme de construction de la CCS C.des suggestions?
merci encore.
 
ya je sais, mais pour votre info., Je viens de commencer la programmation MCU.
et cependant en C embarqué aussi
qu'ils utilisent une partie de l'ASM.
de sorte que mes pensées par son mieux pour obtenir la commande d'abord sur l'ASM.

s que la raison pour laquelle
j'ai décidé de prendre le commandement de l'ASM en premier et ensuite C. ..par la manière, si vous voulez que je puis-je vous aider d'autre ne

m'intéresse pas de perdre mon temps important ...
 
merci pour votre patience, HDR ..

et i ont été le développement de mon propre code, mais dès maintenant l'aide de tout le monde sera très importante pour le succès de ce projet.d'expliquer notre projet, je serais très heureux de vous envoyer un simple diagramme de la façon dont vont les choses à faire.si vous
êtes intéressés à obtenir ceci,
s'il vous plaît dites-moi.
par la façon, comme je l'ai mentionné précédemment, tout doit être en langage C.Ils disent que je continue à avoir le micro sondage (16f877a) pour obtenir des temps de DS1307.espérons que simple info aide.encore, sur l'organigramme, vous pouvez
m'aider à mieux si on pouvait avoir une copie de celui-ci.dites-moi si vous le souhaitez.i honnêtement besoin d'aide sur ce point.
merci beaucoup.

Elizabeth Ann

 
Vous devez DS1307 pas PIC16F877A sondage,
la plupart des compilateurs ont des fonctions I2C en ce qui le rend très facile de code du projet comme le vôtre.

 
penoy_balut a écrit:

Vous devez DS1307 pas PIC16F877A sondage, la plupart des compilateurs ont des fonctions I2C en ce qui le rend très facile de code du projet comme le vôtre.
 
Elizabeth Ann a écrit:

merci pour votre patience, HDR ..et i ont été le développement de mon propre code, mais dès maintenant l'aide de tout le monde sera très importante pour le succès de ce projet.
d'expliquer notre projet, je serais très heureux de vous envoyer un simple diagramme de la façon dont vont les choses à faire.
si vous êtes intéressés à obtenir ceci, s'il vous plaît dites-moi.

par la façon, comme je l'ai mentionné précédemment, tout doit être en langage C.
Ils disent que je continue à avoir le micro sondage (16f877a) pour obtenir des temps de DS1307.
espérons que simple info aide.
encore, sur l'organigramme, vous pouvez m'aider à mieux si on pouvait avoir une copie de celui-ci.
dites-moi si vous le souhaitez.
i honnêtement besoin d'aide sur ce point.

merci beaucoup.Elizabeth Ann
 

Welcome to EDABoard.com

Sponsor

Back
Top