我尝试向 LCD 16x2发送一个字符、但它失败了。 未显示任何内容。 使用此代码、我可以通过 PIC 和8051微控制器连接 LCD。 我稍微更改了一些以适应 Tiva C Launchpad、但它不起作用。
我使用引脚 B0-B7来传输数据。 A5-A6是 RS 和 E、RW 接地。 这是我的代码:
#include
#include
#include
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "driverlib/pin_map.h"
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#define P0 GPIO_PIN_0
#define P1 GPIO_PIN_1
#define P2 GPIO_PIN_2
#define P3 GPIO_PIN_3
#define P4 GPIO_PIN_4
#define P5 GPIO_PIN_5
#define P6 GPIO_PIN_6
#define P7 GPIO_PIN_7
void delay_ms (int t)
{
SysCtlDelay (SysCtlClockGet ()/(3000/t));
}
void lcd_cmd (char cmd)
{
GPIOPinWrite (GPIO_Porta_base、P5、0);
GPIOPinWrite (GPIO_Porta_base、P6、1<<6);
GPIOPinWrite (GPIO_PORTB_BASE、P0|P1|P2|P3|P4|P5|P6|P7、cmd);
delay_ms (10);
GPIOPinWrite (GPIO_Porta_base、P6、0);
delay_ms (20);
}
void LCD_data (字符数据)
{
GPIOPinWrite (GPIO_Porta_base、P5、1<<5);
GPIOPinWrite (GPIO_Porta_base、P6、1<<6);
GPIOPinWrite (GPIO_PORTB_BASE、P0|P1|P2|P3|P4|P5|P6|P7、DATA);
delay_ms (10);
GPIOPinWrite (GPIO_Porta_base、P6、0);
delay_ms (20);
}
void LCD_WrStr (char *str)
{
while (* str)
{
lcd_data (*str);
STR++;
}
}
void SetCursor _LCD (unsigned char m、unsigned char n)//chinh vi tri con tro
{
如果(m=1)
{
LCD_cmd (0x80+n);
delay_ms (10);
}
其他
{
LCD_cmd (0xC0+n);
delay_ms (10);
}
}
void LCD_init (void)
{
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOB);
SysCtlPeripheralEnable (SYSCTL_Periph_GPIOA);
GPIOPinTypeGPIOOutput (GPIO_PORTB_BASE、P0|P1|P3|P4|P5|P6|P7);
GPIOPinTypeGPIOOutput (GPIO_Porta_base、P5|P6);
GPIOPinWrite (GPIO_Porta_base、P5、0);
GPIOPinWrite (GPIO_Porta_base、P6、0);
GPIOPinWrite (GPIO_PORTB_BASE、P0|P1|P2|P3|P4|P5|P6|P7、0);
// delay_ms (200);
// LCD_cmd (0x30);
// delay_ms (500);
// LCD_cmd (0x30);
// delay_ms (110);
// LCD_cmd (0x30);
// delay_ms (1000);
LCD_cmd (0x38);
delay_ms (1000);
LCD_cmd (0x0C);
delay_ms (1000);
LCD_cmd (0x06);
delay_ms (1000);
LCD_cmd (0x01);
delay_ms (1000);
}
int main (空)
{
SysCtlClockSet (SYSCTL_SYSDIV_5|SYSCTL_USE_PLL|SYSCTL_XTAL_16MHz|SYSCTL_OSC_MAIN);
lcd_init();
SetCursor LCD (1、0);
delay_ms (100);
LCD_DATA ('H');
}