PIC10F200程序问题,检测GP1和GP2是否为高来控制GP0输出时序问题,求助!!

[复制链接]
 楼主| 慕落城 发表于 2012-12-24 23:49 | 显示全部楼层 |阅读模式
主要功能:1、检测GP1和GP2是否为高来控制GP0的高低,从而输出一段时序。
问题:1、GP1 GP2配置为输入后,硬件上给高电平,但是if仍然判断不到GP1==1,不能继续执行if里面的语句。
2、无论GP1  是否为高,一直在执行if里面语句,即IF判断失效。
3、用NOP()可以正常延时,但是用自己写得delay函数就不跑不过去了。编译无错误。
程序如下,望各位多多指点错误之处,必细心修改,比较急,在线等!
#include<pic.h>

//__CONFIG(RC & WDTEN & UNPROTECT);
__CONFIG(0x08);
#define uchar unsigned char
#define uint unsigned int
#define Trigger GP0
#define Status  GP1
#define Reset   GP2


void delaytime(uchar i)
{
   uint j;
    for(;i>0;i--)
        for(j=0;j<400;j++)asm("clrwdt");
}

void init(void)
{
        TRIS = 0B00000110;        //GP0配置为输出,GP1、GP2为输入
        OPTION = 0X00;                        //GP0、GP1、GP2配置为IO口
        FOSC4=0;                                                
        Reset  = 0;
  Status = 1;       
  Trigger= 0;
}

void main()
{
  init();
/****检测延时用
  while(1)
  {
          NOP();NOP();
          delaytime(138);//1秒
          Trigger = 1;  
          delaytime(138);//1秒
          Trigger = 0;  
          delaytime(138);//1秒
          Trigger = 1;  
          delaytime(138);//1秒
          Trigger = 0;
          delaytime(138);//1秒               
  }  
******/         
  while(1)
  {
          if(Reset==1)
          {
                  delaytime(138);//1秒
                  Trigger = 1;
                  delaytime(690);//5秒
                  Trigger = 0;
                  delaytime(414);//3秒
                  Trigger = 1;
                  delaytime(69);//500毫秒
                  Trigger = 0;
                  if(Status!=1)
                  {
                          delaytime(138);//1秒
                          Trigger = 1;
                          delaytime(69);//500毫秒
                          Trigger = 0;
                  }                                 
          }
   // asm("clrwdt");      
  }        
}
我QQ136314885,希望大家能指点!
 楼主| 慕落城 发表于 2012-12-25 00:02 | 显示全部楼层
附电路图如下:

本帖子中包含更多资源

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

×
 楼主| 慕落城 发表于 2012-12-25 09:11 | 显示全部楼层
本人新手,希望大家能指点下。
yewuyi 发表于 2012-12-25 11:00 | 显示全部楼层
请不要写delaytime这样的函数,请使用定时器。
victor07033 发表于 2016-1-9 13:34 | 显示全部楼层
yewuyi 发表于 2012-12-25 11:00
请不要写delaytime这样的函数,请使用定时器。

这款芯片,定时器怎么使用啊?拜托指教下,万分感谢!
JY-DX-JY 发表于 2016-1-9 14:22 | 显示全部楼层
你怎么把喂狗指令屏蔽了?
kfhzy 发表于 2016-1-11 09:19 | 显示全部楼层
JY-DX-JY 发表于 2016-1-9 14:22
你怎么把喂狗指令屏蔽了?

好象是把喂狗指令当作延时指令用了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

0

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部