1、2.3显示设备的选择考虑到带中文字库的WGM-12864H是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,完全满足游戏品台的要求且使我们游戏的开发过程更加方便。3 总体设计方
2、案框图3.1系统的总体结构如下图所示:本系统的硬件核心是单片机,关键的技术是程序流程的控制和软件编码、解码技术,。3.2系统工作原理游戏开发系统由按键控制程序流程,开发平台控制系统的工作方式,并处理数据,将数据送至显示屏显示。 4 系统的电路设计及硬件实现4.1系统的电路图设计图4-14.2单片机的介绍AT89S52单片机是系统中的控制核心,它是个低电压,高性能CMOS8位单片机, AT89S52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。其封装及引脚图如图4-3:主要功能特性:兼容MCS51
3、指令系统8k可反复擦写(1000次)FlashROM32个双向I/O口256x8bit内部RAM3个16位可编程定时/计数器中断时钟频率0-24MHz2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能图4-3WGM-12864H是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;RSR/WDB7DB6DB5DB4DB3DB2DB1DB01返回指令:X 光标或整体移位指令S/CR/L S/C R/L 操作 0 0 光标左移,AC减1 0 1 光标右移,AC加1
4、 1 0 所有显示左移 1 1 所有显示右移光标显示及光标闪烁指令DCBD=1 整体显示打开 D=0 整体显示关闭C=1 光标显示开 C=0 不显示光标B=1 光标闪烁 B=0 光标不闪烁5 系统软件的设计(功能的实现)5.1控制游戏平台的实现本系统的功能主要是由平台上的按键通过游戏平台,逐步实现各个功能。软件的设计思路是单片机时刻扫描键盘,如有键按下,进入到解码程序,入到程序散转表,去执行各个功能控制程序。程序流程图如图5-1: 图5-16 程序代码#include#define uint unsigned int#define uchar unsigned char#define DAT
5、P0#define INPUT P1void WRI(uchar a);void WRD(uchar b);void display_picture();void display_word(uchar row1,uchar line1,uchar *p,uint first,uchar last);void delay(uint c);void close();void key(); /判断键值子程序bit start_key(); /扫描键盘子程序void number_key();void E_START(void);void E_EXIT(void);void begin(void);s
6、bit RS=P20;sbit E=P21;sbit E_close=P30;uchar code buf1024=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,0x
7、00,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,0x
8、C0,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,0x
9、FB,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,0x
10、FF,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,0x
11、1F,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,0x
12、00,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,0x
13、00,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,0x
14、FB,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,0x
15、1C,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,0x
16、3E,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,0x
17、01,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,0x
18、FF,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,0x
19、03,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,0x
20、01,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,0x
21、6D,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,0x
22、7F,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,0x
23、00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;uchar code word16=*uchar code word110=猜数字游戏uchar code word25=Startuchar code word34=Exituchar data1,k;uchar shuzu4;bit start_flag; /1开始,0退出/*/*猜数字游戏核心程序*/关机程序/-void close()E_close=0; /关机/开始游戏/-void begin(void)uchar xian5;u
24、char m;uchar n;for(m=0;mk;m+) /产生四个不同的随机数。 shuzu0=rand()%10; shuzu0=rand()%10;shuzu1=0;shuzu2=0;shuzu3=0;for (m=1;4;m+) Nextnum: shuzum=rand()%10; for (n=0;nm;n+) if(shuzun=shuzum)goto Nextnum; xian0=shuzu0+48;xian1=shuzu1+48;xian2=shuzu2+48;xian3=shuzu3+48;xian4=+48;WRI(0x01); /清屏显display_word(4,1,
25、xian,0,4); /答案显示/*LCD12864驱动程序*/绘图程序void display_picture() /蝴蝶 uchar i,j,k; WRI(0x01);/清屏显示 WRI(0x32);/绘图显示开 WRI(0x0c); /显示打开,光标关,显示反白关 WRI(0x36);/功能设置为扩充指令集 for(k=0;k2;k+) for(i=0;i32;i+) WRI(0x80+i); WRI(0x80+k*8); for(j=0;j16;j+) WRD(bufk*512+i*16+j); /显示字符程序/=void display_word(uchar row1,uchar line1,uchar *p,uint first,uchar last) uint m; WRI(0x30); /功能设置为基本指令集 WRI(0x0f); WRI(0x06); /DDRAM地址计数器(AC)加1 switch (r