摘 要:近年来,掌上游戏机一直非常火爆。从较早的gameboy到现在高端的psp,掌上游戏机一直备受人们青睐。现在嵌入式行业发展很快,微控制器的性能也越来越强大,也使得制作一台掌上游戏机难度降低。

基于此本设计基于STM32芯片设计了一款掌上游戏机。主要设计内容包括游戏机的硬件和软件设计。主要的应用模块和电路包括STM32核心电路、12864-14 LCD显示屏、五向开关、三极管、喇叭等。本设计的一个特点就是可以下载程序到STM32芯片中,使用者可以使用该系统自行开发游戏和学习单片机的使用。本设计制作完成,经过多次试验测试,系统正常工作,娱乐性较高。

关键词:STM32;;掌上游戏机;五向开关;ADC;中断;pwm波

1 设计需求和设计方案

本设计主要以STM32F103系列微控制器作为主要控制单元,以LCD显示屏、五向开关和喇叭为主要应用,实现了一款简单的掌上游戏机的功能。五向开关作为信号输入端,通过ADC采样或者按键输入来向系统发送控制信息。STM32接收控制信息并处理,运行游戏核心代码和算法,并控制LCD显示屏显示相应的游侠效果。喇叭通过STM32控制输出音效。下面是本设计的系统结构框图。

随着科技的发展更多的人希望在工作、学习之余通过方便灵巧可随身携带的仪器休闲娱乐。因此,为了迎合众多用户的需求并适应现在电脑的规模,我们开发出一套适合各阶层人士的具有很强的娱乐性和交互性的雷霆战机游戏。雷霆战机,之所以取这样的名字,去用意还是很明显的.雷霆战机其实就是一个英雄的化身,它是人不断向前追求和勇气的象征.就像现代的人只有不断努力向前争取和勇于战胜困难才能得到自己想要的。而敌机也是随机出现的,就像现在社会存在的机会,而我们只有找好自己的目标才能成功。

2 详细设计说明

我们这款游戏机主要通过五向线性开关作为输入设备;STM32作为控制处理单元;喇叭和LCD显示屏作为输出设备。

2.1 五向线性开关

本次设计我们用了两个五向线性开关(如图2-1)

分别在我们雷霆战机小游戏机的左右两边一边一个,右边这个主要的功能主要是启动和发送炮弹的功能,这一个五向线性开关我们只用了一向,就是按下。通过stm32单片机的PB5的中断功能来判断五向线性开关是否按下。雷霆战机小游戏机的左边的五向线性开关控制飞机的前后、左右、几个斜方向还有暂停功能。展厅功能主要是利用中断功能来实现的通过和STM32的PB6引脚相连接,雷霆战机的方向是通过采取两个脚的电压值来获得的,通过STM32的PB0和PB1两个引脚通过ADC采集电压值来获得飞机的运动方向。

由原理图可知,该模块总共有10个引脚,有一对6个引脚是有2个接地,2个结电源,还有两个就是对电压进行采样,而还有四个引脚是两两相连相当于一个普通的按键开关。它具有在内底部上设有中央固定触点、公用触点以及设置于所述中央固定触点的周边上的多个周边固定触点的外壳、分别相对地设置在所述中央固定触点及周边固定触点上的多个金属制的活动触点簧片,所述活动触点簧片经常与所述公用触点接通,所述活动触点簧片通过金属制的连接部而连接成一体并且通过操作杆的操作使至少其中一个活动触点簧片与相对的中央固定触点或周边固定触点接通。

2.2 STM32主控芯片

STM32主控芯片芯片我们主要运用的中断、ADC、PWM波和实现算法。通过PB0和PB1实现ADC采样,PB5和PB6实现中断功能,PB8实现PWM波还有通过PA2、PA3、PA4、PA8、PA9实现和LCD显示屏进行通讯,实现显示效果。

2.3 12864-14 LCD显示屏

