ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:3.69MB ,
资源ID:27372487      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27372487.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机综合设计报告.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机综合设计报告.docx

1、单片机综合设计报告单片机实验综合设计报告基于CSIII的迷宫游戏的设计实现学院名称计算机科学与技术学院专业名称计科1101学生XX周杭 黄太春学号20111579 20111559指导教师高小明 彭勇报告成绩辩论成绩二一四年五功能设计:(一)可以实现地图选择功能每当用户开场游戏或重新游戏时都需要先进展游戏地图的选择,地图的选择是通过单片机上的按键C、D、E、F来进展确定,其分别相对应于地图1、地图2、地图3、地图4的选择。按下其中一个按键即表示已选择地图,当所走步数为零时可以随意切换地图,否那么不可再次选择地图。(二)可以实现所走步数计数功能当用户选择地图后即开场游戏,用户通过单片机44的按键

2、进展操作,除了之前用作选择地图的C、D、E、F按键外其它按键只要相对应地可以组成上下左右的关系即可用于控制走向。当用户按下一个有效按键那么系统自动计数,如果按键操作不符合规定系统不进展计数。(三)可以实现显示当前地图功能当用户按下用于选择地图的按键C、D、E、F其中的任何一个键,LED就会在P1_0进展显示,每次仅可以显示当前所选的地图号。(四)可以实现显示当前已走步数功能当用户开场游戏后,当所走位置符合要求,系统就会自动进展计数,并且当前计数值LED就会在P1_2 、P1_3进展动态显示,以方便用户实时了解自己的成绩。(五)可以实现限制最多可以走多少步以完毕游戏功能当用户所走步数大于游戏规定

3、的最大步数值时,系统自动完毕游戏。(六)可以实现游戏胜利、失败时出现提示画面功能当用户完成游戏或未完成游戏时LED点阵屏上会显示相应的画面,微笑即胜利,悲伤即失败。(七)实际推广应用图所示设计开发平台简介:一硬件平台CSIII型单片机实验开发设备是由计算机学院独立设计开发,用于?单片机原理及应用?课程的实验教学。这套设备的设计和开发采用模块化组合设计,可以结合不同类型的单片机模块进展实验开发。针对课程的教学采用了ATMEL公司的AT89S52单片机芯片,同时配合Keil集成开发环境,支持汇编语言和C语言的程序设计。功能特点:* 使用CPU主模块与实验板别离设计的方式,同时可以兼容不同类型的单片

4、机模块,并可根据用户需要独立设计模块。* 采用ISP通信技术,支持在线编程,方便用户开发。* 采用开关电源设计,平安可靠板上最高电压不超过18v,驱动电流最高可达5V/3A,过载自动保护,方便用户其他设备的引入* 所有IO端口全部引出,方便与外部端口连接搭配。* 实验板上的功能器件可直接采用跳线器直接连接,减少过多的飞线连接。* 2个端口模拟显示,可直接模拟端口上下电平状态,方便用户观察。* 8个状态开关,可模拟256种开关状态,利用一个端口直接读取。* 交通灯模拟显示。* 6个数码管显示,方便开发秒表,时钟,计算器,以及显示特殊提示信息等。* 一个4*4矩阵键盘,配合状态模拟LED,可作键盘

5、全扫描和逐行扫描,一个shift键,方便键盘功能开发* 独立脉冲产生模块,可产生脉冲及方波,配合中断和计数器使用。* 普通键盘接口和鼠标接口,方便用户开发通信协议。* 采用串转并的方式进展端口扩展,同时配合汉字点阵模块显示,可作汉字显示和字库开发。* 扩展显示模块。* 具有发声器,配合定时器方便用户开发电子音乐盒。* 具备8k字节程序/数据存储器扩展。* 具有RS232转换电路,完成UART通信实验,可与上位机进展通信设计。* 8通道8位A/D转换模块,可外接信号源,方便数据采集。* 8位D/A转换实验,两路模拟量输出。实验开发板功能框图:实验板布局图:二软件平台Keil C51 已被完全集成

6、到uVision2的集成开发环境中,这个集成开发环境包含:编译器、汇编器、实时操作系统、工程管理器、调试器等。uVision2 IDE可提供灵活的开发环境。uVision2包含一个器件数据库(device database),可以自动设置汇编器、编译器、连接定位和调试器选项,以满足用户选择各种不同型号微控制器的要求。此数据库包含:片上存储器和外围设备的信息、扩展数据指针(extra data pointer)和加速器(math accelerator)的特性。 同时,uVision2还可以为片外存储器产生必要的连接选项,以确定起始地址和使用规模。Keil 集成开发环境的使用如下图:硬件设计及实

