• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

#伴我起航2015# LED点阵书写显示屏 青岛大学

    这是一道电子设计竞赛的题目,觉着挺有意思就试着制作了出来,下面是题目要求:

    然后下面是演示效果,这里只拍了基础部分,发挥部分没来得及录像,但都实现出来了:

    然后下边是设计报告,懒得再改就直接发上来了:

    摘要  本设计基于16位超低功耗单片机MSP430G2553,使用74HC595串行驱动一块16×16的LED点阵屏,由单片机控制LED点阵屏逐行逐点进行扫描,通过光敏三极管构成的光笔将LED点阵屏上扫描产生的光信号转化为电信号,并将其送入单片机自带的ADC10模块进行模数转换,根据设定的阈值电压可以判断光笔的接触点坐标,并实现“点亮、擦除、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移”等功能,此外还可以使用上位机显示并控制LED点阵屏的运行状态,本设计具有功耗低、使用简单、可靠性高等特点。

    关键词  MSP430  LED点阵  光敏三极管  74HC595
1 设计背景及意义
    随着计算机技术的发展,各种硬件设备也是日新月异、层出不穷。在输入设备中,为了应对手写文字输入与绘画输入的需求,出现了各种手写绘画输入设备,包括手写板、绘图板等。随着电脑的普及和网络的流行,人们对网上信息访问量迅速上升,但用键盘快速打字,对还不熟悉电脑的人们来说真是件费力又费心的事。

    LED显示器分为图文显示器和视频显示器,均由LED矩阵块组成。图文显示屏可与计算机同步显示汉字、英文文本和图形;视频显示屏采用微型计算机进行控制,图文、图像并茂,以实时、同步、清晰的信息传播方式播放各种信息,还可显示二维、三维动画、录像、电视、VCD节目以及现场实况。LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。

2 方案比较与选择
2.1 主控制器的选择与比较
    方案一:采用低功耗的MSP430G2553为主控制器,内置具有基准、采样与保持以及自动扫描功能的10位200-ksps的A/D转换器,晶振频率达到32kHz,运行速度较快。内置的16位定时器、多达24个支持触摸感测的I/O引脚,一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。
    方案二:采用STC89C52单片机,成本低,程序书写简单易控制,晶振频率为12MHz,其运行速度相对较慢,需外接AD,且为8位CPU,内存空间相对较少。
    方案三:采用STM32单片机为主控制器,速度快,具有72MHz的CPU工作频率和很强的运算能力,可实现点阵屏的高速扫描的一些复杂控制,但其功率相对较高,功能实现起来相对复杂。
    经比较,选择方案一为主控制器。
2.2 光笔检测的选择与比较
    方案一:采用循环扫描LED点阵显示屏,光笔通过光敏三极管检测光信号的方式。LED点阵显示屏在CPU的控制下不断扫描,当光笔检测到所在点处的光信号时产生电流,传回单片机产生相应的电压值且与程序所设定的电压值相比较,单片机对LED点阵显示屏上的点进行相应的操作。
    方案二:采用点阵显示屏检测光笔所带LED产生的光信号的方式。串行驱动只占用一个I/O口但速度相对较慢且亮度较低。并行驱动占用大量I/O口且功耗大,且MSP430无法提供足够的I/O口,因此采用串行驱动。而串行驱动下LED点阵无法实现测光。
    经比较,采用方案一作为光笔检测的方案。
2.3 操作方式的选择与比较
    方案一:采用独立按键与上位机结合。独立按键编程简单但每个按键占用一个I/O口,因此结合上位机来扩展功能,同时实现了上位机对本系统的操作。
    方案二:为了节省I/O口,通常将按键排列成矩阵形式,每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。采用矩阵按键,提高了I/O口利用率但软件编程较为复杂,且本设计并不需要很多按键。
    经比较,采用方案一作为本设计的操作方式。
3 总体设计
    控制器的控制方式是:当光笔感应无效时,一直显示原有的数据,采用动态扫描的方式显示,由定时器控制屏幕的扫描,即以一定的频率对屏幕进行整屏扫描,这样显示和扫描交替进行。扫描开始时才判断光笔的感应是否有效,以免在显示的时候也产生中断。在省电模式中,也由定时器来控制,其中扫描定时中断和省电定时中断在开机时就一直工作,省电模式就是在设定的时间内光笔没有感应到LED发光时,就会取消显示的功能,同时关闭省电定时器,就剩下定时扫描。当光笔感应有效时,产生外部中断,同时开启省电计时器,而且使显示功能生效,此时又是显示和扫描交替进行。
    光笔检测LED点阵显示屏的光信号,单片机对接收到的产生的电压信号分析后对LED点阵显示屏进行相应的操作。开启上位机操作程序后将显示进行操作的点同时可控制LED点阵显示屏完成相应的功能。总体设计框架如下: 
