You are on page 1of 19

TP microcontrleurs

A. Oumnad

page 1

TP Microcontrleurs
Ce document doit absolument tre tudi avant l'arriv en TP
Ce document contient : Un rsum qui illustre les diffrences majeures entre le PIC16F877 tudi pendant le cours et le PIC16F887 implant sur les cartes EasyPIC5 sur lesquelles on va faire les TP Une prsentation des lments essentiels de la carte EasyPIC5 Un petit tutoriel pour savoir crer et compiler un projet sur le compilateur MikroC qui permet de programmer les PICs en langage C Les noncs des TP

Durant ces TPs, on va mettre en pratique ce qu'on apprit sur la programmation des PIC en langage assembleur Nous allons aussi apprendre programmer les PIC en langage C Les tudiants doivent absolument prparer les TP avant d'arriver en classe. Un pourcentage important de la note de TP et affect la prparation. Attention, les PC sont quips du logiciel DeepFreese. A la fin de chaque sance, chaque tudiant est tenu de sauvegarder son travail sur une clef USB. Chaque tudiant sera interrog ultrieurement sur les travaux raliss Il est strictement interdit de sauvegarder des fichiers sur le bureau

TP microcontrleurs

A. Oumnad

page 2

Sommaire
I Migration PIC16F877 vers PIC16F887 ................................................................................................... 3 I.1 I.2 I.3 I.4 I.5 I.6 I.7 II II.1 II.2 II.3 II.4 II.5 II.6 III III.1 III.2 III.3 III.4 III.5 III.6 IV V Les registres Spciaux FSR .......................................................................................................................4 L'Oscillateur Interne (Horloge) ................................................................................................................5 Les switchs de configuration ...................................................................................................................6 Les ports d'E/S .........................................................................................................................................7 L'interruption IOC (Interrupt on change) .................................................................................................7 Le convertisseur Analogique Numrique ............................................................................................. 10 L'USART ................................................................................................................................................. 11 L'alimentation ....................................................................................................................................... 12 La programmation de la carte .............................................................................................................. 12 Les LEDs ................................................................................................................................................ 13 Les boutons poussoir et les rsistances de Pull-up/down.................................................................... 14 Les entres pour tests analogiques ...................................................................................................... 15 L'afficheur LCD ...................................................................................................................................... 15 Les types de variables ........................................................................................................................... 16 Les oprateurs logiques ........................................................................................................................ 16 Les oprateurs logiques orient bits .................................................................................................... 16 Comment modifier un registre ou un bit.............................................................................................. 16 Crer un projet Mikroc ......................................................................................................................... 17 Quelques fonctions utiles ..................................................................................................................... 17

La carte de TP EasyPIC5 ..................................................................................................................... 12

Le compilateur MikroC ...................................................................................................................... 16

TP no 1 .............................................................................................................................................. 18 TP no 2 .............................................................................................................................................. 19 V.1 V.2 La bibliothque pic_asm_lib.asm ......................................................................................................... 19 Travail pratique..................................................................................................................................... 19

TP microcontrleurs

A. Oumnad

page 3

Migration PIC16F877 vers PIC16F887

TP microcontrleurs

A. Oumnad

page 4

I.1

Les registres Spciaux FSR

TP microcontrleurs

A. Oumnad

page 5

I.2

L'Oscillateur Interne (Horloge)

On peut choisir soit les modes LP,XT, HS, RC, RCIO, EC qui utilisent l'oscillateur classique du PIC soit le nouveau oscillateur intgr. Le chois se fait l'aide des bits de configuration FOSC2,FOSC1,FOSC0 du registre de configuration 1 (2007h) et du registre SFR OSCCON OSCCON

SCS : Choix de l'horloge systme 0 : Oscillateur classique. Mode dfinit par les switchs de configuration 1 : Oscillateur interne. Le choix des frquences se fait par les bits IRCF IRCF2,IRCF1,IRCF0 : Choix de la frquence de l'oscillateur interne 111 = 8MHz 110 = 4MHz (default) 101 = 2MHz 100 = 1MHz 011 = 500kHz 010 = 250kHz 001 = 125kHz 000 = 31kHz (LFINTOSC)

OSCCON = 0 Oscillateur quartz OSCCON = 71h Oscillateur interne de 8 Mhz OSCCON = 61h Oscillateur interne de 4 Mhz

TP microcontrleurs

A. Oumnad

