毕业设计 基于51单片机实现俄罗斯方块游戏的设计


🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机实现俄罗斯方块游戏的设计

1整体设计方案

1.1系统的核心部分单片机

1.1.1单片机的选择

单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。

通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。

20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。 时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。但是,一旦重要事情,一时的耽误可能酿成大祸。

目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化、低功耗、小体积、大容量、高性能、低价格和外围电路内装化等几个方面发展。下面是单片机的主要发展趋势。单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。

单片机经过3代的发展,正朝着多功能、高性能、低电压、低功耗、低价格、大存储容量、强I/O功能及较好的结构兼容性方向发展。其发展趋势不外乎以下几个方面:

  1. 多功能     

单片机中尽可能地把所需要的存储器和I/O口都集成在一块芯片上,使得单片机可以实现更多的功能。比如A/D、PWM、PCA(可编程计数器阵列)、WDT(监视定时器---看家狗)、高速I/O口及计数器的捕获/比较逻辑等。

有的单片机针对某一个应用领域,集成了相关的控制设备,以减少应用系统的芯片数量。例如,有的芯片以51内核为核心,集成了USB控制器、SMART CARD接口、MP3解码器、CAN或者I*I*C总线控制器等,LED、LCD或VFD显示驱动器也开始集成在8位单片机中。

2.高效率和高性能

为了提高执行速度和执行效率,单片机开始使用RISC、流水线和DSP的设计技术,使单片机的性能有了明显的提高,表现为:单片机的时钟频率得到提高;同样频率的单片机运行效率也有了很大的提升;由于集成度的提高,单片机的寻址能力、片内ROM(FLASH)和RAM的容量都突破了以往的数量和限制。

由于系统资源和系统复杂程度的增加,开始使用高级语言(如C语言)来开发单片机的程序。使用高级语言可以降低开发难度,缩短开发周期,增强软件的可读性和可移植性,便于改进和扩充功能。

3.低电压和低功耗

单片机的嵌入式应用决定了低电压和低功耗的特性十分重要。由于CMOS等工艺的大量采用,很多单片机可以在更低的电压下工作(1.2V或0.9V),功耗已经降低到uA级。这些特性使得单片机系统可以在更小电源的支持下工作更长的时间。

4.低价格

单片机应用面广,使用数量大,带来的直接好处就是成本的降低。目前世界各大公司为了提高竞争力,在提高单片机性能的同时,十分注意降低其产品的价格。

在此,我们采用型号为AT89S52的单片机。因为: AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

与MCS-51单片机产品兼容 、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz~33MH、三级加密程序存储器 、32个可编程I/O口线 、三个16位定时器/计数器八个中断源 、全双工UART串行通道、低功耗空闲和掉电模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉电标识符 。

AT89S52具有以下标准功能:8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

 AT89S52单片机有PDIP、PLCC、TQFP三种封装方式,在此我选用DPIP也就是双列直插封装的单片机此种封装有如下特点:

1. 适合PCB的穿孔安装;

2. 易于对PCB布线;

3. 操作方便;

1.1.2AT89S52引脚功能描述

AT89S52单片机的管脚说明如图1-1所示:

图1-1 DIP封装 AT89S52单片机引脚结构图

1.VCC:电源。

2.GND:接地端 。

3.P0口(P0.0~P0.7):P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在Flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

4.P1口(P1.0~P1.7):P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和 P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如表2-1所示:

在 Flash编程和校验时,P1口接收低8位地址字节。

表1-1 P1口第二功能

引脚号

第二功能

P1.0

T2(定时器/计数器 T2 的外部计数输入),时钟输出

P1.1

T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制)

P1.5

MOSI(在系统编程用)

P1.6

MISO(在系统编程用)

P1.7

SCK(在系统编程用)

5.P2口(P2.0~P2.7):P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如 MOVX @RI)访问外部数据存储器时,P2口输出P2 锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

6.P3口(P3.0~P3.7):P3 口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为 AT89S52第二功能使用。

2.1.3晶振特性

AT89S52单片机有一个用于构成内部振荡器的反相放大器,XTAL1和XTAL2分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用来一起构成自激振荡器。从外部时钟源驱动器件的话,XTAL2可以不接,而从XTAL1接入,如图2-2所示。由于外部时钟信号经过二分频触发后作为外部时钟电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间和最少高电平持续时间等还是要符合要求的。如图 1-2 所示:

图1-2内部振荡电路连接图

1.2液晶显示模块

显示器部分是由HD61202液晶显示控制驱动器和JM12864J液晶显示器组成的,下面我们对其分别进行介绍。

