A A A

Electronicfr.com

Home arrow Circuits à base de microcontroleurs arrow PICBASIC arrow Piloter un afficheur LCD en SPI (KS0074) avec un PICBASIC 3B 21.11.2008

Menu principal

Home
Robotique
Microcontroleurs et Ethernet
Microcontroleurs et USB
Systèmes embarqués
Proposer un circuit

Search

Google
Web
electronicfr


Piloter un afficheur LCD en SPI (KS0074) avec un PICBASIC 3B

Ecrit par Administrator, le 20-11-2007 11:51
Pages vues 1862    

Piloter un afficher LCD sur bus SPI (chip Samsung KS0074) avec un module microcontroleur Comfile picbasic

J'ai récemment rencontré quelque difficultés pour faire fonctionner un afficheur LCD Samsung piloté par la puce KS0074 (distribué par Selectronic en France) avec un picbasic 3B. L'afficheur fonctionne sur un bus série synchrone 2 fil SPI. Le picbasic possède l'instruction shiftout qui permet en principe de piloter facilement des périphériques I2C ou SPI. Le problème c'est que la doc fournit par Selectronic est un peu trop limitée pour comprendre comment piloter l'afficheur.

 

Je vous conseille donc de jeter un coup d'oeil au datasheet du KS0074, 71 pages tout de meme.

 

En gros le protocole est le suivant:

  • Mise a 0 de la broche CS
  • Envoie d'un séquence d'initialisation sur le bus commençant pas 5 bit a 1 (voir datagramme page 46) et permettant de fixer la valeur RS (Selecteur de registre)
  • Envoie d'un octet de donnée découpé en deux blocs de 4 bits. On envoi les 4 bits de poid faible, 4 bits a 0, les 4 bits de poid fort et encore 4 bits a 0 (voir page 45). Il faut donc envoyer 2 octets pour un octet de donnée.
  • Faire une attente pour permettre l'exécution de l'instruction
  • Envoyer ensuite les donnée découpés en 2*4 bits tant que l'on ne veux pas changer la valeur de RS, sinon reprendre la séquence des 5 bits a 1
 

 

Voici un exemple de programme:
'Dabord executer init, ensuite on peux afficher un carractere ASCII,
'un tableau de char ou une valeur numerique avec respectivement prt_char,
'prt_chaine et prt_number
CONST DEVICE=3B
const data=0 'port 0 - donnée
const CS=1 'port 1 - Chip select const clock=2 'port 2 - clock
const byte chaine=("Exemple")
dim taille as byte
dim char as byte
dim number as byte
dim temp as byte
gosub init
char="B" gosub prt_char
number=254 gosub prt_number
taille=7 gosub prt_chaine
goto fin
init:
delay 20 OUT CS,1 OUT clock,1 OUT data,0 delay 10 OUT CS,0 shiftout clock,data,1,&b11111000
shiftout clock,data,1,&b10000000
shiftout clock,data,1,&b00000000
delay 5 shiftout clock,data,1,&b11110000
shiftout clock,data,1,&b00000000
delay 100 return 'imprime le charactere char prt_char: dim dataL as byte
dim dataH as byte
dataH=char AND &HF0
dataH=dataH >> 4 dataL=char AND &H0F shiftout clock,data,1,&b11111010
shiftout clock,data,0,dataL
shiftout clock,data,0,dataH
return 'imprime la valeur numerique (byte) number prt_number: dim cent as byte
dim diz as byte
dim unit as byte
cent=number/100 diz=number mod 100 diz=diz/10 unit=number mod 10 shiftout clock,data,0,cent,8 shiftout clock,data,0,&b00000011,8 shiftout clock,data,0,diz,8 shiftout clock,data,0,&b00000011,8 shiftout clock,data,0,unit,8 shiftout clock,data,0,&b00000011,8 return prt_chaine: dim compt_taille as byte
temp=taille-1 for compt_taille=0 to temp
char=chaine(compt_taille)
gosub prt_char
next compt_taille
fin:
 




Quote this article in website Print Related articles Save this to del.icio.us

Commentaires utilisateurs (1) Fil RSS des commentaires
Commentaires en langue: English (0), French (1)
Posté le Alexis, le 27-12-2007 10:02, IP 91.189.0.206
1. PB-3B
Bonjour,j'ai decouvert votre site qui est tres bien :D 
Voila,il y a peut de temps je me suis lançé dans la programmation du pb3b a travers un bouquin,mais je n'ai jamais réussi a faire mon programmateurs,alors c'est pourquoi je voudrais vous demander une questions. 
Quel programmateur utuliser vous?
 
» Signaler ce commentaire à l'administrateur
» Répondre à ce commentaire
» Voir les 1 réponse(s)

Ajouter votre commentaire



mXcomment 1.0.5 © 2007-2008 - visualclinic.fr
License Creative Commons - Some rights reserved
 
 
TOP