page 6

I.3

Les switchs de configuration

Il ya maintenant deux registres pour les switchs de configuration : CONFIG1( 2007h) et CONFIG2 (2008h). La configuration se fait toujours l'aide de la directive __CONFIG, mais il faut prciser l'adresse du registre : CONFIG1 : 2007
DEBUG LVP FCMEN IESO BOREN1 BOREN0 CPD CP MCLRE PWRTE WDTE FOSC2 FOSC1 FOSC0

DEBUG: In-Circuit Debugger Mode bit 1 = In-Circuit Debugger disabled, RB6/ICSPCLK and RB7/ICSPDAT are general purpose I/O pins 0 = In-Circuit Debugger enabled, RB6/ICSPCLK and RB7/ICSPDAT are dedicated to the debugger LVP: Low Voltage Programming Enable bit 1 =RB3/PGM pin has PGM function, low voltage programming enabled 0 =RB3 pin is digital I/O, HV on MCLR must be used for programming FCMEN: Fail-Safe Clock Monitor Enabled bit 1 = Fail-Safe Clock Monitor is enabled 0 = Fail-Safe Clock Monitor is disabled IESO: Internal External Switchover bit 1 = Internal/External Switchover mode is enabled 0 = Internal/External Switchover mode is disabled BOREN<1:0>: Brown-out Reset Selection bits(1) 11 = BOR enabled 10 = BOR enabled during operation and disabled in Sleep 01 = BOR controlled by SBOREN bit of the PCON register 00 = BOR disabled CPD: Data Code Protection bit 1 = Data memory code protection is disabled 0 = Data memory code protection is enabled CP: Code Protection bit 1 = Program memory code protection is disabled 0 = Program memory code protection is enabled MCLRE: RE3/MCLR pin function select bit 1 = RE3/MCLR pin function is MCLR 0 = RE3/MCLR pin function is digital input, MCLR internally tied to VDD PWRTE: Power-up Timer Enable bit 1 = PWRT disabled 0 = PWRT enabled WDTE: Watchdog Timer Enable bit 1 = WDT enabled 0 = WDT disabled and can be enabled by SWDTEN bit of the WDTCON register FOSC<2:0>: Oscillator Selection bits 111 =RC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN 110 =RCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, RC on RA7/OSC1/CLKIN 101 =INTOSC oscillator: CLKOUT function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN 100 =INTOSCIO oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN 011 =EC: I/O function on RA6/OSC2/CLKOUT pin, CLKIN on RA7/OSC1/CLKIN 010 =HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN 001 =XT oscillator: Crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN 000 =LP oscillator: Low-power crystal on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN Config2 : 2008 WRT1 WRT0 BOR4V WRT<1:0>: Flash Program Memory Self Write Enable bits 11 =Write protection off BOR4V: Brown-out Reset Selection bit 0 =Brown-out Reset set to 2.1V 1 =Brown-out Reset set to 4.0V

TP microcontrleurs Oscillateur quartz (XT) __CONFIG 0x2007 , 0x23E1 __CONFIG 0x2008 , 0x3FFF OSCCON = 0

A. Oumnad Oscillateur interne - 8Hz __CONFIG 0x2007 , 0x23E4 __CONFIG 0x2008 , 0x3FFF OSCCON = 0x71 Oscillateur interne - 4Hz __CONFIG 0x2007 , 0x23E4 __CONFIG 0x2008 , 0x3FFF OSCCON = 0x61

page 7

I.4

Les ports d'E/S

PORTA : Ce port a maintenant 8 bits. Les pins RA6 et RA7 servent connecter le quartz. Si on veut les utiliser en E/S numrique il faut utiliser l'oscillateur interne mode INTOSCIO. La configuration se fait par les Switchs FOSC<2:0>= et le registre OSCON. Voir paragraphe sur l'Oscillateur. OSCCON = 0 , RA6 et RA7 sont affectes au gnrateur d'horloge. OSCCON = 61h, FOSC<2:0>=100 Oscillateur interne 4MHz, RA6 et RA7 = E/S numriques OSCCON = 71h, FOSC<2:0>=100 Oscillateur interne 8MHz, RA6 et RA7 = E/S numriques Les pins RA0, RA1, RA2, RA3 et RA5 analogique numrique

PORTB : Ce port comporte maintenant 6 broches pouvant tre configure en analogique. Voir paragraphe sur les registres ANSEL et ANSELH

