微机原理实训报告书猜数字游戏.docx

上传人:b****5 文档编号:7509308 上传时间:2023-05-11 格式:DOCX 页数:19 大小:60.31KB
下载 相关 举报
微机原理实训报告书猜数字游戏.docx_第1页
第1页 / 共19页
微机原理实训报告书猜数字游戏.docx_第2页
第2页 / 共19页
微机原理实训报告书猜数字游戏.docx_第3页
第3页 / 共19页
微机原理实训报告书猜数字游戏.docx_第4页
第4页 / 共19页
微机原理实训报告书猜数字游戏.docx_第5页
第5页 / 共19页
微机原理实训报告书猜数字游戏.docx_第6页
第6页 / 共19页
微机原理实训报告书猜数字游戏.docx_第7页
第7页 / 共19页
微机原理实训报告书猜数字游戏.docx_第8页
第8页 / 共19页
微机原理实训报告书猜数字游戏.docx_第9页
第9页 / 共19页
微机原理实训报告书猜数字游戏.docx_第10页
第10页 / 共19页
微机原理实训报告书猜数字游戏.docx_第11页
第11页 / 共19页
微机原理实训报告书猜数字游戏.docx_第12页
第12页 / 共19页
微机原理实训报告书猜数字游戏.docx_第13页
第13页 / 共19页
微机原理实训报告书猜数字游戏.docx_第14页
第14页 / 共19页
微机原理实训报告书猜数字游戏.docx_第15页
第15页 / 共19页
微机原理实训报告书猜数字游戏.docx_第16页
第16页 / 共19页
微机原理实训报告书猜数字游戏.docx_第17页
第17页 / 共19页
微机原理实训报告书猜数字游戏.docx_第18页
第18页 / 共19页
微机原理实训报告书猜数字游戏.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

微机原理实训报告书猜数字游戏.docx

《微机原理实训报告书猜数字游戏.docx》由会员分享,可在线阅读,更多相关《微机原理实训报告书猜数字游戏.docx(19页珍藏版)》请在冰点文库上搜索。

微机原理实训报告书猜数字游戏.docx

微机原理实训报告书猜数字游戏

 

猜数字游戏

1任务

设计并制作单片机游戏开发平台,包括单片机控制器,显示设备,片外程序存储器,通过平台开发猜数字游戏,具体任务要求如下:

主要组成部分:

游戏开发平台、猜数字游戏的开发、显示设备。

基本要求

1单片机驱动显示屏轮流显示几副游戏图画。

2驱动片外程序存储器读写游戏画面。

3可以通过按键控制显示不同画面。

发挥部分

1单片机实现猜数字游戏。

2可以显示游戏规则。

3合理配置单片机RAM作为显存,开发猜数字游戏,并将程序储存在片外的ROM中。

4其它

2方案设计与论证

考虑到游戏开发系统具有支持猜数字游戏并驱动液晶显示屏,信息编辑、信息转换,信息显示,多种功能。

我们进行了如下方案分析:

2.1处理器的选择方案

采用单片机实现,用程序流程控制实现本系统的功能要求。

我们知道MSP430系列是一个16位的、具有精简指令集的、超低功耗的混合型单片机,采用了精简指令集(RISC)结构,具有丰富的寻址方式和较高的处理速度,可以保证编制出高效率的源程序,由于引进了Flash型程序存储器和JTAG技术,不仅使开发工具变得简便,而且价格也相对低廉,能够满足系统的要求。

而在我们学习过单片机中对MCS-51系列的单片机较熟悉,可编程、工作可靠、价格经济、能耗少可以满足驱动视频信号的要求。

考虑到本系统需要编写的程序较多,所以采用具有8kb程序存储器的AT89S52单片机。

我们对c语言较为熟练,所以采用c语言编写程序。

2.2输入设备选择方案

采用自己制作的按键(并集成在开发品台上)输入,采用行列扫描式键盘,并设置专用功能键。

优点是可以方便的设置,缺点是如果按键做的太多则需要扩展I/O口。

本功能实现不需要太多按键,故以上可满足要求。

2.3显示设备的选择

考虑到带中文字库的WGM-12864H是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。

由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,完全满足游戏品台的要求且使我们游戏的开发过程更加方便。

3总体设计方案框图

3.1系统的总体结构如下图所示:

 

 

本系统的硬件核心是单片机,关键的技术是程序流程的控制和软件编码、解码技术,。

3.2系统工作原理

