AT89C52记脉冲个数(C语言)

2019-07-15 11:13发布

P1.4采集信号,信号0,1,0,1,0,1,时P2.4输出1,下一个0,1,0,1,0,1时P2.4输出0,然后循环往复。
我本来计P1.4的脉冲个数,将个数模除12以此来决定输出,不过脉冲计数会溢出,这个长时间工作就会不准确,不知道能不能将记P1.4的个数,然后这个个数以12循环,这样就应该可以实现我的功能。如果可以,这个程序该怎么写?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
wulinwl
2019-07-16 22:17
zxn1314520 发表于 2017-4-23 18:06
错了,是count1=-1

这样改一下就可以解决初始计数问题
void io_rest()
{
        if(IN3==0)       
        {       
                count++;       
                if(count>=250)       
                {
                        count=250;
                        if(flag==0)               
                        {
                                flag=1;       
                                count1++;               
                                if(count1>=4)       
                                {
                                        count1=1;       
                                        OUT2=~OUT2;       
                                }
                        }
                }
        }
        else                                               
        {
                flag=0;                               
                count=0;                               
        }
}

一周热门 更多>