[FPGA作品] 勇敢的芯伴你玩转Altera FPGA连载70:LCD字符显示驱动

[复制链接]
发表于 2018-5-12 22:54:07   366 查看 0 回复 显示全部楼层 倒序浏览
分享
勇敢的芯伴你玩转Altera FPGA连载70LCD字符显示驱动

特权同学,版权所有

配套例程和更多资料下载链接:

http://pan.baidu.com/s/1i5LMUUD

要显示字符,首先需要获得字模数据,我们使用字模软件PCtoLCD2002。该字模软件用1bit代表一个像素点,即它只能表示2种颜色的图像,当然不是仅仅局限于黑和白了,用户可以根据需要来决定这1bit数据(0或1)代表的色彩。

下面说明我们的设计中需要的字符是如何取模的,启动取模软件PCtoLCD2002,点击菜单栏的“模式”,选择“字符模式”。再点击菜单栏的“选项”(或点击如图8.84所示的齿轮图标),在弹出的对话框中设置如图8.70所示(行后缀为英文的“;”)。此外,在主界面中,我们设置字符宽度为64*64(实际上如果我们是给字符取模,它默认为32*64),在主界面下方的字模输入框中输入了大写字母A,接着点击它右侧的“生成字模”按钮(图中没有示意),则在输出栏中出现了一大串32bit一行,并且行后缀为“;”的字符,copy他们,后面马上就会用上。

图8.70 字符取模软件

         32*64点阵的字符“A”取模后的数据如下。实际上这些数据如果我们用二进制的0和1一位位的将他们排列开来,则我们可以看到1可以排列出一个字母“A”出来。正是根据这个原理,我们后面会每行32位的将他们送往液晶屏显示,一共有64行这样的显示。

A(0)

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

0000C000;

0003C000;

0003C000;

0007E000;

0007E000;

0007E000;

0006E000;

000CF000;

000CF000;

000CF000;

000CF000;

00187800;

00187800;

00187800;

00187800;

00303C00;

00303C00;

00303C00;

00303C00;

00701C00;

00601E00;

00601E00;

00601E00;

00E00E00;

00C00F00;

00C00F00;

00FFFF00;

01FFFF00;

01800F80;

01800780;

01800780;

03800780;

030007C0;

030003C0;

030003C0;

070003C0;

060003E0;

060001E0;

060001E0;

0E0001E0;

0E0001F0;

1F0001F8;

7FC00FFE;

7FC00FFE;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;

00000000;/*"A",0*/

基于前面取到的字模数据,我们假定从屏幕的(0,0)坐标到(31,63)坐标区域(对应就是32*64的点阵)内显示字符。那么当坐标计数器刷新到(0,0)坐标点的时候我们就要相应判断第一行数据的bit31的值,然后决定送哪种色彩(0代表一种色彩,1代表另一种色彩)。当坐标计数器刷新到(1,0)坐标点的时候我们就要相应判断第一行数据的bit30的值……直到刷新到(31,0)时判断第一行数据的bit0的值,由此完成了首行字模数据的译码。往后的译码都和首行类似,64行字模数据寻址完毕后,大写字母“A”便出现在我们的屏幕上。

当然了,为了显示得美观,我们特意将这个32*64的大写字母“A”放到了320*240的LCD的正中央。那么它的坐标就不是(0,0)到(31,63)的区域了。而是(144,104)到(175,135)这个区域。我们这个实例最终要显示的效果如图8.71所示。在(144,104)到(175,135)这个区域内,字符“A”以蓝(16’h001f)字红(16’hf800)底显示,LCD的其他显示区域则为黑色(16’h0000)。

图8.71 字符坐标


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

只有小组成员才能发言,加入小组>>

166个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /9 下一条

快速回复 返回顶部 返回列表
-

推荐专区

技术干货集中营

专家问答

方案交易

用户帮助┃咨询与建议┃版主议事

工程师杂谈

项目|工程师创意

招聘|求职}工程师职场

论坛电子赛事

社区活动专版

发烧友活动

-

嵌入式论坛

ARM技术论坛

Android论坛

Linux论坛

单片机/MCU论坛

MSP430技术论坛

FPGA|CPLD|ASIC论坛

STM32/STM8技术论坛

NXP MCU 技术论坛

PIC单片机论坛

DSP论坛

瑞萨单片机论坛

嵌入式系统论坛

-

电源技术论坛

电源技术论坛

无线充电技术

-

硬件设计论坛

PCB设计论坛

电路设计论坛

电子元器件论坛

控制|传感

总线技术|接口技术

-

测试测量论坛

LabVIEW论坛

Matlab论坛

测试测量技术专区

仪器仪表技术专区

-

EDA设计论坛

multisim论坛

PADS技术论坛

Protel|AD|DXP论坛

Allegro论坛

proteus论坛|仿真论坛

EasyEDA-中国人自已的EDA工具

Orcad论坛

-

综合技术与应用

电机控制

智能电网

光电及显示

工程资源中心

汽车电子技术论坛

医疗电子论坛

-

开源硬件

-

无线通信论坛

无线通信技术专区

天线|RF射频|微波|雷达技术

-

IC设计论坛

芯片测试与失效分析

Mixed Signal/SOC[数模混合芯片设计]

Analog/RF IC设计

设计与制造封装测试

-

厂商专区

TI论坛

TI Deyisupport社区

-

检测技术与质量

电磁兼容(EMC)设计与整改

安规知识论坛

检测与认证

-

消费电子论坛

手机技术论坛

平板电脑/mid论坛

音视/视频/机顶盒论坛

-

电子论坛综合区

聚丰众筹官方社区

新人报道区

聚丰供应链

-

论坛服务区

-

供求信息发布

供需广告

电子展览展会专区

芯片求购|供应发布区