Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 3942|回复: 17

20电信本3班侯晓林组:打地鼠游戏

[复制链接]

1

主题

11

帖子

59

积分

注册会员

Rank: 2

积分
59
发表于 2022-11-3 21:37:17 | 显示全部楼层 |阅读模式
仿真负责人:王焕,尹一帆
仿真图

仿真文件


第二次修改后()

仿真图

仿真文件

程序


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

399

主题

1251

帖子

4020

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4020
发表于 2022-11-4 22:28:23 | 显示全部楼层
程序文件呢?
回复

使用道具 举报

1

主题

11

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2022-11-5 08:00:15 | 显示全部楼层

老师这个是当时仿真时的程序,现在的程序还在修改
#include<reg51.h>
#include<stdlib.h>
#define uchar unsigned char
#define uint unsigned int
sbit P2_4=P2^4;



uint tt,u,aa,i,aaa,bbb;
uchar temp,zuo ,you ,zuo1,you1,num,bb,flag=0;
uchar code led[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar code xianshi1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
               0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--) ;
}
void init_time0()          //定时器
{
        tt=0;
        TMOD=0x02;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
}
void time0() interrupt 1
{
        tt++;           //中断次数计数
}
uint suiji()
{
        if(tt==100)
                tt=0;
        srand(tt);
        u=(rand()%8);  //产生0到7内的随机数
        return u;
}
void display(uchar zuo1,uchar you1)
{
        P2=0x12;        //左边数码管
        P0=xianshi1[zuo1];
        delay(5);
        P2=0x11;   //右边数码管
        P0=xianshi1[you1];
        delay(5);               
}

unsigned char key;


void keyscan(void)

{

        P1=0xff;

   temp=P1;

   temp=temp&0xf0;

   if(temp!=0xf0)

   {

                delay(10);

      if(temp!=0xf0)

      {       

                        temp=P1;

                        switch(temp)

                        {

                                case 0xee:  if(led[aa]==0xfe) {flag=0; aaa=0;}
                                              else{ P3=0xff;  P2_4=0;delay(5); P2_4=1;}
                                                       
                                                        break;

                                case 0xde:        if(led[aa]==0xfd) {flag=0; aaa=0;}
                                              else{ P3=0xff;  P2_4=0;delay(5); P2_4=1;}
                                            break;
                                                                                                                                        // 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f
                                case 0xbe:  if(led[aa]==0xfb) {flag=0; aaa=0;}
                                              else{ P3=0xff;  P2_4=0;delay(5); P2_4=1;}
                                           break;

                                case 0x7e:        if(led[aa]==0xf7) {flag=0; aaa=0;}
                                              else{ P3=0xff;  P2_4=0;delay(5); P2_4=1;}
                                                         break;

         }

         while(temp!=0xf0)

                        {

                                temp=P1;

                                temp=temp&0xf0;                               

         }               

                }

        }

//        P1=0xfd;
//
//        temp=P1;
//
//        temp=temp&0xf0;
//
//        if(temp!=0xf0)
//
//        {
//
//                delay(10);
//
//                if(temp!=0xf0)
//
//      {
//
//                        temp=P1;
//
//                        switch(temp)
//
//                        {
//
//                                case 0xed:         key=4;break;
//
//                                case 0xdd:        key=5;break;
//
//                                case 0xbd:        key=6;break;
//
//                                case 0x7d:        key=7;break;
//
//         }
//
//         while(temp!=0xf0)
//
//         {
//
//           temp=P1;
//
//           temp=temp&0xf0;
//
//         }
//
//      }
//
//        }

//        P1=0xfb;
//
//        temp=P1;
//
//        temp=temp&0xf0;
//
//        if(temp!=0xf0)
//
//        {
//
//                delay(10);
//
//      if(temp!=0xf0)
//
//      {
//
//                        temp=P1;
//
//                        switch(temp)
//
//                        {
//
//                                case 0xeb:        key=8;break;
//
//                                case 0xdb:        key=9;break;
//
//                                case 0xbb:        key=10;break;
//
//                                case 0x7b:        key=11;break;                               
//
//         }
//
//               
//
//                        while(temp!=0xf0)
//
//         {
//
//                                temp=P1;
//
//                                temp=temp&0xf0;
//
//         }
//
//      }
//
//   }
//
//        P1=0xf7;
//
//   temp=P1;
//
//   temp=temp&0xf0;
//
//   if(temp!=0xf0)
//
//   {
//
//      delay(10);
//
//      if(temp!=0xf0)
//
//      {
//
//                        temp=P1;
//
//                        switch(temp)
//
//                        {
//
//                                case 0xe7:        key=12;break;       
//
//                                case 0xd7:        key=13;break;       
//
//                                case 0xb7:        key=14;break;       
//
//                                case 0x77:        key=15;break;       
//
//         }
//
//                        while(temp!=0xf0)
//
//         {
//
//                                temp=P1;
//
//                                temp=temp&0xf0;
//
//         }

      }

//        }
//
//}
void main()
{
        if((P2&0x08)==0x00)
        {
                   display(16,16);
        }
        else
        {       
        num=0;
        init_time0();         //启动定时器
       
        if((P2&0x04)==0x00)                //开关被按下,开始游戏
        {       
                   while(1)
                {  
                aaa=1;
                bbb=0;
                aa=suiji();
                P3=led[aa];
                for(i=0;i<200;i++)//出洞速度
                {
                       
                        if(aaa==1)
                        {        if(temp!=0xff)
                        {          flag=1;
                                   keyscan();
//                                   if((temp==led[aa])&&(flag==1))         //按键正确则下一个
//                                {
//                                        num++;
//                                        aaa=0;
//                                        flag=0;
//                                }
//                                else
//                                {
//                                                 while(1)
//                                                {
//                                                           P3=0xff;
//                                                           display(zuo,you);
//                                                           P2_4=0;
//
//                                                        delay(5);
//                                                           P2_4=1;
//
//                                                }
//                                       
                                       
                               
//                                }
                        }
                               
                        }
                        zuo=num/10;
                        you=num%10;
                        display(zuo,you);
                }
                }
               
        }
        }
}
回复

使用道具 举报

1

主题

11

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2022-11-5 23:22:26 | 显示全部楼层
本帖最后由 aaaa 于 2022-11-5 23:24 编辑

老师,第二次程序修改,仿真,实物测试已经完成,我在上面加上了第二次的仿真图片,文件,程序(按键需要稍微按久一点),麻烦老师再看一下
回复

使用道具 举报

399

主题

1251

帖子

4020

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4020
发表于 2022-11-6 07:33:17 | 显示全部楼层
好,继续修改
回复

使用道具 举报

1

主题

11

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2022-11-10 16:28:42 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

11

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2022-11-10 16:59:58 | 显示全部楼层
仿真图


仿真源文件
程序

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

399

主题

1251

帖子

4020

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4020
发表于 2022-11-24 14:46:16 | 显示全部楼层
再改

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

11

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2022-11-24 20:56:43 | 显示全部楼层
老师,改完了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

1

主题

11

帖子

59

积分

注册会员

Rank: 2

积分
59
 楼主| 发表于 2022-11-24 21:29:11 | 显示全部楼层



老师,修改完了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-6-8 11:31 , Processed in 0.042639 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表