单片机采集脉冲信号编程
用单片机的P1口接收脉冲信号,P1.0与秒脉冲相连,下降沿的时候开始采集数据,P1.1至P1.4接要采集的脉冲信号,频率为32hz,请问如何编程?程序中大体要包括哪几部分...
用单片机的P1口接收脉冲信号,P1.0与秒脉冲相连,下降沿的时候开始采集数据,P1.1至P1.4接要采集的脉冲信号,频率为32hz,请问如何编程?程序中大体要包括哪几部分?
展开
2个回答
展开全部
楼上回答有误,很明显输出入信号多于2路,用普通IO口可以。
程序中主要做好扫描和判断,不停读P1.0口,如果上次读到的为1,这次读到的是0,既可以判断为下降沿,这时可以设一个标记位,标示1秒脉冲来了。
然后进入P11~P14的判断,同理,判断上次和当前次电平,每个下降沿或者上升沿计数一次(开4个变量),当P1.0的标记位没有的时候(1秒过了),读出变量值即为脉冲个数,也就是频率了
程序中主要做好扫描和判断,不停读P1.0口,如果上次读到的为1,这次读到的是0,既可以判断为下降沿,这时可以设一个标记位,标示1秒脉冲来了。
然后进入P11~P14的判断,同理,判断上次和当前次电平,每个下降沿或者上升沿计数一次(开4个变量),当P1.0的标记位没有的时候(1秒过了),读出变量值即为脉冲个数,也就是频率了
追问
恩,好像有点懂了。不过P1.1-P1.4的信号是32hz的,但两次的信号不一定会有变化,那程序中不是也应该有延时的部分吗?
追答
最好不要,因为使用的是扫描方式,你是不确定信号是什么时候来的,加了延时很容易丢掉采集信号,这也是扫描方式的弱点,需要不停的扫描。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询