打印

PIC12F510定时延迟

[复制链接]
1002|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jdx0606|  楼主 | 2014-7-18 09:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
小弟想用这款单片机实现一段时间的延迟,具体做法就是GP1端口检测到高电平并且持续3分钟后GPO输出高电平,但是小弟试了一下,如果DELAY的时间长点,GPO端口电平不变化,DELAY短了倒是有变化,但是一直跳变,不延迟倒是可以,不知道问题出在哪地方了。有哪位用过这款芯片的可以给点指导吗?

#include <pic.h>
__CONFIG(0x0FCA); //采用内部4MHz RC,
void DELAY(unsigned int n);
unsigned char value;
unsigned int i=0,j=0;
void main(void)
{
        ADCON0=0b00000000; //最高二位为0,引脚均为数字口
        TRIS=0b00000010; //GP3只能作为输入脚
        CM1CON0=0; //关闭比较器
        GPIO=0b00000000;
        value=GPIO;
        while(1)
        {
                value=GP1;       
                if(value!=0)
                {
                //        for(i=0;i<1000;i++)
                //        {for(j=0;j<108;j++);}
                        DELAY(100);       
                        if(value!=0)
                                GP0=1;
                }
        }
}
//======延时(n)s
void DELAY(unsigned int n)
{
        OPTION=0x01;
        TMR0=0;
        for(i=0;i<n;i++)
        {
                for(j=0;j<50;j++)
                {
                        if(TMR0>=200)
                                TMR0=0;
                       
                }
        }
}

相关帖子

沙发
zhangmangui| | 2014-7-18 23:29 | 只看该作者
延时函数里面这些是干啥的  
if(TMR0>=200)
      TMR0=0
建议你别再延时函数里面配置寄存器  
延时就只用来延时
                        

使用特权

评论回复
板凳
jdx0606|  楼主 | 2014-7-22 13:09 | 只看该作者
这款单片机没有中断,也没有溢出标志位,这是没办法才采取的方式

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

45

帖子

1

粉丝