在线时间104 小时
UID3338547
注册时间2017-1-28
NXP金币14
TA的每日心情 | 无聊 2021-12-29 19:06 |
---|
签到天数: 47 天 连续签到: 1 天 [LV.5]常住居民I
金牌会员
 
- 积分
- 1392
- 最后登录
- 2025-3-4
|
(一)显示屏驱动概述
官方配套的显示套装是VFD,接口跟普通lcd是一样的,驱动形式一样,只是命令稍有不同。
(二)接口定义
参考数据手册:
Industrial Platform 1v3 schematics
U盘resource\Training Modules\PPT versions (Recommended)\Industrial Reference Design VFD AND LCD Rel2
底板定义:
核心板定义:
有点坑的是这个核心板和底板不对序号,要看后面的英文
(三)引脚初始化引脚初始化:
- struct _GPIO_ID Lcd_GPIO[11]={
- {2,0},
- {2,1},
- {2,2},
- {2,3},
- {2,4},
- {2,5},
- {2,6},
- {2,7},
- {2,8},
- {2,10},
- {0,22}
- };
复制代码 初始化函数:
- void LcdGPIOInit(void)
- {
- unsigned int i;
- for(i=0; i<12; i++)
- {
- PIN_Configure(Lcd_GPIO[i].port, Lcd_GPIO[i].num, PIN_FUNC_0, PIN_PINMODE_PULLDOWN, PIN_PINMODE_NORMAL);
- GPIO_SetDir(Lcd_GPIO[i].port, Lcd_GPIO[i].num, GPIO_DIR_OUTPUT);
- GPIO_PinWrite(Lcd_GPIO[i].port, Lcd_GPIO[i].num, 0);
- }
- }
复制代码
(四)写引脚
数据引脚有8个,由于set寄存器和clr寄存器是置1起作用的,因此设置非常方便:
- void LCD_DatePin(unsigned char com)
- {
- unsigned char temp = ~com;
- LPC_GPIO(2)->SET = com;
- LPC_GPIO(2)->CLR = temp;
- }
复制代码
(五)LCD驱动驱动初始化也非常简单,在51单片机学习的时候不知道用过多少次了:
- #ifndef LCD1602_4PINS
- void Lcd1602_Init() //LCD初始化子程序
- {
- LcdGPIOInit();
- LcdWriteCom(0x38); //开显示
- LcdWriteCom(0x0c); //开显示不显示光标
- LcdWriteCom(0x06); //写一个指针加1
- LcdWriteCom(0x01); //清屏
- LcdWriteCom(0x80); //设置数据指针起点
- }
- #else
- void Lcd1602_Init() //LCD初始化子程序
- {
- LcdWriteCom(0x32); //将8位总线转为4位总线
- LcdWriteCom(0x28); //在四位线下的初始化
- LcdWriteCom(0x0c); //开显示不显示光标
- LcdWriteCom(0x06); //写一个指针加1
- LcdWriteCom(0x01); //清屏
- LcdWriteCom(0x80); //设置数据指针起点
- }
- #endif
复制代码
(五)VFD初始化
VFD命令列表:
初始化:
- void LcmVfd_Init(void)
- {
- LcdGPIOInit();
- VfdWriteCom(0x01); //1,清屏
- VfdWriteCom(0x02); //10,光标返回起点
- VfdWriteCom(0x06); //110,设置光标移动方向、特殊移动显示
- VfdWriteCom(0x0F); //1111,开显示,显示光标、光标闪烁
- //VfdWriteCom(0x80); //1000 0000,DDRAM
- VfdWriteCom(0x38); //11 1000,设置8bit模式、两行、5*8
- }
复制代码
(六)应用函数
只需要更改一下初始化函数就可以随意转换两个模块:
- //LcmVfd_Init();
- Lcd1602_Init();
- const unsigned char welcome_str[]="welcome to LPC1768";
- for(i=0;i<(sizeof(welcome_str)/sizeof(char)-1);i++)
- LcdWriteData(welcome_str[i]);
复制代码
(七)效果展示
VFD
LCD
|
|