INSTRUCTIONS MICROCONTRÔLEURS PIC MICROCHIP



Documents pareils
PIC : COURS ASSEMBLEUR

2013 Nos nouveaux outils basés sur Arduino

PIC 16F84. Philippe Hoppenot

Informatique Industrielle

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Contraintes, particularités. 1. Généralités Gestion de la mémoire a. Type des variables et constantes... 2

GPA770 Microélectronique appliquée Exercices série A

Licence Sciences et Technologies Examen janvier 2010

Architecture des ordinateurs

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

ARCEAU DE PARKING MOTORISÉ VIGIPARK

Les opérations binaires

La programmation des PIC en C. Les fonctions, les interruptions.

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Ordinateurs, Structure et Applications

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

LISA. Manuel Utilisateur

Rappels d architecture

Proteus VSM. manuel_vsm.doc

Jeu d instructions NIOS II

IV- Comment fonctionne un ordinateur?

MICROCONTROLEURS PIC PROGRAMMATION EN C. V. Chollet - cours-pic-13b - 09/12/2012 Page 1 sur 44

QUESTION 1 {2 points}

LOGICIEL DC4D MONITOR

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Conception de circuits numériques et architecture des ordinateurs

Compilation (INF 564)

Codage d information. Codage d information : -Définition-

MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C

Programmation assembleur : aperçu

Logiciel de base. Première année ENSIMAG

Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

Mathématiques appliquées à l informatique

TD Architecture des ordinateurs. Jean-Luc Dekeyser

CM2 L architecture MIPS32

Exécution des instructions machine

Architecture des ordinateurs Introduction à l informatique

REALISATION d'un. ORDONNANCEUR à ECHEANCES

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Les fonctions logiques

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Logiciel de Base. I. Représentation des nombres

Procédure de sauvegarde - Cobian Backup

Cours Informatique Master STEP

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Structure d un programme

Microprocesseur + Logiciel

Manuel de référence du langage Exemples Les aventures de Docteur R.

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Routeur client. PC accueil Postes IP

Programmation C. Apprendre à développer des programmes simples dans le langage C

PIC EVAL Dev Board PIC18F97J60

ASR1 TD7 : Un microprocesseur RISC 16 bits

UE Programmation Impérative Licence 2ème Année

Fonctionnement et performance des processeurs

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Modules d automatismes simples

LOGICIEL KIPICAM : Manuel d installation et d utilisation

AMICUS 18 (2ème partie) 4) Présentation du logiciel Amicus IDE

lundi 3 août 2009 Choose your language What is Document Connection for Mac? Communautés Numériques L informatique à la portée du Grand Public

9 rue Georges Besse BP FONTENAY LE FLEURY FRANCE Tél.:(33) fax:(33)

Représentation des Nombres

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Carte Relais GSM (Manuel Utilisateur)

Flowcode - Mode d'emploi

Description du logiciel Modbus RTU

Encryptions, compression et partitionnement des données

Représentation d un entier en base b

Carte ARDUINO UNO Microcontrôleur ATMega328

VMware ESX : Installation. Hervé Chaudret RSI - Délégation Centre Poitou-Charentes

Initiation à l algorithmique

Aide à l installation et à la migration en HelloDoc 5.60

PARAGON Disk Wiper. Guide de l utilisateur. Paragon Technology GmbH, System Programmierung. Copyright Paragon Technology GmbH

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

gestion des processus La gestion des processus

Gestion mémoire et Représentation intermédiaire

AudiParc Recommandations IMPORTANTES. AudiParc Principe de fonctionnement. AudiParc Installation Déployement

Atelier C TIA Portal CTIA06 : programmation des automates S7-300 Blocs d organisation

TP a Notions de base sur le découpage en sous-réseaux

03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing

VIII- Circuits séquentiels. Mémoires

3. Structure des ordinateurs. 3.1 L' Unité Centrale (UC) ou processeur (Central Processing Unit CPU)

Architecture ordinateur. Organisation mémoire et Entrées/Sorties

Installation de ndv 5

Cours A7 : Temps Réel

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Activer la connectivité des systèmes de stockage 3PAR

Conversion d un entier. Méthode par soustraction

PL7 Junior/Pro Métiers communication Tome 3. TLX DS COM PL7 xx fre

Logiciels DSPiy. DSPiyStudio logiciels et format des fichiers. incomplet

Comment installer un client Rivalis Devis factures

Playing with ptrace() for fun and profit

Partie 2 (Service de téléphonie simple) :

Tutoriel de formation SurveyMonkey

Résumé Génération de code Le code intermédiaire

Bernard HAMM, Évelyne LAVOISIER

Réalisation d un OS 32 bits pour PC(x86)

GUIDE D INSTALLATION RAPIDE DEXH264

Guide de mise à niveau pas à pas vers Windows 8 CONFIDENTIEL 1/53

