基于USB的LED图文显示系统设计_第1页
基于USB的LED图文显示系统设计_第2页
基于USB的LED图文显示系统设计_第3页
基于USB的LED图文显示系统设计_第4页
基于USB的LED图文显示系统设计_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于USB的LED图文显示系统设计摘要:介绍一种通过USB总线控制16×16 LED点阵显示器显示图文的方法.下位机采用Cypress公司的CY7C68013A与扩展行列电路配合驱动LED显示屏,实现高速数据传输.应用软件处理图文信息,并与USB设备通信.经测试,该系统能动态地显示图文信息.关键词:USB; LED;图;文;显示系统LED显示屏是由若干发光二极管排列组成的显示器件.它采用低电压扫描驱动,具有耗电省、使用寿命长、成本低、亮度高、视角大、可视距离远和规格品种多等优点,被广泛地应用于许多公共场合的提示、说明和广告等1.本文介绍一种通过USB总线控制16×16 LE

2、D点阵显示器显示图文的方法.系统可分为硬件和软件两部分.硬件包括LED显示屏的驱动和控制:驱动部分负责根据行列选通信号,向指定的LED发光器件提供合适的驱动电流;控制部分采用带USB2. 0功能的微处理器CY7C68013A,结合KeilC51环境下编写的固件程序,辅以外围电路,完成USB通信和行列信号输出任务.软件包括固件程序、驱动程序和应用软件:固件程序控制硬件完成相应的功能;驱动程序提供了连接到计算机的硬件设备的软件接口;应用软件处理图文信息并与USB设备通信.本设计的结构框图如图1所示.1硬件设计1.1显示及驱动设计LED显示屏采用8×8模块, 4块组成一个16×1

3、6点阵.由于CY7C68013A工作电压为3. 3V,而LED工作电压为5V,因此行驱动采用了双向3态数据缓冲器74HC245作为3. 3V-5V器件之间的驱动转换.由于CY7C68013A I/O口的个数有限,因此列驱动采用了4线16线译码器74HC154,仅占用4个I/O口,可以控制16个LED阳极的高低电平,同时也能满足今后的扩展.由于I/O口的驱动能力也有限,因此列驱动还采用了PNP型晶体管.点亮每一个LED器件大约需要20mA驱动电流,为了同时点亮16个LED大约需要320mA驱动电流,采用PNP型晶体管的发射极接电源,集电极接LED点阵字母端(即共阳极),基极经限流电阻接74HC1

4、54输出级.这样, 74HC154的输出口仅需提供几毫安的驱动电流就可控制对应LED的亮灭了. LED部分驱动电路如图2所示.1.2控制设计由于所用的USB协议芯片CY7C68013A集成度高,功能强大,所以外围电路比较简单,其优点是控制器工作比较稳定可靠2.控制部分通过CY7C68013A的3组I/O口与驱动部分联接.其中PB0PB7和PC0PC7通过限流电阻和74HC245选择LED显示屏的16个列, PD0PD3通过控制74HC154的输入而选择LED显示屏的16个行.LED点阵显示屏一般采用扫描式显示:点扫描、行扫描和列扫描1.若采用点扫描,扫描周期小于1ms即可,对于本设计,点扫描过

5、于繁琐且没有必要.本设计采用行扫描方式.具体方法是:当PD0.7=0x01时, 74HC254输出仅使与LED显示屏第一行相连的PNP型晶体管的基极为低电平,其余都为高电平.这样就使得该PNP管饱和,对应第一行LED阳极为高电平,其余行LED阳极都为低电平.此时将对应的字码送到列驱动电路,若该列为低电平则对应的LED被点亮,若该列为高电平则对应的LED为暗.当PD0.7=0x09时,选择第二列,将对应的字码送到列驱动电路,点亮相应的LED.依次类推,当显示完第16行的字码后,又从第一列重复执行,这样LED显示屏就会显示相应的图文.从第一列到最后一列所花费的时间称为扫描周期时间,由于人眼视觉暂留

6、时间最长为1/16 s,一般设计的扫描周期时间为1/32 s,即31.25ms以下显示的效果比较好.本设计的LED显示屏有16行,因此每行显示时间应小于31.25/16ms.2软件设计2.1固件程序设计固件程序是指运行在设备CPU中的程序.只有在该程序运行时,外设才能被称为具有给定功能的外部设备3.固件程序应尽量简单,将复杂的运算交由上位机处理,提高执行的效率.固件程序流程图如图3所示.硬件设备上电/复位后,工作分配器函数TD_Init( )完成对微处理器的初始化,然后通过调用工作分配器函数TD_Poll( )启动采样,判断是否有EP1OUT中断发生.若有中断发生,则进入中断处理函数INT_E

7、P1OUT( ),将上位机通过USB总线传来的数据放在EP1OUTBUF中,根据这些数据依次驱动LED显示屏的行和列,更新LED显示.中断处理完毕后又回到启动采样阶段,重复判断是否有中断的过程.若没有中断发生,则继续保持LED的显示,然后也回到启动采样阶段,重复判断是否有中断的过程.2.2驱动程序设计采用DDK开发驱动程序. DDK的编译工具build编译驱动程序, DriverStudio工具包中的SoftIce调试驱动程序.驱动程序使用的例程包括:驱动程序入口例程、即插即用例程、分发例程、电源管理例程和卸载例程.驱动程序的编写与固件中定义的USB传输方式等信息有关,在固件中,采用端点EP1

8、作为OUT方向批量传输端点,负责储存要发往外设的数据.2.3应用软件设计因为涉及到与USB通信的问题,所以采用动态链接库(DLL)和应用程序相结合的方式编写应用软件.动态链接库利用驱动程序建立起与底层硬件的通信,应用程序为用户提供一个直观的软件界面方便操作.在VC+环境下采用W in32 Dynamic LinkLibrary来生成传统的DLL,采用模块定义文件(.def)来导出动态库函数.DLL包含3个动态链接库函数:OPEN( )调用API函数CreateFile( ),将设备的驱动句柄和设备的文件句柄对应起来;CLOSE( )调用API函数CloseHandle(),关闭设备的文件句柄;

9、OUT-PUT()调用API函数DeviceIoControl(),对USB设备执行指定的操作,发送LED字模数据.在VC+环境下编写应用程序.软件程序流程图如图4所示.初始化后,如果要显示的是文字,应用程序则首先判断首字节的ASCII码,若小于128说明要显示的是字母、数字或者符号,则以只读方式打开ASC16字库.否则,以只读方式打开HAK16字库.通过计算文字的内码找到文字在相应字库中字模的起始地址,然后将字模数据读入内存,在界面上显示文字点阵,同时按照硬件的连接方式将处理过的字模数据以点阵信息的形式通过USB总线发送至LED点阵,更新显示屏.如果要显示的是自定义的图型,则不需要打开字库,而是直接将处理过的字模数据发送给LED显示屏.3显示效果设计的LED显示系统采用USB总线通信,实现了图文的动态显示,达到了设计要求.与串口相比,采用USB接口能提高数据传输的速率. CY7C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论