最好的电子音响科技diy制作网站

haoDIY创好电子音响电脑科技DIY小制作发明

当前位置: 主页 > 最新DIY > 综合DIY >

看geek怎么玩白块儿

时间:2017-07-05 02:49来源:本站 作者:haodiy 点击:
突发奇想做的这个东东 没有什么实用价值 只作为一次实践一般情况我们想在游戏里“耍流氓”都是通过软件方法即开关 但我就是想通过 “物理方法”来玩别踩白块儿

突发奇想做的这个东东  没有什么实用价值 只作为一次实践   一般情况我们想在游戏里“耍流氓”都是通过软件方法即 开挂,  但我就是想通过“物理方法”来玩别踩白块儿  嘿嘿

先上视频:


视频里 因为第二个电磁铁回弹有点问题所以卡了几次 

原理:用四个光敏电阻来测 手机游戏里的四个位置   然后用单片机AD转换  来驱动四个电磁铁(我是拆了四个继电器)点击手机屏幕上相应的位置

 

先拆继电器

看geek怎么玩白块儿


看geek怎么玩白块儿

拆好后在 弹片上焊上一个电阻的引脚

看geek怎么玩白块儿

弄四个

看geek怎么玩白块儿

PS:这里引脚的头上是锡箔纸 后来发现点击手机屏幕的效果不好 所以就换成了四个电容笔的头

焊到板上

看geek怎么玩白块儿


看geek怎么玩白块儿


看geek怎么玩白块儿

然后焊上线 就不插图了

now  把光敏电阻 按手机的游戏界面的位置 焊到板上 引脚留长一点 方便测光(我在多处来的引脚上套了热缩管来防止干扰)

看geek怎么玩白块儿


看geek怎么玩白块儿


看geek怎么玩白块儿

这里我在板的两端焊了粗漆包线 来当支架

合影

看geek怎么玩白块儿

然后  一系列编程  调试

看geek怎么玩白块儿

电路图附上:

看geek怎么玩白块儿

程序(估计用不着,但里面的几个单片机的关于ADC的模板可能用的着):

---------------------------------------------------------------------------------------------------------------------------------------------------

#include //单片机头文件
#include  //51基本运算(包括_nop_空函数)


sbit  AAA   = P3 ^ 2;
sbit  BBB   = P3 ^ 3;
sbit  CCC   = P3 ^ 4;
sbit  DDD   = P3 ^ 5;
/*********************************************************************************************/

/*********************************************************************************************
函数名:毫秒级CPU延时函数
调  用:DELAY_MS (?);
参  数:1~65535(参数不可为0)
返回值:无
结  果:占用CPU方式延时与参数数值相同的毫秒时间
备  注:应用于1T单片机时i<600,应用于12T单片机时i<125
/*********************************************************************************************/
void DELAY_MS (unsigned int a){
 unsigned int i;
 while( --a != 0){
  for(i = 0; i < 600; i++);
 }
}
/*********************************************************************************************/
/*********************************************************************************************
函数名:8位A/D转换初始化函数
调  用:Read (?);
参  数:输入的端口(0000 0XXX 其中XXX是设置输入端口号,可用十进制0~7表示,0表示P1.0,7表示P1.7)
返回值:无
结  果:开启ADC功能并设置ADC的输入端口
备  注:适用于STC12C2052AD系列单片机(必须使用STC12C2052AD.h头文件)
/**********************************************************************************************/
void Read_init (unsigned char CHA){
 unsigned char AD_FIN=0; //存储A/D转换标志
    CHA &= 0x07;            //选择ADC的8个接口中的一个(0000 0111 清0高5位)
    ADC_CONTR = 0x60;  //ADC转换的速度(0XX0 0000 其中XX控制速度,请根据数据手册设置)
    _nop_();
    ADC_CONTR |= CHA;       //选择A/D当前通道
    _nop_();
    ADC_CONTR |= 0x80;      //启动A/D电源
    DELAY_MS(1);            //使输入电压达到稳定(1ms即可)
}
/**********************************************************************************************/
/*********************************************************************************************
函数名:8位A/D转换函数
调  用:? = Read ();
参  数:无
返回值:8位的ADC数据
结  果:读出指定ADC接口的A/D转换值,并返回数值
备  注:适用于STC12C2052AD系列单片机(必须使用STC12C2052AD.h头文件)
/**********************************************************************************************/
unsigned char Read (void){
 unsigned char AD_FIN=0; //存储A/D转换标志
    ADC_CONTR |= 0x08;      //启动A/D转换(0000 1000 令ADCS = 1)
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    while (AD_FIN ==0){     //等待A/D转换结束
        AD_FIN = (ADC_CONTR & 0x10); //0001 0000测试A/D转换结束否
    }
    ADC_CONTR &= 0xE7;      //1111 0111 清ADC_FLAG位, 关闭A/D转换,
return (ADC_DATA);          //返回A/D转换结果(8位)
}
/**********************************************************************************************
主函数
**************************************************************************************************/
void main (void){
                    unsigned char a;
        unsigned char b;
                    unsigned char c;
                    unsigned char d;
                    P1M0 = 0x0f;
   
   AA:
              while(1){
        Read_init (0);
                   DELAY_MS (2);
            a = Read ();
                Read_init (1);
                    DELAY_MS (2);
               b = Read ();
                Read_init (2);
                       DELAY_MS (2);
                c = Read ();
                Read_init (3);
                       DELAY_MS (2);
                d = Read ();
         

if(a<80){AAA = 0 ;
                                             DELAY_MS (200);
                                              AAA=1;
                                                goto AA ;};
                                             

if(b<80){BBB = 0 ;
                                          DELAY_MS (200);
                                          BBB=1;
                        goto AA;};


          if(c<80){CCC = 0 ;
                                           DELAY_MS (200);
                            CCC=1;
                   goto AA;};           
                                         


          if(d<80){DDD = 0 ;
                                           DELAY_MS (200);
                                           DDD=1;
                   goto AA;};
                                        
            }


    
    }

-------------------------------------------------------------------------------------------------------------------------------------------------------

Thanks watching! 祝大家新年快乐!

(责任编辑:admin)
织梦二维码生成器
顶一下
(0)
0%
踩一下
(0)
0%
相关文章
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
栏目列表
广告位API接口通信错误,查看德得广告获取帮助
推荐内容
广告位API接口通信错误,查看德得广告获取帮助