LM3S811驱动LCD1602驱动程序
经过一个下午的移植,将LCD1602的驱动程序,从C51移植到LM3S811上。再用了一天时间,将它调试成功。读者可放心使用。呵呵。
(是16个引脚的那种LCD1602)
#include ""
#define LED GPIO_PIN_5
#define LED_PERIPH SYSCTL_PERIPH_GPIOB
#define LED_PORT GPIO_PORTB_BASE
#define RS GPIO_PIN_0
#define RS_PERIPH SYSCTL_PERIPH_GPIOA
#define RS_PORT GPIO_PORTA_BASE
#define RW GPIO_PIN_1
#define RW_PERIPH SYSCTL_PERIPH_GPIOA
#define RW_PORT GPIO_PORTA_BASE
#define E GPIO_PIN_2
#define E_PERIPH SYSCTL_PERIPH_GPIOA
#define E_PORT GPIO_PORTA_BASE
#define PD GPIO_PIN_0 GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7
#define PD_PERIPH SYSCTL_PERIPH_GPIOD
#define PD_PORT GPIO_PORTD_BASE
void duankouInit(void);//端口初始化设置
void mand(unsigned mand);//写指令函数
void LCD_write_data(unsigned char dat);//写数据函数
void lcdzuobiao(unsigned char x,unsigned char y);//LCD坐标
void display(unsigned char *p);//显示//
void LCD_init(void);//LCD初始化
int main(void)
{
jtagWait(); // 防止JTAG失效
clockInit();
duankouInit();
LCD_init();
while(1)
{GPIOPinWrite(LED_PORT,LED,0xdf);
SysCtlDelay(1000* (TheSysClock / 3000)); //约1s
GPIOPinWrite(LED_PORT,LED,0xff);
SysCtlDelay(1000* (TheSysClock / 3000)); //约1s
lcdzuobiao(0,0);
display("LCD1602 TEST");
lcdzuobiao(0,1);
display("ok");
}
}
void duankouInit(void)
{SysCtlPeripheralEnable(LED_PERIPH);
GPIOPinTypeGPIOOutput(LED_PORT, LED);
GPI
LM3S811驱动LCD1602 来自淘豆网www.taodocs.com转载请标明出处.