Paso 2: Código y conexiones
Archivo de encabezado:Autor: Manpreet Singh Minhas
Este archivo es para LCD de modo de 4 bits con chip msp430g2553
16 x 2 LCD se utiliza
#include < msp430g2553.h >
#define DR P1OUT = P1OUT | BIT4 / / define RS alta
#define P1OUT CWR = P1OUT & (~ BIT4) / / definir bajo RS
#define leer P1OUT = P1OUT | BIT5 / / define la señal de lectura R/W = 1 lectura
#define escribir P1OUT = P1OUT & (~ BIT5) / / define la señal de escritura R/W = 0 para escritura
#define ENABLE_HIGH P1OUT = P1OUT | BIT6 / / definir habilitar alta señal
#define ENABLE_LOW P1OUT = P1OUT & (~ BIT6) / / 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 < 100; 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 & = ~ (BIT3); hacer P1.3 como entrada
mientras que ((P1IN&BIT3) == 1)
{
data_read();
}
P1DIR | = BIT3; hacer P1.3 como salida
}
void send_command (unsigned char cmd)
{
check_busy();
ESCRIBIR;
CWR;
P1OUT = (P1OUT & 0xF0) | ((cmd >> 4) & 0x0F); envía el nibble alto
data_write(); le dan activar disparador
P1OUT = (P1OUT & 0xF0) | (cmd y 0x0F); envía el nibble inferior
data_write(); le dan activar disparador
}
void send_data (datos char sin signo)
{
check_busy();
ESCRIBIR;
GRX
P1OUT = (P1OUT & 0xF0) | ((datos >> 4) & 0x0F); envía el nibble alto
data_write(); le dan activar disparador
P1OUT = (P1OUT & 0xF0) | (datos & 0x0F); envía el nibble inferior
data_write(); le dan activar disparador
}
void send_string(char *s)
{
while(*s)
{
Send_Data(*s);
s + +;
}
}
void lcd_init(void)
{
P1DIR | = 0XFF;
P1OUT & = 0 x 00;
send_command(0x33);
send_command(0x32);
send_command(0x28); modo de 4 bits
send_command(0x0E); limpiar la pantalla
send_command(0x01); Mostrar el cursor en
send_command(0x06); cursor de incremento
send_command(0x80); fila 1 columna 1
}
Código principal:
/ * LCD_own.c
* Creado en: 12 de noviembre de 2013
* Autor: Manpreet
* En este programa la interfaz de la pantalla lcd en modo de 4 bits. Enviar cadenas y visualizar en la pantalla.
*/
#include "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)}
}
Conexiones de
P1.0 - Pin11 D4
P1.1 - D5 Pin12
P1.2 - D6 Pin13
P1.3 - D7 Pin14
P1.4 - RS Pin4
P1.5 - Pin5 de R/W
P1.6 - Pin6 E
P.S: Para saber más acerca de msp430 visite mi blog aprendizaje msp430