Comment utiliser un écran LCD couleur de Nokia ! (5 / 11 étapes)

Étape 5: AVR - sortie 9-bit SPI avec un Assembly Inline

Pour implémenter le protocole de 9 bits en utilisant un AVR, j’ai trouvé une belle fonction ASM dans l’exemple de code SparkFun.  Certains, j’ai modifié le code pour le nettoyer et l’adapter pour le contrôleur de Phillips.  Ce code ASM est plus efficace que l’utilisation régulière C et permet plus rapide LCD écrit.

Il utilise des goupilles ATMega168 11, 12, 13 et 14.
11 - data
12 - horloge
13 - chip Select
14 - remise à zéro (non couvert par cette fonction)

void soft_spi_send_byte (char cmd, données char)
{
activez chip_sel
ASM (« DRAS %0, 7 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer le bit indicateur de commande
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc %0, 0 »:: « a » (cmd)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer 7 bits de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc %0, 7 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer 6 bits de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc %0, 6 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer le bit 5 de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc %0, 5 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer le bit 4 de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc %0, 4 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer le bit 3 de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc %0, 3 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer le bit 2 de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc 0 %, 2 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer le bit 1 de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc 0 %, 1 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

Envoyer le bit 0 de données
ASM (« DRAS %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« DRAS %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbrc %0, 0 »:: « a » (données)) ;
ASM (« sbi %0, 5 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
ASM (« sbi %0, 6 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;

désactiver chip_sel
ASM (« sbi %0, 7 »:: "Je" (_SFR_IO_ADDR(PORTD))) ;
}

Ce qui suit définit sont utilisés pour faciliter l’envoi des données et des commandes :

#define color_lcd_send_cmd(cmd) soft_spi_send_byte (0, cmd)
#define color_lcd_send_data(data) soft_spi_send_byte (1, données)

Articles Liés

Comment utiliser un écran LCD - Arduino Tutorial

Comment utiliser un écran LCD - Arduino Tutorial

La bibliothèque innovente vous permet des écrans de contrôle LCD qui sont compatibles avec le pilote Hitachi HD44780. Il y a beaucoup d'entre eux là-bas, et vous les trouverez habituellement par l'interface 16 broches.Dans ce tutoriel, vous apprendre
Comment utiliser un écran LCD - Arduino

Comment utiliser un écran LCD - Arduino

Nous allons apprendre à utiliser un écran LCD (affichage à cristaux liquides) avec une carte Arduino.Étape 1: Matériel nécessaire -Un Arduino UnoPlanche à pain -A-Fils de raccordement-A 10K potentiomètre- Et un écran LCD bien sûr !Vous n'aurez pas be
Arduino-carré avec écran LCD couleur

Arduino-carré avec écran LCD couleur

B-places est une plate-forme électronique modulaire qui permet aux utilisateurs de créer, personnaliser et mettre continuellement à jour leurs propres applications électroniques.Dans cette application B-places, nous allons aborder comment assembler u
Comment connecter un écran LCD de série à un Arduino UNO

Comment connecter un écran LCD de série à un Arduino UNO

Dans ce instructable je vais vous montrer comment j'ai branché une série LCD 16 X 2 à un Arduino UNO.Il y a beaucoup d'instructables et tutoriels vous montre comment connecter un écran LCD normal à un Arduino, mais pas beaucoup montrant une série LCD
Comment connecter un écran LCD de série avec un Arduino Nano

Comment connecter un écran LCD de série avec un Arduino Nano

Dans une précédente instructable j'ai démontré comment connecter l'écran LCD série à un Arduino UNOHier, je voulais utiliser deux Arduinos pour un projet de RF et s'est rendu compte que je ne sais pas comment faire pour utiliser l'écran LCD série ave
Comment utiliser l’écran vert sur Adobe Premiere

Comment utiliser l’écran vert sur Adobe Premiere

cette instructable vous montrera comment utiliser un écran vert en utilisant Adobe Premiere. Mon exemple utilise une photo, mais vous pouvez également utiliser la même technique pour les vidéos sur Adobe Premiere.Étape 1: Étape 1 Cliquez sur « fichie
Comment remplacer l’écran LCD cassé sur Samsung Galaxy

Comment remplacer l’écran LCD cassé sur Samsung Galaxy

Hé les gars,Bienvenue au divertissement de curiosité et de bricolage.Dans cette vidéo, je vais vous montrer comment remplacer un écran LCD cassé sur votre smartphone de Samsung.Profitez !
Comment changer l’écran LCD de votre portable Nokia.

Comment changer l’écran LCD de votre portable Nokia.

Cette instructable vous montrera comment changer un LCD cassé sur votre Nokia. Les photos ci-dessus montrent un Nokia 6300 classique, mais il willl être les mêmes ou presque la même chose avec beaucoup d'autres modèles de Nokia.Pourquoi voulez-vous d
Comment nettoyer un écran LCD ou téléviseur Plasma

Comment nettoyer un écran LCD ou téléviseur Plasma

Traces, les empreintes digitales et les poussières ne sont pas quelque chose que vous voulez sur votre écran LCD ou écrans Plasma. Pour avoir une expérience de visionnement idéale, vous devrez garder votre écran propre. Vous ne peut pas juste frotter
Comment faire un écran LCD de $1 Hood pour caméras vidéo & Digital SLR

Comment faire un écran LCD de $1 Hood pour caméras vidéo & Digital SLR

il s'agit d'une simple vidéo sur comment faire une simple cagoule écran LCD pour votre caméscope ou appareil photo reflex numérique.Après un trépied ou un déclencheur à distance contrôle, je ne peux pas penser d'un élément de plus maniable à avoir lo
Comment utiliser les crayons de couleur (débutants tutoriel de dessin)

Comment utiliser les crayons de couleur (débutants tutoriel de dessin)

Ce tutoriel vidéo explique comment avec des crayons de couleur et d'améliorer vos capacités:)
Comment utiliser un écran vert sur iMovie

Comment utiliser un écran vert sur iMovie

Afin d'obtenir un écran vert il suffit d'acheter planches affiche verte, et certains rouleaux de ruban vert, puis les panneaux affiches de bandes ensemble et les accrocher sur un mur.Étape 1 :Première Ouvrez iMovieÉtape 2 :Obtenir une image que vous
Le convertisseur d’unité de la Arduino DIY : Comment utiliser LCD:

Le convertisseur d’unité de la Arduino DIY : Comment utiliser LCD:

Voici une vidéo horrible de fonctionner. Je vais télécharger un meilleur plus tard.Bien sûr, c'est pour la faire apprendre des concours pour les jeunes, donc Voici les réponses à toutes vos questions !Ce que j'ai fait ?Eh bien, je pensais qu'il était
Détecter la température ambiante et l’affichage sur écran LCD en utilisant Simulink et Arduino UNO

Détecter la température ambiante et l’affichage sur écran LCD en utilisant Simulink et Arduino UNO

Détection et affichage de la température ambiante en utilisant Arduino sont très fréquent, et vous y trouverez plein de tutoriel instructablesand autres sites similaires. Mais, je n'ai pas trouvé n'importe où, n'importe quel tutoriel Comment faire ce