4 硬件设计
4.1 光笔检测电路

    光笔检测电路由光敏三极管构成,光电流大,响应时间短,且其灵敏度非常高,易判断所在处LED在点阵屏中的坐标,而光敏电阻及光敏二极管灵敏度相对较低且响应速度慢,此设计具有一定的速度要求,故采用光敏三极管检测光信号。

4.2 LED点阵显示屏

    本设计所采用16×16LED点阵显示屏,由4个8×8的共阳型点阵构建。由于其自带4片74HC595,故此设计直接采用74HC595进行驱动,避免外加芯片使电路复杂。74HC595是一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,数据在SH_CP(移位寄存器时钟输入)的上升沿输入到移位寄存器中,在ST_CP(存储器时钟输入)的上升沿输入到存储寄存器中去,两部分互不干扰,可输出数据的同时移入数据。由于74HC595为8位并行输出,因此16×16点阵显示屏分别需要2片控制行,2片控制列。

4.3 主控制器MSP430G2553
    MSP430系列单片机是美国德州仪器(TI)1996年开始推向市场的一种16位超低功耗、具有精简指令集(RISC)的混合信号处理器(Mixed Signal Processor)。之所以称之为混合信号处理器,是由于其针对实际应用需求,将多个不同功能的模拟电路、数字电路模块和微处理器集成在一个芯片上,以提供“单片机”解决方案。

    MSP430G2553系列是超低功耗混合信号微控制器,具有内置的16位定时器、多达24个支持触摸感测的I/O引脚、一个通用型模拟比较器以及采用通用串行通信接口的内置通信能力。此外,MSP430G2553系列成员还具有一个10位模数(A/D)转换器。

5 软件设计
5.1 主程序设计

    主程序包括对系统初始化且进行动态扫描,液晶显示,以及“反显”、“擦除”、“睡眠”基本要求功能下数据处理程序。其中点阵不断被扫描,在极短的时间内被点亮,完成一次AD转换后立即熄灭,由于扫描时间极短,只会产生人眼几乎不可见的扫描微亮。检测按下控制下的功能,当单片机内部AD检测到产生的电压值大于设定值时,视为光笔与LED点阵相接触,按照预先编写的程序完成相应操作。

5.2 扩展设计
    本设计完成了“反显”、“连写多字”、“对象拖移”、“休眠”等功能并可实现上位机操作。“反显”功能下,当光笔接收到光信号所在的点已被点亮时,再次被检测到后所在点熄灭。“连写多字”功能下,分别书写四个字存储后可进行回放。“对象拖移”功能下,用光笔在LED点阵屏上进行拖动即可进行各个方向上的画面拖移。“休眠”功能下当未进行操作达到所设定的时间时,显示屏会停止扫描并保持其休眠前的图像。
5.3上位机设计

    上位机与下位机之间通过MSP430G2553自带的USCI模块中的硬件串口进行通信,上位机通过C#语言进行编写。每当单片机检测到光笔的触发信号后,便会将实际的触发位置发送给电脑,上位机程序接收到数据后将对其进行解析,并在电脑屏幕上显示出触发点的坐标和图形化表示的实际位置。同理,上位机程序也可以对单片机进行控制,通过发送预先编制的指令代码,用户便可以使用电脑对LED点阵进行控制。单片机接受到来自串口的数据后会触发串口接收中断,根据收到的指令不同将会相应响应的函数执行不同的操作。

6 系统测试与结果
6.1 基本要求的测试与结果
    软件调试无误后对搭建好的系统供电,初始化复位进入“书写”模式。当光笔触碰LED点阵显示屏后可显示光笔所走过的路径,同时上位机显示走过点的坐标。快速稳定划过后可实现1s点亮16个点,“划亮”功能未精确实现。选择按键二进入“反显”模式可看到被点亮的地方变暗而为点亮的地方变亮,再次按键可退出此模式。“整屏擦除”可通过复位键实现也可通过按键三实现。
  经测试,系统工作正常。
