找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求一个51单片机测量电机转速的c程序

[复制链接]
跳转到指定楼层
楼主
ID:271737 发表于 2018-1-5 00:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已经有一个广电传感器,作用是测电机转速然后显示在LED屏幕上。 之前用中断写一直没有成功,不知道大家能不能给个模版参考
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:109943 发表于 2018-1-5 10:43 | 只看该作者
广电?光电对射传感器吧,一般精度的用中断配合定时器就OK了,如果要更高精度和更高转速范围的,可以分段,低频测波长,高频测脉冲个数的方法可以很精确。
回复

使用道具 举报

板凳
ID:82765 发表于 2018-1-5 23:51 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

地板
ID:330988 发表于 2018-5-16 14:05 | 只看该作者
多看看书  查查资料
回复

使用道具 举报

5#
ID:331269 发表于 2018-5-16 14:17 | 只看该作者
看书吧
回复

使用道具 举报

6#
ID:331462 发表于 2018-5-16 17:39 | 只看该作者
#include "reg51.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define out P0
uchar code seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x01};
int i=0;
//int TH00;
          
void main(void)
{
        int j;
        TMOD=0x15;                 // T0方式1计数,T1方式1定时
        TH0=0;                        // T0计数器清零
        TL0=0;
        TH1=0x3C;                // 12MHz晶振,T1定时50ms
        TL1=0xB0;
        TR0=1;                        // 启动T0计数器
        TR1=1;                        // 启动T1
        IE=0x88;                // 允许T1中断和总中断允许
        while(1)
        {        P2=0x00;          // 输出百位显示值
                out=seg[i/100];       
                P2=0x02;
                for(j=0;j<100;j++);
                P2=0x00;
                out=seg[i%100/10];        // 输出十位显示值
                P2=0x04;         
                for(j=0;j<100;j++);          
                P2=0x00;                                                        out=seg[i%10];        // 输出个位显示值
                P2=0x08;
                for(j=0;j<100;j++);
        }                  
}


void Timer1_ISR() interrupt 3 // T1中断程序,产生50ms 定时
{        static char j = 0;
        TH1=0x3C;        // 重设定时器值,50ms 定时,12MHz 晶振
        TL1=0xB0;
        if(++j == 20)        // 是否中断20次,即50msx20次 = 1s
        {        j=0;
                i=(TH0 << 8)|TL0;
// 1s内的计数值即为电机转动速度,单位:转/秒
                TH0=0;           // T0清零
                TL0=0;         
        }
}
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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