1、LED 打地鼠游戏设计一目的:深入了解和研究 LED 小灯的各种特性,并利用其特性制作简单娱乐游戏。功能用途:展示 LED 小灯除作为普通光源外还可以作为一个较为灵敏的外部光强检测输入设备,并可作为简易打地鼠游戏机使用。二摘要:LED 本身也是一个二极管,也有单向导电性,存在结电容,其内阻容易受光线影响,利用其光敏特性可制作感光开光控制打地鼠。关键词:LED 结电 容 充放电 光强三引言我们大家对 LED 都很熟悉,但是一般都只知道 LED 作为光源使用,其实 LED 本身还有其他的性 质,由于 LED 本身也是一个二极管,也有单向导电性,存在结电容,其内阻容易受光线影响,具有光敏特性。利用
2、LED 此项性质可以作为光线传感器,探测环境的光线强度等。四系统原理:当发光二极管加反向电压时,管子中实际上有十分微弱的反向电流,反向电流的大小随光照的变化而变化,光照越强,反向电流越大;光照越弱,反向电流越小。等效电路如图1 所示。这是一个电流源与一个电容器并联的结构。电流源实际上就是光电流。反向电压去掉后,由于光电流的存在,电容放电。外界光照强度变化会使放电时间改变。图 1现在我们按照这样的方式操作:a)对二极管加正向电压。正向发光模式。b)对发 光二极管加反向电压,相当于对二极管充电。c)将高压输 出端改为输 入端。引脚即可测量二极管两端电压。通过测定放电时间,可以判断是否有物体遮挡二极
3、管。以此执行相应的动作。这样反复动作,就实现了 LED 的输出和输入。5硬件设计思想:制作 3X3 LED 点阵,设置好合适间隔以排除干扰。为减少 M16 IO 口的使用,把九个小灯一端都接在一起连接一个单刀双掷开关,并用一 IO 口检测其高低电平来自动选择演示模式。另外九个端分别接九个独立 IO 口单独控制和检测。留出 POARTB 五个端口作为控制 LED 显示使用。六硬件原理图:硬件单元使用:1.随便置单刀双掷开关,系统会自动检测何种演示模式。2.若进入跑马灯演示模式,根据 LCD 显示屏提示,反置单刀双掷开关,并按 RESET 键进入游戏模式。3.正放方式下第一行小灯从左到右为 1、2
4、、3 号灯,进入游戏界面,左右菜单分别对应 1、3 号灯,三种不同模式分别对应1、2、3 号灯,选择时遮住对应小灯即可。4.开始游戏时,LCD 显示屏 3X3 表格对应各位置小灯。七软件设计思想检测部分利用单片机 PORT 口的输入功能读取对应PA04567REFGNDCVBSTXLesignatorMKIO9?W-LED 小灯的 电位,利用 LED 小灯在反向充 电完成后,在不同光照下放电到单片机低电位时间的不同,通过软件延时一定的时间,判断小灯是否被遮住来选择运行何种程序。游戏部分通过建立一简单随机数据库来随机显示地鼠位置,通过对应关系映射到单片机的 PORT 口,来检测是否是正确的 LE
5、D 灯(虚 拟地鼠)被打中。八软件原理图游戏部分流程:开始初始化检测 PD7 值低电位否是跑马灯模式LCD 显示反置开关,按 RESET 键检测外部光强赋值 timedlLCD 显示语言选择检测 1、3 号灯 IO 值1 号遮住是否中文主菜单英文主菜单选择模式选择模式中文打地鼠英文打地鼠游戏结束游戏结束软件程序功能:1.跑马灯程序LCD_clear();LCD_write_chinese_string(12,0,12,5,0,0,pao);LCD_write_chinese_string(0,2,12,7,0,0,cz1);LCD_write_chinese_string(0,4,12,7,0
6、,0,cz2);DDRA=0XFF;DDRC=0X01;PORTC=0X01;PORTA=0XFF;for(j=1000;j0;j-)主菜单LCD 显示模式选择 LCD 显示1 号灯遮住3 灯遮住1 灯遮住 2 灯遮住模式二处理模式一处理 模式三处理得分显示得分显示 得分显示游戏结束 游戏结束 游戏结束PORTA=0XFF;delay_nms(10);PORTC=0X00;delay_nms(10);for(i=7;i=0;i-)SET_BIT(PORTC,0);delay_nms(10);CLR_BIT(PORTA,i);delay_nms(10);SET_BIT(PORTA,i);for(
7、i=0;i30)LCD_write_english_string(12,2,8,“perfect!“);else if(count30)LCD_write_english_string(12,2,8,“come on!“);delay_nms(300);goto loop;9系统测试与参数1.红色 LED 一定光照下放 电时间,在中午阳光明媚时或台灯照射下为 1-3ms.2.LED 初期 检测为 人为设置光照,在台灯下设置为3ms,可判断是否为 遮蔽状态。后期为自动检测版,在普通光照下,基本下降到低电位时间加上 200 多 us 能较好检测遮蔽情况,在强光照下还有除影效果。3.LCD 显示测试,显示游戏需要用很大存储空间,当存