Pic 16F877
mb42
Messages postés
553
Statut
Membre
-
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
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:
- Pic 16F877
- Pic hunter - Télécharger - Téléchargement & Transfert
- Pic collage gratuit - Télécharger - Photo & Graphisme
- Départ de la pic ✓ - Forum Consommation & Internet
- Roissy hub bscc pic ✓ - Forum Consommation & Internet
- Sorigny tours pic - Forum Windows