LM3S811驱动LCD1602.doc_第1页
LM3S811驱动LCD1602.doc_第2页
LM3S811驱动LCD1602.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LM3S811驱动LCD1602驱动程序经过一个下午的移植,将LCD1602的驱动程序,从C51移植到LM3S811上。再用了一天时间,将它调试成功。读者可放心使用。呵呵。(是16个引脚的那种LCD1602)#include systeminit.h#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_BASEvoid duankouInit(void);/端口初始化设置void LCD_write_command(unsigned char command);/写指令函数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); /约1sGPIOPinWrite(LED_PORT,LED,0xff); SysCtlDelay(1000* (TheSysClock / 3000); /约1slcdzuobiao(0,0);display(LCD1602 TEST);lcdzuobiao(0,1);display(ok); void duankouInit(void) SysCtlPeripheralEnable(LED_PERIPH); GPIOPinTypeGPIOOutput(LED_PORT, LED); GPIOPadConfigSet(LED_PORT,LED,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);/设置引脚 SysCtlPeripheralEnable(RS_PERIPH); GPIOPinTypeGPIOOutput(RS_PORT, RS); GPIOPadConfigSet(RS_PORT,RS,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU);/设置引脚 SysCtlPeripheralEnable(RW_PERIPH); GPIOPinTypeGPIOOutput(RW_PORT, RW); GPIOPadConfigSet(RW_PORT,RW,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); SysCtlPeripheralEnable(E_PERIPH); GPIOPinTypeGPIOOutput(E_PORT, E); GPIOPadConfigSet(E_PORT,E,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); SysCtlPeripheralEnable(PD_PERIPH); GPIOPinTypeGPIOOutput(PD_PORT, PD); GPIOPadConfigSet(PD_PORT,PD,GPIO_STRENGTH_2MA, GPIO_PIN_TYPE_STD_WPU); void LCD_write_command(unsigned char dat)/写指令函数 SysCtlDelay(1* (TheSysClock / 3000); /约1ms/RS=0;/指令 GPIOPinWrite(RS_PORT,RS,0xfe);/RW=0;/写入GPIOPinWrite(RW_PORT,RW,0xfd);GPIOPinWrite(E_PORT,E,0xfb);/P0=dat;GPIOPinWrite(PD_PORT,PD,dat);SysCtlDelay(1* (TheSysClock / 3000); /约1ms/E=1;/允许GPIOPinWrite(E_PORT,E,0xff);/E=0;SysCtlDelay(1* (TheSysClock / 3000); /约1msGPIOPinWrite(E_PORT,E,0xfb); void LCD_write_data(unsigned char dat)/写数据函数 SysCtlDelay(1* (TheSysClock / 3000); /约1ms/RS=1;/数据GPIOPinWrite(RS_PORT,RS,0xff);/RW=0;/写入GPIOPinWrite(RW_PORT,RW,0xfd);GPIOPinWrite(E_PORT,E,0xfb);/P0=dat; GPIOPinWrite(PD_PORT,PD,dat);SysCtlDelay(1* (TheSysClock / 3000); /约1ms/E=1;/允许GPIOPinWrite(E_PORT,E,0xff);SysCtlDelay(1* (TheSysClock / 3000); /约1ms/E=0;GPIOPinWrite(E_PORT,E,0xfb); /*初始化函数*void LCD_init(void)SysCtlDelay(15* (TheSysClock / 3000); /约15msLCD_write_command(0x38);/设置8位格式,2行,5x7SysCtlDelay(100* (TheSysClock / 3000); /约100msLCD_write_command(0x0c);/整体显示,关光标,不闪烁SysCtlDelay(100* (TheSysClock / 3000); /约100msLCD_write_command(0x06);/设定输入方式,增量不移位SysCtlDelay(100* (TheSysClock / 3000); /约100msLCD_write_command(0x01);/清除屏幕显示SysCtlDelay(100* (TheSysClock / 3000); /约100ms /*LCD坐标函数*void lcdzuobiao(unsigned char x,unsigned char y)if(y=0)LCD_

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论