40
TD Microcontrôleur F. Pépin Description du spectrocolorimètre Documentation Sous-programmes de gestion de l'afficheur Afficheur LCD Mémoire FLASH Mémoire SRAM Convertisseur analogique numérique Gestion du codeur incrémental EEPROM

TD 196 2010 -

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: TD 196 2010 -

TD Microcontrôleur

F. Pépin

Description du spectrocolorimètre

Documentation

Sous-programmes de gestion de l'afficheurAfficheur LCD

Mémoire FLASH

Mémoire SRAM

Convertisseur analogique numériqueGestion du codeur incrémental

EEPROM

Page 2: TD 196 2010 -

Spectrocolorimètre

Il s'agit de concevoir un spectro-colorimètre, dont l'objectif est de mesurer la réflectance ou la

transmittance spectrale de matériaux colorés. Un spectrocolorimètre est constitué d'une source

lumineuse, d'un filtre interférentiel et d'un détecteur :

Corps

coloré

détecteur

Filtre

Moteur et

codeur incrémental

Voici les différents éléments de ce système :

• un afficheur LCD. Les sous-programmes de gestion de cet afficheur sont disponibles sous

forme d'une biblothèque de programmes qu'il suffira de joindre au programme principal.

• un clavier matriciel. Chaque pression sur une touche provoque la fermeture de

l'interrupteur correspondant

• plus de 32 Ko de FLASH

• entre 8 et 16 Ko de RAM

• Un convertisseur analogique-numérique 16 bits

• 1 Ko d'EEPROM

• Quelques entrées-sorties logiques

Réaliser un avant-projet de ce système.

Page 3: TD 196 2010 -

TD Microcontrôleur

Sous-programmes de gestion de l'afficheur

$TITLE('SSPG-LCD');;;------------------------------------------------------------------------;;; Sous Programmes de gestion de l'afficheur L.C.D. pour le 80196KR;; modele 2 a 4 lignes de 8 a 20 caracteres; interface intelligent (type Philips, Samsung, ...); brochage 14 points; utilisation en mode dialogue de donnees sur 4 bits; pas de lecture de l'afficheur, donc pas de Handshake hard;;------------------------------------------------------------------------;; utilise le cablage suivant : port P1.0 a P1.7;; P1.7 = D7; P1.6 = D6; P1.5 = D5; P1.4 = D4; P1.3; P1.2 = E : validation sur front descendant; P1.1 = R/W : a 0 en ecriture; P1.0 = RS : a 0 pour une commande, a 1 pour affichage;;------------------------------------------------------------------------;n_colons equ 20 ;nombre de colonnes afficheur;RSEG ; segment de registres

EXTRN char,AL;; variables locales a ces procedures;out: dsb 1verz: dsw 1;;------------------------------------------------------------------------;CSEG ; segment de code

P1 EQU 1FD4H

PUBLIC init_lcd,print,com,attend

init_lcd:;;procedure d'initialisation de l'afficheur;

ldb AL,#00110100B ;init rs=0,r/w=0,e=1ldb AL,P1nopldb AL,P1andb AL,#11111011B ;E = 0stb AL,P1call attendldb AL,#00110100B ;init e=1stb AL,P1nopldb AL,P1

Page 4: TD 196 2010 -

TD Microcontrôleur

andb AL,#11111011B ; E = 0stb AL,P1call attendldb AL,#00110100B ;init ,e=1stb AL,P1noplsb AL,P1andb AL,#11111011B ; E = 0stb AL,P1call attendldb AL,#00100100B ; fonctionnement 4 bitstb AL,P1nop ; modif P1.3=0lsb AL,p1andb AL,#11111011B ; e=0stb AL,P1call attendldb char,#00101100Bcall com ; function set 2 lignesldb char,#00001000B ; display offcall comldb char,#00000001B ; clear displaycall comldb char,#00001100B ; display on cursor offcall comldb char,#00000110B ; no shiftcall comret

;;------------------------------------------------------------------------;attend:;; Temporisation reglable;