PORTC : Ce port ne semble pas comporter de changement par rapport au 16f877

PORTD : Ce port de 8 bits n'a rien de spcial. Le mode PSP a disparu. 3 bits peuvent tre utiliss en mode PWM PORTE : Ce port comporte maintenant 4 bits. Les 3 bits RE0, RE1 et RE2 peuvent tre configur en analogique ou numrique. Le bit RE3 fonctionne seulement en entre. Il peut tre soit une entre numrique normale soit une entre de RESET (MCLR). Sa configuration se fait l'aide du switch MCLRE de CONFIG1(2007) : MCLRE = 0 RE3 est une entre numrique normale. MCLR est connect intrieurement Vdd MCLRE =1 RE3 sert de MCLR

I.5

L'interruption IOC (Interrupt on change)

L'interruption RBI que nous appellerons dsormais IOC est dclenche par n'importe quel changement sur un bit de PORTB. Le bit INTCON.RBIE valide l'interruption globalement alors que chaque bit du registre IOCB la valide pour une entre spcifique de PORTB. A titre d'exemple, pour valider l'interruption IOC sur la pate RB3, il faut positionner les 3 bits de validation : INTCON.GIE, INTCON.RBIE et IOCB.IOCB3 IOCB (bank1) IOCB7 IOCB6 IOCB5 IOCB4 IOCB3 IOCB2 IOCB1 IOCB0

Pour baisser le drapeau RBIF, il faut d'abord lire PORTB

TP microcontrleurs

A. Oumnad

page 8

TP microcontrleurs

A. Oumnad

page 9

TP microcontrleurs

A. Oumnad

page 10

I.6

Le convertisseur Analogique Numrique

Le convertisseur Analogique numrique a subit quelques modifications: Le 16F887 dispose de 14 E/S Analogique/Numrique (AN0 AN1). Leur configuration en Analogique ou en numrique se fait plus l'aide de ADCON1 mais l'aide des deux registres ANSEL et ANSELH (bank 3) AN0 AN1 AN2 AN3 AN4 AN5 AN6 AN7 AN8 AN9 AN10 AN11 AN12 AN13 RA0 RA1 RA2 RA3 RA5 RE0 RE1 RE2 RB2 RB3 RB1 RB4 RB0 RB5 ANS0 ANS1 ANS2 ANS3 ANS4 ANS5 ANS6 ANS7 ANS8 ANS9 ANS10 ANS11 ANS12 ANS13 -

ANSEL 0 : Numrique 1 : Analogique ANSELH

TP microcontrleurs ADCON0 ADCS1 ADCS0 CHS3

A. Oumnad CHS2 CHS1 CHS0 GO/DONE ADON

page 11

ADCS1:ADCS0 : Choix de l'horloge de conversion. Tad = TOSC x div 00 : div = 2 01 : div = 8 10 : div = 32 11 : Oscillateur RC ddi au CAN, Tad est de l'ordre de 4 s <CHS3:CHS0> : choix du canal analogique convertir ADCON1 ADFM VCFG1 VCFG0 -

ADFM : justification droite ou gauche du rsultat dans les registre ADRESH et ADRESL ADRESH ADRESL 1 : justifi droite 000000XX XXXXXXXX 0 : justifi gauche XXXXXXXX XX000000 VCFG1 : Choix de Vr0 : Vr- = Vss 1 : Vr- = AN2 = RA2 VCFG+ : Choix de Vr+ 0 : Vr+ = Vdd 1 : Vr+ = AN3 = RA3

I.7

L'USART

L'USART a t amliore et porte le nom EUSART (Enhanced USART) la vitesse est maintenant contrle par deux registres SBBRGH et SPBRG en plus d'un registre de control BAUDCTL. Pour que l'EUSART fonctionne comme L'USART classique, il faut faire : - SPBRGH = 0 - BAUDCTL = 0

TP microcontrleurs

A. Oumnad

page 12

II La carte de TP EasyPIC5

II.1 L'alimentation
L'alimentation de la carte peut se faire soit travers le cble USB de programmation, soit par une alimentation externe. Le choix se fait l'aide du jumper J6. L'interrupteur ON/OFF permet d'allumer teindre la carte

II.2 La programmation de la carte


