Paso 3: Código y salida
/ * LCD_own.c
* Creado en: 12 de noviembre de 2013
* Autor: Manpreet
* En este programa la interfaz de la pantalla lcd en el modo de 8 bits. Enviar cadenas y visualizar en la pantalla.
*/
#include "8bit_lcd.h"
void main
{
WDTCTL = WDTPW + WDTHOLD; pare temporizador de vigilancia
lcd_init();
send_string ("Manpreet Singh");
send_command(0xC0);
send_string("Minhas");
{while(1)}
}
He escrito un archivo de encabezado independiente que puede incluirse en cualquier programa de c para utilizar sus funciones. He hecho una función para el envío de instrucciones de comando, uno para enviar datos como caracteres individuales y el envío de cadenas.
/ * 8bit_lcd.h
* Creado en: 12 de noviembre de 2013
* Autor: Manpreet
*/
#include
#define DR P2OUT = P2OUT | BIT0 / / define RS alta
#define P2OUT CWR = P2OUT & (~ BIT0) / / definir bajo RS
#define leer P2OUT = P2OUT | Albañilería1 / / define la señal de lectura R/W = 1 lectura
#define escribir P2OUT = P2OUT & (~ albañilería1) / / define la señal de escritura R/W = 0 para escritura
#define ENABLE_HIGH P2OUT = P2OUT | BIT2 / / definir habilitar alta señal
#define ENABLE_LOW P2OUT = P2OUT & (~ BIT2) / / definir señal baja permiten
unsigned int i;
unsigned int j;
retardo de vacío (unsigned int k)
{
para (j = 0; j < = k; j ++)
{
para (i = 0; i < 1000; i ++);
}
}
void data_write(void)
{
ENABLE_HIGH;
Delay(2);
ENABLE_LOW;
}
void data_read(void)
{
ENABLE_LOW;
Delay(2);
ENABLE_HIGH;
}
void check_busy(void)
{
P1DIR & = ~ (BIT7); hacer P2.3 como entrada
mientras que ((P1IN&BIT7) == 1)
{
data_read();
}
P1DIR | = BIT7; hacer P2.3 como salida
}
void send_command (unsigned char cmd)
{
check_busy();
ESCRIBIR;
CWR;
P1OUT = (P1OUT & 0 x 00) | (cmd);
data_write(); le dan activar disparador
}
void send_data (datos char sin signo)
{
check_busy();
ESCRIBIR;
DR;
P1OUT = (P1OUT & 0 x 00) | (datos);
data_write(); le dan activar disparador
}
void send_string(char *s)
{
while(*s)
{
Send_Data(*s);
s + +;
}
}
void lcd_init(void)
{
P2DIR | = 0XFF;
P1DIR | = 0XFF;
P2OUT & = 0 x 00;
P1OUT & = 0 x 00;
send_command(0x38); modo 8 bits
send_command(0x0E); limpiar la pantalla
send_command(0x01); Mostrar el cursor en
send_command(0x06); / / incrementar el cursor
send_command(0x80); / / posición del cursor
}
(Para reloj de explicación del código: [youtube = http://www.youtube.com/watch?v=Pc1fRJsnFg8 & w = 640 & h = 390])
Para más información sobre msp430 launchpad visita mi blog: http://learningmsp430.wordpress.com/
Referencias:
El 8051 microcontroladores y sistemas embebidos mediante Asamblea y C por Mazidi (ISBN-978-81-317-1026-5)
Hoja de datos del HD44780U