- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于CPLD的LED点阵控制单元
显示控制模块 综合仿真 上电测试 Logo Logo 基于CPLD的汉字LED点阵控制单元 报告人:汪睿 项目概述 报告内容 1 CPLD整体方案 2 各模块功能介绍 3 综合仿真 4 上电测试 5 项目概述 本项目要实现的主要功能是:首先,单片机通过SPI总线从字模芯片中取出汉字的编码,然后通过IIC总线将汉字编码送到CPLD芯片,CPLD通过IIC模块接收编码,然后通过解码模块进行解码,解码后的数据存储到CPLD内部RAM中,最后由显示控制模块将RAM中的数据送到LED点阵上显示。 我主要负责的是CPLD芯片的设计,包括模块划分、RTL代码编写(约700行)、综合布线、布局布线后仿真以及上电调试。 单 片 机 字 模 芯 片 CPLD 16*64 LED 点阵 其它设备 项目概述 CPLD引脚分配图 CPLD与LED点阵 行、列信号联接 电路 整体功能 CPLD采用的是Lattice公司的LCMXO2-1200-4TG100C型,包含1280个LUT,64个宏单元,7个9Kbit的EBR以及内部时钟单元OSCI,封装方式TQFP100。 CPLD的主要功能模块有IIC通讯模块、数据解码模块、RAM以及显示控制模块,采用的内部时钟(2.08MHz)。首先,IIC通讯模块接收IIC总线上的数据,并将数据送到数据解码模块。数据解码模块对数据进行解码操作,并在LOAD信号的下降沿将解码后的数据送到RAM储存起来。显示模块将RAM中的数据送到LED的行和列进行显示,显示方式采用逐行扫描(1/16)。 IIC通讯 模块 数据解码 模块 SDA SCL RAM 显示控制 模块 行信号 列信号 CPLD整体功能框图 地址管脚 LOAD RST OSCI CLK IIC通讯模块 IIC通讯模块负责接收单片机送过来的汉字编码。首先,在等待状态判断IIC总线上的START信号(SCL为高,SDA出现下降沿)。检测到START后,开始接收8bit的地址数据,将接收到的地址与地址管脚对比,如果地址正确则反馈一个应答ACK,否则返回等待。然后开始持续接收数据,每接收一个字节Byte,反馈一个应答ACK,并将接收到的Byte送到解码模块。这个过程一直持续到IIC总线出现STOP(SCL为高,SDA出现下降沿),则停止接收数据并返回到等待状态。整个过程通过状态机来实现。 START 地址匹配 等待 Yes No ACK 数据接收 (Byte) 送入解码 应答 STOP No Yes 数据解码模块 0 1 2 ... 7 b y t e 1 b y t e 2 ... b y t e 15 b y t e 16 b y t e 17 b y t e 18 ... b y t e 31 一个汉字显示在16*16点阵上。 IIC总线按照右图顺序传送显示信息,第一个字节是第一列的0到7行,第二个字节是第二列的0到7行,......,第三十二个字节是第十五列的8到15行。 所以要实现行扫描显示,必须对接收到的数据进行重构,类似于解码操作。 IIC通讯模块送过来的字节数据首先按顺序存入寄存器A中,当寄存器A存满16个字节时,立刻将寄存器A中数据复制到寄存器B,然后寄存器A继续按顺序接收后面的数据。 寄存器B收到寄存器A复制的数据后,开始将每个字节的第一个bit存入Block1的地址0,将每个字节的第二个bit存入Block1的地址1,直到将寄存器B中数据全部写入Block1中。然后第二次寄存器A复制到寄存器B的数据写入到Block2中。依次下去...... Block1是RAM0中地址0到15部分,Block2是RAM0中地址16到31部分,......,Block8是RAM3中地址16到31部分。RAM0到RAM3分别对应4个汉字的显示信息。 数据解码模块 0 1 2 3 4 5 6 7 B y t e 1 B y t e 2 B y t e 3 IIC 寄存器A ... B y t e 15 0 1 2 3 4 5 6 7 B y t e 1 B y t e 2 B y t e 3 ... B y t e 15 寄存器B Block1 Block3 Block2 Block4 Block5 Block6 Block7 Block8 模块构成:寄存器A、寄存器B、4个16*16RAM RAM0 RAM1 RAM2 RAM3 Block1 0 1 2 3 4 5 6 7... 15 A0 A1 ... A7 数据解码模块 Block1 Block3 Block2 Block4 Block5 Block6 Block7 B
文档评论(0)