PLD与数字系统设计创新实验报告.docx

PLD与数字系统设计创新实验报告.docx

ID:59253154

大小:1.23 MB

页数:27页

时间:2020-09-08

PLD与数字系统设计创新实验报告.docx_第1页
PLD与数字系统设计创新实验报告.docx_第2页
PLD与数字系统设计创新实验报告.docx_第3页
PLD与数字系统设计创新实验报告.docx_第4页
PLD与数字系统设计创新实验报告.docx_第5页
资源描述:

《PLD与数字系统设计创新实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、《PLD与数字系统设计》创新实验报告实验内容:LCD1602自定义字符显示姓名:方夏章院系:23系学号:SA目录1:实验内容简述22:实验思路及代码22.1:汉字显示实验22.1.1相关指令32.1.2:字符取模42.1.3:核心代码:62.2:动态图形显示实验:72.2.1四个动作取模:72.2.2:计时及刷新82.2.3核心代码93:实验结果:93.1:汉字显示实验结果93.2:动态图形实验结果:104:实验心得115:附录121:实验内容简述由于在做课程实验时,选择了B组的实验,也就是基于Spartan-3StarterBoard开发板的一组实验,在实验中,后

2、三个实验都用到了LCD1602模块,但是用其显示的都是自带字库里面的字符,所以我萌发了这样一个实验想法,就是用LCD1602来显示我的自定义字符,也就有了这个实验,此实验不能说是一个创新实验,但是由于在课程实验中没有涉及到,所以对我而言确实是一个新的尝试。本实验共包括两个小实验,一个是汉字显示,另外一个是动态图形显示。汉字显示实验中,显示的是我的名字;动态图形显示中显示的是一个“奔跑的小人”。2:实验思路及代码2.1:汉字显示实验在课程实验中,我们接触了LCD1602的显示功能,但是其显示的都是自带字库里的内容,比如数字和字母,这些内容都存储于字符产生器(CGROM

3、),如下图:其中存储了192个常用字符的字模,但是我们可以从图中看到,从0x00到0x0f的16个位置是空着的,这是留给用户存放自定义字符的地方,也就是CGRAM,对于5X8的字符,可以存放8组。(这里一共有16个位置,但是只能存储8组,原因在于0x08-0x0f的内容和0x00-0x07是一样的)。也就是说,我们可以将自己定义的汉字存放到CGRAM里面。2.1.1相关指令对于LCD1602,相输出我们自定义的图形或字符,必须先将此内容写入CGRAM,然后根据写入的地址,读到DDRAM里,才会显示在液晶屏上。而不能直接显示。而将数据写入CGRAM又需要两步,首先设定

4、要写入到CGRAM的地址,然后连续写入8组5位的数据(对应5X8的字符)。所以要显示自定义字符的总的流程如下:查阅LCD1602资料,将上述流程中所涉及的指令列出如下:设定CGRAM地址其中DB5~DB3三位代表的是CGRAM中字符的地址,000代表写入地址0x00,依次类推DB2~DB0代表写入的行数,也即从第几行开始写,因为一个字符有8行。所以若想写入一个完整的5x8字符到0x00中,则指令为(0x40),此时RS=0,R/W=0.写入数据到CGRAM或DDRAM写入数据到CGRAM和DDRAM的指令是一样的,其区别主要取决于上一步的设定,若设定的是CGRAM的

5、地址,则写入数据到CGRAM,若设定的是DDRAM的地址,则写入数据到DDRAM。对于写入数据到CGRAM,因为5x8的字符需要写入8组,每组长度为5的数据,所以其数据位对应DB4~DB0,而DB7~DB5可为任意数据,一般设为000。对于写入数据到DDRAM,DB7~DB0对应CGROM(包括已写入数据的CGRAM)的8位地址。所以若DB7~DB0为,则将CGRAM中的第一个位置的字符写入DDRAM(如果此位置已经写入自定义字符数据)。设定DDRAM地址设定DDRAM地址,即是选择液晶屏上想显示字符的位置,LCD1602共有两行,每行有16个位置。第一行对应的DB

6、7~DB0为0x80到0x8f,第二行对应的是0xc0到0xcf(注意,这里不是从90开始,而是从c0开始)。2.1.2:字符取模字符取模,也就是将字符对应相应的方格里(比如5X8的字符就对应5x8的方格),然后将空白的方格值定为0,其他的定为1,这样就将字符的模取好了。因为1602的单个字(这里说的字是指一个5x8单元)实在太小,只有5x8,难以清楚的显示一个汉字,所以本实验采用了10x8的空间来显示一个字符(其实也就是将一个字拆成上下两部分,分别写入两个地址)。关于取模这一步,在网上找了一下,没找到我需要的格式,基本上都是16x16的格式,所以,为了一劳永逸,自

7、己做了一个取模的工具。如下图:LCD1602取模图片上述图片对于5x8,10x8,10x16都可以很好的取模,而且在每个5x8的单元之间都加粗以更加容易辨别。根据2.1.1中分析,虽然数据是5位,但要5位数据之前补3位0,所以按十六进制来取模的话,首先看没一行的第一格,若是空白,则为0,若不是空白,则为1,再将后四位用十六进制读出来即可。参考一个例子:此为我姓名中的“夏”字,可从中读出每一行的数据分别为:0x1f,0x04,0x08,0x1f,0x11,0x1f,0x11,0x1f(第一个字),0x11,0x1f,0x04,0x0f,0x19,0x06,0x06

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。