zlng 发表于 2011-4-24 11:08:46

用单片机IO检测外部是否有脉冲

我用的是F9234,想实现如附图功能!
第一种想用普通IO检测外部是否有脉冲!有去处理一些东西!让LED亮,没有关掉LED灯。
第二种想用外部中断口检测外部是否有脉冲!有去处理一些东西!让LED亮,没有关掉LED灯。但用外部中断口有一个级别的高低的问题。

http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_633157JETP0N.jpg
用普通IO来检测 (原文件名:1.jpg)

http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_633158HP09D1.jpg
用外部中断来检测 (原文件名:2.jpg)

zlng 发表于 2011-4-24 11:49:33

如何实现呀!!!?

JR.Cheng 发表于 2011-4-24 11:52:18

我的建议:
1. 你要实现的功能非常简单,任意一本单片机教程都能给你足够的指导。
2. 既然是请教问题,措辞就应该礼貌一点。“请”和“谢谢”不要太吝啬;“!”不要太慷慨。

zlng 发表于 2011-4-24 12:04:33

谢谢!可能我不太在意这些细节。我会改,以后发贴会注意这些说话语气。

JR.Cheng 发表于 2011-4-24 12:17:38

对于普通IO脚,用轮询方式进行检测,如果检测到下降沿或者上升沿,LED驱动脚置高电平即可点亮led。
你说的单片机型号我没用过,不过应该大同小异,至于中断就更简单,打开相应的外部中断,一旦触发就执行中断程序,在中断程序里面点亮LED,然后设定一个延时后关闭LED就可以了。

zlng 发表于 2011-4-24 12:24:16

但是这样的!你看如果用外部中断的话就没办法同时检测两路脉冲了。因为中断有级别的高低呀。这样LED3就没法进行功作了!谢谢

zlng 发表于 2011-4-24 12:45:18

如果用普通的IO口来用轮询方式进行检测;假设现在外部送来脉冲,一检测到低马上点亮灯;程序还在跑过了1S这个脉冲由低变到高了;此时单片机检测到的是高,高就要关灯。而实际上只是脉冲的高低变化。实现不了有脉冲就点灯。无脉冲就关灯。

zlng 发表于 2011-4-24 12:55:35

如果用外部中断口来做!把P.0设为下降沿触发,当脉冲来了,检测到下降沿触发信号,中断中点亮LED1.此时LED1是亮着;当脉冲由低变到高然后再由高到低此时又中断一次;那么我如何知道没有脉冲了,LED1要关了。谢谢!也许我那里思路错了。多谢能指点我一下。

JR.Cheng 发表于 2011-4-24 13:28:49

回复【5楼】zlng
但是这样的!你看如果用外部中断的话就没办法同时检测两路脉冲了。因为中断有级别的高低呀。这样led3就没法进行功作了!谢谢
-----------------------------------------------------------------------
你的单片机型号我没用过,我一直是51系列的。
两个外部中断同时打开,有中断的时候单片机先置中断标,由内部逻辑决定是否响应中断。你这个情况下,如果两个中断同时触发,单片机会先响应高优先级的一个中断,然后再响应另外一个。实际上你的脉冲宽度很宽,单片机有足够的时间处理,出现同时触发的概率很小。
为了两个输出都能及时响应,你最好用定时器设置工作周期,每个周期对输出进行一次刷新。

JR.Cheng 发表于 2011-4-24 13:32:21

回复【6楼】zlng
如果用普通的io口来用轮询方式进行检测;假设现在外部送来脉冲,一检测到低马上点亮灯;程序还在跑过了1s这个脉冲由低变到高了;此时单片机检测到的是高,高就要关灯。而实际上只是脉冲的高低变化。实现不了有脉冲就点灯。无脉冲就关灯。
-----------------------------------------------------------------------
亮灯时干什么的?你要搞清楚亮灯以后怎么关灯,是一个脉冲周期结束就关灯还是触发后延时关灯,如果触发延时关灯,那么是否可以重复触发。这些都要搞清楚,否则谈不上解决问题

JR.Cheng 发表于 2011-4-24 13:33:13

回复【7楼】zlng
如果用外部中断口来做!把p.0设为下降沿触发,当脉冲来了,检测到下降沿触发信号,中断中点亮led1.此时led1是亮着;当脉冲由低变到高然后再由高到低此时又中断一次;那么我如何知道没有脉冲了,led1要关了。谢谢!也许我那里思路错了。多谢能指点我一下。
-----------------------------------------------------------------------

同9楼
页: [1]
查看完整版本: 用单片机IO检测外部是否有脉冲