基于ARM7的贪食蛇游戏设计.doc

上传人:h**** 文档编号:137990 上传时间:2018-07-10 格式:DOC 页数:17 大小:434KB
下载 相关 举报
基于ARM7的贪食蛇游戏设计.doc_第1页
第1页 / 共17页
基于ARM7的贪食蛇游戏设计.doc_第2页
第2页 / 共17页
基于ARM7的贪食蛇游戏设计.doc_第3页
第3页 / 共17页
基于ARM7的贪食蛇游戏设计.doc_第4页
第4页 / 共17页
基于ARM7的贪食蛇游戏设计.doc_第5页
第5页 / 共17页
点击查看更多>>
资源描述

1、基于 ARM7的贪食蛇游戏设计 一、 实验目的: ( 1) 掌握 LCD 屏和键盘的使用以及电路设计方法; ( 2) 熟练掌握 S3C44BOX 处理器的 LCD 控制器和键盘控制器的使用; ( 3) 掌握 LCD 显示程序的编写以及将 LCD 和 LED 以及键盘结合的使用; 二、 设备需求: 硬件 : Embest S3CEV40 实验平台, Embest ARM 标准 /增强型仿真器套件, PC 机。 软件: Embest IDE 集成环境, Windows XP 操作系统。 三、 实验要求: 在 LCD 屏幕上模拟贪吃蛇游戏。 1. 基本要求 ( 1)起初贪吃蛇蛇身为 1 节,贪吃蛇按

2、照原来 的方向行进直到通过按键改变贪吃蛇的行进方向。 ( 2)在教学实验箱上的 LCD 上绘制贪吃蛇,在他们的四周绘制四面墙,蛇身在行进的过程中不能碰到墙壁,碰到则游戏结束,提示是否重新开始,按确认键重新开始。若能保持不碰墙超过 1 分钟则完成游戏,提示游戏是否重新开始,按确认键则重新开始。 2. 扩展内容 ( 1)实现贪吃蛇吃食物,食物跟 1 节蛇身一样大小,其位置随机产生。在行进的过程中遇到产生的食物会将食物吃掉,蛇身便长一节继续行进。当蛇身长到 6 节便提示游戏完成,屏幕显示祝贺,同时整个过程中 8 段数码管会显示蛇身的长度。 ( 2)可用键盘按键选择游戏难度,难度通过设定蛇身的行进速度

3、和游戏完成时蛇身的长度确定。 四、 设计思路: ( 1)本次实验所需用到的硬件模块: LCD(用来显示蛇的移动以及吃食物、撞墙等过程);键盘(用来控制贪吃蛇的上下左右移动以及游戏中的难度,蛇游动的快慢和蛇身体长度的设定); LED 七段数码管(用于显示现阶段蛇身体的节数,初始为两节)。 ( 2)因为本次实验要使 LCD 显示,并通过键盘产生中断控制贪吃蛇的运动状态和速度,所以本次实验主要同到的 .c 文件主要是 keyboard.c、 lcd.c、 8led.c和 main.c,主要在这几个文件上进行编程,同时考虑到要显示汉字等,因此也用到了 AscII6x8.c、 AscII8x16.c 等

4、文件。本次实验的关键是如何在 LCD 中显示蛇并且需要实现蛇的移动,以及蛇吃到食物之后如何实现蛇身增长一段以及如何用键盘产生中断控制蛇的移动方向、速度以及蛇身节数的上限值。 五、 实验原理: 1、 4 4行列式矩阵键盘 控制实验的原理 4 4键盘按下图排列,水平 4 线分别接地址 A1、 A2、 A3、 A4,竖直 4 线分别接数据线 D0、 D1、 D2、 D3。当有键按下时,有一条行线与一条列线接通,只要根据接通的情况就能判 断是那一个键被按下。 图 9 4 4 行列式矩阵键盘 该键盘是采用中断扫描的方式进行工作,列线选用了 4个数据线,行线选用了 4 个地址线。列线接上拉电阻保持高电平,

5、并通过与门 74HC08 将输出信号与MCU 的中断 EXINT1 连接;行线接下拉电阻保持低电平。当有键盘按下时,该列线被拉为低电平,使得 EXINT1 输入也为低电平, MCU 产生中断。中断产生后通过对键盘的行和列进行扫描的方法可以计算出是哪个键按下,并跳到相应的键盘处理程序中去。芯片 74HC541 是通过片选信号 nGCS3 来选通的,这样可以保证在键盘不使用的情 况下 MCU 读不到行线的输入信息。 74HC17 是缓冲器 (恒等门 ),起隔离作用。如果没有 74HC17,则当有键按下时,上拉电阻与下拉电阻将直接相连。选通 nGCS3 的地址为 0x060000000x07FFFF

