免费预览已结束,剩余9页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微控制器应用及系统设计课程设计报告姓 名 学 号 0910200203学院(系) 自动化学院专 业 自动化 标 题 基于msp430单片机的猜数拆弹游戏 南京理工大学2012 年 4 月目 次1引言1 2 系统总体设计2 2.1 系统组成结构及工作原理2 2.2 系统工作流程3 2.3 系统核心器件选型4 3 系统硬件设计5 3.1 电源模块设计5 3.2 led显示模块设计6 3.3 key模块设计7 4 系统软件设计8 4.1 系统软件总体结构及总流程图8 4.2 led显示模块程序设计9 4.3 key模块程序设计10 4.4 温度数据采集模块程序设计11 5 系统调试与结果分析12 5.1系统调试步骤12 5.2 遇到的问题及解决方案13 5.3 实验结果14 6 结论与心得体会15 参考文献16附录17摘要:本文设计并实现了一款基于msp430单片机的通过猜数进行拆弹的游戏。主要讨论了包括lcd、键盘、时钟模块在内的硬件电路的设计和软件编程方案,并在调试通过后将程序下载到开发板上检验其功能的实现。最终的结果表明,本设计运行稳定,人机界面友好,可较好的实现该款游戏的功能。关键字:msp430单片机,猜数游戏,键盘,lcd1 引言随着经济的发展,社会生活节奏进一步加快,越来越多的人希望通过一些轻松的游戏来减轻工作生活的压力,因此游戏在人们休闲娱乐中的地位日益提高。本设计正是基于这一点,利用msp430开发板的资源,实现了一款简单轻松的猜数拆弹游戏。本设计采用的msp430系列单片机是美国ti 公司推出的一种16位超低功耗、具有精简指令集的混合信号处理器。该处理器具有处理能力强、运算速度快、超低功耗、片内资源丰富等优点,具有良好的性价比,并且由于采用了串行在线编程方式,为用户编程和控制参数提供灵活的空间。msp430f449 具有强大的中断功能及输出、功能选择、中断等多个寄存器,使得功能口和通用i/o口复用。2 系统总体设计2.1系统功能介绍及总体工作流程该款游戏设定了如下背景:一个定时炸弹即将于两分钟之后爆炸,需要游戏参与者通过猜取系统预先设定的099之间的一个数进行拆弹。两分钟倒计时开始后游戏者可以通过键盘输入数字(以“#”键结束),系统将会通过lcd显示界面提示所猜的数是否正确,如果正确的话会停止倒计时,拆弹成功;如果错误会提示是偏大还是偏小,以缩小范围增大猜对的概率,但与此同时作为猜错的惩罚会将倒计时的时间自动减去10秒。两分钟内若游戏者猜出正确的数即游戏胜利,危险成功解除,如果未能猜出正确的数则游戏失败,炸弹爆炸,游戏结束后可按“*”键重新开始。 大致工作流程图如下: 2.2 系统组成结构及工作原理本次设计的主要硬件电路可分为以下几个模块:键盘输入模块、点阵lcd显示模块、led数码管显示模块,msp430f449作为主控制器实现各个模块的连接。系统硬件连接图及端口配置如下: msp430f449p1.4-p1.7 键盘模块p1.1-p1.3 led数码管p3.0-p3.7 p4.0-p4.1 lcd显示p3.0-p3.7p2.0-p2.3p2.6-p2.7 由上图可分析系统的工作过程:通过键盘接收外部的按键信息,单片机经按键处理程序判断键值后对lcd和led分别做出相应的处理。led数码管与单片机相连的p3.03.7端口为数据线,p4.0和p4.1是用来控制输入段码数据和位选数据,六个数码管共分两部分使用,其中四个负责显示倒计时的时间,剩下的两个显示操作者所猜的数字。点阵lcd负责切换显示各个界面,与单片机相连的p3.0-p3.7端口为数据线,p2.0-p2.3和p2.6-p2.7为控制端口。2.3 系统核心器件选型经以上分析可知系统对微处理器的要求如下:l 含3*4行列式键盘模块l 含led显示模块l 含lcd显示模块 本系统对单片机的要求较为简单,因此可直接使用实验室配置的msp430f449开发板。开发板结构如下图所示: 3 系统硬件设计3.1 键盘电路 开发板上自带的键盘接口采用复用模式,是将3*4行列式按键、独立按键以及比较器欠压检测电路集成共用一个端口,具体电路原理图如下:由原理图可知,键盘电路功能的选通与否是通过拨动开关p_key 开关来实现的,本次设计使用的是3*4行列式键盘,实验时需将开关打在正确的位置。作行列式键盘使用时,p1.1-p1.3 为行线、p1.4-p1.7 为列线,列线分别由上拉电阻上拉到vcc,在行线与列线的每一个交界处有个按键,按键的a、b 端分别接在行线和列线上,实验时通过判断是否有键按下及键值实现相应的操作。(具体的按键处理过程将在软件设计部分给出详细介绍)3.2 lcd显示电路 点阵lcd显示器一般由控制器、驱动器和全点阵液晶显示屏组成,驱动器主要负责将显示存储器中的内容显示到液晶屏上,控制器用来控制液晶显示器工作并与开发者进行数据和命令交互。本设计使用的点阵式lcd为64*128分辨率的液晶屏zjm12864bsbd,驱动方式为1/64 占空比,易与8 位的mpu 相连,多功能指令,可加电自动复位。与单片机的连接为:8个数据信号端口p3.0-p3.7,6个控制端口p2.0-p2.3、p2.6-p2.7。 3.3 led显示电路 led数码管电路负责显示时间和输入的数字,共计使用了6个数码管,从左至右分别为d5-d0。端口p3.0p3.7 既为led 的显示段码输出,又为led 的位选输出,因此电路中采用了两片三态锁存器芯片,通过这两片芯片来分别控制段码的输入以及位选信号的输入,通过f449 的p4.1、p4.2口控制74hc373 的le 端来选择来实现输出的有效数据,其工作方式为:u 当p4.1为高电平时,p3.0p3.7 为led 的显示段码输出,依次对应led 的a、f、b、g、c、h、d、e。u 当p4.0为低电平时,p3.0p3.7 为led 的位选输出,依次对应d0-d5。 显示时使用timer_a定时器产生3ms的中断,以循环动态刷新各数码管,利用人眼的“视觉停留”效应实现动态显示。 4 系统软件设计4.1 软件总体设计及总流程图软件部分主要由各硬件模块的子程序和主程序构成。子程序部分包括:键盘处理子程序、lcd显示子程序、倒计时子程序、led显示子程序,led显示模块中还包括了timer_a中断。主程序主要负责对输入值的判断及转至相应的处理。系统总流程图如下:4.2 键盘处理程序键盘处理模块定义的子函数为:u void delay(void); /延时,用于消颤u void init_keyboard(void);/键盘初始化u void val_key(void); /判断键值u void check_key(void);/判断是否有键按下键盘处理模块的流程图为: 在行列式键盘上实现键盘功能主要分为以下几个步骤:u 判断有无按键被按下本设计主要通过检测行线输出的下降沿判断是否有按键按被按下。在按键判断程序中主要需要考虑两个问题,即去抖动和按键冲突问题。针对机械键盘普遍存在的按键抖动问题,采用软件延时的方法予以克服,即当检测到下降沿后延时一段时间再进行后续处理;对于多个按键冲突问题,可加入检测上升沿的操作,判断当前按键是否已被松开,从而使得当有多个键一起按下时,仅识别第一个键。u 按键识别,得到键值当判断有键按下后,采用行扫描法确定按键所在的行列。具体步骤为:依次扫描各行,即将某一行置低,其余两行置高,检测列线的输出,此时若列线p1.4-p1.7中某一位输出为低,则按下的键即处于该行该列。确定完按键所在的行列后,通过映射数组key_map12 = 1,2,3,10,4,5, 6,0,7,8,9,11 最终得到该按键的键值。4.3 lcd显示程序lcd显示模块定义的子函数如下:u void write_command(char cmd);/用于写命令到lcdu void move_to(char x,char y);/设置显示的位置,片选在函数外部设置u void write_data(char content);/write datau void clear_rect(unsigned char x,unsigned char y,unsigned char h,unsigned char w);/清除chip1或者chip2上的某一区域u void init_lcd(void);/初始化lcdu void drawstr(unsigned char x,unsigned char y);/在指定的位置显示字符串u void display_lcd(unsigned char t);/设置6种lcd显示界面点阵lcd各端口所对应的控制功能为:p2.0-rs、p2.1-r/w、p2.2-en、p2.3-s1、p2.6-cs2、p2.7-rst,其控制和显示指令如下表:12864的点阵lcd可分成两大块,每块为6464,44 led数码管显示程序 led模块定义的子函数如下:u void led_display(unsigned char i);/数码管显示u interrupttimera0_vector void timer_a (void)/3mstimer_a中断处理程序,实现动态刷新led显示模块通过两片74hc373锁存器复用p3.0-p3.7端口,分别控制led 的显示段码与位选。控制端口为p4.0和p4.1,当p4.1为高时,p3.0p3.7 分别输出对应数码管的段码;当p4.0为高时,p3.0p3.7 分别输出相应的位选信号。led的工作过程为:1)置p4.1为高,输出要显示数字的段码,置p4.1为低,锁存段码信息;2)置p4.0为高,输出要显示数字的位选,置p4.0为低,锁存位选信息;即:p3out=i; / 输出段码数据 p4out=0x02; / 置p4.1为高 p4out&=0x02; / 置p4.1为低 p3out=led_disp_bit; / 输出位选信号 p4out=0x01; / 置p4.0为高 p4out&=0x01; / 置p4.0为低数码管的动显是通过timer_a定时中断来实现的。在timer_a中断服务程序中实现显示功能,每处理一次中断就会显示一位信息,将中断的间隔取为3ms,即实现了3ms的动态循环刷新。tactl=tassel0+taclr; /timer_a 3ms中断cctl0=ccie; ccr0=90; /90/32.768k=3ms中断tactl|=mc0;45 时钟处理程序5 系统调试与结果分析 各模块的软件都编写完成后即可下载到硬件平台进行功能的验证。本次设计使用的是开发环境是iar公司的embedded workbench。 它是一个适应不同cpu的目标系统开发集成环境,提供了方便、丰富的窗口界面,使开发效率大大提高。在计算机上编译好后就可以通过jtag接口先下载程序到flash内,再在器件内通过软件控制程序运行,由jtag接口读取片内信息观察程序运行情况,可方便调试和修改程序。51 系统调试步骤u 在iar上编写程序,直至编译通过。u 点击debugger 将程序程序下载到开发板上。u 下载成功后进行调试,在程序运行过程中可以设置断点、观察变量、单步运行等手段协助调试的进行。 52 调试中的问题及解决方法 问题1:lcd显示的字发生了左右颠倒的现象;开始时我们怀疑是将x、y地址弄反了,仔细检查后发现不是这个原因,而是我们在使用字符生成软件生成字模时,忘记设置取模走向和方式,最终将取模走向和方式分别设置为逆向、逐列式后即可正常显示了。 问题2:键盘接收键值时发生错乱,按下一个键值后可以被led显示的十位和个位同时接收。比如想输入48时,先按下数字“4”,则led显示输入的数为“44”,第二次按下的个位的“8”无法显示。出现这个错误后我们首先想到的是主程序中键值接收的语句出现了问题,可是对照流程图仔细检查了主程序的每一行语句,最终还是没能找到问题。后来老师提示我们可能是键盘的去抖处理没有做好,于是我们检查了键盘处理模块,终于发现是我们在加入防止按键冲突的上升沿检测部分后没有对其进行延时去抖处理,当在这部分加入延时后上述问题立即被解决了。 问题3:当输入的数错误后,倒计时模块就会执行减时10s的处理,在进行减时处理后发现led显示出现一次明显的抖动,大约过了4、5s之后又出现了一次明显的抖动。53 实验结果6 结论与心得体会本次课程实验完成了一款猜数小游戏设计,键盘接收操作者输入的数字后,由单片机进行判断处理,并通过led、lcd显示出来,此外还使用到了基本定时器和timer_a的中断功能。游戏虽然简单,但充分利用了开发板的各个硬件模块,能够启发我们将课程所学应用到实际的设计中,真正做到对知识的活学活用。本次设计我们一共花费了一周的时间,刚开始时我们并没有急于编写程序,而是三个人一起讨论画出了整个设计的硬件连接和总体流程图,然后进行了分工,每人负责一个子模块的设计。充分的前期准备工作使我们的工作事半功倍,仅用了三天就编写完成了全部的程序。刚开始调试时,几乎是每个模块都出现了问题,于是我们各自分工检查自己所完成的模块,由于大家对自己的模块都非常熟悉,大部分问题很快被解决了,最后一个键盘接收问题困扰了我们整整两天,这期间我们三个人将整个程序从头到尾读
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 粉扑收纳架市场发展前景分析及供需格局研究预测报告
- 口琴产业链招商引资的调研报告
- 天然气输送结构的建造行业相关项目经营管理报告
- 剪贴集产品供应链分析
- 大学或学院教育行业市场调研分析报告
- 宝石分级行业营销策略方案
- 厕所除臭剂产品供应链分析
- 石油专用泥浆泵项目运营指导方案
- 缝纫用剪刀项目运营指导方案
- 电动轨道照明设备项目运营指导方案
- 文化馆建筑设计任务书
- 中国传统文化与传统管理哲学课件
- 钢管桁架结构制作与安装施工技术
- 项目施工阶段资金管理与控制
- 铝合金门窗塞缝质量验收表
- (中职)数控编程与操作教程全册电子教案
- 南京邮电大学成绩单绩点说明
- 初中 初一 语文 写作《学会记事》(第一课时) 微课课件
- 体育教师招聘技能评分标准(体育)
- 网络舆情监测与研判全书电子教案正本书课件全套ppt最全教学教程电子讲义
- 广东开放大学大学英语(B)(本2022春)-Unit 2 Internet 单元练习题答案
评论
0/150
提交评论