Transcription:

INSTRUCTIONS MICROCONTRÔLEURS PIC MICROCHIP Documentation interne ELE D. MENESPLIER 2000

ADDLW Add Literal and W C,DC,Z 1 cycle Description: Le contenu du registre W est additionné avec les 8 bits de la donnée littérale. Le résultat est placé dans W. Exemple: ETIQ ADDLW 01B ; W = W +(1B) h ADDLW h'1b' ADDLW d'27' ADDLW b'00100111' ANDLW And Literal with W Z 1 cycle Description: ET logique entre le registre W et les 8 bits de la donnée littérale. Le résultat est placé dans W. Exemple: ETIQ ANDLW 0F0 ; W = W.(F0) h : les 4 bits MSB de W sont inchangés ANDLW h'f0' ; les 4 bits LSB sont forcés à "0". ANDLW d'240' ANDLW b'11110000' ADDWF Add W and F C,DC,Z 1 cycle Description: Le contenu du registre W est additionné avec le contenu du registre F (adresse sur 7 bits entre h00 et h7f et sélection Bank 0 ou Bank 1 par bit 5 du registre Status). Le résultat est placé dans W si l'instruction est suivie de "0". Le résultat est placé dans F si l'instruction est suivie de "1". Exemple: PORTA EQU h'05' ETIQ ADDWF PORTA,0 ; W = W +(PORTA à l'adresse 05 hexa) ANDWF And W with F Z 1 cycle Description: Et logique entre W et F. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si suivie de "1". Exemple: STATUS EQU h'03' ETIQ ANDWF STATUS,0 ; W = W. (STATUS à l'adresse hexa 03) ANDWF PORTA,1 ; PORTA = W. (PORTA en h05) 1

BCF Bit Clear F 1 cycle Description: Le bit en position "i" du registre F est mis à "0". Exemple: STATUS EQU h'03' ETIQ BCF STATUS,7 ; RAZ du bit 7 du registre STATUS. BSF Bit Set F 1 cycle Description: Le bit en position "i" du registre F est mis à "1". Exemple: PORTA EQU h'05' ETIQ BSF PORTA,7 ; Le bit 7 de PORTA est mis à "1". BTFSC Bit Test of F and Skip if Clear 1 ou 2 cycles Description: Si le bit "i" du registre F est à "1" on exécute l'instruction suivante. Si le bit "i" du registre F est à "0" on saute l'instruction suivante. Exemple: STATUS EQU h'03' ETIQ BTFSC STATUS,7 ; test du bit 7 du registre STATUS. GOTO ERREUR ; si ce bit =1 on va à ERREUR. ADDLW h'e5' ; si ce bit =0 on saute à cette ligne: W=W+E5 BTFSS Bit Test of F and Skip if Set 1 ou 2 cycles Description: Si le bit "i" du registre F est à "0" on exécute l'instruction suivante. Si le bit "i" du registre F est à "1" on saute l'instruction suivante. Exemple: PORTA EQU h'05' ETIQ BTFSS PORTA,2 ; test du bit 2 de PORTA. GOTO SUITE ; si ce bit =0 on va à SUITE. ADDLW h'e5' ; si ce bit =1 on saute à cette ligne: W=W+E5 2

CALL Call Subroutine 2 cycles Description: Appel à un sous programme. L'adresse de retour (PC+1) est rangée dans la pile. Le compteur ordinal est chargé par les 11 bits de l'adresse immédiate. Les bits MSB du PC sont chargés à partir du registre PCLATH Exemple: ETIQ CALL SP ; PILE = adresse de ETIQ + 1 et PC= adresse de SP. CLRF Clear F Z 1 cycle Description: RAZ du registre F. Exemple: PORTA EQU h'05' ETIQ CLRF PORTA ; Le PORTA est mis à "0". CLRW Clear W Z 1 cycle Description: RAZ du registre W. Exemple: ETIQ CLRW ; RAZ du registre W. CLRWDT Clear Watchdog Timer TO,PD 1 cycle Description: RAZ du Timer de Watchdog et de son pré diviseur. Les bits TO et PD du registre STATUS sont mis à "1". Exemple: ETIQ CLRWDT ; RAZ du compteur Watchdog et de son pré diviseur. COMF Complement F Z 1 cycle Description: Le contenu du registre F est complémenté. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Exemple: PORTA EQU h'05' ETIQ COMF PORTA,1 ; Le PORTA est complémenté. 3