1.2.1液晶显示控制驱动器HD61202的特点

HD61202液晶显示控制驱动器是一种带有驱动输出的图形液晶显示控制器,它可直接与8位微处理器相连,它可与HD61203配合对液晶屏进行行、列驱动。HD61202是一种带有列驱动输出的液晶显示控制器,它可与行驱动器HD61203配合使用,组成液晶显示驱动控制系统。

1.内藏64×64=4096位显示RAM,RAM中每位数据对应LCD屏上一个点的亮、暗状态;

2.HD61202是列驱动器,具有64路列驱动输出;

3.HD61202读、写操作时序与68系列微处理器相符,因此它可直接与68系列微处理器接口相连;

4.HD61202的占空比为1/32~1/64。

2.2.2液晶显示控制驱动器HD61202的引脚功能

引脚CS1,CS2,CS3 为芯片的片选端;引脚 E 为读写使能信号,它是在下降沿时数据被锁存入HD61202的;在E 高电平期间,数据被读出;R/W 为读写选择信号,当它为一时为读选通,为零时为写选通;DB0-DB7为数据总线RST 为复位信号复位信号有效时,关闭液晶显示,使显示起始行为0,RST可跟MCU相连,由MCU控制;也可直接接VDD,使之不起作用。HD61202的引脚功能如下表2-3所示:

表1-3 HD61202的引脚功能

引脚符号

状态

引脚名称

功能

CS1,CS2,CS3

输入

芯片片选端

CS1和CS2低电平选通,CS3高电平选通。

E

输入

读写使能信号

在E下降沿,数据被锁存(写)入HD61202;在E高电平期间,数据被读出

R/W

输入

读写选择信号

R/W=1为读选通,R/W=0为写选通

RS

输入

数据、指令选择信号

RS=1为数据操作 

RS=0为写指令或读状态

DB0-DB7

三态

数据总线

RST

输入

复位信号

复位信号有效时,关闭液晶显示,使显示起始行为0,RST可跟MCU相连,由MCU控制;也可直接接VDD,使之不起作用。

1.2.3液晶显示控制驱动器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         显示起始行(0-63)

3. 页(PAGE)置指令

R/W    RS

DB7     DB6    DB5     DB4      DB3      DB2  DB1  DB0

 0     0

  1

   0

 1   

   1

   1

页号(0-7)

显示RAM共64行,分8页,每页8行。

4. 列地址(Y Address)设置指令

R/W    RS

DB7   DB6      DB5  DB4  DB3  DB2  DB1  DB0

 0     0

 0     1              显示列地址(0-63)

设置了页地址和列地址,就唯一确定了显示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

        读    显     示     数      据

1.2.4HD61202的软件设计

液晶控制器HD61202 一共有七条指令,从作用上可分为两类,显示状态设置指令和数据读/写操作指令。详见指令系统可查看图形液晶显示器产品有关手册。显示起始行设置中L5~L0 为显示起始行的地址,取值在0-3FH(1-64 行)范围内。页面地址设置中P2-P0 为选择的页面地址,取值范围为0-7H代表1-8 页。列地址设置中C5-C0 为Y地址计数器的内容,取值在0-3FH(1-64 行)范围内。

显示器上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 显示存储器的特性,不能将计算机内的汉字库和其它字模库提出直接使用,需要将其旋转90 度后再写入。点阵字模库建立包括以下几个方面:

1.建立8×16 点阵常用字符、数字、符号字模库。

可选用计算机BIOS 中ASCII 的8×16 字模库,所有字符按照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;j<16;j++) buf[j]=peekb(ascii_es,ascii_offset+j); /*读16 字节点阵数据*/

for(m=0;m<16;m++) /*点阵数据转换成LCD 格式数据*/

{ if(m<8) { beginbyte= 7; shiftn="7";}

else { beginbyte="15"; shiftn="15";}

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

ascii8x16[m]=(ascii8x16[m]+ (buf[beginbyte-j]>>(shiftn-m))&0x01)<<1;

}

也可选用UCDOS 的ASC16 文件做字模库。ASC16 文件的字符为8×16 点阵。所有字符按照ASCII值从小到大升序排列。计算字符首地址的公式:字符首地址=字符的ASCII 码值×16字模库首地址。

2.建立所用到的16×16 点阵字模库。汉字字符可选用UCDOS 的HZK16 文件做字模库。HZK16 文件的字符为16×16 点阵。所有字符按照区位码从小到大升序排列。计算汉字字符首地址的公式如下:汉字首地址=((区码-1)×94+位码-1)×32。作者用C 语言编写的读取UCDOS 点阵字库字模程序,完成字模读取

