搜索
bottom↓
回复: 14

如何用51单片机统计脉冲次数

[复制链接]

出0入0汤圆

发表于 2013-3-30 23:44:09 | 显示全部楼层 |阅读模式
近日购得一个带光栅的小电机,光栅激光传感电路完好,想写一个c程序来判断脉冲数,奈何无法实现,求高手指导,自己写的程序,不能用
如下#include<reg52.h>,效果等同于用光栅传感器做P1^4与gnd之间的通断,led做显示,转动电机led不断闪烁,无法达到目标,,,,,,,,,,,,,,,,,,,目标:开始led灭,600个脉冲后led亮
sbit kg=P1^4;                           
sbit led=P0^0;
int i=0;
void main()
{
while(1)
  {
    if(kg==0)
     {
       i++;
   if(i>=600)
    {
      i=0;
      led=~led;
     }
    }
   }
  }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出105入79汤圆

发表于 2013-3-31 00:37:41 | 显示全部楼层
请楼主使用单片机的外部中断,或者计数器的外部输入。

出0入0汤圆

发表于 2013-3-31 00:47:01 | 显示全部楼层
思路不对,周期长一个周期就计够了

出0入0汤圆

发表于 2013-3-31 07:37:19 | 显示全部楼层
将脉冲一和脉冲二接到外部中断一和二上,然后定义两个变量,最后处理是把他们加起来处理就是了,如果两个霍尔传感器放的位置不一样,就可测出真反转!!!!!!

出0入0汤圆

发表于 2013-4-3 16:36:56 | 显示全部楼层
LZ在哪买得啊?我也想买个玩玩。

出0入0汤圆

 楼主| 发表于 2013-4-23 08:42:26 | 显示全部楼层
pcbboy 发表于 2013-4-3 16:36
LZ在哪买得啊?我也想买个玩玩。

当然陶宝啦,便宜嘛

出0入0汤圆

发表于 2013-11-6 09:14:41 | 显示全部楼层
能告诉我淘宝店的链接吗?我也想买一个。

出0入0汤圆

发表于 2013-11-6 09:25:53 | 显示全部楼层
还好不是无刷电机,?  

哪里买的,给个链接

出0入0汤圆

 楼主| 发表于 2013-11-11 23:20:56 | 显示全部楼层
wkman 发表于 2013-11-6 09:25
还好不是无刷电机,?  

哪里买的,给个链接

http://item.taobao.com/item.htm? ... &id=35266899274

出0入0汤圆

发表于 2013-11-12 08:31:29 | 显示全部楼层
接到计数器端口上面   开启外部中断  设置SFR捕捉下降沿 设置计数器初始值



出0入0汤圆

发表于 2013-11-12 08:43:26 | 显示全部楼层
  1. void main()
  2. {
  3.         while(1)
  4.         {
  5.                     while(kg);
  6.                 while(!kg);
  7.                        i++;
  8.                    if(i>=600)
  9.                 {
  10.                               i=0;
  11.                              led=~led;
  12.                 }
  13.         }
  14. }
复制代码

出0入0汤圆

 楼主| 发表于 2013-11-12 22:48:47 | 显示全部楼层
问题已经解决,这小电机简单好用

出0入0汤圆

发表于 2013-11-12 22:58:36 | 显示全部楼层
解决后的代码啥样子  发上来三

出0入0汤圆

 楼主| 发表于 2013-11-12 23:12:20 | 显示全部楼层
#include<reg52.h>

sbit key=P2^0;
sbit led=P0^0;

void main()
{
        unsigned int i = 0;
        while(1)
        {
                key = 1;
                if(key==0)
                {
                        while(!key);
                        i++;
                       
                }

                if(i >= 334 && i <=668)
                {
                        led = 0;
                        if(i == 668)
                                i = 0;
                }
                else
                {
                        led = 1;
                       
                }
        }
}

出0入54汤圆

发表于 2013-11-14 13:02:33 | 显示全部楼层
接在中断上
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 16:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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