Étape 2: Le code
-fichier : spider.jal--PIC : 16F675
--but : laisser tomber et soulever l’araignée quand infrarouge frappe le capteur
-Est-ce que vous voulez avec le code.
inclure des f675_4i
inclure des jdelay
var bit M1 est pin_a5
pin_a5_direction = sortie
var bit M2 est pin_a4
pin_a4_direction = sortie
var bit IR est pin_a2
pin_a2_direction = entrée
gpio volatils octets var à 0 x 05
var cmcon de volatiles octet à 0 x 19
wpu volatils octets var au 0x95
ansel volatils octets var à 0x9F
cmcon = 0b0001_0111--comparateur hors
GPIO = 0b0000_0000--initialiser faible de broches d’e/s
--Veuillez consulter la fiche technique pour en savoir plus sur le registre bancaire
ASM bsf status_rp0--Banque 1
Ansel = 0b0000_0000--désactiver A/D, faire toutes les broches e/s numériques
OPTION = 0b0000_0000--bit 7: permettre aux tractions dans le monde
WPU = 0b0001_0100--enable pullups individuels
ASM bcf status_rp0--retour à Banque 0
-normalement, le capteur IR est élevé s’il ne détecte pas un faisceau de 38KHz IR
--dans l’affirmative, il faut la ligne faible
--le code n’est pas robuste et s’appuie sur le capteur de rejeter les signaux parasites
boucle pour toujours
M1 = élevé
M2 = élevé
tout en boucle de la fin (IR)
delay_1ms (1)
if (!. IR) puis
delay_1ms (1)
M2 = faible
delay_100ms (7)
M2 = élevé
delay_100ms (1)
M1 = faible
delay_100ms (2)
M1 = élevé
delay_100ms (1)
delay_100ms (13)
pour la boucle 3
M1 = faible
delay_10ms (12)
M1 = élevé
delay_10ms (8)
fin de boucle
delay_100ms (8)
delay_100ms (8)
6 boucle for
M1 = faible
delay_10ms (6)
M1 = élevé
delay_10ms (8)
fin de boucle
fin si
while (!. Boucle de fin IR)
delay_1s (3) ;
fin de boucle