6、FF。其接口电路如图 10所示: 图 10 键盘接口电路 2)键值判断表 : 键值 A4 A3 A2 A1 A0 地址 D3 D2 D1 D0 数据 3 1 1 1 0 1 0xFD 1 1 1 0 0xE 2 1 1 1 0 1 0xFD 1 1 0 1 0xD 1 1 1 1 0 1 0xFD 1 0 1 1 0xB 0 1 1 1 0 1 0xFD 0 1 1 1 0x7 7 1 1 0 1 1 0xFB 1 1 1 0 0xE 6 1 1 0 1 1 0xFB 1 1 0 1 0xD 5 1 1 0 1 1 0xFB 1 0 1 1 0xB 4 1 1 0 1 1 0xFB 0 1 1

7、 1 0x7 B 1 0 1 1 1 0xF7 1 1 1 0 0xE A 1 0 1 1 1 0xF7 1 1 0 1 0xD 9 1 0 1 1 1 0xF7 1 0 1 1 0xB 8 1 0 1 1 1 0xF7 0 1 1 1 0x7 F 0 1 1 1 1 0xEF 1 1 1 0 0xE E 0 1 1 1 1 0xEF 1 1 0 1 0xD D 0 1 1 1 1 0xEF 1 0 1 1 0xB C 0 1 1 1 1 0xEF 0 1 1 1 0x7 2、 LCD显示的 实验 原理 一 LCD屏的原理: 液晶显示器 (Liquid Crystal Display, 简写

8、LCD ) 将液晶置于两片导电玻璃之间,靠两个电极间电场的驱动,引起液晶分子扭曲向列的电场效应,以控制光源透射或遮蔽功能,在电源关开之间产生明暗而将影像显示出来。加上彩色滤光片,则可显示彩色影像。 S3CEV40 的液晶屏 型号 LRH9J515XA 点宽 0.24mm/dot 像素 320240 重量 45g 电压 21.5V 色彩 16 级灰度 外型尺 98.375.15mm3 附加 带驱动逻辑 寸 画面尺寸 9.6cm(3.8inch) 驱动和显示 : 液晶显示屏的显示要求设计专门的驱动与显示控制电路。驱动电路包括提供液晶显示屏的驱动电源、液晶分子偏置电压及液晶显示屏的驱动逻辑。显示控制

9、部分可由专门的硬件电路组成,也可以采用集成电路()模块,例如公司的视频驱动器等;还可以使用处理外围控制模块。实验板的驱动与显示系统包括片内外设控制器、液晶显示屏的驱动逻辑以及外围驱动电路。 S3C44B0X LCD 控制器 S3C44B0X 处理 器集成了 LCD 控制器,支持 4bit 单扫描、 4bit 双扫描和 8bit单扫描工作方式。支持屏幕水平和垂直滚动显示。数据传送采用 DMA 方式,以达到最小延迟。根据实际硬件水平和垂直像素点数、传送数据位数、时间线和帧速率方式等进行编程以支持多种类型的液晶屏。可以支持的液晶屏有:单色液晶、4级或 16 级灰度屏、 256 色彩色液晶 (STN)

10、。 LCD 控制器主要提供液晶屏显示数据的传送、时钟和各种信号的产生与控制功能。 S3C44BOX 的处理器的 LCD 控制器主要部分框图如图: 1) LCD 控制器接口: S3C44BOX LCD 控制器接口如表所列: VFRAME 在 LCD 控制器和 LCD 驱动器间的帧同步信号。 VLINE 在 LCD 控制器和 LCD 驱动器间的行同步脉冲信号。 VCLK 在 LCD 控制器和 LCD 驱动器间的像素时钟信号。数据在 VCLK 的上升沿从 LCD 控制器送出,在 VCLK 的下降沿被 LCD 驱动器取样。 VM 给 LCD 驱动器的 AC 信号,用于改变行和列电压的极性以控制对像素的

11、开或关。 VD3:0 4bit LCD 数据信号。 VD7:4 4bit LCD 数 据信号。 2) LCD 控制信号时序: 32 存储器控制 DMA 传送控制 信号产生电路 数据控制 系统总线 VCLK 32 32 VLINE VFRAME VM VD7:4 VD3:0 LCD 控制器框图 3) 扫描模式支持: 支持 3种类型的 LCD 驱动器: 4位双扫描; 4 位单扫描和 8位单扫描模式。 DISMOD 00 01 10 11 模式 4位双扫描 4 位单扫描 8位单扫描 无 本文用到的是 4 位单扫描模式。 4 位单扫描 显示控制器从左上角位置进行数据显示。显示数据从 VD3:0获得。

12、4) 数据的存放与显示 液晶控制器传送的数据表示了一个像素的属性: 4级灰度屏使用 2个数据位。16级灰度屏使用 4 个数据位。 RGB 彩色液晶屏使用 8 个数据位。显示缓存中存放WDLY VFRAME VM VLINE VCLK VD7:0 WLH 注: WLH VLINE 高电平的系统时钟个数( LCDCON111:10设置) WDLY VLINE 后 VCLK 延时系统时钟个数( LCDCON19:8设置) 控制器信号时序(个 LINE) 的数据必须符合硬件及软件设置,即要注意字节对准方式。在 4位单扫描方式下,数据的存放与显示如图: 5) LCD 控制寄存器: S3C44BOX LC

