首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
FPGA/CPLD可编程逻辑
» Xilinx学习笔记之四---1602液晶IP核设计
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
Xilinx学习笔记之四---1602液晶IP核设计
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
1
#
打印
字体大小:
t
T
pengpengpang
发表于 2014-2-19 23:12
|
只看该作者
Xilinx学习笔记之四---1602液晶IP核设计
字符串
,
日语
,
英文
,
规格
,
接口
1602为常见的液晶显示设备,本实验所用的规格为16x2字符型驱动,直观图如下所示。
上图为本人已完成的LCD液晶驱动显示效果(可以显示任意字符串),由两行组成,可以显示英文字符,部分日语,也可以显示自定义的图像,Spartan-3E所用的1602 (Sitronix ST7066U graphics controller)与FPGA的接口如下所示:
信号说明:
其中SF_D为4位的数据接口位,LCD_E为液晶显示或者不显示控制位,LCD_RS为区分控制或数据信号标志位,当LCD_RS = ‘0’时,表示SF_D为控制信号,LCD_RS=’1’此时SF_D为数据位,LCD_RW为读写控制位,因为不需要从LCD液晶屏中读取数据所以可以简单的再复位操作时,将其清零即可。
可以看出,此1602的数据位为4位,故要写入8位命令时需要进行两次写入操作,写入数据的时序图如下所示,
红线所画为两个字节数据写入所需的最小时差(这个需要特别注意)
根据Spartan-3E的GUIDE,可以知道1602工作的基本流程主要分为上电初始化、写命令、设置读写地址、传递数据三大过程,笔者统计了下这三大步骤中的等待时间最小值和最大值,其中最小值为40us,最大值为15ms,故笔者采取了将50MHZ的时钟分频为10KHZ,即时钟周期为100us的方法来简化设计。
在Spartan-3E的用户手册上详细讲解了如何对此液晶进行操作,笔者做了简单的摘要:
一) 上电初始化(目的是建立宽度为4 bit的数据接口)
1) 等待15ms或者更长时间
2) 写命令字0x3,保持LCD_E高电平12个周期(时钟频率为50MHZ时)
3) 等待4.1ms或者更长时间
4) 写命令字0x3,保持LCD_E高电平12个周期
5) 等待100us或者更长时间
6) 写命令字0x3,保持LCD_E高电平12个周期
7) 等待40us或者更长时间
8) 写命令字0x2,保持LCD_E高电平12个周期
9) 等待40us或者更长时间
二) 写命令
1) 发送功能设置命令(Function Set),0x28
2) 发送端口模式设置命令(Entry Mode Set),0x06,自动增加地址指针
3) 发送Display ON/OFF命令,0x0C,打开显示开关并禁止光标闪烁
4) 发送Clear Display命令,等待1.64ms或者更长时间
三) 设置读写地址和传递数据
指定起始地址,并给出一个或者多个数据,这一步是显示的关键,必须仔细设置控制位,笔者就是因为这个错误,白白花费了大半天的时间,具体方法是在写任何数据之前,发送Set DD RAM Address 命令,(写入7位的DD RAM地址,注意最高位为1)然后再写入数据。
简单介绍我所设计的LCD液晶IP核的思路,首先生成100us的时钟,然后根据初始化顺序,编写状态机。最终设计效果是在1602液晶屏上可以静态显示16*2的任意字符串—而这只需修改两个参数即可轻松实现。下面是部分代码展示。下图为代码说明。
图1所示为写16个字符的代码实现,图2所示为将普通的字符串转换为1602可显示的编码值的模块,图3所示为生成clk_100us的代码,
最终效果图是在屏幕上显示两行字符串:
来源:
jefby的博客
收藏
分享
评分
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
订阅
TOP
发短消息
加为好友
pengpengpang
(pengpengpang)
当前离线
UID
1023229
帖子
6106
精华
0
积分
3055
阅读权限
90
来自
中国
在线时间
156 小时
注册时间
2013-12-20
最后登录
2016-7-3
论坛元老
UID
1023229
来自
中国
2
#
pengpengpang
发表于 2014-2-20 22:45
|
只看该作者
共同努力,共同学习!-----------中电网技术论坛
记录学习中的点点滴滴,让每一天过的更加有意义!
回复
引用
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议