BASIC PIC16F877A [résolu]

BASIC PIC16F877A [résolu] - Divers - Programmation

Marsh Posté le 19-03-2009 à 21:10:57    

Bonsoir à tous,
Je suis en terminale S-SI et nous avons un projet pour nos PPE (epreuve de BAC !!!) qui est de fabriquer un robot (yipi) seul problème c'est que nous ne savons pas programmer en BASIC(ohhhh)! Si vous savez programmer en BASIC et que vous avez du temps a me consacrer alors lisez la suite s'il vous plait.
Je m'explique , pour programmer ce robot , nous utilisons une carte fabriqué par notre prof (dont je vais vous mettre le shema ) ainsi que le PIC 16F877A ! Nous avons besoin de le programmer en basic! Ce robot doit répondre à une certaine chorégraphie (il va normalement aller a une expo , mais si il marche pas c'est cui :s).
Il est équipé d'un capteur de proximité , d'un TSOP , d'une photo résistanceet ,de led et de deux cerveau moteur (enfin c'est ce qu'il faut piloter a l'aide du PIC).
N'ayant aucune notion de programmation en BASIC ( l'aide du logiciel mikrobasic et exporté à l'aide de icprog) je m'en remet à vous....
 
Voici comment le programme doit fonctionner :
-le capteur de proximité est devant le robot (il est a 5v par default) si il detecte qlq chose (il passe a 0V) le robot doit faire demi-tour.
-Le tsop (il est a 5v par default) va recevoir un signal et va se mettre a 0V , le robot doit aller faire demi-tour et "peter un cable".
-la photorésistance qui ets dessus , doit faire arreter le robot si elle passe sous un spot.
 
je vous met les documents dont j edispose :
-la carte du prof : http://img13.imageshack.us/img13/1694/cartepic.jpg
-la carte de puissance (la ou il y a les moteurs et les LED): http://img13.imageshack.us/img13/2 [...] ssance.jpg
 
-le PIC : http://img19.imageshack.us/img19/9800/pic16f877a.jpg
 
SI vous pensez pouvoir m'aider dite le moi , et je posterai plus d'information car j'ai deja des bouts de programmes qui marche , mais je ne sais pas comment les assemblez pour faire un tout.
 
merci pour votre aide
PS: j'ai réaliser le robot , je n'arrive juste pas a faire la programmation , mais la note que j'aurais pour le robot finale sera ma NOTE DE BAC en PPE SI donc a ne pas rater!!
PS2: le projet part mercredi au plus tard pour l'exposition (et apres des dizaines d'heures passé dessus j'ai envie dme pendre >< )


Message édité par halver le 22-03-2009 à 23:11:34
Reply

Marsh Posté le 19-03-2009 à 21:10:57   

Reply

Marsh Posté le 19-03-2009 à 21:55:25    

Cadeau.
 
Pas besoin de me remercier  [:dockbchris] .

Reply

Marsh Posté le 20-03-2009 à 09:21:47    

up

Reply

Marsh Posté le 20-03-2009 à 13:35:32    

Rappel de la charte de ce forum : on fait pas les exo/TP/épreuves de bac !
Donc, poste le code que t'as déjà fait et pose une question précise sur un point de blocage précis...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 20-03-2009 à 13:39:48    

je ne sais pas comment imbriquer des boucles de tels sortes a lui dire "si cepteur de proximité detecte rien alors avance , si tsop capte quelque chose alors fui , si photorésistance capte lumière alors stop"
 
program moteur_ldr
 
    dim       VLDR as word
          inter1, inter2,i as byte
          txt as string[8]
 
sub procedure setup_pwm                   ' initialisation du pwm sur deux sorties
   TRISC = %00000000
     PR2 = 250
     CCPR1L = 128
     CCPR2L = 128
     T2CON.2 = 1
     CCP1CON.3 = 1
     CCP1CON.2 = 1
     CCP2CON.3 = 1
     CCP2CON.2 = 1
     PORTC.3=1
     PortC.4=1
end sub
 
sub procedure marche_avant
     CCPR1L = 255
     CCPR2L = 255
end sub
 
sub procedure marche_arriere
     CCPR1L = 1
     CCPR2L = 1
end sub
 
sub procedure arret
     CCPR1L = 128
     CCPR2L = 128
end sub
 
sub procedure tourner_sens
     CCPR1L = 25
     CCPR2L = 230
end sub
 
sub procedure tourner_autresens
     CCPR1L = 230
     CCPR2L = 25
end sub
 
 
 
main:
     setup_pwm
 
TRISB = %00000011
TRISC = %00000000      ' PORTC en sortie RC1 RC2 RC5 RC6 RC7
 
      debut:
 
      vldr=ADC_read(6)        ' Conversion de la tension de la LDR
      delay_ms(100)
      wordToStr(VLDR, txt)
 
 
 
         
        if VLDR>500 then PORTC.6=1 else PORTC.6=0 end if
        if VLDR<500 then PORTC.5=1 else PORTC.5=0 end if
       
       if VLDR>500 then marche_avant else arret end if
 
 
       
        If PORTB.1=0 then marche_arriere end if
        If PORTB.0=0 then tourner_sens end if
 
 
      goto debut
end.

Reply

Marsh Posté le 20-03-2009 à 23:47:01    

c'est bon j'ai trouvé à peu près ce qui ne fonctionnait pas ;) un modérateur pourrait effacer ce topic ?
merci ;)

Reply

Marsh Posté le 21-03-2009 à 10:13:19    

tu mets [résolu] dans le titre de ton topic (édites ton premier post)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed