Pic 16F877

mb42 Messages postés 553 Statut Membre -  
mb42 Messages postés 553 Statut Membre -
salut,

j'ai un projet en language c . La description de projet est la suivante

Le but est d'assurer la gestion de feux de traffic d'un carrefour. La solution est basée sur
l'utilisation d'un microcontrôleur PIC 16F877A.

La première partie de ce travail concerne la conception de la carte qui sert de simulateur.
La seconde partie concerne la programmation du microcontrôleur.
La troisième partie est une validation de la solution proposée

Description du cahier des charges :
Le but est d'assurer la circulation des véhicules et des piétons au niveau d'un carrefour qui comporte 4 voies.

Fonctionnement du système
Sur ce carrefour, les voies 1 et 3 fonctionnent ensemble ce qui signifie que le signal verte de la voie 1 et le signal vert de la voie 3 sont couplés et donc simultanément activés pour que le témoin vert de la voie 1 et le témoin vert de la voie 3 soient commandées ensembles : toute les deux allumées, ou toutes les deux éteintes. Il en va de même pour les témoins jaunes ainsi que pour les témoins rouges de ces deux voies. Les voies 2 et 4 sont couplées de la même façon.

Chaque voie est munie d'un passage réservé aux piétons protégé par deux signalisation Vip et Rip (i=1,2,3 ou 4). Lorsque les véhicules détiennent le contrôle des voies tous les voyants rouges piétons sont allumés. U bouton poussoir permet aux piétons de lancer une demande pour prendre le contrôle des voies. Une temporisation de 5 seconde est déclenchée, suite à laquelle, tous les voyants rouges des 4voies destinées aux voitures passent au rouge et les voyants vers destinés aux piétons passent au vert.
Ce cycle dure pendant 15 secondes, les feux verts piétons clignotent alors 5 fois pendant 5
secondes. Puis le cycle de passage de véhicules reprend dans ll'ordre des voies : 1, 2, 3, 4.

Un deuxième bouton poussoir est prévue pour lancer le fonctionnement en mode clignotant des voyant Oranger des 4 voie. Ce fonctionnement est très souvent utilisé la nuit lorsque la cadence du traffic diminue.

j'ai une solution concerne ferouge a deux voix

le premier fichier est prog.c
Code :

#include "C:\feudecarr\prog.h"

void main()
{

setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_psp(PSP_DISABLED);
setup_spi(FALSE);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);

set_tris_C(0xFF);
set_tris_b(0x00);
output_b(0x00);

do
{

if (input(PIN_C0)==1)
{
output_B(0b10010);
delay_ms(1000);
output_B(0);
delay_ms(1000);
}
else
{
output_b(0b100001);
delay_ms(5000);
output_b(0b000001);
delay_ms(500);
output_b(0b100001);
delay_ms(500);
output_b(0b000001);
delay_ms(500);
output_b(0b100001);
delay_ms(500);
output_b(0b000001);
delay_ms(500);
output_b(0b100001);
delay_ms(500);
output_b(0b010001);
delay_ms(1000);
output_b(0b001011);
delay_ms(1000);
output_b(0b001100);
delay_ms(5000);
output_b(0b001000);
delay_ms(500);
output_b(0b001100);
delay_ms(500);
output_b(0b001000);
delay_ms(500);
output_b(0b001100);
delay_ms(500);
output_b(0b001000);
delay_ms(500);
output_b(0b001100);
delay_ms(1000);
output_b(0b001010);
delay_ms(1000);
output_b(0b011001);
delay_ms(1000);
}
}
while(true);
}

le deuxieme fichier est prog.h
Code :

#include <16F877.h>
#device adc=8
#use delay(clock=400000000)
#fuses NOWDT,RC, NOPUT, NOPROTECT, NOBROWNOUT, NOLVP, NOCPD, NOWRT, NODEBUG

mais je n'arrive pas a comprendre le code

mais il est excutable

mon but est de programmer un feu rouge a 4 vois en language c avec la notion de timer

SVP qu'elqu'un pouvez m'aidez
A voir également:

2 réponses

mb42 Messages postés 553 Statut Membre 7
 
SVP AIDEZ MOI
0
mb42 Messages postés 553 Statut Membre 7
 
si quelqu'un a un projet similaire a ce projet pouvez m'envoyer a modo74@hotmail.fr
0