Un ROBOT très rentable à l’aide de microcontrôleur 89c 51. (5 / 6 étapes)

Etape 5: programmation

; P0.0 = M1 AVANT RELAIS
; P0.1 = RELAIS INVERSE M1
; P0.2 = M2 AVANT RELAIS
; P0.3 = RELAIS INVERSE M2
; P0.4 = RELAIS AVANT M3
; P0.5 = RELAIS INVERSE M3
; P0.6 = RELAIS AVANT M4
; P0.7 = RELAIS INVERSE M4
;
; P0.0 = D0 LCD
; P0.0 = LCD D1
; P0.0 = D2 LCD
; P0.0 = LCD D3
; P0.0 = LCD D4
; P0.0 = LCD D5
; P0.0 = LCD D6
; P0.0 = LCD D7
;
; P2.0 = VENTILATEUR
; P2.1 =
; P2.2 = COMMUTATEUR DE LIMITE 1
; P2.3 = DONNÉES REÇUES
; P2.4 = DONNÉES REÇUES LSB
; P2.5 = DONNÉES REÇUES LSB + 1
; P2.6 = LES DONNÉES REÇUES LSB + 2
; P2.7 = MSB DE DONNÉES REÇUES
;
; P3.0 =
; P3.1 =
; P3.2 = LCD RS
; P3.3 = LCD R/W
; P3.4 = LCD E
; 3.5 =
; P3.6 =
; 3,7 =

; Programme commence ici

ORG 0000H ; DÉBUT

MOV P0, #00 H
MOV P2, #OFOH
SETB P2.3

MOV DPTR, #COMM1 ; REGISTRE DE COMMANDE
UPI: CLR ; INITIALISER Le COMM1 STRING
MOVC A,
DPTR INC

CJNE A, # « $», COMMAND1
ICI :
MOV A, #80 H ; ADRESSE DE DÉPART DE LA LIGNE 1
UNAPPEL COMMANDE

MOV DPTR, #DATA 1 ; AFFICHER LES DONNÉES
LCALL LINE_DISPLAY_ROLL
HERE1 :
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE

MOV DPTR, #DATA2
LCALL LINE_DISPLAY

LCALL CHECK_INPUT

CJNE A, #00 H, NEXT1
MOV P0, 05 H
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, #DATA3
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

COMMAND1 : COMMANDE D’UNAPPEL
AJMP UP1

NEXT1 :
CJNE A, #01 H, NEXT2
MOV P0, 0AH #
LCALL RETARD
LCALL RETARD
MOV A, 0C0H ## ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, # DONNÉES4
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT2 :
CJNE A, #02 H, NEXT3
MOV P0, 09 H
LCALL RETARD
LCALL RETARD
MOV A, #OCOH ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, #DATA5
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT3 :
CJNE A, #03 H, NEXT4
MOV P0, 06 H
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, # INNOCUITÉ6
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT4 :
CJNE A, #04 H, NEXT5
MOV P0, #10 H
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, # DONNÉE7
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT5 :
CJNE A, 05 H, NEXT6
MOV P0, #20 H
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, # ÉTUDE8
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT6 :
CJNE A, 06 H, NEXT7
MOV P0, #40 H
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, #DATA9
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT7 :
CJNE A, 07 H, NEXT8
MOV P0, #80 H
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, #DATA10
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT8 :
CJNE A, 08 H, NEXT9
SETB P2.0;(CONDITIONAL.. SI L’AJOUT DE FONCTIONNALITÉS SUPPLÉMENTAIRES)
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, #DATA11
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXT9 :
CJNE A, 09 H, NEXTA
CLR P2.0 ; (CONDITIONNEL... SI L’AJOUT DE FONCTIONNALITÉS SUPPLÉMENTAIRES)
LCALL RETARD
LCALL RETARD
MOV A, #0C0H ; ADRESSE DE DÉPART DE LA LIGNE 2
UNAPPEL COMMANDE
MOV DPTR, # DONNÉES12
LCALL LINE_DISPLAY
LCALL CHECK_KEY_RELEASE
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

NEXTA :
LJMP HERE1 ; BOUCLE ICI APRÈS L’AFFICHAGE

LINE_DISPLAY :
CLR A
MOVC A,
DPTR INC
CJNE A, # « $», NOM1
RET

NOM1 : UNAPPEL AFFICHAGE
AJMP LINE_DISPLAY

LINE_DISPLAY_ROLL :
LCALL RETARD
CLR A
MOVC A,
DPTR INC
CJNE A, # « $», DISPLAY11
RET

