- 1、本文档共15页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
乒乓球弹壁模拟实验报告
上 海 电 力 学 院
嵌入式系统课程设计报告
题 目: 乒乓球的弹壁模拟演示
姓 名:
学 号:
院 系: 电子与信息工程学院
专业年级: 电子信息工程 2010级
同组成员:
2013 年 7 月 10 日
一、实验目的
ARM9硬件平台程序设计要求通过对ARM硬件体系结构和S3C2410实验箱硬件模块的理解,能够自行创建、设置工程和编写程序代码、编译、调试运行来实现某种简单的应用,如计算器、电子闹钟等。加强对C语言和ARM汇编指令的编程锻炼以及ARM硬件接口功能的理解。
二、实验环境
硬件:PC机,ARM仿真器,S32410实验箱
软件:Keil uVision
实验内容
设计题目:乒乓球的弹壁模拟演示
设计要求:
在LCD 屏幕上模拟给乒乓球一初始速度,假设该环境无能量损耗,让乒乓球在该环境下进行弹壁运动。
基本要求
(1)该环境设有上下左右四面墙,让乒乓球在该环境下自由运动,碰到墙壁则反弹,否则按照匀速方式运动。
(2)在教学实验箱的LCD 上绘制四面墙和一个乒乓球,按下开始键则给乒乓球一初始速度,指定一个方向开始运动;按下停止键则停止乒乓球的运动;按下暂停键则暂停乒乓球的运动,再按该键则继续运动。
2. 扩展内容
(1)假设该环境有重力,让乒乓球模拟在有重力的环境下运动。
(2)用键盘按键可设定乒乓球的运动速度,也可利用按键在乒乓球运动的过程中给它提速。
统计乒乓球碰撞的次数,并将其在LCD 上显示出来。
四、设计思路
1、本次实验所需用到的硬件模块:①LCD(用来显示乒乓球撞壁过程);②键盘(用来控制乒乓球的运动和速度);③LED(用来显示乒乓球的碰撞次数)。
2、因为本次实验要使LCD显示,并通过键盘产生中断控制乒乓球的运动状态和速度,所以本次实验主要同到的.c 文件主要是keyboard.c,lcd.c,led.c和main.c,主要在这几个文件上进行编程。本次实验的关键是如何在LCD中显示乒乓球,乒乓球在碰到壁后如何实现计数加一,如何用键盘产生中断控制乒乓球的状态及速度。
五、软件实现
通过下面的流程图简单介绍本实验的主题软件及功能:
模块功能描述:
1.主程序,显示主界面的模块
int main()
{
sys_init();
lcd_init_app();
uart_printf(\n LCD display Test Example (please look at LCD screen)\n);
lcd_clr_rect(0,0,800,480,BLACK);
//倒计时3秒进入乒乓球弹壁系统的显示界面
Lcd_DspHz24(280,200,GREEN,欢迎进入乒乓球弹壁模拟演示);
lcd_clr_rect(0,0,800,480,BLACK);
Lcd_DspAscII8x16(400,200,WHITE,3);
lcd_clr_rect(300,150,600,480,BLACK);
Lcd_DspAscII8x16(400,200,WHITE,2);
lcd_clr_rect(300,150,600,480,BLACK);
Lcd_DspAscII8x16(400,200,WHITE,1);
lcd_clr_rect(300,150,600,480,BLACK);
//调用数码管显示程序 ,在数码管上显示我的学号
led8_test();
delay(20000); //延迟两秒数码管显示零准备计数
iic_write_8led(0x70, 0x17, f_szDigital[0]);
iic_write_8led(0x70, 0x16, f_szDigital[0]);
iic_write_8led(0x70, 0x15, f_szDigital[0]);
iic_write_8led(0x70, 0x14, f_szDigital[0]);
iic_write_8led(0x70, 0x13, f_szDigital[0]);
iic_write_8led(0x70, 0x12, f_szDigital[0]);
iic_write_8led(0x70, 0x11, f_szDigital[0]);
iic_write_8led(0x70, 0x10, f_szDigital[0]);
//
文档评论(0)