如何实现单片机通过串口定时发送所有IO管脚上的数值

2019-07-14 19:18发布

求助各位老师:
     做实验需要,我现在有20对红外对射管用来监测小鼠的活动的(分成4组,每只小鼠用到5对红外对射管),工作时每对都会产生0或5V的数字信号,我将他们依次连接在51单片机(晶振11.989120M)上的P0/P1/P2管脚上。
     现在我想每50ms(采样率为20Hz)将这些IO口上的实际值依次采集,然后按照顺序通过串口发送给电脑,用串口助手来在收集采集到的数据
     这个单片机的程序该怎么写呢?由于自己是外行,尝试写了很久也没能搞定,这个是不是需要两个定时器才能完成,一个是来设置串口波特率,另一个用来定时50ms的定时采样,有点晕了。

先谢谢了!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
0906356
2019-07-15 17:44
Control8 发表于 2017-9-2 20:00
首先,楼主写的这个串口初始化有问题,未设置串口工作模式,一般设置SM0=0,SM1=1,为10位异步收发模式(8位数据),波特率可变,若需接收还需将接收允许位REN置1,还有助手和单片机的波特率要设置相同。

多谢指点!但我写的“SCON=0x50;”这句不是已经说明了SM0=0,SM1=1,及REN=1了吗?还需再额外定义吗?另外我串口助手用的9600,与我程序应该是对应的吧,不过4800也试了,也没有用。

一周热门 更多>