DECF Decrement F Z 1 cycle Description: Décrémente le registre F. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Exemple: CONT EQU h'0f' ; Case mémoire en RAM ETIQ DECF CONT,1 ; Le compteur en RAM est décrémenté de 1. DECFSZ Decrement F and Skip if 0 1 ou 2 cycles Description: Décrémente le registre F. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Si le résultat est # 0, l'instruction suivante est éxécutée. Si le résultat est 0, on saute l'instruction suivante. Exemple: CONT EQU h'0f' ; Case mémoire en RAM ETIQ DECFSZ CONT,1 ; Le compteur en RAM est décrémenté. GOTO ETIQ ; CONT est # de 0, on continu. GOTO FIN ; CONT = 0 on viens à cette instruction. GOTO Unconditional Branch 2 cycles Description: Branchement inconditionnel à une adresse. Les 11 bits de poids faibles du compteur ordinal sont chargés par la valeur immédiate de l'étiquette. Les 2 bits de poids forts sont les bits 3 et 4 de PCLATH. INCF Increment F Z 1 cycle Description: Incrémente le registre F. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Exemple: CONT EQU h'0f' ; Case mémoire en RAM ETIQ INCF CONT,1 ; Le compteur en RAM est incrémenté de 1. 4

INCFSZ Increment F and Skip if 0 1 ou 2 cycles Description: Incrémente le registre F. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Si le résultat est # 0, l'instruction suivante est éxécutée. Si le résultat est 0, on saute l'instruction suivante. Exemple: CONT EQU h'0f' ; Case mémoire en RAM ETIQ INCFSZ CONT,1 ; Le compteur en RAM est Incrémenté. GOTO ETIQ ; CONT est # de 0, on continu. GOTO FIN ; CONT = 0, on viens à cette instruction. IORLW Inclusive OR Literal with W Z 1 cycle Description: Ou logique entre le registre W et les 8 bits de la donnée littérale. Le résultat est placé dans W. Exemple: ETIQ IORLW IORLW 0F0 ;4 bits MSB de W forcés a"1" et 4 bits LSB inchangés. h'f0' ; idem IORWF Inclusive OR W with F Z 1 cycle Description: Ou logique entre le registre W et le registre F. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Exemple: PORTA EQU h'05' IORWF PORTA,1 ; PORTA = W + PORTA MOVF Move F Z 1 cycle MOVFW Description: Le contenu du registre F est déplacé soit dans W si l'instruction est suivie de "0" soit dans F lui même si elle est suivie de "1" ou de rien. (utilisé pour tester si un registre F est nul, car le bit Z est positionné après cette instruction). Exemple: PORTA idem idem EQU h'05' MOVF PORTA,0 ; contenu du PORTA chargé dans W. MOVFW PORTA ; contenu du PORTA chargé dans W. MOVF PORTA,1 ; PORTA est chargé sur lui même. MOVF PORTA ; PORTA est chargé sur lui même. 5

MOVLW Move Literal to W 1 cycle Description: Les 8 bits de la donnée littérale sont chargés dans le registre W. Exemple: ETIQ MOVLW 0A8 ; W = A8. MOVLW h'a8' ; idem. MOVWF Move W to F 1 cycle Description: Le contenu du registre W est déplacé dans le registre F. Exemple: ETIQ MOVLW h'55' MOVWF PORTA ;W=55 ; PORTA = 55 et W =55 aussi car inchangé. NOP No Operation 1 cycle Description: Aucune opération n'est effectuée. Exemple: ETIQ NOP OPTION Load Option Register 1 cycle Description: Le contenu du registre W est placé dans le registre OPTION. Tant que le registre OPTION est un registre à écriture/ lecture il est recommandé de l'adresser directement. Cette instruction sert à la compatibilité du code pour les PIC de la série 16C5x Pour maintenir la compatibilité avec les futurs microcontrôleurs PIC de la série 16Cxx, il est recommandé de ne pas utiliser cette instruction. RETFIE Return from Interrup 2 cycles Description: Au retour d'une interruption le compteur ordinal est chargé par l'adresse de retour qui avait été sauvée dans la pile. Les interruptions sont autorisées par écriture du bit GIE à "1" du registre INTCON. 6

RETLW Return with Literal inw 2 cycles Description: Le compteur ordinal est chargé avec l'adresse qui avait été sauvegardée dans la pile ( adresse de retour) au moment de l'appel à un sous programme et le registre W est chargé par les 8 bits de la donnée littérale. Exemple: ETIQ MOVLW h'03' ; W = 03 CALL TABLE ; appel sous programme Suite du programme ; W=K4 ; ***** Zone sous programme *************** TABLE ADDWF PC,1 ; PC= PC + W = PC + 3 RETLW K1 RETLW K2 RETLW K3 RETLW K4 ; on retourne au prog pricipal et W=K4 RETLW K5 RETURN Return from Subroutine 2 cycles Description: Au retour d'un sous programme, le compteur ordinal est chargé par l'adresse sauvegardé dans la pile ( adresse de retour). Exemple: ETIQ RETURN ; PC = PILE RLF Rotate Left F through carry C 1 cycle Description: C Registre F Le contenu du registre F est décalé de 1 bit vers la gauche à travers le flag de Carry. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Exemple: ETIQ MOVLW b'11100110' ; W=11100110 MOVWF REG ; REG = 11100110 et supposons C=0 RLF REG,1 ; REG = 11001100 et C 7