DISPLAY11 : UNAPPEL AFFICHAGE
AJMP LINE_DISPLAY_ROLL

DÉLAI : MOV R7, #0FFH
LOOP1 : MOV R6, #0FFH
BOUCLE : DJNZ R6, BOUCLE
DJNZ R7, LOOP1
RET

;************************************************************************************************

; COMMANDE DE STROBOSCOPE LCD

COMMANDE : UNAPPEL PRÊT ; ÉCRIRE QUAND L’AFFICHAGE N’EST PAS OCCUPÉ
MOV P1, A ; CARACTÈRE DE COMMANDE EN PORT P1
CLR P3.2 ; COMMANDE REGISTRE CHOISI
P3.3 CLR ; ÉCRIRE À ACTIVER
SETB P3.4 ; STROBOSCOPE CARACTÈRE D’AFFICHE
CLR P3.4
RET ; RETOUR

;************************************************************************************************

AFFICHAGE : UNAPPEL PRÊT
MOV P1, A ; RÉCUPÉRER DES DONNÉES À AFFICHER
SETB P3.2; PS = P3.2 = 1 AU REGISTRE DE DONNÉES SELECT
P3.3 CLR ; ÉCRIRE À ACTIVER
SETB P3.4 ; STROBOSCOPE CARACTÈRE D’AFFICHE
CLR P3.4
RET ; RETOUR

;************************************************************************************************

PRÊT : CLR P3.4 ; STROBOSCOPIQUE
MOV P1, #0FFH ; CONFIGURER LA P1 POUR L’ENTRÉE
CLR P3.2 ; REGISTRE DE COMMANDE SELECT
SETB P3.3 ; LU ENABLE
ATTENTE : CLR P3.4 ; STROBOSCOPIQUE
SETB P3.4
JB P1.7, ATTENTE ; LECTURE DE STATUT OCCUPÉ (BF = 0)
CLR P3.4 ; FIN AFFICHAGE STROBE.
RET ; RETOUR

; ************************************************************************************************

COMM1: DB 3CH, 0EH, 06, 01H, « $»
DATA1: DB « DE BEBIL-ROBOT, $»
DATA2: DB « INSTRUCTABLES, $»
DATA3: DB « AVANT $»
DATA4: DB « EN ARRIÈRE $»
RÉCENTES5: DB « LEFT $»
INNOCUITÉ6: DB « RIGHT $»
DONNÉE7: DB « CAMÉRA GAUCHE $»
ÉTUDE8: DB « CAMÉRA DROITE $»
DONNÉES9: DB « CAMERA $ »
DATA10: DB « CAMÉRA VERS LE BAS DE $»
DATA11: DB « OPTIONNEL $»
DONNÉES12: DB « OPTIONNEL $»

CHECK_INPUT :
MOV P2, #0F0H
SETB P2.3
JB P2.3, READ_INPUT
NOP
SJMP CHECK_INPUT

READ_INPUT :
MOV P0, #00 H
LCALL RETARD
MOV, P2
ANL, 0F0H #
SWAP A
RET

CHECK_KEY_RELEASE :
SETB P2.3
NOP
JB P2.3, CHECK_KEY_RELEASE
SETB P2.3
MOV P0, #00 H
RET

Articles Liés

GSM base polyvalent robotique véhicule à l’aide de microcontrôleur PIC

GSM base polyvalent robotique véhicule à l’aide de microcontrôleur PIC

ce projet vise à développer un véhicule robotisé qui peut être contrôlé par un téléphone cellulaire. Envoient des commandes DTMF d'un téléphone à un autre téléphone cellulaire qui est monté sur le véhicule robotisé. Ces commandes servent à nourrir un
Convertisseur pur sinus à l’aide de microcontrôleur pic

Convertisseur pur sinus à l’aide de microcontrôleur pic

Convertisseur pur sinus à l'aide de microcontrôleur pic est conçu dans ce projet. Noyau de ferrite ou sinusoïdal pur chopper basé est conçu dans ce projet. Il y a deux parties principales de ce projet1.convertisseur DC DC à l'aide de push pull topolo
Module sans fil Radio fréquence à l’aide de microcontrôleur PIC.

Module sans fil Radio fréquence à l’aide de microcontrôleur PIC.

C'est un microcontrôleur basé projet de bricolage électronique. Le nom de Module RF sans fil à l'aide de microcontrôleur PIC. Le module RF est un petit circuit électronique utilisé pour transmettre, recevoir, ou ondes radio transceive sur l'un d'un c
Outils de mesure longue à l’aide de microcontrôleur

