电子工程师技术服务社区
公告
登录
|
注册
首页
技术问答
厂商活动
正点原子
板卡试用
资源库
下载
文章
社区首页
问答
检测51单片机某个io口输入信号的高低电平时间
已解决
73482
个问题
已帮助
5993
位优秀工程师
检测51单片机某个io口输入信号的高低电平时间
d772899434a28000
2019-05-24
浏览量:3594
本人是个新手刚刚接触51单片机,怎么编程去计算51单片机某个io口的输入高低电平时间,比如我从P1.0口输入了一个方波信号,那么怎么通过单片机编程去检测我这个方波高电平的时间(或者说长度),还有低电平的时间(或者说长度),这个检测时间要精确到ms。
显示全部
单片机
关注问题
写回答
0
0
收起
我来回答
上传资料:
选择文件
文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
yhj416606438
通过外部中断和定时器计算时间,原理就是下降沿触发中断后立马开启定时器,然后在主循环里面判断io电平变高就停止计时,这个计数器就是脉宽长度,还要考虑计数器溢出次数一起计算,注意这种测量一定要用外部晶振比较精确
发布于
2019-05-24
举报
评论 0
1
0
其他答案
数量:
4
某某偶178
有个思路,主函数用while循环,同时配置一个定时器,在
while(1)循环内判断
P1.0的电平,然后开启中断计时。并把用于计时的变量保存下了就行吧
发布于
2019-05-24
举报
评论 0
0
0
chen0000009
如果精度只需要到ms级别,连中断都可以不用,直接在主循环里面一直判断某个GPIO的电平,然后当GPIO发生电平变化时就触发定时器计数,再次变化停止定时器就行,不过这种应用中,主循环里面不要有延时
发布于
2019-05-24
举报
评论 0
0
0
涛涛涛涛涛
这个肯定要用定时器,电平变化时通过定时器计数来判断电平纯在的时间
发布于
2019-05-25
举报
评论 0
0
0
谭士珠丰
这个可以用外部中断,触发对应的定时器计时,在电平变化后停止计时
发布于
2019-08-09
举报
评论 0
0
0
相关问题
问题达人
换一批
文章
知识经验换现金
换一批
检测51单片机某个io口输入信号的高低电平时间
写回答
关注问题
×
我要举报该内容,理由是:
内容质量差:
内容太水、伸手党
垃圾广告信息:
广告、招聘、推广、测试内容等
偏离问答主题:
与技术无关、讨论类
与社区已有内容重复:
违规内容:
色情、暴力、血腥、敏感信息等
不友善内容:
人事攻击、挑衅辱骂、恶意行为
以上选项都不是: