乒乓球弹壁模拟实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电力学院嵌入式系统课程设计报告

题目: 乒乓球的弹壁模拟演示

姓名:

学号:

院系:电子与信息工程学院

专业年级:电子信息工程2010级

同组成员:

2013 年7月10日

一、实验目的

ARM9硬件平台程序设计要求通过对ARM硬件体系结构和S3C2410实验箱硬件模块的理解,能够自行创建、设置工程和编写程序代码、编译、调试运行来实现某种简单的应用,如计算器、电子闹钟等。加强对C语言和ARM汇编指令的编程锻炼以及ARM硬件接口功能的理解。

二、实验环境

硬件:PC机,ARM仿真器,S32410实验箱

软件:Keil uVision

三、实验内容

设计题目:乒乓球的弹壁模拟演示

设计要求:

在LCD 屏幕上模拟给乒乓球一初始速度,假设该环境无能量损耗,让乒乓球在该环境下进行弹壁运动。

1.基本要求

(1)该环境设有上下左右四面墙,让乒乓球在该环境下自由运动,碰到墙壁则反弹,否则按照匀速方式运动。

(2)在教学实验箱的LCD 上绘制四面墙和一个乒乓球,按下开始键则给乒乓球一初始速度,指定一个方向开始运动;按下停止键则停止乒乓球的运动;按下暂停键则暂停乒乓球的运动,再按该键则继续运动。

2. 扩展内容

(1)假设该环境有重力,让乒乓球模拟在有重力的环境下运动。

(2)用键盘按键可设定乒乓球的运动速度,也可利用按键在乒乓球运动的过程中给它提速。(3)统计乒乓球碰撞的次数,并将其在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_Test

lcd.c

keyboard.c

main.c

led.c

显示个人信息,主要是画乒乓球和墙壁(画球子函数) 用键盘读入键值实现中断控制乒乓球的运动状态和速度

显示乒乓球弹壁模拟演示界面,主函数,显示主界面 显示个人信息(学

号),计数乒乓球反弹次数

功能

功能

功能

功能

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]);

//进入乒乓球弹壁模拟演示界面

Glib_Rectangle(10,10,790,470,RED);

Glib_Rectangle(11,11,791,471,RED);

Glib_Rectangle(15,15,785,465,BLUE);

Glib_Rectangle(14,14,786,466,BLUE);

Glib_Rectangle(20,20,780,460,GREEN);

Glib_Rectangle(19,19,781,461,GREEN);

Lcd_DspAscII8x16(550,320,GREEN,"20101956");

Lcd_DspAscII8x16(550,350,RED,"2010072");

Lcd_DspHz24(500,150,GREEN,"乒乓球弹壁模拟演示");

Lcd_DspHz24(525,200,BLUE,"电子信息工程");

Lcd_DspHz24(550,280,SH,"苏辉");

Glib_Rectangle(40,40,410,410,RED); //画乒乓球弹壁范围框Glib_Rectangle(39,39,411,411,RED);

Glib_Rectangle(38,38,412,412,RED);

Glib_Rectangle(37,37,413,413,RED);

Glib_Rectangle(36,36,414,414,RED);

相关文档
最新文档