La programmation du PIC se fait l'aide du logiciel de programmation PicFLASH travers un cble USB et le programmateur mikroICD intgr sur la carte. L'utilisation de PicFLASH est simple Choisir le PIC utilis en haut droite Charger votre programme .hex l'aide du bouton Load Flasher l'aide du bouton Write Si vous avez retouch votre .hex, il faut le recharger l'aide du bouton Reload Hex

TP microcontrleurs

A. Oumnad

page 13

II.3 Les LEDs


Toutes les E/S du PIC sont relie des LEDs comme indiqu sur la figure ci-dessous. Quatre interrupteur du SW6 permettent de connecter/dconnecter un port de la masse.
PORTA / E
RB0

SW6
1 2 3 4 5 6 7 8
PORTB

RB1 RB2 RB3 RB4 RB5 RB6 RB7

PORTC PORTD

TP microcontrleurs

A. Oumnad

page 14

II.4 Les boutons poussoir et les rsistances de Pull-up/down


Toutes les E/S sont relies des rsistances de pull-up pull-down regroupes par port comme indiqu sur la figure ci-dessous.
J1 J3 J4 J5

J2

SW1

SW2

SW3

SW4

SW5

PORTA

PORTB

PORTC

PORTD

PORTE

Toutes les E/S du PIC sont relies des boutons poussoir comme indiqu sur la figure ci-dessous RA7 RA6 RA5 RA4 RA3 RA2 RA1 RA0

PORTB/C/D/E

J17
Avec ces dispositions, chaque E/S peut tre configure comme montr sur les deux figures ci-dessous : Vcc Vcc

TP microcontrleurs

A. Oumnad

page 15

II.5 Les entres pour tests analogiques


Deux potentiomtres P1 et P2 dlivrent deux tensions analogiques comprises entre 0V et 5V. Ces signaux peuvent tre relis aux entres RA0, RA1, RA2, RA3 et RA5 comme le montre la figure ci-dessous

Attention : sur le 16F887 comme sur le 16F877, RA4 n'est pas une entre analogique Une entre connecte un potentiomtre doit tre dconnecte de sa rsistance de pull up l'aide du Switch SW1 ou du jumper J1

II.6 L'afficheur LCD


L'afficheur LCD est command par PORTB en mode 4 bits. Le potentiomtre P4 (LCD Contrast) permet d'ajuster le contraste Le Switch 7 de SW9 permet d'allumer/teindre le rtro clairage.

LCD

RS

D7

D6

D5

D4 D3 D2 D1 D0

RB7 RB6 RB5 RB4 RB3 RB2 RB1 RB0

PIC16F887

TP microcontrleurs

A. Oumnad

page 16

III Le compilateur MikroC


III.1 Les types de variables
Type (unsigned) char signed char (signed) short (int) unsigned short (int) (signed) int unsigned (int) (signed) long (int) unsigned long (int) Taille en octets 1 1 1 1 2 2 4 4 Intervalle 0 .. 255 - 128 .. 127 - 128 .. 127 0 .. 255 -32768 .. 32767 0 .. 65535 -2147483648 .. 2147483647 0 .. 4294967295

III.2 Les oprateurs logiques


