5209|12

81

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

单片机c51频率计 [复制链接]

有没有c51频率计的代码呀,呵呵最好是用中断2的。谢谢啦

最新回复

给你的是思路, 具体实现靠你自己。   详情 回复 发表于 2009-11-19 16:40
点赞 关注

回复
举报

83

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
网上很多的啊,你找个代码,编译一下,有什么问题再来发帖问啊
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
以前做过,很简单的,不知道我的电脑里面还有没有。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
引用 2 楼 lgy198612 的回复:
以前做过,很简单的,不知道我的电脑里面还有没有。


顺问下,频率计你是采用什么算法的?算脉冲还是算周期?
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
定时计数
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
太多啦。
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

7
 
就是计数的
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

8
 
自己做实验都可以的 多花些时间
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

9
 
计数就可以实现,找个程序一改就OK了,Google一下吧
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

10
 
还点名要中断2 天啊 都是课程设计吧
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

11
 
一个定时器,用来计时,外部中断2,捕捉输入脉冲。

  1. //全局变量,宏
  2. #define  TC **********    //定时常数,单位秒,
  3. float fq; //频率
  4. int32 pls; //实时脉冲个数

  5. /*********************************
  6. *实时监控引脚的脉冲频率
  7. *细腻度由TC决定(多长时间频率才可能变化一次)
  8. *
  9. **********************************/
  10. int main()
  11. {   
  12.      fq=0;
  13.      InitTimer(TC);//配置定时器,1秒定时
  14.       EnableTimerInterrupt();
  15.      EnableExtInterrupt();
  16.      while(1)
  17.      {
  18.           deylay();
  19.           printf("当前频率:%d\n",fq);
  20.      }
  21. }

  22. //定时中断服务
  23. void TimerPro()
  24. {
  25.     ...
  26.     fq=(float)pls/(float)TC;
  27.     pls=0;
  28.     ...
  29. }

  30. //外中断(脉冲监控)处理
  31. void ExtIntPro()
  32. {
  33.     ...
  34.     pls++;
  35.     ...
  36. }

复制代码
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

12
 
//全局变量,宏
#define  TC **********    //定时常数,单位秒,
float fq; //频率
int32 pls; //实时脉冲个数

/*********************************
*实时监控引脚的脉冲频率
*细腻度由TC决定(多长时间频率才可能变化一次)
*
**********************************/
int main()
{   
     fq=0;
     InitTimer(TC);//配置定时器,1秒定时
      EnableTimerInterrupt();
     EnableExtInterrupt();
     while(1)
     {
          deylay();
          printf("当前频率:%d\n",fq);
     }
}

//定时中断服务
void TimerPro()
{
    ...
    fq=(float)pls/(float)TC;
    pls=0;
    ...
}

//外中断(脉冲监控)处理
void ExtIntPro()
{
    ...
    pls++;
    ...
}


能详细点吗?我刚学单片机谢谢
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
给你的是思路,
具体实现靠你自己。

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表