clr verz ; boucle d'attente ...attend_encore: inc verz

cmp verz,#3500jne attend_encoreret

;;------------------------------------------------------------------------;print:;; sous programme d'affichage du code ASCII contenu dans char; out est une variable locale;

lsb AL,#00000101B ; E=1stb AL,P1ldb out,charandb out,#0F0H ; prends les poids fortsorb out,#00000101B ; E=1,R/W=0,RS=1call afficher ; envoi vers l'afficheurldb out,charshlb out,#4 ; prends les poids faiblesorb out,#00000101B ; E=1,R/W=0,RS=1call afficher ; envoi vers l'afficheurlsb AL,#11111000Bstb AL,P1ret

;;------------------------------------------------------------------------;

Page 5: TD 196 2010 -

TD Microcontrôleur

com:;; sous-programme d'envoi d'une commande contenue dans char (8bits); out est une variable locale;

lsb AL,#00000100B ; E=1stb AL,P1ldb out,charandb out,#0F0Horb out,#00000100B ; E=1,R/W=0,RS=0call afficherldb out,charshlb out,#4orb out,#00000100Bcall afficherret

;;------------------------------------------------------------------------;afficher:;; sous-programme d'envoi sur le port p1 avec les tempo; verz est un compteur local;

clr verzbouc: inc verz

cmp verz,#2000jne boucldb AL,out ; met la donnee sur le portstb AL,P1nopnoplsb AL,P1andb AL,#11111011B ; E=0 pour validationstb AL,P1ret

END

Page 6: TD 196 2010 -

TD Microcontrôleur

Afficheur LCD

Page 7: TD 196 2010 -

TD Microcontrôleur

Page 8: TD 196 2010 -

TD Microcontrôleur

Mémoire FLASH

Page 9: TD 196 2010 -

TD Microcontrôleur

Page 10: TD 196 2010 -

TD Microcontrôleur

Page 11: TD 196 2010 -

TD Microcontrôleur

Page 12: TD 196 2010 -

TD Microcontrôleur

Page 13: TD 196 2010 -

TD Microcontrôleur

Page 14: TD 196 2010 -

TD Microcontrôleur

Page 15: TD 196 2010 -

TD Microcontrôleur

Page 16: TD 196 2010 -

TD Microcontrôleur

Page 17: TD 196 2010 -

TD Microcontrôleur

Mémoire SRAM

Page 18: TD 196 2010 -

TD Microcontrôleur

Page 19: TD 196 2010 -

TD Microcontrôleur

Page 20: TD 196 2010 -

TD Microcontrôleur

Page 21: TD 196 2010 -

TD Microcontrôleur

Page 22: TD 196 2010 -

TD Microcontrôleur

Page 23: TD 196 2010 -

TD Microcontrôleur

Convertisseur analogique numérique

Page 24: TD 196 2010 -

TD Microcontrôleur

Page 25: TD 196 2010 -

TD Microcontrôleur

Page 26: TD 196 2010 -

TD Microcontrôleur

Page 27: TD 196 2010 -

TD Microcontrôleur

Page 28: TD 196 2010 -

TD Microcontrôleur

Gestion du codeur incremental

Page 29: TD 196 2010 -

TD Microcontrôleur

Page 30: TD 196 2010 -

TD Microcontrôleur

Page 31: TD 196 2010 -

TD Microcontrôleur

Page 32: TD 196 2010 -

TD Microcontrôleur

Page 33: TD 196 2010 -

TD Microcontrôleur

Page 34: TD 196 2010 -

TD Microcontrôleur

Page 35: TD 196 2010 -

TD Microcontrôleur

Page 36: TD 196 2010 -

TD Microcontrôleur

EEPROM I2C

Page 37: TD 196 2010 -

TD Microcontrôleur

Page 38: TD 196 2010 -

TD Microcontrôleur

Page 39: TD 196 2010 -

TD Microcontrôleur

Page 40: TD 196 2010 -

TD Microcontrôleur