小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 13335|回复: 11

用wifirobotV1.2 怎么实现在按键按下的时候采用响应,松开的时小车停

[复制链接]
发表于 2013-8-5 15:33:40 | 显示全部楼层 |阅读模式
具体问题是这样的我第一次编程的时候实现的在按键按下的时候才有响应松开就停止了。可是不知道怎么回事第二天就变了(或者我无意中改了什么)。
我被弄糊涂了,今天中午只好挨个试发现在调用左转的时候后面加个else ting 就可以实现左转和右转时候只有按键按下才有响应,松开的时候小车停
但是前进和后退就不管用了,按下也没有响应,,,,求帮助!十分感谢
程序如下



#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
int a;
//static temp;
sbit int1=P1^0;
sbit int2=P1^1;
sbit int3=P1^2;
sbit int4=P1^3;
//sbit d1=P2^1;
//sbit d2=P2^2;
void qianjin();
void zuozhuan();
void youzhuan();
void houtui();
void ting();
void delay(uint ms);
void main()
{

        TMOD=0x20;//设置定时器1为工作方式2
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;//允许串行接收
        SM0=0;
        SM1=1;
      while(1)
                {
                        if(RI==1)
                        {
                        RI=0;
                        a=SBUF;

                              if(a==1)
                                 {
                                    qianjin();
                                          
                                 }                               
                               
                                 if(a==2)
                                 {
                                  houtui();
                                       
                                 }
                                  


                                 if(a==3)
                                 {
                                    zuozhuan();
                               
                                 }else
                                 ting();
                                 


                                 if(a==4)
                                 {
                                    youzhuan();
                                 }
               
                 
               

           }  
    }}
         

void  qianjin()
{
    int1=1;
        int2=0;
        int3=1;
        int4=0;
}
void houtui()
{
    int1=0;
        int2=1;
        int3=0;
        int4=1;
}
void delay(uint ms)               //延时ms毫秒
{
   uint i,j;
   for(i=ms;i>0;i--)
       for(j=110;j>0;j--);
}

void zuozhuan()
{
    int1=1;
        int2=0;
        int3=0;
        int4=1;
}
void youzhuan()
{
    int1=0;                                    
        int2=1;
        int3=1;
        int4=0;
}
void ting()
{
    int1=1;                                    
        int2=1;
        int3=1;
        int4=1;
}

回复

使用道具 举报

 楼主| 发表于 2013-8-5 15:36:11 | 显示全部楼层
奥 软件是wifirobotV1.02
回复 支持 反对

使用道具 举报

发表于 2013-8-5 16:20:06 | 显示全部楼层
梦想没有终点 发表于 2013-8-5 15:36
奥 软件是wifirobotV1.02

还用单字符呢啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-5 17:10:09 | 显示全部楼层
顶顶 ,求网友帮助,时间紧任务重...
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 08:26:42 | 显示全部楼层
还没有人啊 ,老大liuviking哪去了 我在顶顶, 用的是老大的安卓客户端的软件   
回复 支持 反对

使用道具 举报

发表于 2013-8-6 12:24:17 | 显示全部楼层
//sbit d1=P2^1;
//sbit d2=P2^2;
两个使能端有没有给信号?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-6 13:44:00 | 显示全部楼层
从前 发表于 2013-8-6 12:24
//sbit d1=P2^1;
//sbit d2=P2^2;
两个使能端有没有给信号?

   这个没有问题的  使能端有信号的
回复 支持 反对

使用道具 举报

发表于 2013-8-8 21:16:26 | 显示全部楼层
if(a==1)
                                 {
                                 a=0;
                                    qianjin();
                                          
                                 }                  
这样不知对不对,每一条都这样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-8-9 21:36:15 | 显示全部楼层
sogalufei 发表于 2013-8-8 21:16
if(a==1)
                                 {
                                 a=0;

貌似不是这个情况
回复 支持 反对

使用道具 举报

发表于 2013-8-10 11:40:22 | 显示全部楼层
是查询方式呀?怎么不用中断方式呢?这个既不高效,也不稳定
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-23 09:13 , Processed in 1.098602 second(s), 19 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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