数据重新排列,并按MCS-51 汇编程序的要求写成相应格式的文本文件。

p=((quma-1)*94+weima-1)*32;

cclibfile="fopen"("HZK16","rb");

fseek(cclibfile,(long)p,SEEK_SET);

fread(buf,sizeof(unsigned char),32,cclibfile); /*读32 字节点阵数据*/

for(m=0;m<32;m++){ /*点阵数据转换成LCD 格式数据*/

if(m<8) { beginbyte="14"; shiftn="7";}

else if( m>= 8 && m<16 ) { beginbyte="15"; shiftn="15";}

else if( m>=16 && m<24 ) { beginbyte="30"; shiftn="23";}

else { beginbyte="31"; shiftn="31";}

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

hzk16x16[m]=(hzk16x16[m]+ (buf[beginbyte-2*j] >>(shiftn-m))&0x01)<<1;

}

3.常用图形(如产品商标等)的点阵图形的建立。对已有的图形可采用扫描仪进行扫描,然后用图形处理软件进行处理,再将BMP 格式文件转换成MCS-51的汇编文件的格式。

以上所有的字模数据都存放在单片机W78E58 的程序存储器中,如用到的汉字、图形较多,可选用较大容量的程序存储器。

通用子程序:通用子程序分左半屏、右半屏写指令代码子程序和写显示数据子程序。液晶显示驱动器HD16202 内部有个忙标志寄存器,当BF=1 时,表示内部操作正在运行,不能接受外部数据或指令。下面子程序中设指令代码寄存器为COMM,数据寄存器为DATA。

(COMM EQU 20H /*指令寄存器*/ DATA EQU 21H /*数据寄存器*/)

1.左半屏写指令子程序

WR_CMD1: MOV DPTR,#CRADR1 ;/*读状态字口地址*/

WAIT1: MOVX A,@DPTR ;/* 读状态字 */

JB ACC.7,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 ACC.7,WAIT11 ;/*判忙标志BF,如BF=1 忙,等待*/

MOV DPTR,#DWADR1 ;/*写数据字口地址*/

MOV A,DATA ;/*取数据/

MOVX @DPTR,A ;/*写数据*/

RET

3.右半屏写指令子程序WR_CMD2 和右半屏写数据子程序WR_DATA2 的编制同左半屏子程序相同,只是对应口地址不同。

2.2.5JM12864J的电路结构特点

JM12864J是使用HD61202及其兼容控制驱动器作为列驱动器,同时使用HD61203作为行驱动器的液晶模块。由于HD6120不与MPU发生联系,只要提供电源就能产生行驱动信号和各种同步信号,比较简单,因此这里就不作介绍了。下面主要介绍一下JM12864J的逻辑电路图。

JM12864J共有两片HD61202及其兼容控制驱动器和一片HD61203,如图1-3所示:

图1-3  JM12864J的逻辑电路图

2系统仿真

2.1Proteus软件介绍

Proteus软件是来自英国Labcenter electronics公司的EDA工具软件。 Proteus软件有十多年的历史,在全球广泛使用,除了其具有和其它EDA工具一样的原理布图、PCB自动或人工布线及电路仿真的功能外,其革命性的功能是,他的电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上编程,并实现软件源码级的实时调试,如有显示及输出,还能看到运行后输入输出的效果,配合系统配置的虚拟仪器如示波器、逻辑分析仪等,不需要别的,Proteus建立了完备的电子设计开发环境!

Proteus组合了高级原理布图、混合模式SPICE仿真,PCB设计以及自动布线来实现一个完整的电子设计系统。此系统受益于15年来的持续开发,被《电子世界》在其对PCB设计系统的比较文章中评为最好产品—“The Route to PCB CAD”。Proteus 产品系列也包含了革命性的VSM技术,用户可以对基于微控制器的设计连同所有的周围电子器件一起仿真。用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。

其功能模块:—个易用而又功能强大的ISIS原理布图工具;Proteus混合模型SPICE仿真; ARES PCB设计。Proteus 仿真器的一个扩展Proteus VSM:便于包括所有相关的器件的基于微处理器设计的协同仿真。此外,还可以结合微控制器软件使用动态的键盘,开关,按钮,LEDs甚至LCD显示CPU模型。

1.支持许多通用的微控制器,如PIC,AVR,HC11以及8051;

2.交互的装置模型包括:LED和LCD显示,RS232终端,通用键盘;

3.强大的调试工具,包括寄存器和存储器,断点和单步模式;

4.IAR C-SPY 和Keil uVision3等开发工具的源层调试;

