找回密码
 立即注册

QQ登录

只需一步,快速开始

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

请教朋友们STC15单片机的P3.2自动检测高电平检测不出来?

[复制链接]
跳转到指定楼层
楼主
如题,如果用判断P32==1可以检测,但是P3.2有个功能,就是和T0定时器合作,当TR=1,与P32接高电平时就开始计数,试了很多次,P32无法判断高电平的存在。

上边是高电平波形,下边是电路。OUT输出的波形,检测的是示波器中心的地方,明显高电平。用另一个单片机IO口写一个高低电平又可以检测出来。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2022-6-18 10:31 | 只看该作者
P3.2是外部中断口,P3.4才是T0外部计数输入口。
回复

使用道具 举报

板凳
ID:899981 发表于 2022-6-18 12:00 | 只看该作者
本帖最后由 ZHAOBAO511 于 2022-6-18 12:04 编辑
wulin 发表于 2022-6-18 10:31
P3.2是外部中断口,P3.4才是T0外部计数输入口。

谢谢回复,请看图片。应该是计数器0,当INT0为高时计数器打开,INT0对应的是P32
回复

使用道具 举报

地板
ID:213173 发表于 2022-6-18 13:47 | 只看该作者
ZHAOBAO511 发表于 2022-6-18 12:00
谢谢回复,请看图片。应该是计数器0,当INT0为高时计数器打开,INT0对应的是P32

手册有明确说明,不可望文生义。


回复

使用道具 举报

5#
ID:899981 发表于 2022-6-18 14:25 | 只看该作者
wulin 发表于 2022-6-18 13:47
手册有明确说明,不可望文生义。

好的,谢谢,我再想想,问题是我用另外一个口产生一个方波然后接到P32是可以计数的。
回复

使用道具 举报

6#
ID:624769 发表于 2022-6-18 14:58 来自手机 | 只看该作者
你说的是gate方式吧,p32相当于一个开关,通过开关控制定时器是否计时,这时候p32内部应该设置为1,外部下拉到0时定时器停止,当外部拉高后,就开始计时了。
回复

使用道具 举报

7#
ID:899981 发表于 2022-6-18 15:30 | 只看该作者
本帖最后由 ZHAOBAO511 于 2022-6-18 15:31 编辑
188610329 发表于 2022-6-18 14:58
你说的是gate方式吧,p32相当于一个开关,通过开关控制定时器是否计时,这时候p32内部应该设置为1,外部下 ...

谢谢,看来您用过这个,是的,就是说要先P32=1是吧,我试试看。
回复

使用道具 举报

8#
ID:213173 发表于 2022-6-18 16:37 | 只看该作者
ZHAOBAO511 发表于 2022-6-18 14:25
好的,谢谢,我再想想,问题是我用另外一个口产生一个方波然后接到P32是可以计数的。

外部中断INT0计数与定时器外部时钟T0计数是互不直接关联的两种应用。
回复

使用道具 举报

9#
ID:899981 发表于 2022-6-18 16:52 | 只看该作者
wulin 发表于 2022-6-18 16:37
外部中断INT0计数与定时器外部时钟T0计数是互不直接关联的两种应用。

看上面那个朋友说的GATE方式,应该是对的。
回复

使用道具 举报

10#
ID:624769 发表于 2022-6-18 17:18 | 只看该作者
又看了一下你的标题,
用Gate 方式的话,89C52 上面,是没有什么问题的。因为89C51上INT0 只有下降沿中断,和低电平中断。
但是,你用 STC15 的话,INT0 中断就不能开启。就算开启,也必须IT0 = 1; 不能开启上升沿中断功能,不然会有问题。
你具体电路和代码没有看到,就不做任何猜测了,也就提个醒,有则改,无则免。
回复

使用道具 举报

11#
ID:213173 发表于 2022-6-18 17:23 | 只看该作者
ZHAOBAO511 发表于 2022-6-18 16:52
看上面那个朋友说的GATE方式,应该是对的。

如果这么说就没有讨论INT0或T0的必要了,P3.2就是一个普通IO口,与其它IO口没有区别。
回复

使用道具 举报

12#
ID:899981 发表于 2022-6-18 18:06 | 只看该作者
188610329 发表于 2022-6-18 17:18
又看了一下你的标题,
用Gate 方式的话,89C52 上面,是没有什么问题的。因为89C51上INT0 只有下降沿中断 ...

谢谢,很详细。
回复

使用道具 举报

13#
ID:899981 发表于 2022-6-18 18:07 | 只看该作者
wulin 发表于 2022-6-18 17:23
如果这么说就没有讨论INT0或T0的必要了,P3.2就是一个普通IO口,与其它IO口没有区别。

谢谢,不行的话就当IO口检测。
回复

使用道具 举报

14#
ID:899981 发表于 2022-6-20 08:20 | 只看该作者
wulin 发表于 2022-6-18 13:47
手册有明确说明,不可望文生义。

您好朋友,请帮忙看看,现在做普通IO口来做,也是不稳定,数据乱跳,仿真可以,实际不行,另外测出的数好像大了10多倍,不知道是不是开了1T模式。
回复

使用道具 举报

15#
ID:899981 发表于 2022-6-20 08:22 | 只看该作者
GPIOCSByewei2022061503.rar (452.45 KB, 下载次数: 3) 代码及仿真图,仿真正常,实际测到的数比这个大了10倍,而且不稳定。
回复

使用道具 举报

16#
ID:899981 发表于 2022-6-20 08:23 | 只看该作者
188610329 发表于 2022-6-18 14:58
你说的是gate方式吧,p32相当于一个开关,通过开关控制定时器是否计时,这时候p32内部应该设置为1,外部下 ...

帮忙看一下,谢谢
回复

使用道具 举报

17#
ID:161164 发表于 2022-6-20 10:50 | 只看该作者
可以参考超声波模组检测高电平的方法
  1. if(!P32)//在主循环中等待低电平
  2. {
  3.         while(!P32);//等待高电平
  4.         TR0 = 1;
  5.         IT0 = 1;
  6.         EX0 = 1;
  7. }
  8. void INT0_Interrupt() interrupt 0
  9. {
  10.         TR0 = 0;
  11.         EX0 = 0;
  12.         Timer = (u16)TH0*256;//计算高电平时间
  13.         Timer |= TL0;
  14.         TH0 = 0;
  15.         TL0 = 0;
  16. }
复制代码



回复

使用道具 举报

18#
ID:899981 发表于 2022-6-20 13:41 | 只看该作者
lkc8210 发表于 2022-6-20 10:50
可以参考超声波模组检测高电平的方法

好的,谢谢。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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