RRF Rotate Right F through carry C 1 cycle Description: C Registre F Le contenu du registre F est décalé de 1 bit vers la droite à travers le flag de Carry. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Exemple: ETIQ MOVLW b'11100110' ; W=11100110 MOVWF REG ; REG = 11100110 et supposons C=0 RRF REG,1 ; REG = 01110011 et C=0 SLEEP Sleep TO,PD 1 cycle Description: Dans le registre STATUS: le bit PD est mis à "0" et le bit TO est mis à "1". Le Timer du Watchdog et son prédiviseur sont mis à "0". L'oscillateur du processeur est stoppé et le micro est dans le mode sommeil. Exemple: ETIQ SLEEP SUBLW Substract W from Literal C,DC,Z 1 cycle Description: Le registre W est retranché aux 8 bits de la donnée littérale par la méthode du complément à 2. Le résultat est placé dans le registre W. Exemple: EX1 MOVLW h'01 ; W = 01 SUBLW h'02' ; W = 02-01 = 01. Et C = 1 car résult positif et Z=0 EX2 MOVLW h'02 ; W = 02 SUBLW h'02' ; W = 02-02 = 00. Et Z = 1 car résult nul et C=1 EX3 MOVLW h'03' ; W = 03 SUBLW h'02' ; W = 02-03 = FF. Et C=0 car résult négatif et Z=0 8

SUBWF Substract W from F C,DC,Z 1 cycle Description: Le registre W est retranché au registre F par la méthode du complément à 2. Le résultat est placé dans le registre W si l'instruction est suivie d'un "0". Le résultat sera placé dans F si on fait suivre l'instruction d'un "1". Exemple: EX1 MOVLW h'01 ; W = 02 et supposons MEM=03 SUBWF MEM,1 ; MEM = 03-02 = 01. Et C = 1 et Z = 0 EX2 MOVLW h'02 ; W = 02 et supposons MEM=02 SUBWF MEM,1 ; MEM = 02-02 = 00. Et C = 1 et Z = 1 EX3 MOVLW h'02' ; W = 02 et supposons MEM= 01 SUBWF MEM,1 ; MEM = 01-02 = FF. Et C = 0 et Z = 0 SWAPF Swap Nibbles in F 1 cycle Description: Inversion des 4 bits LSB avec les 4 bits MSB du registre F. Si l'instruction est suivie d'un "0" le résultat est placé dans W et il est placé dans F si elle est suivie d'un "1". Exemple: EX1 MOVLW h'a5' ; W = A5 MOVWF MEM ; MEM=A5 SWAPF MEM,0 ; W= 5A et MEM =A5 XORLW Exclusive OR Literal with W Z 1 cycle Description: Ou exclusif entre W et les 8 bits de la donnée littérale. Le résultat est placé dans W. Exemple: EX1 MOVLW h'b5' ; W = B5 XORLW h'af' ; W= 1A XORWF Exclusive OR with F Z 1 cycle Description: Ou exclusif entre W et le registre F. Le résultat est placé dans W si l'instruction est suivie de "0". Résultat dans F si elle est suivie de "1". Exemple: ETIQ MOVLW h'b5' ; W = B5 et supposons que REG = AF XORWF REG,1 ; REG = 1A et W inchangé 9

FORMAT DES INSTRUCTIONS Elles sont codées sur 14 bits. Il y a 4 catégories : - 1 - INSTRUCTIONS ORIENTEES OCTET : b 13 b 6 b 0 b 8 b 7 Code Opération d Adresse du registre F 6 bits Destination = 1 bit 7 bits 0 = W 1 = F - 2 - INSTRUCTIONS ORIENTEES BIT : b 13 b 0 b 10 b 9 b 7 Code Opération b Adresse du registre F b 6 4 bits N du bit = 3 bits 7 bits - 3 - OPERATION DE CONTROLE ou OPERATION IMMEDIATE : b 13 b 8 b 7 b 0 Code Opération Valeur immédiate 6 bits 8 bits - 4 - APPEL SOUS PROGRAMME et BRANCHEMENT (CALL et GOTO) : b 13 b 0 b 11 b 10 Code Opération Valeur immédiate 3 bits 11 bits 10

INSTRUCTIONS MOVE SOURCE DESTINATAIRE MOVWF REGISTRE = W REGISTRE MOVF MOVF REGISTRE,1 REGISTRE = REGISTRE REGISTRE MOVF REGISTRE,0 MOVFW REGISTRE = REGISTRE W MOVLW VALEUR = VALEUR W 11