版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PAGEPAGE10/61计算机组成原理实验报告姓名班级学号目录实验1节拍脉冲发生器时序电路 实验目的 4实验原理 实验任务 实验步骤 问题分析 实验2 LPM_ROM和LPM_RAM 10实验目的 10实验原理 10实验任务 11实验步骤 12问题分析 13实验3算术逻辑运算单元设计实验 15实验目的 15实验原理 15实验任务 16实验步骤 16问题分析 17实验4程序计数器PC与地址寄存器AR实验 19实验目的 19实验原理 19实验任务 21实验步骤 22问题分析 22实验5微控制器组成实验 25实验目的 25实验原理 25实验任务 27实验步骤 28问题分析 28实验6基本模型机设计与实现 31实验目的 31实验原理 31实验任务 37实验步骤 37问题分析 37实验7 K8051单片机核基本系统搭建与调试 41具体应用描述 41硬件框图与相关描述 41Quartus硬件设计原理图与模式、引脚说明 42软件设计流程图 44C语言源代码 45调试总结 60实验1节拍脉冲发生器时序电路实验一、实验目的掌握节拍发生器的设计方法,理解节拍脉冲发生器的工作原理。二、实验原理连续节拍发生电路DCLKRST1,输出为T1,T2,T3,T4CLK,RST1Reset(低有效DCLKDD4,并重新返回D1。当RST11T2、T3、T4“0RST1,T1-T4CLK1理图如下:图1-1连续节拍发生电路原理图单步节拍发生电路T1,T2,T3,T4D0D1ResetT5CLK再作为整个电路的时钟信号,在四个时钟周期后,T5为高电平时有效的屏蔽了CLKRST1T1T2T3T4RST1升沿。图1-2单步节拍发生电路原理图单步/连续节拍发生电路S0S0=0S0=1,选择连续运行方式。图1-3单步/连续节拍发生电路原理图三、实验任务连续节拍发生电路1-181-4T1-T4单步节拍发生电路1-2RST1T1T2T3T4RST18RST1。实验结果与仿真波形图比较。单步/连续节拍发生电路211-3No.1,CLOCK04Hz,8RST1结果与仿真波形图比较。四、实验步骤软件编译仿真波形图连续节拍发生电路仿真波形图1-4连续节拍发生电路仿真波形单步节拍发生电路仿真波形图1-5单步节拍发生电路仿真波形单步/连续节拍发生电路图1-6单步/连续节拍发生电路仿真波形4.3.分析报告连续节拍发生电路RST1(即无效)时,会连续不断的输出T1,T2,T3,T4知实验结果与实验仿真波形一致。单步节拍发生电路RST1T1,T2,T3,T4Reset与波形图进行对比后,可知实验结果与实验仿真波形一致。单步/连续节拍发生电路对于单步/连续节拍发生电路,从电路图设计角度出发,通过增加多路选择S0=0S0=1S0与波形图进行对比后,可知实验结果与实验仿真波形一致。五、问题分析a.连续节拍发生电路:1-1DCLKT1,T2,T3,T4CLKReset(低有效,DCLKDD1RST1T11T2T3T40RST1CLK1脉冲,可以连续输出。1-2,在连续节拍发生电路的基础上,将DT1,T2,T3,T40D1ResetT5CLKRST1T1T2T3T4RST1下降沿变为上升沿。c.连续/单步节拍发生电路:21S0S0=0式,S0=1t5t5T51-5,将T5T5图如下:图1-7没有T5输入时的仿真波形T5T5:T5(4钟周期过后CLKT1、T2、T3、T40,T5的状态。单步运行和连续运行有何区别,它们各自的使用场景如何?Reset4化运行程序时使用。如何实现单步/连续运行工作方式的切换?S0路同单步节拍发生器电路。S0=1实验2LPM_ROM与LPM_RAM一、实验内容LPM_ROM掌握FPGALPM_ROMROMMIFROM,MIFLPM_ROM中;在初始化存储器编辑窗口编辑MIF文件配置ROM;验证FPGALPM_ROMLPM_RAMFPGARAMlpm_ram_dqlpm_ram_dqlpm_ram_dqRAM方法。二、实验原理LPM_ROMROM,全程Read_Only_Memory,Quartus9lpmromROMmifROM.mif)。事实上,在本实验里,ROM24图2-1LPM_ROM原理图图2-2ROM.mifLPM_RAMRAM,RAMQuartus9LPM_RAMRAMmif件。图2-3LPM_RAM
图2-4RAM.mifLPM_ROMLPM_ROMLPMLPM_ROM,地址总线宽address[q[624LPM_ROM数据参数,LPM_ROM配置文件的路径(ROM.mif,并设置在系统ROM/RAMFPGAROMSOFLPM_ROMQuartusIIFPGAROM的数据,并对其进行在系统写操作;记录实验数据,写出实验报告,给出仿真波形图。LPM_RAMram_dp0D[7..0]Q[7..0]输出,R/W——为读inclockA[7..0]输入存储单元地址,在CLK信号上升沿到来时,该单元数据从Q[7..0]输出。四、实验步骤软件编译仿真波形图LPM_ROMLPM_RAM
图2-5ROM读写情况图2-6RAM读写情况图2-7仿真波形图分析报告LPM_ROM24位数据输出由数码管8-3显示,六位地址由键2、键1输入,键1负责低四位,地址锁存时钟CLK8ROM8-16LPM_RAM12RAM834887(CLK0)lpm_ram_dq/读操作。五、问题分析5.1lpm_ram_dqlpm_ram_dqMIFRAMQuartuslpm_ramRAM数据。图2-8通过模块工具改变RAM参数图2-9通过模块工具给RAM导入mif文件实验3算术逻辑运算单元(ALU)设计实验一、实验内容8二、实验原理ALU整体原理图与数据通路如下:图3-1算术逻辑单元ALUALU18174LS181VHDL84-28A[7..0]和B[7..0]S[3..016S[3..0]4LPM_COUNTERSclk选择算术运算,M=1,Cn,F[7..0]为输出结果,Co8IN[7..0]分别通过两个电平锁存74373,ALU1814-33-2生成ALUVHDL
图3-3ALU181的运算功能按照图4-1所示,在此验证性示例中用A0_B1(键3)产生锁存信号,将IN[7..08821A[7..001010101(55H2、155H31,21B[7..0]1010101(AAH43AAH855HAAH。8M=0(允许算术操作6Scl8M=1,键6Sclk,设置S[3..0]=0-F,键7CN=1,ALU四、实验步骤软件编译ALU表3-1ALU数据表
图3-4ALU仿真波形图ALU181S3、S2、S1S0ALU五、实验结果及问题分析或结论在实验过程中,计算出理论结果之后,我们在实验箱中分别进行了验证,从数码管读出的结论与我小组计算得出的结果一致。实验4程序计数器PC与地址寄存器AR实验一、实验内容PC1ARPCBUS二、实验原理采用总线多路开关联接方式地址单元主要由三部分组成:程序计数器PC、地址寄存器AR和多路开关BUSMUXPCCPUPCPC4-64T41LDPC(如子程序调用或中断相应等LDPCdata[0(高电平清零aclrSRAMPCFPGABUSMUXLDARselLDARLDAR图4-1采用总线多路开关联接方式PC、ARlpm_bustriBUSPCARRAMPCARlpm_bustriPCPCPC_CLK的1LOAD_PC(如子程序调用或中断响应等LOAD_PCdata[7..0]RST(高电平清零RSTARlpm_latchSRAM4-2采用PCARlpm_bustriBUS三、实验任务采用总线多路开关联接方式4-1,0对输入原理图进行编译、引脚锁定、并下载到实验台。首先下载pc_unit.sof,用模式键选模式“0”,218B[7..0(D1~D82/1CL(52(010),BUSMUXPCLDAR=1BUSMUXB[7..0]LDP(7PCLDPC=1B[7..0]PCLDPC=0PCT4;T4(8:程序计数PC8B[7..0]设置程序计数器的预加载数据。当LDPC=0时,观察程序计数器自动加1的功能;当LDPC=1PC、ARlpm_bustriBUS4-2,LPMlpm_latchlpm_counterlpm_bustriNo.0。四、实验步骤软件编译仿真波形图图3-3仿真波形图分析报告采用总线多路开关联接方式0,2/1A5;5PC0(01088/7ARPC6’1’,选A5PC8,AR(8/7)A5;6=0,PC2/186,7(010),即用LDPC86PC8,AR86:86、87、88等。PC、ARlpm_bustriBUS1283-8RST、PC_CLK、LOAD_PC、INPUT_BPC_BAR_CLK;D1-D812AR[7..0],3、4PC[7..0]对输入原理如进行编译、引脚锁定,并下载到实验台进行硬件验证。五、问题分析PCAR,ARRAM址的操作步骤。程序计数器)的值装入地址寄存器,然后PC1,以使得PCRAMAR执行分支/转移程序与执行顺序程序时,对地址单元的操作有何不同?PCRAMPCAR执行分支/转移程序时,ARPCBUSARPC1,的时序波形。PC自增1,LDPC=1,LDAR=1。4-66DATA[7..0]PCAR,ARLOAD_PCPCARAR4-64PCAR上实现程序分支和程序转移的功能。LDPCLDART4PCAR线上的数据时序波形如下:同?PC1RAM波形图如图:ARRAMPCPCload。实验5微控制器组成实验一、实验内容掌握微程序控制器的工作原理和构成原理;掌握微程序的编写、输入,观察微程序的运行。二、实验原理CPU5-1LPM_ROM。
图5-1微程序控制器的电路结构I[7..2SWAFC、FZ,5-2
图5-2微指令控制电路微地址寄存器控制电路的基本输入信号是微指令存储器的下地址字段M[6..1SE[6..1]和复位信号RST5-3图5-3微地址寄存器电路数据寄存器译码控制电路在指令中除了操作码以外,还有源操作数寄存器和目的操作数寄存器。原理图如5-4所示:三、实验任务
图5-4数据寄存器译码控制微指令控制电路5-2系统中,选择实验台电路模式1。根据微程序控制器的内部结构,记录当FCFZI[7..2SE[6..1]的影响。观察、记录当微指令I[7..2]的值变化时,SE[6..1]的变化情况。P[4..1]I[7..2]SE[6..1]的影响。观察、记录SWA、SWB对输出微地址控制信号SE[6..1]的影响。微地址寄存器电路5-31。d[6..1]q[6..1]/转移情况下,当S[6..1]输出的微地址发生变化的情况。数据寄存器译码控制电路5-45。I[3..0]LDRIRD_BRS_BLDR0-LDR2、R0_B-R2_B四、实验步骤软件编译分析报告微指令控制电路126I[7..2]2FC、FZ;键3P[4..1];键4SWASWB;8T4;5、6SE[6..1]。微地址寄存器电路12Dd[6..1];43D“1”控S[6..1],7D(清零)控制信号,低电8CLK;7、8Dq[6..1]数据寄存器译码控制电路LDR0-LDR2、R0_B-R2_B发光管显示出译码的结果。五、问题分析SWA、SWBS[6..1]影响?从逻辑表达式的角度来看,SWA,SWBSE[6..1]下:从微程序控制的角度看:SWA=1SWB=1进入正常执行取数加和的循环程序SWA=0SWB=1进入循环写RAMSWA=0SWB=0进入循环读RAM在微指令控制电路中,当FCFZS[6..1]地址寄存器的输出有何影响,如何实现对程序的控制/转移功能。从逻辑表达式可以看出,FCFZSE[5]的值。通P[4..1]S[6..1]有何影响?影响由上图逻辑表达式可见。实验6基本模型机设计与实现一、实验内容LPM_ROM二、实验原理首先将简易计算机所需的基本部件进行确定,对本实验中的简易计算机,我们确定了以下基本部件:ALU:提供核心的运算功能寄存器组R0、R1、R2IR:指令寄存器用来保存当前正在执行的一条指令。当执存器。PC:寄存下一条将要执行的地址AR:地址寄存器用来保存将要寻址的指令或数据的地址。标志寄存器:Fc:1,Fz:0Fz1,0。微命令产生部件:产生计算机完成指令所需的基本微指令时序系统:周期、节拍、脉冲等信号指令对应一个微程序。Bit7Bit76543210ContentOpcodersrd助记符机器指令码Addr功能说明其中,OP-CODE:IN(输入、ADD(二进制加法ST(存数OU(输出JM(无条件转移,其指令格式如下(助记符机器指令码Addr功能说明IN00HXXHINPUT→R0ADDaddr10HXXHR0+[addr]->R0STAaddr20HXXHR0->[addr]OUTaddr30HXXH[addr]->BUSJMPaddr40HXXHaddr→PCrsrsrd选定的寄存器00R001R110R2IN(8,其余为双字长指令,XXHaddr十六进制地址码。RAM必须设计三个控制台操作微程序:存储器读操作(KRD:下载实验程序后按总清除按键(CLR)SWA、SWB“00”RAM存储器写操作(KWE:下载实验程序后按总清除按键(CLR)SWA、SWB“01”RAM启动程序(RP:下载实验程序后按总清除按键(CLR)后,控制台242322212019181716151413S3S2S1S0MCnWEA9A8A123456789101112uA0uA1uA2uA3uA4uA5CBSWA、SWB11”时,即可转入到微地址“01”令,启动程序运行。SWBSWA控制台指令00读内存01写内存11启动程序控制字段判别测试字段控制字段判别测试字段下地址字段24A、B、C1514A13SEL1211B10SEL98C7SEL000000000001LDRi001RS-B001P(1)010LDDR1010010011LDDR2011011100LDIR100100P(4)101LOAD101ALU-B101LDAR110LDAR110PC-B110LDPCuA5—uA0:的微地址。S3、S2、Sl、S0:ALU1616M:ALUM=0M=lCn:微程序控制器输出的进位标志信号,Cn=0ALU有进位,Cn=1WE:RAM/CE=0WE=0WE=1A9、A8——CS0、CS1、CS2SW_B、RAMLEDA(15、14、13)——通信号(6-1。B(12、11、10)——通信号。C字段(9、8、7) ——译码后产生分支判断测试信号P(1)~P(4)LDPC信号。全部微程序设计完毕后,应将每条微指令代码化,表6-26-2微地址微指令S3S2S1S0MCNWEA9A8ABCUA5—UA0000181100000000110000001000100000100ED820000000011101101100000100200C0480000000011000000010010000300E0040000000011100000000001000400B0050000000010110000000001010501A20600000001101000100000011006919A011001000110011010000000010700E00D000000001110000000001101100010010000000000010000000000011100ED830000000011101101100000111200ED870000000011101101100001111300ED8E0000000011101101100011101400ED9600000001111011011001011015038201000000110000010000000011600E00F0000000011100000000011111700A0150000000010100000000101012001ED920000000111101101100100102101ED940000000111101101100101002200A010000000001010000000010000230080010000000010000000000000012406201100000110001000000001000125070A010000011100001010000000012600D181000000001101000110000001顶层电路图为:图6-3顶层电路原理图三、实验任务了解所有控制信号的作用;掌握在QuartusIILPM_ROMCPU四、实验步骤软件编译仿真波形图
图6-2仿真波形图ALUDR1PCIRARBUSMC6-2微指令控制流程,单步跟踪微程序的执行情况。通过2、键1)五、问题分析除了已有的IN、ADD、STA、OUT、JMP指令外,再设计减法SUB、带进位加法ADDC、逻辑与AND、逻辑或ORXOR10流程图,写出微程序代码表,硬件实现选作。在原有指令的基础上再添加五条新指令,微程序如下:XOR:异或微程序为:PCARPC+1BUSRAM,ARBUS;BUSRAM,DR2BUS;DR1R0R0(DR1)XOR(DR2)OR:或微程序为:PCARPC+1BUSRAM,ARBUS;BUSRAM,DR2BUS;DR1R0R0(DR1)OR(DR2)SUB:减法微程序为:PCARPC+1BUSRAM,ARBUS;BUSRAM,DR2BUS;DR1R0R0(DR1)SUB(DR2)ANDL:逻辑与微程序为:PCARPC+1BUSRAM,ARBUS;BUSRAM,DR2BUS;DR1R0R0(DR1)ANDL(DR2)ANDC:带进位加微程序为:PCARPC+1BUSRAM,ARBUS;BUSRAM,DR2BUS;DR1R0R0(DR1)ANDC(DR2)SUB,我们认为ALU1010A19A01;ADDC,ALU1001,M=0,CN=1,95A01;AND,我们认为ALU1011,此时M=1,CN=0,B9A01;OR,ALU1001M=1,CN=0,999A01;XOR,我们认为ALU1010,此时M=1,CN=0,A99A01;ROMmif31添加指令。对此给出简单的一个实例如下:减法指令SUB:01EDC1->00E032->00B033->01A034->A19A01;mif31、32、33、34、35带进位加法指令:01EDC6->00E037->00B038->01A039->95A01;01EDC64036、37、38、39、406ALU图6-3补充后的微指令流程图实验7 K8051单片机核基本系统构建和测试一、具体应用描述在本次实验中,我们使用K8051LCD图7-14x4键盘示意图键1控制人物向上,键2控制人物向下,键3重新填装子弹(但分数会归零420二、硬件设计框图及相关描述图7-2硬件设计框图ROMhex(4x4三、Quartus下硬件设计原理图,模式以及引脚说明硬件设计原理图如下图:图7-3硬件设计原理图NodeNameLocationFunctionNodeNameLocationFunctionCLKRSTPIN_G21PIN_U7时钟输入重置POE[0]PIN_AA15DefaultPOE[2]PIN_AA14DefaultMTPIN_AB11DefaultNOPIN_AA11DefaultP0[0]PIN_AB8P0[1]PIN_AA8P0[2]PIN_AB5P0[3]PIN_AA5P1[7..0]LCD8P0[4]PIN_AB3数据输入P0[5]PIN_AB4P0[6]PIN_AA3P0[7]PIN_AA4P1O[0]PIN_AB16LCD2002RS位P1O[1]PIN_AB15LCD2002RW位P1O[2]PIN_AB13LCD2002EN位P1O[7]PIN_U10蜂鸣器BEEP位P3[7]PIN_AB17P3[6]PIN_AA17P3[5]PIN_AA18P3[4]P3[3]PIN_AB18PIN_AB19P3[7..0]4x48位输出P3[2]PIN_AA19P3[1]PIN_AB20P3[0]PIN_AA20表7-1引脚说明表四、软件设计流程图当用户子弹数耗尽时,显示游戏结束界面。五、C语言源代码整个游戏工程由以下代码组成:Shot.cmainlcd2004.clcd1602lcdKeyboard.c4x4出的执行逻辑函数,music.c源码依次如下:Shot.c#include<stdio.h>#include<stdlib.h>#include<LCD2004.c>#include<keyboard.c>#include<music.c>#include<ShotDisplay.c>#include<play.c>voidmain(){lcd1602(); //初始化显示屏while(1){P3=0xf0;displayStart(); //显示欢迎页面if((P3&0xf0)!=0xf0){break;}}
//判断是否有键按下MyGunP=GenerateT(); //targetdisplayInit(MyTargetP,MyGunP);//显示游戏画面while(1){P3=0xf0;if((P3&0xf0)!=0xf0){ys(10);
//判断是否有键按下Read(); //读取按键信息displayInit(MyTargetP,MyGunP);//if(Mybullet==0){break;
//判断子弹是否耗尽}ys(200);refresh();}
//清屏else{MyTargetP=GenerateT();displayInit(MyTargetP,MyGunP);ys(200);refresh();}}refresh();while(1){P3=0xf0;displayEnd(); //playvictory();//播放胜利音乐if((P3&0xf0)!=0xf0){break;}}}Lcd2004.c#include<reg51.h>#include<string.h>//后面字符串函数中取得数组的个数中用到 ;调strlen函数/**************************************************************************************///重新定义各个控制引脚的名称, sbit意思为<重定义>,,不要跟bit混,bit是汇编中"位"sbitrs=P1^0; //,rs10令sbitrwP1^1; //LCD1LCD,0LCDsbiten=P1^2; //LCD行动控制,ENEN1EN0;/**************************************************************************************//**************************************************************************************//*延时程序,作用在需要时进行延时,延时时长可以在调用函数中改变,如主程中调用: ys(5);括号中的"5"即为本函数中i的数值;*/voidys(inti)整形变量名称i)//无返回值函数名(定义{intt;//定义整形变量名称tfor(;i>=1;i--)//i1;i1<自减>)i{ //若i1;则进入下面一个循环for(t=120;t>1;t--) 循环(t120;1;t{ //空函数}}}/*********************************************延时程序结束*****************//********************************************* 读 忙 子 程 序**************///LCDLCDvoiddm() //无返回值函数名(空){P0=0xff; //把0xff发送给LCD的数据总rs=0; //选指令rw=1; //选择读en=1; //1(高电平)while(P0&0x80); //P00x80P00x80P0810000000//全部相同则结果为1<真>;忙状态成立,程序在此处死循环相与en=0; //0(低电平)}/**************************************************************************************//***********************************************写数据或指令子程序*******************/voidddata(intx,unsignedchar DATA)//x,定义长字符型变量DDATA){dm(); //读忙子程序P0=DATA; //DDATA获取到的变量赋值<P0>rw=0; //<0>rs=x; //<x>的值,x0或者1;为0表示总线传输的是控制LCD指令,为1表示要显示的数en=1; //使能端置1en=0; 0;接上一条指令形成一个下降沿识别到下降沿信号则读取总线内容}/**************************************************************************************//************************************************LCD******************/
初始化函数voidlcd1602(){//无返回值函数名(空)rs=1;//rs设置为数据rw=1;//rw设置为读en=1;//en设置为高电平P0=0xff;//总线写入0xffys(15);//长延时ddata(0,0x38);//函数名指令,指令内容) // 0发送给ddatax,ddatarsrs;;0x38容据接口右移}
ys(5); //短延时ddata(0,0x38); //0x3816*2,5*7,8ddata(0,0x08); //0x08表示只开显ddata(0,0x01); //0x01表示清屏ddata(0,0x06); //0x06 1,当写入数据的时候光标ddata(0,0x0c); //0x0c表示开显示,不显示光标/*************************************************************************************//*************************************************显示单个字符*********************/voidxianshi(unsignedchari,unsignedcharj,unsignedcharDDATA)//无返回值函数名(定义字符形参i,字符形参j,字符形参DDATA){if(i==0) //(i1<真>){j=j+0x80; 第二行起始地址加上列数为字符显示地址//把j加0x40后的值赋给j;;等同于j+=0x40 ,}elseif(i==1){j=j+0x80+0x40;}//同上,0x80ifj=第二行首字母的地址elseif(i==2){j=j+0x80+20;}else{j=j+0x80+0x40+20;}ddata(0,j); //ddata(1,DDATA);//}/**************************************************************************************//***************************************************显示字符串************************/voidxianshi1(unsignedchary,unsignedcharx,unsignedcharshuzu0[])//函数名参数定义{unsignedcharj; //参数定义unsignedchari; //参数定义intk=1; //定义整形参数k并赋值为1i=0; //i赋值为0j=strlen(shuzu0)+x; //j=取数组个数加x<j,j之间for(;k>0;) //如果k大于0;空){ //则!// 判断if(x<j) //如果(当前显示列数x<最后一位字符的列数j){ //则!{xianshi(y,x,shuzu0[i]); //y<01>送出,列x<0~15ix++;//
x++; i++; }! }
1ielse{k=0;
置0,for循环退出}}}voidrefresh(){dm();en=0;rs=0;rw=0;P0=0x01;en=1;en=0;lcd1602();}keyboard.c#defineucharunsignedcharsbitdula=P2^6;sbitwela=P2^7;uchark=16;ucharkeyscan();//子函数声明ucharcodetab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0};voiddelay(ucharz)//短暂延时函数{ucharx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}ucharkeyscan(){ucharrow,col,i;ucharcodekeycode[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};P3=0xf0;if((P3&0xf0)!=0xf0){delay(5);if((P3&0xf0)!=0xf0){row=P3&0xf0;//得到列值P3=row|0x0f;col=P3&0x0f;//得到行值for(i=0;i<16;i++)if((col|row)==keycode[i]){k=i;break;}P3=0xf0;while((P3&0xf0)!=0xf0);}}returnk;}Play.c//unsignedcharoldscanrs;//unsignedcharnewscanrs;unsignedcharscanrs;voidRead(){ //scanrs=keyscan();//if(oldscanrs!=newscanrs){if(scanrs==2){MyGunP=DownGun(MyTargetP,MyGunP);//如果按下的是2MyGun向下}elseif(scanrs==6){MyGunP=UpGun(MyTargetP,MyGunP);//如果按下的是6MyGun向上}elseif(scanrs==1){ //1Mybullet=Mybullet-1; //子弹数减一JudgeShot(MyTargetP,MyGunP);//判断有没有射中playfire(); //播放开火的音乐}elseif(scanrs==5){ //判断是不是5键按Mybullet=20; //子弹数归为20Myscore=0; //分数清零}//}}ShotDisplay.cunsignedcharMyTargetP;unsignedcharMyGunP;unsignedcharcodescore[]={"Score"};unsignedcharcodebullet[]={"Bullet"};unsignedcharcodeStart[]={"ShootGAME!WELCOME!"};unsignedcharcodePress[]={"PressAnyKeytoStart"};unsignedcharcodeGameOver[]={"GameOver!Thanks"};unsignedcharcodeFinalScore[]={"FinalScoreis"};intMyscore=0,Mybullet=20;intMyscore0,Myscore1,Mybullet0,Mybullet1;inti;voiddisplayStart(){//显示开始画面xianshi1(1,1,Start);xianshi1(2,2,Press);}voiddisplayEnd(){//显示结束画面xianshi1(1,2,GameOver);xianshi1(2,3,FinalScore);Myscore0=Myscore%10;Myscore1=(Myscore/10)%10;xianshi(2,18,Myscore1+'0');xianshi(2,19,Myscore0+'0');xianshi1(3,2,Press);}voiddisplayInit(unsignedcharTargetP,unsignedcharGunP){ //根据位置信息显示游戏画面xianshi(GunP,10,'T');xianshi(TargetP,1,'#');xianshi(0,12,'G');xianshi(1,12,'A');xianshi(2,12,'M');xianshi(3,12,'E');Myscore0=Myscore%10; //计算十位Myscore1=(Myscore/10)%10; //计算个位Mybul
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年长江流域生态修复工程合同
- 2024年版房地产投资合作合同书版B版
- 2025年度旅游风景区摊位租赁服务合同3篇
- 2024监理服务合同
- 2024年经典股权转让三边合同范本
- 2024铁艺工程劳务分包合同协议书
- 2024年餐饮业加盟协议细则及模板版B版
- 2024版品牌使用权授权协议版B版
- 2024幼儿园房屋租赁合同
- 2024模板工智能家居背景音乐系统安装单项工程合同范本6篇
- 2024年第五届插花花艺行业技能竞赛理论考试题库(含答案)
- 军事理论(2024年版)学习通超星期末考试答案章节答案2024年
- 二年级下册混合计算题100道及答案
- DBJ∕T 15-19-2020 建筑防水工程技术规程
- 2025届浙江省杭州市学军中学生物高一第一学期期末统考试题含解析
- 互助资金管理办法
- 青岛版科学四年级下册课程纲要
- 金葡素注射液与血小板功能的关联
- 澳门的英文5篇
- 财富:2024年《财富》世界500 强排行榜
- NB/T 11434.5-2023煤矿膏体充填第5部分:胶凝材料技术要求
评论
0/150
提交评论