游戏开发系统由按键控制程序流程,开发平台控制系统的工作方式,并处理数据,将数据送至显示屏显示。

4系统的电路设计及硬件实现

4.1系统的电路图设计

图4-1

4.2单片机的介绍

AT89S52单片机是系统中的控制核心,它是个低电压,高性能CMOS8位单片机,AT89S52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

其封装及引脚图如图4-3:

主要功能特性:

兼容MCS51指令系统

8k可反复擦写(>1000次)FlashROM

32个双向I/O口

256x8bit内部RAM

3个16位可编程定时/计数器中断

时钟频率0-24MHz

2个串行中断

可编程UART串行通道

2个外部中断源

共6个中断源

2个读写中断口线

3级加密位

低功耗空闲和掉电模式

软件设置睡眠和唤醒功能

图4-3

WGM-12864H是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

0

0

0

1

返回指令:

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

0

0

1

X

光标或整体移位指令

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

1

S/C

R/L

X

X

S/CR/L操作

00光标左移,AC减1

01光标右移,AC加1

10所有显示左移

11所有显示右移

光标显示及光标闪烁指令

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

1

D

C

B

D=1整体显示打开D=0整体显示关闭

C=1光标显示开C=0不显示光标

B=1光标闪烁B=0光标不闪烁

5系统软件的设计(功能的实现)

5.1控制游戏平台的实现

本系统的功能主要是由平台上的按键通过游戏平台,逐步实现各个功能。

软件的设计思路是单片机时刻扫描键盘,如有键按下,进入到解码程序,入到程序散转表,去执行各个功能控制程序。

程序流程图如图5-1:

图5-1

 

6程序代码

#include

#defineuintunsignedint

#defineucharunsignedchar

#defineDATP0

#defineINPUTP1

voidWRI(uchara);

voidWRD(ucharb);

voiddisplay_picture();

voiddisplay_word(ucharrow1,ucharline1,uchar*p,uintfirst,ucharlast);

voiddelay(uintc);

voidclose();

voidkey();//判断键值子程序

bitstart_key();//扫描键盘子程序

voidnumber_key();//扫描键盘子程序

voidE_START(void);

voidE_EXIT(void);

voidbegin(void);

sbitRS=P2^0;

sbitE=P2^1;

sbitE_close=P3^0;