13、D 处理器所包含的可编程控制器存器共有 18 个。如下表所示: 寄存器名 内存地址 读 /写 说明 LCDCON1 0x0000cf21 R/W LCD 控制寄存器 1 工作信号控制寄存器 LCDCON2 0x01413cef R/W LCD 控制寄存器 2 液晶屏水平 /垂直尺 寸控制 LCDCON3 0x00000000 R/W LCD 控制寄存器 3 自测试设定,只用到最低位 LCDSADDR1 0x16180000 R/W 高位贞缓存地址寄存器 1 液晶类型和扫描模式定义 LCDSADDR2 0x01b84b00 R/W 高位贞缓存地址寄存器 2 设定显示缓存器信息 LCDSADDR3

14、 0x00000050 R/W 虚屏地址寄存器 设定虚屏偏址和页面宽度 REDLUT 0x00000000 R/W 红色定义寄存器 定义 8组红色数据查找表 GREENLUT 0x00000000 R/W 绿色定义寄存器 定义 8组绿色数据查找0000 A31: 0 0004 B31: 0 0008 C31: 0 A31 A30 A1 A0 B31 B30 B1 B0 C31 C30 C1 C0.4 位单扫描数据显示 表 BLUELUT 0x0000fa40 R/W 蓝色定义寄存器 定义 8组蓝色数据查找表 DP1_2 0x00005a5a R/W 1/2 抖动设定 推荐使用 0xA5A5 D

15、P4_7 0x0366cd9b R/W 4/7 抖动设定 推荐使用 0xBA5DA65 DP3_5 0x000da5a7 R/W 3/5 抖动设定 推荐使用 0xA5A5F DP2_3 0x00000ad7 R/W 2/3 抖动设定 推荐使用 0xD6B DP5_7 0x0feda5b7 R/W 5/7 抖动设定 推荐使用 0xEB7B5ED DP3_4 0x0000ebd7 R/W 3/4 抖动设定 推荐使用 0x7DBE DP4_5 0x000ebfd7 R/W 4/5 抖动设定 推荐使用 0x7EBDF DP6_7 0x07efdfbf R/W 6/7 抖动设定 推荐使用 0x7FDFB

16、FE DITHMODE 0x0001223a R/W 抖动模式寄存器 推荐使用 0x12210 或0x0 6) LCD 控制器主要参数设定: 正确使用 S3C44BOX LCD 控制器,必须设置控制器所有的 18 个寄存器 。控制器信号 VFRME、 VCLK、 VLINE 和 VM要求配置控制寄存器 LCDCON1/2;液晶显示屏的显示与控制以及数据的存取控制,则要求配置其他相关寄存器。 ( 1) 设置 VM、 VFRAME、 VLINE VM 信号用于通过改变液晶行列电压的极性来控制像素的显示。 VM信号的频率可以通过 LCDCON1 寄存器的 MMODE 位及 LCDCON2 寄存器的

17、MVAL7: 0位来控制。 VM 速率 =VLINE 速率 /( 2*MVAL) VFRAME 和 VLINE 可通过配置 LCDCON寄存器中的 HOZVAL 和 LINEVAL 域来控制,其中, HOZVAL 和 LINEVAL 由液晶屏的尺寸和显示模式决定。 HOZVAL=(水平尺寸 /VD 数据位) 1 当为彩色液晶屏时,则 水平尺寸 =3*水平像素点数 VD 数据位 = 4 ( 4位单 /双扫描模式 ) = 8 (位单扫描模式 ) LINEVAL=垂直尺寸 1 (单扫描模式) 垂直尺寸 (双扫描模式) ( 2) 设置 VCLK VCLK 是 LCD 控制器的时钟信号。 S3C44BO

18、X 处理器在 66MHz 时钟频率时,VCLK 的最高频率为 16.5MHz,这可以支持现在所有液晶屏的类型。 VCLK 信号是由 LCDCON1 寄存器中的 CLKVAL 域决定的。 VCLK 与 CLKVAL 的关系如下表所示: 计算公式如下: VCLK=MCLK/( CLKVAL*2) 式中, CLKVAL 不小于 2。 贞速度 =1/( 1/VCLK) *( HOZVAL+1) +( 1/MCLK) *( WLH +WDLY+LINEBLANK) *(LINEVAL+1) 式中,贞速度的单位为 Hz。 LINEBLANK 为水平扫描信号 LINE 持续时间设置( MCLK 个数)。 VCLK 还可以使用下式计算: VCLK= ( HOZVAL+1 ) /1/ 贞速度 * ( LINEVAL+1 ) (WLH+WDLY+LINEBLANK)/MCLK ( 3) 设置数据贞显示控制 LCDBASEU:设置显示扫描 方式中的开始地址(单扫描方式)或高位缓存地址(双扫描方式)。 CLKVAL 60 MHz/x VCLK 2 60 MHz/4 15.0 MHz 3 60 MHz/6 10.0 MHz 1 023 60 MHz/2 046 29.3kHz

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。