Outils de mesure longue à l’aide de microcontrôleur

Depuis longtemps les outils de mesure peut être font à l'aide de microcontrôleur. ici, je fais un dispositif qui permet de mesurer la distance entre deux points. Il utilise le concept de tangente mesure. pour obtenir la valeur de l'angle, j'utilise p
Péage RFID basé à l’aide de microcontrôleur 8051

Péage RFID basé à l’aide de microcontrôleur 8051

vidéo montre le travail du système de plaza de péage RFID basé à l'aide de microcontrôleur 8051 (89c 51)Circuit de diagramme et le code source en C Veuillez visiter RFID Toll Plaza
Mesure de fréquence d’onde sinusoïdale à l’aide de microcontrôleur pic

Mesure de fréquence d’onde sinusoïdale à l’aide de microcontrôleur pic

Projet de mesure de fréquence sinusoïdale est conçu à l'aide de microcontrôleur pic. Ce projet mesure la fréquence de l'onde sinusoïdale. Technique de détection de croisement nul est utilisé pour mesurer la fréquence de l'onde sinusoïdale. Détection
Digital testeur d’ic à l’aide de microcontrôleur pic

Digital testeur d’ic à l’aide de microcontrôleur pic

Testeur numérique IC à l'aide de microcontrôleur pic16f877adispositifs de support740074027404740774087432748674266
"Bricolage - le ROBOT de traceur de ligne EXCELLENT sans microcontrôleur"

"Bricolage - le ROBOT de traceur de ligne EXCELLENT sans microcontrôleur"

SalutJe suis Aurélie DixitIl s'agit de mon premier projet robotique - « La ligne traceur ROBOT sans microcontrôleur »Ces robot ne contient aucun n'importe quel genre de microcontrôleurs, au lieu de cela, il utilise seulement le circuit intégré (IC) e
Robotique élémentaire partie 2 - Ajout du microcontrôleur et moteur

Robotique élémentaire partie 2 - Ajout du microcontrôleur et moteur

Cette semaine nos étudiants à Long Ridge School (http://www.longridgeschool.org) attaché l'électronique sur le châssis du robot qui a pris fin dans la partie 1:.Nous avons constaté qu'il fallait remplacer les entretoises sur le robot car ils étaient
Faire le général dc moteur dans un capteur de charge à l’aide de microcontrôleur

Faire le général dc moteur dans un capteur de charge à l’aide de microcontrôleur

ce projet est destiné à lire les données de capteur. charge sur le moteur est proportionnelle à la variation de la résistance interne du moteur. ici un moteur dc à aimant permanent est pris et les valeurs de potentiel circuit diviseur est obtenu...Et
Radio FM à l’aide de microcontrôleur TEA5767 et PIC16F877A

Radio FM à l’aide de microcontrôleur TEA5767 et PIC16F877A

TEA5767 radio monopuce FM stéréo.----------------------------------------------------------------------------* Haute sensibilité due à intégré faible bruit RF d'entrée amplifier* Table de mixage FM pour la conversion si elles sont aux États-Unis / Eur
À l’aide de microcontrôleurs PIC Bootloaders

À l’aide de microcontrôleurs PIC Bootloaders

Dans cette première vidéo nous allons regarder le branchement de matériel ainsi que des informations courtes sur le fonctionnement des programmes d'amorçage.Le lien pour le bootloader minuscule est listé ci-dessous :http://www.etc.UGAL.ro/cchiculita/
Piraté câble de disque dur SCSI pour les écrans de 128 x 64 à l’aide de microcontrôleurs

Piraté câble de disque dur SCSI pour les écrans de 128 x 64 à l’aide de microcontrôleurs

écouteur de Long temps, premier interlocuteur de temps à Instructables !Bienvenue sur mon premier Instructable !Ce hack est une réutilisation des vieux câbles SCSI 40 broches.J'étais fatigué d'utiliser l'espace de la maquette pour le chargement d'un
Comment clignoter une Led à l’aide de microcontrôleur PIC ?

Comment clignoter une Led à l’aide de microcontrôleur PIC ?

Ce tutoriel est pour les débutants de microcontrôleur PIC.* les étapes pour installer MP labo* les étapes pour installer le compilateur xc8* programme de Blink* Projet de renforcement et de brûler au pic McÉtape 1: Composants requis 1) PIC16F886-12)