基于单片机的俄罗斯方块游戏系统的设计内容摘要:
SEN将不被激活。 E A/VPP:访问外部程序存储器控制信号。 为使能从 0000H到 FFFFH的外部程序存储器读取指令, EA 必须接 GND。 为了执行内部程序指令, EA应该接 VCC。 在 flash编程期间, EA也接收 12伏 VPP电压。 XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2:振荡器反相放大器的输出端。 晶振特性 AT89S52单片机有一个用于构成内部振荡器的反相放大器, XTAL1和 XTAL2分别是放大器的输入、输出端。 石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。 从外部时钟源驱动器件的话, XTAL2可以不接,而从 XTAL1接入,如图 22所示。 由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要 符合要求的。 如图 所示 : 图 2 液晶显示模块 显示器部分是由 HD61202 液晶显示控制驱动器和 JM12864J 液晶显示器组成的,下面对其分别进行介绍。 液晶显示控制驱动器 HD61202 的特点 HD61202 液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制器,它可直接与 8 位微处理器相连,它可与 HD61203 配合对液晶屏进行行、列驱动。 HD61202北京科技大学远程与成人教育学院毕业设计(论文) 第 7 页 共 55 页 是一种带有列驱动输出的液晶显示控制器,它可与行驱动器 HD61203 配合使用,组成液晶显示驱动控制系统。 ( 1) 内藏 64 64=4096 位显示 RAM, RAM中每位数据对应 LCD 屏上一个点的亮、暗状态; ( 2) HD61202 是列驱动器,具有 64路列驱动输出; ( 3) HD61202 读、写操作时序与 68系列微处理器相符,因此它可直接与 68 系列微处理器接口相连; ( 4) HD61202 的占空比为 1/32~ 1/64。 液晶显示控制驱动器 HD61202 的引脚功能 引脚 CS1,CS2,CS3 为芯片的片选端;引脚 E 为读写使能信号,它是在下降沿时数据被锁存入 HD61202 的;在 E 高电平期间,数据被读出; R/W 为读写选 择信号,当它为一时为读选通,为零时为写选通; DB0DB7 为数据总线 RST 为复位信号复位信号有效时,关闭液晶显示,使显示起始行为 0, RST 可跟 MCU 相连,由 MCU 控制;也可直接接 VDD,使之不起作用。 HD61202 的引脚功能如下表 23所示: 表 23 HD61202 的引脚功能 引脚符号 状态 引脚名称 功能 CS1,CS2,CS3 输入 芯片片选端 CS1和 CS2低电平选通, CS3高电平选通。 E 输入 读写使能信号 在 E下降沿,数据被锁存(写)入 HD61202;在 E高电平期间,数据被读出 R/W 输入 读写选择信号 R/W=1为读选通, R/W=0为写选通 RS 输入 数据、指令选择信号 RS=1为数据操作 RS=0为写指令或读状态 DB0DB7 三态 数据总线 RST 输入 复位信号 复位信号有效时,关闭液晶显示,使显示起始行为 0, RST可跟 MCU相连,由 MCU控制;也可直接接 VDD,使之不起作用。 液晶显示控制驱动器 HD61202 的指令系统 HD61202 的指令系统比较简单,总共只有七种。 现分别介绍如下: 1. 显示开 /关指令 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 1 1 1 1 1 1/0 当 DBO=1 时, LCD 显示 RAM 中的内容; DBO=0 时,关闭显示。 2. 显示起始行( ROW)设置指令 该指令设置了对应液晶屏最上一行的显示 RAM 的行号,有规律的改变显示起始行,可以使 LCD 实现显示滚屏的效果。 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 1 1 显示起始行( 063) 3. 页 (PAGE)置指令 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 北京科技大学远程与成人教育学院毕业设计(论文) 第 8 页 共 55 页 0 0 1 0 1 1 1 页号( 07) 显示 RAM共 64 行,分 8 页,每页 8行。 4. 列地址( Y Address)设置指令 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 1 显示列地址( 063) 设置了页地址和列地址,就唯一确定了显示 RAM 中的一个单元,这样 MCU就可以用读、写指令读出该单元中的内容或向该单元写进一个字节数据。 5. 读状态指令 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 0 BUSY 0 ON/OFF REST 0 0 0 0 该指令用来查询 HD61202 的状态,各参量含义如下: BUSY: 1内部在工作 0正常状态 ON/OFF: 1显示关闭 0显示打开 REST: 1复位状态 0正常状态 在 BUSY 和 REST 状态时,除读状态指令外,其它指令均不对 HD61202 产生作用。 在对 HD61202 操作之前要查询 BUSY 状态,以确定是否可以对 HD61202 进行操作。 6. 写数据指令 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 1 写 数 据 读、写数据指令每执行完一次读、写操作,列地址就自动增一,必须注意的是,进行读操作之前,必须有一次空读操作,紧接着再读才会读出所要读的单元中的数据。 7. 读数据指令 R/W RS DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 1 1 读 显 示 数 据 HD61202 的软件设计 液晶控制器 HD61202 一共有七条指令,从作用上可分为两类,显示状态设置指令和数据读 /写操作指令。 详见 指令系统可查看图形液晶显示器产品有关手册。 显示起始行设置中 L5~ L0 为显示起始行的地址,取值在 03FH(164 行 )范围内。 页面地址设置中 P2P0 为选择的页面地址,取值范围为 07H, 代表 18 页。 列地址设置中C5C0 为 Y地址计数器的内容,取值在 03FH(164 行 )范围内。 显示器上 128 点 64 点,每 8 点为一字节数据,都对应着显示数据 RAM(在HD61202 芯片内 ),一点对应一个 bit,计算机写入或读出显示存储器的数据代表显示屏上某一点列上的垂直 8 点行的数据。 D0 代表最上一 行的点数据, D1 为第二行的点数据 , ……D7 为第八行的点数据。 该 bit=1 时该点则显示黑点出来,该 bit=0 时该点则消失。 另外 LCD 指令中有-条 display ON/OFF 指令, display ON 时显示 RAM 数据对应显示的画面; display OFF 则画面消失, RAM 中显示数据仍存在。 点阵字模文件的建立: 由于 MGLS12864 液晶显示器没有内部字符发生器,所以在屏幕上显示的任何字符、汉字等须自己建立点阵字模库,然后均按图形方式进行显示。 由于 HD61202 显北京科技大学远程与成人教育学院毕业设计(论文) 第 9 页 共 55 页 示存储器的特性,不能将计算机 内的汉字库和其它字模库提出直接使用,需要将其旋转 90 度后再写入。 点阵字模库建立包括以下几个方面: ( 1) 建立 816 点阵常用字符、数字、符号字模库。 可选用计算机 BIOS 中 ASCII 的 816 字模库,所有字符按照 ASCII 值从小到大升序排列。 asm{MOV ax,1130h /*AH=11h— 功能调用。 装入字库至软字库 */ mov bh,6 /*AL=30h 取点阵信息 */ int 10h /*BH=6 取 ROM8X16 点阵指针 (VGA) */ mov ax,es /*出口: ES:BP 指向字库指针 */ mov ascii_es,ax mov ax,bp mov ascii_bp,ax }。 ascii_offset=ascii_bp+16*asciicode; for(j=0。 j16。 j++) buf[j]=peekb(ascii_es,ascii_offset+j)。 /*读 16 字节点阵数据 */ for(m=0。 m16。 m++) /*点阵数据转换成 LCD 格式数据 */ { if(m8) { beginbyte= 7。 shiftn=7。 } else { beginbyte=15。 shiftn=15。 } for(j=0。 j8。 j++) ascii8x16[m]=(ascii8x16[m]+ (buf[beginbytej](shiftnm))amp。 0x01)1。 } 也可选用 UCDOS 的 ASC16 文件做字模库。 ASC16 文件的字符为 816 点阵。 所有字符按照 ASCII 值从小到大升序排列。 计算字符首地址的公式:字符首地址 =字符的 ASCII 码值 16 加 字模库首地址。 ( 2) 建立所用到的 1616 点阵字模库。 汉字字符可选用 UCDOS 的 HZK16 文件做字模库。 HZK16 文件的字符为 1616 点阵。 所有字符按照区位码从小到大升序排列。 计算汉字字符首地址的公式如下:汉字首地址 =((区码 1) 94+ 位码 1)32。 作者用 C 语言编写的读取 UCDOS 点阵字库字模程序,完成字模读取。 数据重新排列,并按 MCS51 汇编程序的要求写成相应格式的文本文件。 p=((quma1)*94+weima1)*32。 cclibfile=fopen(HZK16,rb)。 fseek(cclibfile,(long)p,SEEK_SET)。 fread(buf,sizeof(unsigned char),32,cclibfile)。 /*读 32 字节点阵数据 */ for(m=0。 m32。 m++){ /*点阵数据转换成 LCD 格式数据 */ if(m8) { beginbyte=14。 shiftn=7。 } else if( m= 8 amp。 amp。 m16 ) { beginbyte=15。 shiftn=15。 } else if( m=16 amp。 amp。 m24 ) { beginbyte=30。 shiftn=23。 } else { beginbyte=31。 shiftn=31。 } for(j=0。 j8。 j++) hzk16x16[m]=(hzk16x16[m]+ (buf[beginbyte2*j] (shiftnm))amp。 0x01)1。 } 北京科技大学远程与成人教育学院毕业设计(论文) 第 10 页 共 55 页 ( 3) 常用图形(如产品商标等)的点阵图形的建立。 对已有的图形可采用扫描仪进行扫描,然后用图形处理软件进行处理,再将 BMP 格式文件转换成 MCS51 的汇编文件的格式。 以上所有的字模数据都存放在单片机 W78E58 的程序存储器中,如用到的汉字、图形较多,可选用较大容量 的程序存储器。 通用子程序:通用子程序分左半屏、右半屏写指令代码子程序和写显示数据子程序。 液晶显示驱动器 HD16202 内部有个忙标志寄存器,当 BF=1 时,表示内部操作正在运行,不能接受外部数据或指令。 下面子程序中设指令代码寄存器为 COMM,数据寄存器为 DATA。 (COMM EQU 20H /*指令寄存器 */ DATA EQU 21H /*数据寄存器 */) 1) 左半屏写指令子程序 WR_CMD1: MOV DPTR,CRADR1 ; /*读状态字口地址 */ WAIT1: MOVX A,@DPTR ; /* 读状态字 */ JB ,WAIT1 ; /*判忙标志 BF,如 BF=1 忙,等待 */ MOV DPTR,CWADR1 ; /*写指令字口地址 */ MOV A,COMM ; /*取指令代码 */ MOVX @DPTR,A ; /*写指令代码 */ RET 2) 左半屏写数据子程序 WR_DATA1: MOV DPTR,CRADR1 ; /*读状态字口地址 */ WAIT11: MOVX A,@DPTR ; /* 读状态字 */ JB ,WAIT11 ; /*。基于单片机的俄罗斯方块游戏系统的设计
相关推荐
生育基础管理和服务工作,推进基层计划生育工作网络建设;组织实施全区计划生育目标管理责任制考核,承担区人口和计划生育领导小组办公室具体工作。 希望大家给予支持 ! 一、我个人认为我的主要优势有以下几点: 具有较强的适应能力。 17 年不同的工作岗位和工作环境,丰富了我的人生阅历,也促使我养成了乐于学习、适应性强、善于接受新鲜事物的好习惯。 具有很强的协作意识。 无论是在本科室内部工作,还是
ocationTable)区、 DIR(Directory)区和 DATA 区 [2], 如图 4 所示 : 主引导记录 MBR 系统引导记录 DBR FAT1 FAT2 根目录区 DIR 数据区 DATA 图 4 FAT16 存储结构示意图 其中 , MBR 区位于物理磁盘 0 扇区 , DBR 区位于逻辑磁盘 0 扇区。 MBR 区与物理磁盘一一对应 , 其余四个区和逻辑磁盘一一对应。 SD
系统主程序,同时对主要元器件的软件设计进行了具体阐述。 第六章:介绍在调试过程中遇到的问题及解决的方法,同时进行了系统抗干扰分析。 第七章:总结了本文的设计成果,指出了本文设计的系统中仍然存在的问题以及今后的研究方向。 桂林电子科技大学毕业设计(论文)报告用纸 第 3 页 共 51 页 2 室内空气品质研究 国内外在室内通风换气方面的研究 我们所知道的 ―密闭建筑综合症 ‖的根本原因就是通风不够
T1 记时器 1 外部输入 /WR 外部数据存储器写选通 /RD 外部数据存储器读选通 P3 口同时为闪烁编程和编程校验接收 一些控制信号。 RST:复位输入。 当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 行驱动模块 行驱动电路的选择如果采取并口输入,会占用大量 I/O 口资源。
和 FLASH 存储单元, AT89C51 单片机为许多嵌入式控制系统提供了一种灵活行高且价廉的方案。 主要特性 8031 CPU 与 MCS51 兼容 4K 字节可编程 FLASH 存储器 (寿命: 1000 写 / 擦循环 ) 全静态工作: 0Hz24KHz 三级程序存储器保密锁定 128*8 位内部 RAM 32 条可编程 I/O 线 两个 16 位定时器 /计数器 6个中断源
6 种 状态,按照其 输入信号 翻译成对应的输出信号。 在图 1 中, 74138 是一种 4 线 —16 线译码器 , 4 个输入端 ABCD 共有 16 种状态组合( 0000—1111),可译出 16 个输出信号 D0—D15。 它 有 2 个使能输入端,当 G2 与 G1 均为 0,译码器处于工作状态,输出低 电平。 当译码器被禁止时, G1 G2 输 入 高电平。 其输入输出