5.应用特殊模型的DLL界面-提供有关元件库的全部文件。

2.2Keil软件介绍

Keil C51 µVision2集成开发环境是Keil Software,Inc/Keil Elektronik GmbH开发的基于80C51内核的微处理器软件开发平台,内嵌多种符合当前工业标准的开发工具,可以完成从工程建立到管理、编译、链接、目标代码的生成、软件仿真、硬件仿真等完整的开发流程尤其是C编译工具在产生代码的准确性和效率方面达到了较高的水平,而且可以附加灵活的控制选项,在开发大型项目时非常理想。Keil C51集成开发环境的主要功能有以下几点:

1.µVision2 for Windows:是一个集成开发环境,它将项目管理、源代码编辑和程序调试等组合在一个功能强大的环境中;

2.C51国际际准化C交叉编译器:从C源代码产生可重定位的目标模块;

3.A51宏汇编器:从80C51汇编源代码产生可重定位的目标模块;

4.BL51链接器/定位器:组合由C51和A51产生的可重定位的目标模块,生成绝对目标模块;

5.LIB51库管理器:从目标模块生成连接器可以使用的库文件;

6.OH51目标文件至HEX格式的转换器,从绝对目标模块生成Intel Hex文件;

7.RTX-51实时操作系统:简化了复杂的实时应用软件项目的设计。

这个工具套件是为专业软件开发人员设计的,但任何层次的编程人员都可以使用,并获得80C51单片机的绝大部分应用。Keil Software提供了一流的80C51系列开发工具软件,下面描述每个套件及其内容:

(1)PK51专业开发套件:PK51专业开发套件提供了所有工具,适合专业开发人员建立和调试80C51系列微控制器的复杂嵌入式应用程序。专业开发套件可针对80C51及其所有派生系列进行配置使用;

(2)DK51开发套件:DK51开发套件是PK51的精简版,它不包括RTX51 Tiny实时操作系统。开发套件可针对80C51及其所以派生系列进行配置使用;

(3)编译器套件:如果开发者只需要一个C编译器而不需要调试系统,则CA51编译器套件就是最好的选择。CA51编译器套件只包含µVision2 IDE集成开发环境,CA51不提供µVision2调试器的功能。这个套件包括了要建立嵌入式应用的所有工具软件,可针对80C51及其所有派生系列进行配置使用;

表2-1 开发套件和工具对照表

Components

PK51

DK51

CA51

A51

FR51

uVision2 Project Management&Editor

A51 Assembler

C51 Compiler

BL51 Liker/locator

LIB51 Library Magaer

uVision2 Debugger/Simulator

RTX51 Tiny

RTX51 Full

(4)A51汇编器套件:A51汇编器套件包括一个汇编器和创建嵌入式应用所需要的所有工具。它可针对80C51及其所有派生系列进行配置使用;

(5)RTX51实时操作系统(FR51):RTX51实时操作系统是80C51系列微控制器的一个实时内核。RTX51 Full提供RTX51 Tiny的所以功能和一些扩展功能,并且包括CAN通信协议接口子程序;

(6)比较表:表4-1列出了每个套件的功能,表的顶上一栏为工具套件名称,表的左边一列为软件组成部分,使用这个对照表可以选择符合需要的套件。

2.3俄罗斯方块系统PROTUES仿真

用Proteus软件,根据俄罗斯方块电路原理图,画出仿真图。

电路图画完后使用Proteus与Keil联调,这里使用的软件是Keil µVision3.8与Proteus7.4。

1.打开PROTEUS的安装目录,进入help目录,打开ARM.HLP帮助文档,点击联接:Remote Debugger Drivers/Download and Install remote debugger driver for Keil uVision3, 下载VDMAGDI.EXE, 运行安装到KEIL安装目录VDM51.dll文档会自动安装到KEIL\C51\BIN目录。

图2-1 Protues仿真

2.打开KEIL中打开要联调的项目,在project workspace的“target1”上点右键/options for target'target1'。

在打开的对话框中点击到Debug选项卡,在右上角上先中USE选项, 并在下拉菜单中选中proteus VSM Simulator,在旁边的Settings点一下,如果是proteus在同一台电脑,host:127.0.0.1, port:8000, 点确定/OK保存。

3.打开proteus并打开要仿真的图纸,点击Debug菜单/选中Use Remote Debug Monitor。

4.完成,如果程序和电路图没问题,在KEIL中build all并且仿真运行后,可以在proteus看到实时效果了如图2-1所示:

经Proteus仿真,证明此俄罗斯方块游戏能正常运行,可以进入实物焊接阶段。

如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值