12864-14 LCD显示屏因为单片机的引脚的数量不是很多所以我们用的是串行传输方式(如图)所示。

带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8×4行16×16点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

2.4 喇叭

喇叭我们通过单片的PWM波控制,喇叭的主要电路如下

通过一个大功率的三极管作为控制端,而单片机通过发送PWM波去控制三极管。比如“叮咚“产生的是频率的变化,而PWM是脉宽调制,改变的是占空比,对于波形来说改变的是波的形状,而非频率变化。所以在运行过程中需要对PWM多次初始化来改变频率。先利用一个数组把发出声音的数据存储起来,然后在输出得到声音。大家要了解有源和无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。必须用2K~5K的方波去驱动它。有源蜂鸣器往往比无源的贵,就是因为里面多个震荡电路。这就是通过驱动原理来分别的方法。用万用表测电阻区别有缘和无缘喇叭用万用表电阻档Rxl档测试:用黑表笔接蜂鸣器 “+”引脚,红表笔在另一引脚上来回碰触,如果触发出咔、咔声的且电阻只有8Ω(或16Ω)的是无源蜂鸣器;如果能发出持续声音的,且电阻在几百欧以上的雷霆战机,是有源蜂鸣器。同时有源蜂鸣器直接接上额定电源(新的蜂鸣器在标签上都有注明)就可连续发声;而无源蜂鸣器则和电磁扬声器一样,需要接在音频输出电路中才能发声。

3 程序工程说明

3.1 主函数

我们的主函数很简单就是去初始化所有、选择正在游戏、开始游戏、进入游戏。因为我的设计就是尽量的细化分成多个函数,多个文件,一个模块用一个文件来实现

3.2 LCD文件

主要是通过这个文件和显示屏进行交互。

3.3 音乐文件

实现音乐的播放。

3.4 游戏文件

游戏的逻辑算法实现。

4 实现功能图片

雷霆战机下架了吗_雷霆战机老版本下载_雷霆战机

雷霆战机_雷霆战机老版本下载_雷霆战机下架了吗

雷霆战机_雷霆战机老版本下载_雷霆战机下架了吗

调试过程:在测试过程中出现了一些问题,点触的时候点不准确,我觉得可以加上触屏校准,使其精准。还有在让随机的参数障碍物这里让我困扰了很久,但是后面我想的是产生一个随机数来产生障碍物。

实验结果:达到随机障碍物、飞机可以上下左右移动、判断飞机生死的功能,达到了设计的目的。

5 课程设计总结

本学期嵌入式课程在不知不觉中结束了,虽说这次课程时间不是很长,但是感觉自己收获颇丰,不仅学习到了一些新知识,回顾了以前的一些快要遗忘的知识点,而且使自己的学习目标更加明确,学习方法更加完善,也体会到软件开发的趣味,更加清楚地认识到了自己在软件开发及学习上的一些不足之处。在这次的课程中不仅检验了我所学习的知识雷霆战机,也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情。在设计过程中,与同学分工设计,和同学们相互探讨,相互学习,相互监督。学会了合作,学会了运筹帷幄,学会了宽容,学会了理解,也学会了做人与处世。

课程是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程。“千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义。也感谢老师和同学们的帮助。我今天认真的进行作业设计,学会脚踏实地迈开这一步,就是为以后打下坚实的基础。一个项目的成败取决于团队合作,干一个项工程需要相互的密切配合,只有一起克服眼前的一切困难,形成合力,才会有强大的战斗力,才能在学习中中取得一个又一个的胜利!通过这次的学习让我们对stm32的认识更加的深刻了。不过我发觉我还只是学到的它的冰山一角,所以我们应该要更加的努力,走上一个又一个高峰。


娜娜项目网每日更新创业和副业教程

网址:nanaxm.cn 点击前往娜娜项目网

站 长 微 信: nanadh666

声明: 本站内容转载于网络,版权归原作者所有,仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任,若侵犯到你的版权利益,请联系我们,会尽快删除处理!