Operator Operation && logical AND || logical OR ! logical negation
Exemple : If ( a>b && x<y){ // si a>b et x< y faire Xxxxxxxxx ; Xxxxxxxxxx ; Xxxxxxxxxxx ; }

III.3 Les oprateurs logiques orient bits


Operator & | ^ ~ << >> Operation AND (inclusive) OR; exclusive OR (XOR) Complment, (NOT); inverse tout les bits Dcalage gauche Dcalage droite
// inverser tous les bits de PORTB // forcer le bit RB1 0

Exemple : PORTB = ~PORTB; PORTB = PORTB & 0b11111101;

III.4 Comment modifier un registre ou un bit


Pour affecter une valeur un port on utilise une simple affectation sans se soucier du banc: PORTB = 0x24; TRISC = 0; TRISB = 0xFF; TXSTA = 0x24; Pour modifier un bit on utilise l'criture suivante : TRISB,F0 = 1; PORTB,F3 = 0;

TP microcontrleurs

A. Oumnad

page 17

III.5 Crer un projet Mikroc


Project -> New Project Donner un nom au projet Choisir un dossier pour le projet. Il est conseill de crer un nouveau dossier pour chaque projet. ->Browse -> aller dans le dossier o vous stockez vos projets ->Cliquer sur le bouton Crer nouveau dossier -> donner au dossier le mme nom que le projet Choisir votre PIC dans le champ device : PIC16F887 Choisir l'horloge 8 MHx Dfinir les switchs de configuration (2007 et 2008) Comme c'est le premier projet, on va dfinir une configuration typique et la sauvegarder pour la rutiliser par la suite : -> Cliquer sur le bouton new -> NewScheme apparait dans le champ de saisie gauche -> remplacer NewScheme par un nom de votre choix, exemple 16F887_INTOSCIO -> Cocher les cases suivantes : -> INTOSCIO (Horloge interne, RA6,RA7=E/S) -> WDT_OFF (chien de garde dsactiv) -> PWRTE_ON (activer la temporisation de 64ms aprs la mise sous tension) -> CP_OFF (code non protg en lecture) -> CPD_OFF (EEPROM non protge en lecture) -> BOR_ON (rinitialisation du PIC en cas de chute de Vdd en dessous de la valeur fixe par le switch BOR4V) -> IES0_OFF (dsactiver le mode switch Over) -> FCMEN_OFF (dsactiver le moniteur Fail Safe Clock) -> LVP_OFF (Dsactiver le mode de programmation basse tension) -> DEBUG_OFF (Dsactiver le dbugger) -> BOR40V (fixer la tension du Brown Out 4V) -> WRT_OFF (pas de protection en criture de la mmoire flash) -> -> Cliquer sur le bouton SAVE pour sauvegarder ces chois sous le nom NewScheme Cliquer sur OK pour commencer crire votre code. Vous pouvez vrifier gauche Saisir le programme C et le compiler en cliquant sur le bouton (Ctrl+F9). Les erreurs de compilation apparaissent dans la fentre en bas de l'cran. S'il n'ya pas d'erreur, on obtient Success (Release Build) en vert Flasher le pic en appuyant sur F11

III.6 Quelques fonctions utiles


Delay_ms(n) : temporisation de n ms Delay_us(n) : temporisation de n s Lcd_init(&PORTx) : initialise l'afficheur LCD branch sur le port PORTx voir le help pour plus de dtail Lcd_config(&port,RS,E,WR,D7,D6,D5,D4) : initialise le l'afficheur LCD en prcisant le brochage
Lcd_out(l,c,chaine) Exemple : Lcd_Config(&PORTD,0,1,7,5,4,3,2); : affiche une chaine sur le LCD en prcisant la ligne et la colonne, ex : Lcd_Out(1, 3, "Hello!");

Lcd_out_cp(chaine) : affiche une chaine la position courante du curseur


Lcd_Chr(l,c,caractre) : affiche un caractre, ex: Lcd_Chr(2, 3, 'A'); Lcd_Chr_Cp(caractre) : affiche un caractre la position courante, ex: Lcd_Chr('B');

Lcd_cmd(commande) : envoie une commande au LCD ex: Lcd_Cmd(LCD_CURSOR_OFF); Consulter le help de MikroC pour plus d'information

TP microcontrleurs

A. Oumnad

page 18

IV TP no 1
L'objectif de ce TP est de prendre en main la carte EASYPIC5 et d'crire un programme sous MPLAP qui utilise les LEDs et les boutons poussoirs, d'implanter ce programme sur la carte l'aide du programme PicFlash et de faire des investigations pertinentes.

1) Observer la carte et localiser : a) Le Microcontrleur 16F887 b) Le connecteur USB de programmation/alimentation c) Le connecteur Jack d'alimentation d) Le jumper J6 qui permet de choisir entre alimentation USB ou alimentation Jack e) Le bouton marche arrt ON/OF f) Le switchSW6 qui permet de connecter les ports sur les LED g) Le jumper J17 qui permet de connecter les boutons poussoirs sur la masse ou sur Vdd h) Le jumper J13 qui permet de connecter/dconnecter le broche RA6 et RA& au quartz 2) Dterminer les configurations CONFIG1 (2007), CONFIG2 (2008) et OSCCON pour avoir a) Configuration A : Horloge Oscillateur interne 8 MHz, WDT_OFF, CodeProtection_OFF, tempo_dmarrage_ON, BrownOut_Reset_ON_4Volts, Write_Protect_OFF b) Configuration B Horloge Oscillateur Quartz XT, WDT_OFF, CodeProtection_OFF, tempo_dmarrage_ON, BrownOut_Reset_ON_4Volts, Write_Protect_OFF 3) Ecrire le programme TP1-1.asm sous MPLAB qui : a) Configure Le PIC avec la Configuration A dfinie ci-dessus b) Configure tous les ports en sorties numriques c) Fait clignoter tous les ports avec une temporisation de s obtenue l'aide de tempo3 4) Brancher la carte EasyPic5 sur votre PC l'aide du cble USB. Vrifier que le jumper J6 est sur position USB. Vrifier sur le switch SW6 que tous les ports sont connects aux LEDs Allumer la carte l'aide de bouton ON/OFF. Dmarrer le programme PicFlash, charger le fichier TP1-1.hex, vrifier que les switchs sont corrects Flasher le PIC, bouton write Observer les rsultats. Pourquoi le bit RE3 ne clignote pas. Si RA6 et RA7 ne clignotent pas expliquer pourquoi 5) Modifier le programme en utilisant la configuration B dfinie plus haut. sauvegardez-le sous TP1-2.asm. 6) Compiler le programme et charger TP2-2.hex dans PicFlash. Vrifier les switchs de configuration 7) Flasher le PIC, Observer et commenter les rsultats

