请帮帮忙!

2019-03-24 19:46发布

现在我想写个程序不知道用at89c51可不可以实现:
  1.外部接收一组矩形脉冲信号,信号的宽度为100,200,300,400ms(无规律

出现),信号二十秒一帧,一分钟三帧信号,(此信号为时间信号),输入到51

的I/O口,单片机判断脉冲信号的宽度。然后,根据信号的格式输出时间(数码

管显示)。
   2.是否可以用定时器来实现,他是怎么样实现的?


  请各位帮帮忙! 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
chunyang
1楼-- · 2019-03-24 22:18
这当然需要用定时器,用51的话,最好采用带有t2定时器的型号即89C52等,如果外中断有富裕资源,最好采用中断触发的方式,即在外中断服务程序中启动定时器,定时器要置初值为0,然后用IO查询的办法,当脉冲结束时读取定时器的值,这里要注意的是,如果定时器溢出周期短于脉宽,要人工记录一下溢出次数,显示时别忘了加上这段时间。
rpg_9527
2楼-- · 2019-03-24 23:43
 精彩回答 2  元偷偷看……
终极菜鸟
3楼-- · 2019-03-25 04:52
可以!你的是超声波测距?时间觉得不对!
辛昕
4楼-- · 2019-03-25 08:44
已经够详细了。
单片机怕的是测小时间,都毫秒级甚至秒级了,51完全能做。
关于Chunyang老师的建议。我加一点补充
如果对外部中断没什么别的用途。
直接选择外部中断输入口做检测,这样就可以使 定时器随中断自动停启。然后在定时器中断里计数——计数就是计时,因为你要测量的时间长度较长,一次定时长度估计还不够,还要累加。
不要再问我什么叫 定时器 和 外部中断 怎么联合起来测量脉冲了。
仔细看TR0/TR1这两个寄存器就应该能懂了。
辛昕
5楼-- · 2019-03-25 08:55
稍微想了想,如果真的采用这种方法,要尽量让定时器中断函数短小,不然的话,误差较大。
也可以用IO口查询。

一周热门 更多>