7、现:根据CSIII型单片机实验开发设备设计出符合要求且在实验开发板上可实现功能的迷宫小游戏。如下列图所示:由上图可知,硬件用到了LED数码管显示、蜂鸣器、AT89S52、8X8点阵、4X4按键键盘,其中按键键盘相应位置所对应的数值如下列图所示:软件设计及实现1程序流程图如下图:2关键代码延时函数:void delay() int i; for(i=0;i500;i+);键盘扫描函数:int keyboardscanning() unsigned char tmp; int xline,yline; P2=0x0f; tmp=P2&0x0f; if(tmp=0x0f) /无键盘按下的状态 fla

8、g=0; mark=0; P3_6=1; else /有键盘按下的状态 if(tmp=0x07) xline=0; if(tmp=0x0b) xline=1; if(tmp=0x0d) xline=2;if(tmp=0x0e) xline=3; mark=1;P3_6=0; P2=0xf0; tmp=P2&0xf0; if(tmp=0xf0) /无键盘按下的状态 mark=0; flag=0; P3_6=1; else /有键盘按下的状态 if(tmp=0x70) yline=0; if(tmp=0xb0) yline=4; if(tmp=0xd0) yline=8; if(tmp=0xe0)

9、 yline=12; mark=1; P3_6=0; return xline+yline;获胜点阵屏显示函数:void WinScreenOut() int i; for(i=0;i8;i+) datasend(columnchoosei); /点阵屏列选择 datasend(winscreeni); /点阵屏列显示 P1_5=1; 失败点阵屏显示函数:void LostScreenOut() int i; for(i=0;i8;i+) datasend(columnchoosei); /点阵屏列选择 datasend(lostscreeni); /点阵屏列显示 P1_5=1; 迷宫地图显示

10、函数:void MapScreenOut() int i; for(i=0;iy-1&0x01)=1) y=y; else y-; step+; flag+; n=0; else if(n=5 & flag=0) /左移判断 if(x=0 | (Bitmapscreenx-1y&0x01)=1) x=x; else x-; step+; flag+; n=0; else if(n=7 & flag=0) /右移判断 if(x=7 | (Bitmapscreenx+1y&0x01)=1) x=x; else x+; step+; flag+; n=0; else if(n=10 & flag=0

11、) /上移判断 if(y=7 | (Bitmapscreenx(y+1)&0x01)=1) y=y; else y+; step+; flag+; n=0; 主函数:void main() int bt=0; time(); TR0=1; /中断开关 while(1) if(mark=1) if(n=15&step=0) p=4; for(q=0;q8;q+) Bitmapscreenq=Bitmapscreen1q; else if(n=14&step=0) p=3; for(q=0;q8;q+) Bitmapscreenq=Bitmapscreen2q; else if(n=13&step

12、=0) p=2; for(q=0;q8;q+) Bitmapscreenq=Bitmapscreen3q; else if(n=12&step=0) p=1; for(q=0;q8;q+) Bitmapscreenq=Bitmapscreen4q; bt+; printstep(step,p); if(x=7 & y=0 & step5) /失败点阵屏显示画面 LostScreenOut(); else if(bt=250) bt=0; MapScreenOut(); /迷宫地图函数调用 实现效果测试:1测试用例表:测试号测试内容测试例图是否实现1代码写入后系统运行正常1是2地图1选择后显示正常2是3地图2选择后显示正常3是4地图3选择后显示正常4是5地图4选择后显示正常5是6地图号显示正常2,3,4,5是7正确载入地图后红点可正常移动6是8红点移动步数显示正常6是9获胜后正确显示win图7是10失败后正确显示lost图8是2硬件运行图:图1图2图3图4图5图6设计总结:通过此次训练收获很多,尤其是编程能力有很大提高,同时与同学交流能力也得到了锻炼,根本掌握了数码管,键盘扫描,蜂鸣器,定时器等的编程。实际操作过程中也遇到了很多问题,编程中也出现很多问题,但通过翻书与同学交流,也都逐渐解决了,这次迷宫游戏做的也不够好,不能实现动态限时功能,单片机的原理和编程能力都还有待提高。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1