TP microcontrleurs

A. Oumnad

page 19

V TP no 2
L'objectif de ce TP est d'apprendre utiliser l'afficheur LCD

V.1 La bibliothque pic_asm_lib.asm


Pour utiliser une fonction, il faut la dclarer au dbut du programme : #define nomfonction_ tempo1 : temporisation, T = 3W + 5 cycles, max = 773 cycles (#define tempo1_) tempo2 : temporisation, T = 770W + 5 cycles, max = 197125 cycles tempo3 : temporisation, T = 197122W + 5 cycles max = 50463237 cycles lcd_init : Initialise l'afficheur LCD. o Fait appel des macros contenues dans le fichier macros.asm o Doit tre dclare comme suit : #define lcd_init_ o Ncessite la constante LCD_MODE qui dfinit le mode de connexion : 8 bits : #define LCD_MODE 0xFF 4 bits poids faible : #define LCD_MODE 0x0F 8 bits poids fort : #define LCD_MODE 0xF0 o Ncessite la constante LCD_PORT qui dfinit sur quel port est branch le LCD, Exemple : #define LCD_PORT PORTB o Ncessite les constante LCD_RS et LCD_E qui dfinissent les bits qui contrlent RS et E Exemple : #define LCD_RS PORTB,3 #define LCD_E PORTB,2 o Ncessite les constante LFOSC_MHZ qui dfinit l'horloge systme Exemple : #define FOSC_MHZ 8 lcd_data : affiche le caractre prsent dans W sur le LCD lcd_cmd : envoie la commande prsente dans W vers le LCD lcd_locate : Positionne le curseur la position dfinie par W (0=dbut ligne 1, 64=dbut ligne 2) lcd_byte_d : affiche l'octet prsent dans w en dcimal lcd_word_d : affiche le word prsent dans AH:AL en dcimal umul8x8 : AL * W --> AH:AL umul16x16 : AH:AL x BH:BL --> BH:BL:AH:AL div16by8 : Division AH:AL / W --> Q=AL, R=AH div16by16 : Division DH:DL / BH:BL --> Q=AH:AL, R=CH:CL div32by16 : Division BH:BL:AH:AL / DH:DL --> Q=AH:AL R=BH:BL byte2dec : Convertit le contenu de W en 3 chiffres dcimaux --> tableau bcd exemple : W=234 ---> [bcd]=2, [bcd+1]=3, [bcd+2]=4 word2dec : Convertit AH:AL en 5 chiffres dcimaux --> tableau bcd exemple : AH:AL=63421 => [bcd]=6, [bcd+1]=3, [bcd+2]=4, [bcd+3]=2, [bcd+2]=1 dword2dec : Convertit BH:BL:AH:AL en 10 chiffres dcimaux --> tableau bcd

V.2 Travail pratique


1) Faire le programme tp2-1.asm qui affiche : TP PIC sur la premire ligne et les deux nombres 125 et 2011 sur la 2me ligne 2) Faire le programme tp2-2.asm qui affiche sur la premire ligne un compteur 8 bits (0,1,2 255) 3) Faire le programme tp2-3.asm qui affiche sur la deuxime line un compteur 16 bits (0, 1, 2, 65535). 4) Faire le programme tp2-4.asm qui affiche simultanment les deux compteurs prcdents

You might also like