6.2 扩展要求的测试与结果
    对系统进行上电初始化复位后进行书写,然后再次经过所书写过的路径可发现被点亮的灯熄灭,“擦除”模式下工作正常。清屏后分别书写四个字并且保存,选择进入“连写多字”模式后可以进行四个字的复现。选择按键一进入“拖移”模式后利用光笔上下左右拖动,屏幕图像随之移动且跟随性较好。预先设置休眠时间,当控制器检测到一定时间后LED点阵未进行一定的操作时会进入“休眠”模式,退出此模式可以通过复位或者上位机“唤醒”功能。
  经测试,系统工作正常。
6.3 其他扩展要求的测试与结果
    对系统进行上电初始化复位后进行书写后,上位机能够准确显示所在点的坐标并显示其在屏幕上的动态位置。基本要求及扩展要求中的内容上位机均可实现。选择进入“贪吃蛇”游戏后LED点阵显示屏进入游戏模式,通过四个独立按键操作控制游戏。
    经测试,系统工作正常。
7 设计总结
    在LED点阵书写屏的设计过程中,虽然发现不少问题,但却因此学到很多东西,基本了解了整个嵌入式开发的流程。最初在练习设计一些功能简单的电路时,从电源到主控制器,驱动及外围电路,尽管都是功能单一的模块,但却因为核心芯片不同要采用不同的上电电压及上下拉电阻及滤波电容,原理图做好时PCB布线又会让人身临线路的迷宫。总体来说,这次设计开发让我感觉到动手实践与理论联合的重要性,综合能力有所提高,这些都促使我们向电子设计迈进了一步。
    这次设计让我感触最深的应该是软件的调试,控制器的功能越多,程序的内容就越复杂,在编写程序时,最好不要把整体的功能都写好了之后再去和硬件结合调试,这样如果出现了问题将非常的不好排除故障;最好的方法是编好了某一个功能之后,就要和硬件结合起来,去验证程序的对错,这样检测起来就大大降低了检错的范围,同时也提高了工作的效率,逐步的把这些功能累加起来,就能很好的完成我们的目标了。
8 参考文献
    [1] 吴运昌. 模拟电子线路基础[M]. 广州:华南理工大学出版社,2004.
    [2] 李建忠. 单片机原理及应用[M]. 西安:西安电子科技大学,2002.
    [3] 贾立新. 电子设计与实践[M]. 北京:清华大学出版社,2007.
    [4] 童诗白. 模拟电子技术基础[M]. 北京:高等教育出版社,2003.

    [5] 胡寿松. 自动控制原理[M]. 北京:科学出版社,2007.

    最后附上上位机和下位机的源码供大家交流学习:

    下位机:LED Matrix.zip   上位机:LED Monitor.zip

全部回复(12)
正序查看
倒序查看
2015-11-30 18:36
很好
0
回复
2015-11-30 18:41
@x1995418
很好
谢谢,看了你的万年历才是自愧不如啊,不过好奇为啥两层PCB叠在一起呢?
0
回复
2015-11-30 20:45
@QDU_Webench
谢谢,看了你的万年历才是自愧不如啊,不过好奇为啥两层PCB叠在一起呢?
那个纯属放在下面是为了防止在拿万年历的时候短路,有没有都可以
0
回复
2015-12-01 09:12
鼓励鼓励  直接盖章+高亮了
0
回复
2015-12-01 09:42
@QDU_Webench
谢谢,看了你的万年历才是自愧不如啊,不过好奇为啥两层PCB叠在一起呢?
哇哦,写的好全面啊,赞~
0
回复
2015-12-01 09:42
@x1995418
那个纯属放在下面是为了防止在拿万年历的时候短路,有没有都可以
想的很周到啊
0
回复
2015-12-01 09:47
@电源网-天边
鼓励鼓励 直接盖章+高亮了
谢谢~
0
回复
2015-12-01 19:52
这个还是第一次看到不错,学习一下。这个实用。
0
回复
2015-12-02 09:29
@双赢电子
这个还是第一次看到不错,学习一下。这个实用。
同感啊~
0
回复
2015-12-02 10:03
赞一个,图很拉风哦`
0
回复
QDU_Webench
LV.2
12
2015-12-02 12:10
@电源网-娜娜姐
赞一个,图很拉风哦`
谢娜姐支持~
0
回复
积木
LV.1
13
2017-09-13 19:46
@QDU_Webench
谢娜姐支持~
你好,想问一下怎样联系你,毕业设计
0
回复