ucharcodebuf[1024]={

0x00,0x00,0x1F,0xFF,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x3F,0xFF,0xFF,0x00,0x00,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,

0x00,0x00,0x7F,0xFF,0xFF,0x80,0x00,0x00,0x07,0x00,0x00,0x60,0x00,0x00,0xF8,0x00,

0x00,0x00,0x7F,0xFF,0xFF,0xC0,0x00,0x03,0x87,0x80,0x00,0x60,0x00,0x00,0x7F,0xC0,

0x00,0x00,0xFF,0xFF,0xFF,0xE0,0x00,0x03,0xCF,0xC0,0x00,0x79,0xC0,0x01,0xFC,0xE0,

0x00,0x00,0xFF,0xFF,0xFF,0xF0,0x00,0x3F,0xFE,0x00,0x00,0x7F,0xC0,0x0F,0xFD,0xE0,

0x00,0x03,0xFF,0xFF,0xFF,0xF0,0x00,0x0F,0x1F,0x00,0x07,0xFB,0xC0,0x0C,0x1F,0xE0,

0x00,0x0F,0xFF,0xFF,0xFF,0xF8,0x00,0x0F,0x3F,0x00,0x0F,0xFE,0xC0,0x0C,0x1F,0x00,

0x00,0x3F,0xFF,0xFF,0xFF,0xF8,0x00,0x1F,0x3F,0xF0,0x0F,0xED,0x80,0x1C,0x7E,0x00,

0x00,0x7F,0xFF,0xFF,0xFF,0xFC,0x00,0x1E,0x3F,0xF8,0x0F,0xFF,0x00,0x1D,0xEE,0x00,

0x00,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x3F,0xFB,0x00,0x03,0xEF,0x80,0x19,0xDC,0x00,

0x01,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x77,0xFF,0x80,0x0F,0xF9,0xE0,0x18,0x78,0x00,

0x03,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x0E,0x1F,0xC0,0x3F,0xF0,0x60,0x00,0x7F,0x00,

0x07,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x1E,0x3F,0xC0,0x3B,0xFF,0xE0,0x00,0xFF,0x80,

0x07,0xFF,0xFF,0xFF,0xFF,0xFE,0x00,0x3E,0x37,0xC0,0x07,0xF3,0xE0,0x03,0xFF,0x80,

0x0F,0xFF,0xF0,0x0F,0xFF,0xFE,0x00,0x3E,0x3F,0xC0,0x1F,0xFB,0xF8,0x07,0xEE,0x00,

0x1F,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x06,0x3F,0xC0,0x1B,0xDF,0x3C,0x07,0x86,0x00,

0x1F,0xFC,0x00,0x00,0x3F,0xFF,0x00,0x06,0x33,0xC0,0x1B,0xD8,0x1C,0x03,0x06,0x00,

0x1F,0xF8,0x00,0x00,0x0F,0xFF,0x00,0x06,0x33,0xC0,0x0F,0xF0,0x0C,0x03,0x0E,0x00,

0x3F,0xF0,0x00,0x00,0x07,0xFF,0x00,0x00,0x01,0xC0,0x00,0x00,0x00,0x01,0xCC,0x00,

0x3F,0xC0,0x00,0x00,0x03,0xFF,0x00,0x00,0x00,0xC0,0x00,0x00,0x00,0x00,0xFC,0x00,

0x3F,0xC0,0x00,0x00,0x01,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x00,

0x7F,0xBF,0xC0,0x03,0xFC,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x7F,0x60,0xE0,0x07,0x06,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x7F,0xC0,0x30,0x0C,0x01,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x7E,0xEF,0x80,0x00,0xF3,0x7F,0x00,0x00,0x00,0x00,0x70,0x00,0x06,0x00,0x00,0x00,

0x7E,0x7F,0xC0,0x03,0xFE,0x3F,0x80,0x00,0x00,0xC0,0xF8,0x00,0x07,0x80,0x00,0x00,

0x7E,0x78,0xE0,0x07,0x0E,0x3F,0xC0,0x00,0x00,0x7F,0xB8,0x00,0x01,0xDE,0x00,0x00,

0x7C,0x6F,0x30,0x0E,0xF7,0x3F,0xE0,0x00,0x00,0x7F,0xFE,0x00,0x01,0xC7,0x00,0x00,

0x3C,0xDF,0xB8,0x0D,0xFB,0x1F,0xFE,0x00,0x00,0x7E,0x7E,0x00,0x00,0xFC,0x00,0x00,

0x3C,0xDF,0xD8,0x0D,0xFF,0x9F,0xFE,0x00,0x06,0x0F,0xFC,0x00,0x1E,0xFC,0x00,0x00,

0x3C,0xDF,0xD8,0x0F,0xFD,0x9F,0xFE,0x00,0x07,0x1F,0xFC,0x00,0x3E,0xF8,0x00,0x00,

0x3C,0xDF,0xD8,0x0D,0xFF,0xBF,0xFC,0x00,0x03,0xFF,0xFE,0x00,0xFF,0xF8,0x00,0x00,

0x1C,0xDF,0xB8,0x0D,0xFB,0x3F,0xF8,0x00,0x03,0xFF,0xFC,0x00,0x3F,0xFC,0x00,0x00,

0x1E,0x6F,0x30,0x0E,0xF7,0x7F,0xF0,0x00,0x03,0xFF,0xB8,0x03,0xFC,0x3C,0x00,0x00,

0x0F,0x78,0xE0,0x07,0x0E,0x7F,0xC0,0x00,0x03,0xFF,0xBE,0x07,0xFC,0x3C,0x00,0x00,

0x0F,0xBF,0xC0,0x03,0xFC,0xFE,0x00,0x00,0x03,0x7F,0xFF,0x06,0x3E,0x78,0x00,0x00,

0x07,0xCF,0x8E,0x30,0xF1,0xF0,0x00,0x00,0x03,0xFB,0xFF,0x06,0x7E,0xF8,0x00,0x00,

0x03,0xE0,0x07,0xF0,0x03,0xE0,0x00,0x00,0x03,0xDF,0xBC,0x07,0xF7,0xDC,0x00,0x00,

0x03,0xF0,0x03,0xE0,0x07,0xC0,0x00,0x00,0x03,0xDF,0x8C,0x03,0xE3,0x0E,0xC0,0x00,

0x01,0xF8,0x00,0x00,0x1F,0x80,0x00,0x00,0x01,0xDD,0x8C,0x00,0x00,0x07,0xC0,0x00,

0x00,0xFE,0x00,0x00,0x7F,0x00,0x00,0x00,0x01,0x81,0xDC,0x00,0x00,0x07,0xC0,0x00,

0x00,0x7F,0xC0,0x01,0xFE,0x00,0x00,0x00,0x00,0x00,0xF8,0x00,0x00,0x03,0xC0,0x00,

0x00,0x7F,0xFE,0x3F,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x7F,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFC,0xFF,0xFF,0x3F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x01,0xF9,0xFF,0xFF,0x9F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x03,0xFF,0xFF,0xF3,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x03,0xFF,0xFF,0xF4,0xBF,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x07,0xFF,0xFF,0xF0,0x3F,0xF0,0x00,0x1C,0x00,0x00,0x00,0x00,0x03,0xF0,0x18,0x00,

0x0F,0xFF,0xF8,0x88,0x7F,0xF0,0x00,0x32,0x60,0x00,0xC0,0x00,0x01,0x90,0x19,0x80,

0x03,0xFF,0xF0,0x0F,0xFF,0xE0,0x00,0x30,0x60,0x00,0xC0,0x00,0x01,0xA0,0x01,0x80,

0x03,0xFF,0xF0,0x4F,0xFE,0xC0,0x00,0x3C,0xF7,0x3F,0xE0,0x00,0x01,0xEE,0xFB,0xC0,

0x03,0xBF,0xF1,0x9F,0xFC,0xE0,0x00,0x1E,0x69,0x9A,0xC0,0x00,0x01,0xA7,0x19,0x80,

0x03,0xBF,0xF7,0x9F,0xFC,0xE0,0x00,0x06,0x67,0x98,0xC0,0x00,0x01,0x83,0x19,0x80,

0x03,0x3F,0xFF,0xFF,0xFC,0xE0,0x00,0x26,0x6D,0x98,0xC0,0x00,0x01,0x93,0x99,0x80,

0x03,0xFF,0xFF,0xFF,0xFF,0xE0,0x00,0x1C,0x77,0xFC,0xE0,0x00,0x03,0xFD,0xFD,0xC0,

0x03,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x01,0xFF,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0xFF,0xE1,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x77,0x71,0x80,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x62,0x19,0x80,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

ucharcodeword[16]={"****************"};

ucharcodeword1[10]={"猜数字游戏"};

ucharcodeword2[5]={"Start"};

ucharcodeword3[4]={"Exit"};

uchardata1,k;

ucharshuzu[4];

bitstart_flag;//1开始,0退出

/****************************************/

/****************************************/

/***********猜数字游戏核心程序***********/

/****************************************/

/****************************************/

//关机程序

//----------------------------------------

voidclose(){

E_close=0;//关机

}

//开始游戏

//--------------------------------------------

voidbegin(void)

{ucharxian[5];

ucharm;

ucharn;

for(m=0;m

{

shuzu[0]=rand()%10;

}

shuzu[0]=rand()%10;

shuzu[1]=0;

shuzu[2]=0;

shuzu[3]=0;

for(m=1;m<4;m++)

{

Nextnum:

shuzu[m]=rand()%10;

for(n=0;n

{

if(shuzu[n]==shuzu[m]){gotoNextnum;}

}

}

xian[0]=shuzu[0]+48;

xian[1]=shuzu[1]+48;

xian[2]=shuzu[2]+48;

xian[3]=shuzu[3]+48;

xian[4]=""+48;

WRI(0x01);//清屏显

display_word(4,1,xian,0,4);//答案显示

}

/****************************************/

/****************************************/

/*************LCD12864驱动程序***********/

/****************************************/

/****************************************/

//绘图程序

voiddisplay_picture()

{//蝴蝶

uchari,j,k;

WRI(0x01);//清屏显示

WRI(0x32);//绘图显示开

WRI(0x0c);//显示打开,光标关,显示反白关

WRI(0x36);//功能设置为扩充指令集

for(k=0;k<2;k++)

{

for(i=0;i<32;i++)

{

WRI(0x80+i);

WRI(0x80+k*8);

for(j=0;j<16;j++)

{

WRD(buf[k*512+i*16+j]);

}

}

}

}

//显示字符程序

//===============================

voiddisplay_word(ucharrow1,ucharline1,uchar*p,uintfirst,ucharlast)

{

uintm;

WRI(0x30);//功能设置为基本指令集

WRI(0x0f);//显示打开,光标关,显示反白关

WRI(0x06);//DDRAM地址计数器(AC)加1

switch(r

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2