找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 17051|回复: 11
打印 上一主题 下一主题
收起左侧

检测51单片机某个io口输入信号的高低电平时间

  [复制链接]
跳转到指定楼层
楼主
本人是个新手刚刚接触51单片机,怎么编程去计算51单片机某个io口的输入高低电平时间,比如我从P1.0口输入了一个方波信号,那么怎么通过单片机编程去检测我这个方波高电平的时间(或者说长度),还有低电平的时间(或者说长度),这个检测时间要精确到ms。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:331575 发表于 2018-5-25 06:52 来自手机 | 只看该作者
可以。当P1.0管脚变成低电平时。试着触发定时器T0,在每一次进入定时器中断的时候计数并显示就可以了

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

板凳
ID:7485 发表于 2018-5-25 10:02 | 只看该作者
普通IO口,可以像检测按键一样的检测某个脚的状态,检测到上升沿开始计时,下降沿停止计时,读取即时数据即可。

如果使用int0、int1端口可以采用中断方式,上升沿触发中断,中断程序中启动定时器、转下降沿触发,再中断时停止计时,并读取时间数据。不过传统的AT89***系列没有”上升沿触发”功能,仅有低电平和下降沿触发。如果使用这类芯片可以使用外部的反相器实现,这个就比较麻烦了。

据我所知,STC的后来的1T单片机好像都有这个功能。

评分

参与人数 1黑币 +40 收起 理由
admin + 40 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:277550 发表于 2018-5-25 11:14 | 只看该作者
可以使用 外部中断+定时器

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:337971 发表于 2018-5-25 12:53 | 只看该作者
外部中断加定时器了解一下
回复

使用道具 举报

6#
ID:338022 发表于 2018-5-25 14:06 | 只看该作者
后期STC单片机的INT0可上升沿和下降沿中断, 中断后打开定时器计时,再次中断时读取定时器,两个时间一减即为电平时长,当然还可能定时器溢出.这个在要定时器中断里处理.

评分

参与人数 1黑币 +30 收起 理由
admin + 30 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

7#
ID:338264 发表于 2018-5-25 18:14 | 只看该作者
可以用单片机定时器控制
回复

使用道具 举报

8#
ID:111634 发表于 2018-5-25 22:09 | 只看该作者
本帖最后由 zl2168 于 2018-5-25 22:16 编辑

你的题目叫检测脉冲宽度,
介绍你一个仿真案例
实例72  测量脉冲宽度先Proteus仿真一下,确认有效。 实例72 测量脉冲宽度.rar (52.14 KB, 下载次数: 173)

以上摘自张志良编著
80C51单片机实用教程——基于Keil CProteus》高等教育出版社ISBN 978-7-04-044532-9, 用于学习51单片机原理,程序(双解c和汇编)语句条条有注解,便于阅读理解,便于自学,可从零基础c语言开始学习

回复

使用道具 举报

9#
ID:278418 发表于 2018-5-25 22:44 | 只看该作者
外部中断,检测到一个上升沿,定时开启(加个反相器判断上升沿)。在找一个外部中断判断下降沿关闭定时,得出高电平时间。当然要把方波同时接到两个外部中断口。
回复

使用道具 举报

10#
ID:85743 发表于 2019-5-24 15:59 | 只看该作者
谢谢8楼,下载学习。
回复

使用道具 举报

11#
ID:85743 发表于 2019-5-24 16:03 | 只看该作者
zl2168 发表于 2018-5-25 22:09
你的题目叫检测脉冲宽度,介绍你一个仿真案例实例72  测量脉冲宽度先Proteus仿真一下,确认有效。

以上 ...

老大,没有原程序
回复

使用道具 举报

12#
ID:93224 发表于 2019-5-24 18:22 | 只看该作者
利用定时器
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表