LED点阵书写显示屏设计方案
- 格式:doc
- 大小:230.00 KB
- 文档页数:32
LED点阵显示屏的设计摘要本设计是基于16 ×16 点阵 LED 电子显示屏的设计。
设计以STC89C52RC 为核心,介绍了以它为控制系统的LED 点阵电子显示屏的动态设计和开发过程。
本设计主要模块组成:主控CPU模块、按键输入模块,光笔检测电路,LCD信息显示器,16 ×16 点阵 LED点阵显示与驱动模块。
设计中16 ×16 点阵 LED点阵显示与驱动模块中,CPU输出信号先经74HC245进行锁存,再输出信号经由38译码器74HC138译码选通APM4953驱动行,由移位寄存器74HC595作为列驱动,单片机控制系统程序采用C语言进行模块化编程,控制各显示点对应 LED 阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。
文中详细介绍了 LED 点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。
经实践证明,该系统显示误差小,性能稳定,结构合理,扩展能力强。
关键词: STC89C52单片机; LED ;点阵书写显示;动态显示; C语言。
一、技术指标1.1设计意义LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
本设计基于LED点阵的普通显示效果加上光笔检测模块,实现自由书写显示功能。
它的优点:亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。
基于单片机的LED点阵显示屏的设计LED点阵显示屏是一种常见的显示设备,它通过控制各个LED的亮灭来显示文字、图形或动画。
在这篇文章中,我们将介绍基于单片机的LED 点阵显示屏的设计。
一、设计目标设计一个基于单片机的LED点阵显示屏,使其能够显示各种文字、图形和动画。
同时,要求显示屏的显示效果清晰、稳定,能够满足日常使用的需求。
二、设计方案1.硬件设计(1)点阵屏:选择合适的点阵屏作为显示屏的输出设备。
点阵屏的种类有很多,常见的有8x8、16x16和32x32等不同尺寸的点阵屏。
根据实际需求选择合适的尺寸。
(2)单片机:选择一块适合的单片机作为控制器。
单片机的选择需要考虑其计算能力、扩展性和易用性等因素。
(3)扩展模块:根据需要,可以选择添加一些额外的扩展模块,如按键模块、声音模块等,以增加显示屏的功能。
(4)电源模块:为显示屏提供稳定的电源,以保证其正常工作。
2.软件设计(1)驱动程序:编写驱动程序,通过单片机控制各个LED的亮灭。
根据点阵屏的不同类型,编写相应的驱动程序。
(2)显示程序:编写显示程序,将要显示的文字、图形或动画转换成相应的点阵数据,然后通过驱动程序显示在点阵屏上。
(3)用户界面:设计一个用户界面,使用户能够方便地输入要显示的文字、选择图形或动画等,然后通过单片机控制显示屏显示出来。
三、实施步骤1.硬件部分(1)按照设计方案选择合适的点阵屏、单片机和扩展模块,并连接它们。
(2)根据点阵屏的引脚定义,设计相应的电路板,并进行制作。
(3)将单片机和扩展模块焊接到电路板上,并连接好相应的引脚。
(4)连接电源模块,为整个系统提供电源。
2.软件部分(1)根据点阵屏的类型,编写相应的驱动程序。
(2)编写显示程序,将要显示的文字、图形或动画转换成点阵数据。
(3)设计用户界面,编写相应的程序,将用户输入的内容转换成可显示的数据。
(4)将驱动程序、显示程序和用户界面程序上传到单片机。
四、测试与调试完成硬件和软件的设计后,进行测试与调试。
点阵式汉字LED显示屏电路原理与制作汉字显示屏广泛应用与汽车报站器,广告屏等。
本文介绍一种实用的汉字显示屏的制作,考虑到电路元件的易购性,没有使用8*8的点阵发光管模块,而是直接使用了256个高量度发光管,组成了16行16列的发光点阵。
同时为了降低制作难度,仅作了一个字的轮流显示,实际使用时可根据这个原理自行扩充显示的字数。
1汉字显示的原理:我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。
即国标汉字库中的每一个字均由256点阵来表示。
我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。
事实上这个汉字屏不仅可以显示汉字,也可以显示在256像素范围内的任何图形。
用8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。
一般我们把它拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。
在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00---p07口。
方向为p 00到p07 ,显示汉字“大”时,p05点亮,由上往下排列,为p0.0 灭,p0.1 灭, p0.2 灭p0.3 灭, p0.4 灭, p0.5 亮,p0.6 灭,p0.7 灭。
即二进制00000100,转换为16进制为 04h.。
上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。
然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04h.这一列完成后继续进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h.依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大”的扫描代码为:04H,00H,04H,02H,04H,02H,04H,04H04H,08H,04H,30H,05H,0C0H,0FEH,00H05H,80H,04H,60H,04H,10H,04H,08H04H,04H,0CH,06H,04H,04H,00H,00H由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。
XX科技职业学院毕业论文LED16×16点阵汉字显示屏LED 16 x 16 bitmap characters display screen院系:电子科技学院专业班级:08电信(1)班学生姓名:学号:指导教师姓名:指导教师职称:二O一O 年十一月目录第一章绪论 (1)第二章任务设计………………………………………………………2.1 设计依据 (40)2.2 要求及主要内容………………………………………………………2.3 途径和方法.....................................................................第三章AT89C51单片机概述 (52)3.1 AT89C51单片机的结构……………………………………………3.2 管脚说明 (60)3.3 振荡器特性……………………………………………………………第四章方案设计 (66)4.1 总体设计………………………………………………………………4.2 系统硬件选择…………………………………………………………4.3 硬件电路实现…………………………………………………………4.4 软件的程序实现………………………………………………………结论 (71)致谢 (74)参考文献 (75)LED16×16点阵汉字显示屏摘要 :LED点阵显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。
并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。
LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。
LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。
LED点阵书写显示屏所在院系:电气与控制工程学院作者:李向杰、刘赟超、符祝辉日期:2015年07月25日摘要本系统以MSP40F149为核心,设计并制作了一个基于32×32LED点阵显示模块书写显示屏。
该点阵可以实现扫描微亮及显示点亮两种工作方式,在扫描微亮的状态下,通过自制光电笔扫描和按键切换可实现“点亮、划亮、擦除、反显”等书写功能和“显示点亮坐标”等显示功能。
硬件设计方案使用74H595来驱动LED点阵显示,通过1602液晶来显示坐标。
作品技术要求不高但对扫描速度和硬件系统的搭建有较高的要求。
关键词:MSP430F149;74H595;光电三极管;LED点阵1 系统方案设计1.1 系统总方案设计整个系统由MSP430F149微控制器作为系统的核心控制芯片,32*32LED点阵起到了各种形式显示的作用,通过光电三极管和LM293比较器构成光电检测电路,1602液晶显示在进行点扫描时对点坐标的显示、光敏电阻感光电路的模块组成。
系统结构如图1-1所示。
图 1-1 系统结构图2 系统方案论证2.1主控制器选择论证方案一:STC89C51单片机是8位单片机。
其指令是采用的称为“cisc”的复杂指令集,共具有111条指令。
其电源电压为5伏,有两种低功耗模式,待机方式和掉电方式。
正常情况下消耗的电流为24mA,在待机状态下其耗电电流仍为3mA,为了保存RAM中的数据,还需提供约50mA的电流。
再者,虽然其具有不少开发工具,但如何在线编程还是一很大问题。
方案二:CPLD(EPM240T100C5):具有丰富的I/O口、内部逻辑和连线资源、运行速度快、能够显示大量的信息,但CPLD实现运算功能复杂,在该系统中,需要显示的信息量较少,但是控制和运算功能较多,用CPLD实现一些运算功能复杂。
方案三:MSP430系列的单片机电源电压采用1,8-3.6V低电压,RAM数据保持方式下耗电仅0.1uA,IO口漏电流最大仅为50nA。
目录摘要 (1)前言 (2)1 概述 (2)1.1 LED电子显示屏的分类 (2)1。
2 LED显示屏的应用示例 (2)1。
3 设计任务 (2)2 显示原理及控制方式分析 (3)2.1 LED点阵模块结构 (3)2。
2 LED 动态显示原理 (3)2.3 LED常见的控制方式 (5)3 总体方案设计与分析 (6)3.1显示单元的考虑 (6)3。
2 滚屏的实现 (6)3。
3 关于可扩展性 (6)3。
4 微控制器的考虑 (6)3.5 总体电路结构及工作原理 (6)3.5。
1 硬件电路框图 (6)3.5。
2 工作原理 (7)4 硬件电路设计 (7)4。
1 显示单元电路设计 (7)4。
1。
1 LED点阵模块的选择 (8)4.1.2 列驱动电路设计 (8)4。
1。
3 行驱动电路设计 (9)4.2 单片机控制系统电路设计 (10)4.2.1单片机的选型 (10)4。
3对于系统电源及通信电缆的选择 (11)4。
4 其它元件的选择 (11)5 单片机软件设计与仿真 (12)5.1 开发工具及语言 (12)5。
2 单片机软件流程 (13)5。
3 单片机软件中算法的实现 (14)5.4 调试及仿真结果 (15)6 PCB设计及硬件调试 (16)6。
1 PCB设计平台 (16)6.2元件布局及PCB整体结构工艺 (16)6。
3 布线工艺与准则 (16)7 总结 (17)谢辞............................................................................................ 错误!未定义书签。
参考文献. (18)附录 (19)LED点阵电子显示屏系统的设计xxx摘要:本设计使用STC系列高速单片机作为主控制模块,利用简单的外围电路来驱动16×64的点阵LED显示屏。
本LED显示屏能够以动态扫描的方式同时显示特定的四个16×16点阵汉字。
单片机课程设计-- 16x16点阵LED电子显示屏的设计第一章系统总体方案设计LED驱动显示采用动态扫描方法, 动态扫描方式是逐行轮流点亮, 这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。
以16×16点阵为例, 把所有同一行的发光管的阳极连在一起, 把所有同一列的发光管的阴极连在一起(共阳的接法), 先送出对应第1行发光管亮灭的数据并锁存, 然后选通第1行使其燃亮一定的时间, 然后熄灭;再送出第2行的数据并锁存, 然后选通第2行使其燃亮相同的时间, 然后熄灭;…第16行之后, 又重新燃亮第1行, 反复轮回。
当这样轮回的速度足够快(每秒24次以上), 由于人眼的视觉暂留现象, 就能看到显示屏上稳定的图形。
该方法能驱动较多的LED, 控制方式较灵活, 而且节省单片机的资源。
显示数据传输采用串行传输的方法, 控制电路可以只用一根信号线, 将列数据一位一位传往列驱动器, 在硬件方面无疑是十分经济的。
但串行传输过程较长, 数据按顺序一位一位地输出给列驱动器, 只有当一行的各列数据都已传输到位之后, 这一行的各列才能并行地进行显示。
对于串行传输方式来说, 列数据准备时间可能相当长, 在行扫描周期确定的情况下, 留给行显示的时间就太少了, 以致影响到LED的亮度。
采用串行传输中列数据准备和列数据显示的时间矛盾, 可以采用重叠处理的方法。
即在显示本行各列数据的同时, 传送下一行的列数据。
为了达到重叠处理的目的, 列数据的显示就需要有锁存功能。
对于列数据准备来说, 它应能实现串入并出的移位功能。
这样, 本行已准备好的数据打入并行锁存器进行显示时, 串行移位寄存器就可以准备下一行的列数据, 而不会影响本行的显示。
系统框图如图一图一点阵显示器硬件系统框图第二章系统硬件电路的设计硬件电路大致上可以分为单片机系统及外围电路、列驱动电路和行驱动电路三部分。
一. 单片机系统及外围电路单片机采用89C51或更高频率的晶振, 以获得较高的刷新频率, 使得显示更稳定。
LED点阵书写显示屏的设计摘要:LED 显示屏的设计硬件主要由STC89C58 单片机最小系统、32 乘以32 的双色点阵显示阵列、光笔、按键、液晶显示屏等组成。
双色点阵中的红色LED 始终工作在微亮的扫描状态,STC89C58 单片机利用自制的光笔中红外光电三极管检测光笔触及位置处红色LED 灯的点亮,计算出光笔位置的行列坐标,并根据按键设置的不同工作模式控制LED 显示,从而实现点亮、划亮、反显、清屏、笔画拖动、轮流显示等功能。
显示屏能根据环境光强自动调节显示屏的显示亮度,当在设定时间内光笔未接触显示屏或按键未按下时关闭所有显示,并使系统进入休眠状态,减少电能消耗,当有按键按下时系统恢复运行。
关键词:STC89C58;LED 双色点阵;红外光电三板管光笔0 引言近年来,点阵LED 显示屏利用发光二极管构成的点阵模块或像素单元组成可变面积的显示屏幕,以可靠性高、使用寿命长、环境适应能力强、性能价格比高、使用成本低等特点,已成为众多显示媒体以及户外作业显示的电子工具,广泛地应用于车站、宾馆、金融、证券、邮电、体育等广告发布或交通运输等行业。
目前LED 显示屏的设计已经有多种方法可以实现,本设计是基于STC89C58 单片机利用自制的光笔中红外光电三极管检测光笔触及位置处红色LED 灯的点亮,计算出光笔位置的行列坐标,并根据按键设置的不同工作模式控制LED 显示,从而实现点亮、划亮、反显、清屏、笔画拖动、轮流显示等功能。
1 系统设计方案用双色LED 点阵(红色和绿色)模块组合成32 乘以32 的LED 点阵屏。
其中红色LED 作微亮扫描检测用,绿色LED 作显示用,用红外光电三极管自制光笔。
在检测时依次点亮红色LED,当点亮到某个LED 时,如果此时光笔放在该LED 时,这时红外光电三极管的阻值会发生变化,通过相应的检测电路可以得出一个高低电平的变化,单片机检测到信号变化时就可以判断光。
LED点阵书写显示屏的设计摘要以ARM系列主流32位微处理器STM32为控制核心设计LED点阵书写显示屏系统。
系统主要包括主控模块、光笔模块、键盘输入模块、液晶显示模块、电源模块和32×32LED点阵屏。
系统通过键盘进行功能切换,光电三极管作为光笔的感应器件,在STM32的控制下进行信号采集,进而实现LED点阵屏的“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移、点阵屏亮度调节、超时休眠”等功能。
经测试,系统功能齐全,响应速度快,书写流畅,各项性能指标均达到了设计要求。
Abstract:Writing Dot Matrix LED Display System is designed,which control core is ARM-series of mainstream 32-bit microprocessor of STM32.Which mainly includes Control module,Light pen module,Keyboard input module,Liquid crystal display modules,Power modules,and 32 ×32LED dot-matrix display.Function Switch is conducted by keyboard keys,a light pen sensing devices is photoelectric transistor,Under the control of the STM32 signal acquisition,LED dot-matrix screen’s function are reslized of Light,zoned light,anti-evident,and the entire screen erase,stroke erase,write continuously-word,object drag,dot-matrix screen brightness adjustment,overtime sleep,and so on.Been tested,which fully functional,fast response,writing fluency,the performance indicators have reached the design requirement.一、方案的选择和论证根据题目要求,系统可以分为几个基本模块,各模块的实现方案如下:1、控制器模块方案一:采用89C51单片机,技术成熟,调试方便,价格便宜。
LED点阵显示屏的系统设计方案伴随科技的迅猛发展,传统电视、报纸和杂志媒体的发展已落后于户外媒体的发展,这里我们将为您介绍点阵LED 点阵显示屏的系统设计方案。
LED点阵显示屏的组成LED 点阵显示屏LED 点阵显示屏的组成:由多个LED 发光二极管封装在一起组成,是一种新兴的显示器件。
为了说明LED 点阵显示的原理,以单片机为控制核心,设计和制作了一种包含硬件和软件两部分的显示系统。
该电路通过按键控制可实现任意多个汉字的卷帘、上移和左移等多种显示形式,可广泛应用于机场、商场、医院等公共场所进行文字广告宣传,信息发布等。
而且具有体积小、件电路结构简单和容易实现等特点。
系统硬件电路显示屏控制器的硬件电路部分主要由三个部分组成:串行通信接口、外部存储器的扩展和LED 点阵显示驱动及接口电路。
一般来说要显示的内容比较多,所以必须要扩展外部数据存储器。
静态数据存储器成本低、功耗小,读写速度快,我们使用二片静态RAM62256 数据存储器(共64KB)。
把要显示的内容代码全部存放到62256 里面。
系统软件程序软件程序是整个控制系统的核心部分。
系统主程序开始以后首先是对系统环境初始化,包括设置串口、定时器、中断和端口。
整个软件设计主要分为两大部分:显示部分和通信部分。
通信部分:上位机软件采用Visual Basic 编程,使用VB 提供具有强大功能的通信控件MSCOMM,该控制串口和串口通信的消息格式和协议设置,直接利用PC 机的串口发送数据。
为实现单片机与PC 机的可靠通信,必须保证双方具有相同的数据格式和波特率。
该软件的使用比较简单。
使用时可以先用Microsoft Word 处理好需要显示的内容(注意页面设置的宽度跟LED 点阵显示屏的宽度应该相同),然后选择编辑菜单里面的全选命令和复制命令,然后运行LED 显示下载软件V1.1。
LED 点阵显示设计利用LED 点阵(16*16 个发光二极管)交替显示自己名字的每个汉字。
一、预备知识:目前, LED 电子显示屏广泛应用于各种公共场所, 如南通大学新校区图书馆底楼LED 大屏幕、新校区学生食堂各种显示菜价的LED 电子屏等, 在车站、码头、机场、商场、医院、宾馆、银行、证券市场等更是随处可见LED 电子显示屏的身影。
实验箱上由4 块8*8 LED 点阵模块组成1 个16*16 的LED 点阵, 每个LED 发光管其实就是1 个像素点, 而通常汉字显示时所需像素点就是16*16。
汉字显示需要“字模生成软件”生成显示的点阵数据, 通常“字模生成软件”支持使用指定字体、指定取点模式及字节排列模式, 支持字体加粗、斜体、删除线、下划线等设置等。
“字模生成软件”的具体使用见课程设计讲解视频。
二、设计目的1.了解、掌握LED 点阵显示的控制原理, 为后续的LCD 显示控制打下基础;2.熟悉、掌握串行输入并行输出移位寄存器的使用;3.掌握单片机串行接口扩展原理和编程方法。
三、设计内容1.设计LED 点阵模块显示控制电路的原理图;2.设计程序流程图;3、编程调试, 在LED 点阵模块上交替显示自己名字的每个汉字, 交替间隔时间控制在0.5~1 秒之间。
四、参考接线LED 点阵模块显示控制所用导线较多, 可参见LED 点阵模块原理说明及实验箱电路原理图。
五、设计步骤程序:ORG 0000HLJMP MAINMAIN:MOV SP,#6FHMOV B,#80HMOV R0,#0MOV R3,#100MAIN_LOOP:MOV DPTR,#LED_TABMOV R1,#8MOV R2,#8MAIN_LOOP_H:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H MOV P2,#00HMAIN_LOOP_L:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L MOV P1,#00HDJNZ R3,MAIN_LOOP MOV R3,#100MAIN_LOOP1:MOV R1,#8MOV R2,#8MOV DPTR,#LED_TAB1 MAIN_LOOP_H1:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H1 MOV P2,#00HMAIN_LOOP_L1:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L1DJNZ R3,MAIN_LOOP1MOV R3,#100MAIN_LOOP2:MOV R1,#8MOV R2,#8MOV DPTR,#LED_TAB2MAIN_LOOP_H2:MOV A,BMOV P2,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R1,MAIN_LOOP_H2 MOV P2,#00HMAIN_LOOP_L2:MOV A,BMOV P1,ARR AMOV B,ALCALL FASONGLCALL FASONGLCALL DELAYDJNZ R2,MAIN_LOOP_L2MOV P1,#00HDJNZ R3,MAIN_LOOP2 LJMP MAINFASONG:MOV A,@R0MOVC A,@A+DPTRCLR TIMOV SBUF,AJNB TI,$CLR TIINC DPTRRETDELAY:MOV R7,#4DL Y_LOOP:DJNZ R6,$DJNZ R7,DL Y_LOOP RETDELAY2:MOV R7,#250DL Y_LOOP2:MOV R6,#250DJNZ R6,$DJNZ R7,DL Y_LOOP2 RETLED_TAB:DB …….LED_TAB1:DB …….LED_TAB2: DB……..END原理图:。
LED点阵显示屏的设计摘要本设计是基于16 ×16 点阵 LED 电子显示屏的设计。
设计以STC89C52RC 为核心,介绍了以它为控制系统的LED 点阵电子显示屏的动态设计和开发过程。
本设计主要模块组成:主控CPU模块、按键输入模块,光笔检测电路,LCD信息显示器,16 ×16 点阵 LED点阵显示与驱动模块。
设计中16 ×16 点阵 LED点阵显示与驱动模块中,CPU输出信号先经74HC245进行锁存,再输出信号经由38译码器74HC138译码选通APM4953驱动行,由移位寄存器74HC595作为列驱动,单片机控制系统程序采用C语言进行模块化编程,控制各显示点对应 LED 阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。
文中详细介绍了 LED 点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库中提取。
经实践证明,该系统显示误差小,性能稳定,结构合理,扩展能力强。
关键词: STC89C52单片机; LED ;点阵书写显示;动态显示; C语言。
一、技术指标1.1设计意义LED显示屏是一种通过控制半导体发光二极管的显示方式,用来显示文字、图形、图像、动画、行情、视频、录像信号等各种信息的显示屏幕。
图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
本设计基于LED点阵的普通显示效果加上光笔检测模块,实现自由书写显示功能。
它的优点:亮度高、工作电压低、功耗小、微型化、易与集成电路匹配、驱动简单、寿命长、耐冲击、性能稳定。
附件3:封面式职业技术学院机电工程系□毕业论文设计项目(论文题目) LED点阵显示屏设计姓名肖彬学号 2 专业机电一体化所在班级 1132指导教师一兵2016年 6 月 15日附件4:摘要随着显示器件与技术的进一步发展,屏幕显示系统在国民经济中得到了广泛的应用,LED显示屏是信息显示的重要传媒之一。
LED显示屏是利用发光二极管点阵模块或像素单元组成的显示屏幕。
伴随着计算机技术的发展,使得LED数码管能够在减少驱动器的情况下能够直接被驱动。
而且它具有可靠性高、使用寿命长、性能价格比高、使用成本低、环境适应能力强等特点,所以一直在平板显示领域扮演着重要的角色,并且在今后相当长的一段时期还有相当大的发展空间。
所以被广泛应用于金融市场、医院、体育馆、机场、码头、车站、高速公路等公共场所的信息显示和广告宣传。
本设计是16×16点阵LED电子显示屏的设计。
该电子显示屏可以显示各种文字,采用4块8×8点阵LED显示模块来组成16×16点阵显示模式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
【关键词】单片机AT89C52 LED 点阵显示目录一绪论 (9)(一)课题概述 (9)(二)点阵式LED显示屏概述 (9)(三) LED显示屏控制技术现状 (10)(四)课题研究的意义 (11)二系统方案设计 (11)(一)需要实现的功能 (11)(二)系统整体的设计过程 (11)(三)本章小结 (13)三系统的硬件设计 (14)(一)硬件电路及工作原理 (14)(二)单片机的结构 (17)1)单片机的基本结构 (17)2)单片机引脚图及封装 (19)(三) LED显示模块的硬件设计及工作原理 (19)四系统的软件设计 (21)(一)软件流程 (21)(二)系统程序的设计 (21)1)显示驱动程序 (23)2)系统主程序 (23)五总结........................................ 错误!未定义书签。
附件3:封面范式邵阳职业技术学院机电工程系□毕业论文设计项目(论文题目)LED点阵显示屏设计姓名肖彬学号201310300612专业机电一体化所在班级1132指导教师刘一兵2016年 6 月15日附件4:摘要随着显示器件与技术的进一步发展,屏幕显示系统在国民经济中得到了广泛的应用,LED显示屏是信息显示的重要传媒之一。
LED显示屏是利用发光二极管点阵模块或像素单元组成的显示屏幕。
伴随着计算机技术的发展,使得LED数码管能够在减少驱动器的情况下能够直接被驱动。
而且它具有可靠性高、使用寿命长、性能价格比高、使用成本低、环境适应能力强等特点,所以一直在平板显示领域扮演着重要的角色,并且在今后相当长的一段时期内还有相当大的发展空间。
所以被广泛应用于金融市场、医院、体育馆、机场、码头、车站、高速公路等公共场所的信息显示和广告宣传。
本设计是16×16点阵LED电子显示屏的设计。
该电子显示屏可以显示各种文字,采用4块8×8点阵LED显示模块来组成16×16点阵显示模式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
【关键词】单片机AT89C52 LED 点阵显示目录一绪论 (9)(一)课题概述 (9)(二)点阵式LED显示屏概述 (9)(三) LED显示屏控制技术现状 (10)(四)课题研究的意义 (11)二系统方案设计 (11)(一)需要实现的功能 (11)(二)系统整体的设计过程 (12)(三)本章小结 (13)三系统的硬件设计 (14)(一)硬件电路及工作原理 (14)(二)单片机的结构 (17)1)单片机的基本结构 (17)2)单片机引脚图及封装 (19)(三) LED显示模块的硬件设计及工作原理 (20)四系统的软件设计 (21)(一)软件流程 (21)(二)系统程序的设计 (22)1)显示驱动程序 (24)2)系统主程序 (24)五总结........................................ 错误!未定义书签。
16x64-LED点阵汉字显示屏的设计基于单片机的点阵汉字显示屏的设计摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。
本设计是4个16×16点阵LED电子显示屏的设计。
整机以美国ATMEL公司生产的40脚单片机80C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。
通过该芯片控制一个行驱动器74LS138和八个列驱动器4049来驱动显示屏显示。
该电子显示屏可以显示4个汉字,采用16块8 x 8点阵LED显示模块来组成4个16x16点阵显示模式。
显示采用动态显示,使得文字能够实现静止显示方式。
文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。
关键词:80C51单片机; LED; 点阵显示; 动态显示The design of display Chinesecharacters based on MCUAbstractLED dot matrix display as a new display device, is composed of multiple independent package from the LED light emitting diodes. LED dot matrix display can display numbers or symbols, usually used to display time, speed, the system state.This design is the design of 4 16 * 16 dot-matrix LED electronic display screen. The machine to the United States of America ATMEL company production of 40 feet 80C51 MCU as the core, introduces the dynamic design and the development of its control system for LED dot matrix display process. The chip controls good driver 74LS138 and eight row driver 4049 to drive the display screen to display. The electronic screen can display 4 Chinese characters, using the display module is composed of 4 16x16 dot matrix display mode 16 blocks of 8 x 8 dot matrix LED. Shows the dynamic display, making the text to achieve a static display mode. This paper introduces in detail the LED dot matrix display hardware design, hardware circuit of each part of the function and principle, the corresponding software program design, as well as the use and so.Keywords: 80C51; LED; dot matrix display; dynamic display目录第一章绪论 01.1 课题背景 01.2 国内外研究现状 01.3 选题目的及意义 (1)1.4 生产需求状况 (1)1.5 LED电子显示屏概述 (2)第二章系统方案设计与论证 (3)2.1数据传输方案 (3)2.2系统硬件方案 (4)2.2.1 单片机 (4)2.2.2 EDA电子设计自动化 (4)第三章系统硬件的设计 (6)3.1 电路原理图 (6)3.2 系统硬件概述 (7)3.2.1 80C51单片机简介 (7)3.2.2 译码器及点阵显示屏 (8)3.3 元件清单 (9)3.4 显示原理及控制方式分析 (10)3.4.1 LED点阵模块结构 (10)3.4.2 LED 动态显示原理 (11)3.4.3 LED控制方式 (11)第四章系统软件的设计 (12)4.1 系统程序的设计 (12)4.1.1 显示驱动程序 (12)4.1.2 系统主程序 (12)4.2 程序流程图 (13)4.3 字模生成 (14)4.3.1 LED显示屏领域字模实现技术 (15)4.3.2 字库生成 (16)4.4 Keil软件调试 (16)4.5 Protues 仿真 (17)总结 (18)附录:程序代码 (19)参考文献 (22)致谢 (23)第一章绪论1.1 课题背景LED显示屏的发展可分为以下几个阶段:第一阶段为1990年到1995年,主要是单色和16级双色图文屏。
LED点阵显示屏的设计毕业设计论文标题:基于LED点阵显示屏的设计与应用
摘要:
随着信息技术的快速发展,显示技术也得到了极大的改进与创新。
其中,LED点阵显示屏以其高亮度、低功耗、寿命长等特点,在广告宣传、信息发布、装饰设计等领域得到了广泛应用。
本论文以LED点阵显示屏的设计与应用为主题,介绍了其基本原理、硬件和软件设计方案,并提出了一种创新的应用场景。
第一章:引言
1.1研究背景
1.2研究意义
1.3论文结构
第二章:LED点阵显示屏设计原理
2.1LED点阵显示屏基本原理
2.2像素排列结构
2.3驱动电路设计
第三章:硬件设计方案
3.1控制系统选择
3.2电源电路设计
3.3显示屏结构设计
第四章:软件设计方案4.1控制模块设计
4.2显示模块设计
4.3数据处理算法
第五章:应用案例分析5.1商场广告展示
5.2运动赛事直播
5.3建筑装饰设计
第六章:创新应用场景6.1互动游戏
6.2音乐节奏灯光效果6.3社交媒体实时更新第七章:总结与展望
7.1梳理研究内容
7.2创新点和不足之处7.3后续研究方向。
LED点阵显示屏设计简介LED点阵显示屏广泛应用于室内和室外的广告牌、交通信号灯、数字时钟等场合。
它由多个LED灯组成的二维阵列,可以显示文字、图形、动画等内容。
本文将介绍LED点阵显示屏的设计原理、硬件组成和软件控制。
设计原理LED点阵显示屏的设计原理基于LED(Light Emitting Diode)发光二极管技术。
它通过控制LED灯的亮灭来实现信息的显示。
在LED点阵显示屏中,每个LED灯都是点阵的一个元素,通过适当的排列组成二维阵列。
每个LED灯可以分别控制其亮度和颜色,从而实现文字、图形和动画的显示。
硬件组成LED点阵显示屏的硬件组成主要包括LED灯、控制电路、电源和外壳。
LED灯LED点阵显示屏所使用的LED灯可以是单色LED或多色LED。
单色LED通常只能发出单一颜色的光,多色LED则可以发出多种颜色的光。
在设计 LED点阵显示屏时需要根据实际需求选择适合的LED灯。
控制电路控制电路是LED点阵显示屏的核心部分,它负责接收来自软件的控制信号,并通过对LED灯的控制来实现信息的显示。
常见的控制电路包括驱动芯片和控制模块。
驱动芯片负责将控制信号转化为对LED灯的驱动信号,控制模块则负责提供控制信号。
电源LED点阵显示屏需要稳定的电源来正常工作。
电源可以使用交流电源或直流电源,需要根据实际情况选择合适的电源类型。
同时,还需要考虑电源的容量和可靠性,以确保LED点阵显示屏能够正常工作。
外壳LED点阵显示屏通常需要在室内或室外使用,因此需要选择合适的外壳来保护LED灯和控制电路不受环境影响。
外壳应具有防水、防尘、耐高温、抗冲击等特性,以确保LED点阵显示屏的正常工作。
软件控制LED点阵显示屏的软件控制主要包括显示内容的编辑和控制信号的发送两部分。
显示内容的编辑显示内容的编辑通常通过计算机或专用软件完成。
用户可以通过编写文本、图形和动画等内容来定义显示的内容,并将其转化为控制信号发送给LED点阵显示屏。
LED点阵电子显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。
本文介绍的是一种可用在值班室外等场合的公告牌的LED点阵电子显示屏设计。
公告内容随时可以更新,能够实时显示温度和日期时间,并具有自动亮度调节功能。
考虑到所需元器件的易购性,本设计使用了8×8的点阵发光管模块,组成16×64发光点阵,显示待定的中文、字符以及数字。
方案论证1 点阵显示屏部分方案一:串行方式显示。
这种方式可同时显示4个16×l6点阵汉字或8个16×8点阵的汉字、字符或数字。
点阵显示屏每个单元由16个8×8点阵LED显示模块、行信号选择译码器74HC138、驱动器74HC245、数据移位寄存器74HC595和行驱动器组成,如图1所示。
单元显示屏可以接收控制器(主控制)或上一级显示单元模块传输下来的数据信息和命令信息,并可将这些数据信息和命令信息不经任何变化地再传送到下一级显示模块单元中,因此显示屏可扩展至更多的显示单元,用于显示更多的内容。
图1 串行方式显示逻辑结构框图此方案为点阵显示屏系统中比较常用的,所用器件也比较常用,容易买到。
但是它存在一个致命的缺点,就是刷新速度不够快。
如果要驱动64列点阵显示,通用51单片机会比较吃力,出现比较严重的闪烁停滞现象。
此外,要实现文字的左右移动和调整移动速度等功能,都会给软件设计带来较多困难。
方案二:并行方式显示。
可以通过锁存器芯片来扩展IO口,达到控制LED 点阵的64个列线的目的。
方案中运用16片锁存器74HC573来组成8组双缓冲寄存器,驱动LED点阵的8组列线,用4/16译码器74HC595对LED点阵的16行进行扫描。
在送每一行的数据到LED点阵前,先把数据分别送到第一级的8个74HC573,然后再给第二级的8个74HC573送锁脉冲,数据一起输出到LED点阵列中,这样就避免了各行数据显示不同步问题。
LED点阵书写显示屏设计方案第一章设计任务及要求1.1、任务设计并制作一个基于32x32点阵LED模块的书写显示屏,其系统结构如图1所示。
在控制器的管理下,LED点阵模块显示屏工作在人眼不易觉察的扫描微亮和人眼可见的显示点亮模式下;当光笔触及LED点阵模块表面时,先由光笔检测触及位置处LED点的扫描微亮以获取其行列坐标,再依据功能需求决定该坐标处的LED是否点亮至人眼可见的显示状态(如下图中光笔接触处的深色LED点已被点亮),从而在屏上实现“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等书写显示功能。
图1.1 LED点阵书写显示屏系统结构示意图1.2、要求(1)在“点亮”功能下,当光笔接触屏上某点LED时,能即时点亮该点LED,并在控制器上同步显示该点LED的行列坐标值(左上角定为行列坐标原点)。
(2)在“划亮”功能下,当光笔在屏上快速划过时,能同步点亮划过的各点LED,其速度要求2s能划过并点亮40点LED。
(3)在“反显”功能下,能对屏上显示的信息实现反相显示(即:字体笔画处不亮,无笔画处高亮)。
(4)在“整屏擦除”功能下,能实现对屏上所显示信息的整屏擦除。
第二章系统整体框架系统整体框架图如图一所示,分为控制模块、显示模块、光笔模块、LED点阵模块和辅助模块(包括键盘、数据存储等)。
图2.1 系统整体框架图第三章方案论证与比较3.1、控制模块在数字信号处理中,常用的控制器有FPGA、DSP及嵌入式51单片机。
FPGA可以直接用硬件扫描、编码、解码、纠错,速度快、稳定性高,但其价格昂贵,很多的功能在本设计难以使用到。
DSP都有较快的数据处理速度,能实时地、快速地监测信号量的变化,但其受采样频率的限制,处理频率围有限。
AT89S52 是一种低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案,具有硬件的设计十分简单,软件开发周期短等特点。
考虑到价格、功耗及系统的要求,最终选用AT89S52单片机为控制系统。
3.2、光笔模块光笔设计的关键是选择合适的传感器件,只有具有很高的灵敏度和一定的响应时间的传感器才能完成系统的要求及功能。
方案一:采用核心部件为光敏电阻制成的光笔检测系统。
光敏电阻是将光能转换为电能的一种传感器件,它是构成光电式传感器的主要部件。
光敏电阻结构简单、使用方便、价格便宜,但其响应时间长,不易检测。
方案二:采用光敏二极管,与光敏电阻相比有较好的高频特性,具有较好的可靠性,功耗低,且同样价格低廉,使用方便。
比较两种器件,系统设计中选用光敏二极管制作光笔模块。
3.3、LED点阵模块LED点阵的显示方式有以下几种:1)在LED点阵上贴上一层触摸屏,形成压膜式LED点阵。
把触摸屏的信息通过微处理器处理来控制LED点阵显示。
这种显示方式准确,反应速度快,光笔制作简单,但造价高。
2)用普通的LED点阵,在LED点阵的边上加上红外线传感接收器,构成32×32的红外线网,同样光笔制作简单,但硬件复杂,造价也比较高。
3)用普通的LED点阵,通过自制的光笔传递信息送入89S52单片机,由AT89S52单片机编程确定LED点阵坐标。
虽然编程复杂,但硬件简单,而且造价最低。
综合各方面的因素,选择了第三个方案。
第四章系统硬件设计4.1、系统的总体设计本设计以AT89S52为核心部件结合按键、数码管显示、光笔检测及LED点阵驱动显示等部分组成。
系统框图如图4.1所示:4.2图4.2 光电笔电路图采用C语言2分法查寻需要10次,每查寻一次的时间为5ms。
普通的光敏二极管反应时间在30μs左右,完全可以满足设计要求。
电路见图4.2。
4.3、点阵屏驱动参数设计本系统采用共阳极型低态扫描高态显示信号驱动电路和74LS373锁存器。
系统的锁存器低态输出,其I可达24mA,足以驱动一个LED。
我们把32×32LED点阵,等分为OL四个16×16的LED点阵来驱动,设定驱动每列LED的电流为15mA,则流过驱动三极管的总电流为240mA,8550三极管最大的工作电流可达500mA,因此选择8550三极管驱动。
电路图见图4.3和4.4。
图4.3 由74LS373锁存器组成的驱动电路图4.4 驱动原理图4.5、电源电路图4.5 电源部分滤波电路电源输入电源部分采用采用体积小,效率高的开关电源,为系统提供稳定的5V直流电压。
其电路图如图4.5所示。
4.6、单片机人机界面电路图4.6.1、键盘电路键盘是使用比较简单的独立式键盘,而且具有发光二极管指示功能模块。
在程序中采用中断扫描的方式,在没有键操作时CPU执行正常程序,只在有键操作时才处理键盘程序。
其电路如图4.6所示:图4.6 键盘输入4.6.2、LED显示电路为了满足系统在工作时能准确显示光笔对应亮点所处的行列坐标值,本设计中采用型号为LCM103的液晶显示器显示。
LCM103为10位多功能通用型8段式液晶显示模块,含看门狗时钟发生器2种频率的蜂鸣驱动电路置显示RAM,可显示任意字段笔画划3-4线串行接口可与任何单片机接口。
其电路图如图4.7所示。
图4.7 LED显示电路第五章程序设计5.1、系统程序流程图本设计中,要实现的功能基本都要通过单片机程序来实现。
由于采用的是普通的光敏二极管,在一定程度上限制了反应速度,因此编程采用了多路信号同时输入和数学中的二分法思想编程,提高了系统的执行效率。
系统的程序流程图如图5.1所示:图5.1 系统的程序流程图5.2、程序源码//x轴显示#include "reg51.h"#define uc unsigned char#define ui unsigned int#define uli unsigned long int//T0定时时间设定#define T0_time_init 1124 //1.25ms#define d_ray 2#define time0_H ((65535-T0_time_init)/256)#define time0_L ((65535-T0_time_init)%256)#define address_h P2#define data_io P0#define code_add P1#define y_one 0x8f#define y_ten 0xaf#define y_hun 0xcf#define y_kilo 0xef#define y_5 0xbf#define y_4 0x9f#define y_6key 0xdf#define y_7key 0xff#define y_no 0x0fuc code show_code[]={0xc0,0xcf,0x64,0x46,0x4b,0x52,0x50,0xc7,0x40,0x42,0x41,0x58,0xf0,0x4c,0x70, 0x71,0xff,};/*uc xdata data_q[0x7fff] _at_ 0x0000;//uc xdata y_6key _at_ 0xdf00;//uc xdata y_7key _at_ 0xff00;data_q[]={0xc0,0xcf,0x64,0x46,0x4b,0x52,0x50,0xc7,0x40,0x42,0x41,0x58,0xf0,0x4c,0x70, 0x71,0xff,} ; */uc xdata data_x1[8][128] _at_ 0x0000;uli xdata data_xt[32] _at_ 0x0800;uli xdata data_xn[32] _at_ 0x0a00;uli xdata data_xm[32] _at_ 0x0c00;//uli data_xt[32]={0};sbit black_ray=P3^5;sbit black_louch=P3^4; sbit await_con=P3^2;sbit clssed_screen=P3^3; bit flag_key_read=0;bit flag_time_manage=0; bit flag_screen_out=0; bit flag_bf_clr=0;bit flag_open_await=0; bit flag_fast_xy=1;bit flag_fast_move=1; bit flag_count_fre=0; bit flag_fre_first=0; uc key_reg;uc indata;uc coo_x=32;uc coo_y=32;uc await=5;uc show_page=0;ui await_count=0;uc move_jraw=0;uc x0;uc x1;uc x2;uc y0;uc y1;uc y2;uc move_y;uc move_x;uc move_x0;uc move_x1;uc move_x2;uc move_y0;uc move_y1;uc move_y2;init(); //初始化工作//key_read(); //键盘读入//data_out_manage(); //数据输出处理//time_manage(); //定时处理//number_show(ui,bit); //数码显示//key_code(uc,uc); //按键译码//led_scon(); //LED扫描//led_scon_y(uc); //扫描Y轴//number_show_two(uc,uc); //二个单字节delay_1ms(uc);delay_10us(uc);screen_out(); //屏幕输出coo_manage(); //坐标处理//choose_draw();move_draw_mamage();restore_mamage();//*************************************************************// //主程序////*************************************************************// main(){data_xt[32]=11;init(); //初始化工作//while(1){if(flag_key_read==1){ flag_key_read=0;key_read(); //键盘读入//if(key_reg!=0){ data_out_manage(); //数据输出处理//}if(black_louch==0){ led_scon(); //LED扫描if(coo_y<32){ if(flag_count_fre==0){number_show_two(coo_x,coo_y);coo_manage(); //坐标处理//await_count=0;coo_y=99; //防止多次进入}}}}if(flag_time_manage==1){ flag_time_manage=0;time_manage();}if(flag_screen_out==1){ flag_screen_out=0;screen_out(); //屏幕输出}}}//*************************************************************// //主程序_end////*************************************************************////*************************************************************// //初始化工作 ////*************************************************************//init(){ uc c;//定时器设置(5点)TMOD=0x51; //T0计时器设置//TMOD: GATE C/!T M1 M0 GATE C/!T M1 M0 // T1 外双控 =1计数工作方式01:16位|| T0EA=1;ET0=1;TH0=time0_H;TL0=time0_L;TR0=1;//id口处理address_h=y_no;data_io=0xff;//存数据处理//调试口number_show_two(0,0); /* key_reg=11;delay_1ms(250);data_out_manage();move_jraw=1;coo_x=8;coo_y=8;delay_1ms(250);coo_manage();coo_x=16;coo_y=16;coo_manage();delay_1ms(250);move_jraw=2;coo_x=16;coo_y=16;delay_1ms(250);coo_manage();coo_x=16;coo_y=16;delay_1ms(250);coo_manage();coo_x=20;coo_y=20;delay_1ms(250);coo_manage();*/}//***********************************/**************************/ //初始化工作 _end////*************************************************************////*************************************************************// //键盘读入////*************************************************************//key_read(){ static n=0; //0一直无按键 1上次进入按键 2一直有按键 3上次退出按键uc a,b;bit point;data_io=0xff;address_h=y_6key;a=data_io;address_h=y_7key;b=data_io;address_h=y_no;// number_show(a*0x100+b,1);if(a==0xff&b==0xff)point=0; //无按键else{point=1; //有按键// number_show(6666,0);}switch (n){case 0:if(point==1)n=1;elsen=0;break;case 1:if(point==1){ n=2;key_code(a,b);}elsen=0;break;case 2:if(point==1)n=2;elsen=3;break;case 3:if(point==1)n=2;elsen=0;break;default:break;}}key_code(uc a,uc b) //按键译码// { //number_show(5555,0);switch (b){case 0xfe:key_reg=1;break;case 0xfd:key_reg=2;break;case 0xfb:key_reg=3;break;case 0xf7:key_reg=4;break;default:key_reg=0xff; //错误信号break;}}//*************************************************************// //键盘读入_end////*************************************************************// //*************************************************************// //输出处理 ////*************************************************************// data_out_manage(){ uc c,n;uli data_long,t;// number_show(key_reg,0);switch (key_reg){case 1: //反选for(c=0;c<128;c++){ t=data_x1[show_page][c];t=~t;data_x1[show_page][c]=t;}break;case 2: //整屏清除for(c=0;c<128;c++){data_x1[show_page][c]=0xff;}break;case 3:flag_bf_clr=1;number_show(10,0);break;case 4:flag_bf_clr=0;number_show(0,0);break;}key_reg=0;}//*************************************************************// //输出处理_end////*************************************************************// //*************************************************************// //数码显示////*************************************************************// number_show(ui datas,bit point){ uc a;if(point==0){a=datas%10; //个位address_h=y_one;data_io=show_code[a];a=datas/10%10; //十位address_h=y_ten;data_io=show_code[a];a=datas/100%10; //百位address_h=y_hun;data_io=show_code[a];a=datas/1000; //千位address_h=y_kilo;data_io=show_code[a];}else{ a=datas%0x10; //个位address_h=y_one;data_io=show_code[a];a=datas/0x10%0x10; //十位address_h=y_ten;data_io=show_code[a];a=datas/0x100%0x10; //百位address_h=y_hun;data_io=show_code[a];a=datas/0x1000; //千位address_h=y_kilo;data_io=show_code[a];}address_h=y_no;data_io=0xff;}//二个单字节 <100number_show_two(uc c,uc b){ uc a;a=b%10;address_h=y_one;data_io=show_code[a];a=b/10;address_h=y_ten;data_io=show_code[a];a=c%10;address_h=y_hun;data_io=show_code[a];a=c/10;address_h=y_kilo;data_io=show_code[a];address_h=y_no;data_io=0xff;}//*************************************************************// //数码显示_end////*************************************************************// //*************************************************************// //LED扫描////*************************************************************// led_scon(){ uc i;data_io=0; //扫描0-15//code_add=8;code_add=10;code_add=12;code_add=14;code_add=6; //关闭373// while(1);data_io=0xff;code_add=9;code_add=11;code_add=13;code_add=15;code_add=7; //关闭373for(i=0;i<16;i++){code_add=i<<4;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{coo_x=i;i=i<<4;coo_y=led_scon_y(i); //扫描Y轴clssed_screen=1; //关扫描return;}clssed_screen=1; //关扫描}data_io=0xff; //扫描16-31//code_add=8;code_add=10;code_add=12;code_add=14;code_add=6; //关闭373data_io=0;code_add=9;code_add=11;code_add=13;code_add=15;code_add=7; //关闭373for(i=0;i<16;i++){code_add=i<<4;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0){coo_x=i+16;i=i<<4;coo_y=led_scon_y(i); //扫描Y轴clssed_screen=1; //关扫描return;}clssed_screen=1; //关扫描}coo_x=32;coo_y=32;}//扫描Y轴led_scon_y(uc scon_x){ uc i;data_io=0; //第一排373code_add=8;code_add=9;code_add=1; //关闭373data_io=0xff;code_add=10;code_add=11;code_add=12;code_add=13;code_add=14;code_add=15;code_add=7; //关闭373code_add=scon_x;data_io=0xff;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描for(i=0;i<8;i++){ data_io=~1<<i; //第一排373code_add=8;code_add=9;code_add=1; //关闭373code_add=scon_x;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描return i;} clssed_screen=1; //关扫描}}clssed_screen=1; //关扫描data_io=0; //第二排373code_add=10;code_add=11;code_add=3; //关闭373data_io=0xff;code_add=8;code_add=9;code_add=12;code_add=13;code_add=14;code_add=15;code_add=7; //关闭373code_add=scon_x;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描for(i=0;i<8;i++){ data_io=~1<<i;code_add=10;code_add=11;code_add=3; //关闭373code_add=scon_x;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描return (i+8);}clssed_screen=1; //关扫描}}clssed_screen=1; //关扫描data_io=0; //第三排373code_add=12;code_add=13;code_add=5; //关闭373data_io=0xff;code_add=8;code_add=9;code_add=10;code_add=11;code_add=14;code_add=15;code_add=7; //关闭373code_add=scon_x;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描for(i=0;i<8;i++){ data_io=~1<<i;code_add=12;code_add=13;code_add=5; //关闭373code_add=scon_x;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描return (i+16);}}}clssed_screen=1; //关扫描data_io=0; //第四排373code_add=14;code_add=15;code_add=7; //关闭373data_io=0xff;code_add=8;code_add=9;code_add=10;code_add=11;code_add=12;code_add=13;code_add=5; //关闭373code_add=scon_x;clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描for(i=0;i<8;i++){ data_io=~1<<i;code_add=14;code_add=15;code_add=7; //关闭373code_add=scon_x;clssed_screen=1; //关扫描delay_10us(d_ray);clssed_screen=0; //开扫描delay_10us(d_ray);if(black_ray==0) //有光返回{ clssed_screen=1; //关扫描return (i+24);}clssed_screen=1; //关扫描}clssed_screen=1; //关扫描}return 24;}//*************************************************************// //LED扫描_end////*************************************************************// //*************************************************************// //坐标处理////*************************************************************// coo_manage(){ uc xt,yt,a;clssed_screen=1; //关if(move_jraw==0){if(coo_y<8){ yt=coo_x;xt=coo_y%8;}else if(coo_y<16){ yt=coo_x+32;xt=coo_y%8;}else if(coo_y<24){ yt=coo_x+64;xt=coo_y%8;}else if(coo_y<32){ yt=coo_x+96;xt=coo_y%8;}a=data_x1[show_page][yt]; //第一位亮起11111110xt=1<<xt;if(flag_bf_clr==0){ a=~a; //00000001a=a|xt;a=~a;}else{ a=a|xt;}data_x1[show_page][yt]=a;}else{switch (move_jraw){case 1:choose_draw();break;case 2:move_draw_mamage();break;default:break;}restore_mamage();clssed_screen=1;}}//*************************************************************// //坐标处理_end////*************************************************************// //*************************************************************// //屏幕输出////*************************************************************// screen_out(){ static uc a=0;uc c,t;clssed_screen=1;for(c=0;c<8;c++) //8次{ t=c<<4;code_add=c+8; //选址data_io=data_x1[show_page][a+t];}code_add=--c; //关选址code_add=a<<4;clssed_screen=0;if(a++==15){ a=0;}}//*************************************************************// //屏幕输出_end////*************************************************************//第六章测试方案与测试结果基本功能测试:对系统的基本功能进行测试,主要测试了系统的稳定性及基本功能的完成情况,具体的测试结果见表一和表二,从测试结果来看,该系统完全实现了设计要求的“点亮、划亮、反显、整屏擦除”等基本功能,并在“划亮”功能上进行了创新,实现了比设计要求更快的速度。