在蓝桥杯单片机比赛中,频率测量一次都没考过,但是也不排除不考的可能。频率测量相对前面的几个模块来说相对简单,只需要两个定时器就可以实现。

频率测量的基本原理

产生脉冲的主要元件是555定时器。555定时器是一种集成电路芯片,常被用于定时器、脉冲产生器和振荡电路。本实验中555定时器就用作脉冲产生器,通过调节RB3旋钮改变电阻值的大小=改变脉冲频率(原理图如下图1)。NET SIG引脚在设计的时候是引出来的(我们这里将此引脚接到P3^4引脚)

频率我们在pwm这一讲有详细讲解(3条消息) 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯_Do My Best的博客-CSDN博客

频率就是1s中的脉冲个数,所以我们这里要是用两个定时器,一个测量P3^4引脚的脉冲数目(必须使用定时器0) 另一个定时1s。

图1

频率测量的方法

在使用时我们需要使用两个定时器并且必须使用定时器0(因为定时器0的计数功能是对P3^4计数,如下图2)所以我们将定时器0设置为计数功能,定时器1设置为定时功能。此处设置的过程就不再详细讲解,如有不会请去(3条消息) 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理_Do My Best的博客-CSDN博客

图2

代码实现:

main.c文件:

注意:在定义变量时要足够大(因为脉冲的数目比较大,一般就用unsigned int 类型)

#include "smg.h"unsigned char count=0;
unsigned int num=0,count_f=0;void T0T1_init(void)//T1定时,T0计数
{TMOD=0X16;//T0为计数模式8位自动重装;T1位定时模式16位TH0=0XFF;TL0=0XFF;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;
}void Service_T0(void)      interrupt 1
{count_f++;
}void Service_T1(void)      interrupt 3
{TH1=(65536-50000)/256;TL1=(65536-50000)%256;count++;if(count==20){count=0;num=count_f;count_f=0;}
}void System_init(void)
{Select_HC573(0,0x00);Select_HC573(4,0xff);Select_HC573(5,0x00);SMG_Display_All(0xff);T0T1_init();
}void main(void)
{System_init();while(1){SMG_Display(num);}
}

smg.c文件:

#include "smg.h"unsigned char code SMG_Dot[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void Delay1ms()        //@12.000MHz
{unsigned char i, j;i = 12;j = 169;do{while (--j);} while (--i);
}void delay_ms(unsigned int ms)
{while(ms--)Delay1ms();
}void Select_HC573(unsigned char channel,unsigned char dat)
{P0=0x00;P0=dat;switch(channel){case 4:P2=(P2&0X1F)|0X80;break;case 5:P2=(P2&0X1F)|0Xa0;break;case 6:P2=(P2&0X1F)|0Xc0;break;case 7:P2=(P2&0X1F)|0Xe0;break;case 0:P2=(P2&0X1F)|0X00;break;}P2=(P2&0X1F)|0X00;
}void SMG_Display_Bit(unsigned char pos,unsigned char value)
{Select_HC573(6,0x01<<pos-1);Select_HC573(7,value);delay_ms(3);Select_HC573(6,0x01<<pos-1);Select_HC573(7,0xff);
}void SMG_Display_All(unsigned char value)
{Select_HC573(6,0xff);Select_HC573(7,value);
}void SMG_Display(unsigned int num)
{SMG_Display_Bit(1,0x8e);if(num>99999)SMG_Display_Bit(3,SMG_Dot[num/100000]);if(num>9999)SMG_Display_Bit(4,SMG_Dot[(num/10000)%10]);if(num>999)SMG_Display_Bit(5,SMG_Dot[(num/1000)%10]);if(num>99)SMG_Display_Bit(6,SMG_Dot[(num/100)%10]);if(num>9)SMG_Display_Bit(7,SMG_Dot[(num/10)%10]);if(num>0)SMG_Display_Bit(8,SMG_Dot[num%10]);}

smg.h文件:

#ifndef __SMG_H
#define __SMG_H#include "stc15f2k60s2.h"void Delay1ms();
void delay_ms(unsigned int ms);
void Select_HC573(unsigned char channel,unsigned char dat);
void SMG_Display_Bit(unsigned char pos,unsigned char value);
void SMG_Display_All(unsigned char value);
void SMG_Display(unsigned int num);#endif 

蓝桥杯单片机比赛学习:11、频率测量的基本原理相关推荐

  1. 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯

    经过7节的学习,我们已经掌握了基本的硬件的使用规则,从本节开始我们开始学习一些模块的使用PWM.PCF8591.AT24C02.DS18B20.DS1302.555频率测量.光敏电阻测量.超声波测距等 ...

  2. 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理

    上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...

  3. 蓝桥杯单片机比赛学习:9、PCF8591的基本原理和使用方法

    前面一节我们说了PWM呼吸灯的基本原理和使用方法,下面我们来看第二个模块,也是蓝桥杯单片机比赛中常考的一个模块--PCF8591.我主页有其他模块的使用方法和基本原理(2条消息) Do My Best ...

  4. 蓝桥杯单片机比赛学习:7、中断系统之串口中断的基本原理

    这一节我们讲一下蓝桥杯单片机比赛中断中的最后一个模块--串口.中断的其他模块在我的个人主页(4条消息) Do My Best的博客_CSDN博客-蓝桥杯单片机比赛学习领域博主有兴趣的可以去学习. 通信 ...

  5. 蓝桥杯单片机比赛学习:5、中断系统之外部中断的基本原理

    中断的基本概念 百度百科上是这样说的,当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作 ...

  6. 蓝桥杯单片机比赛学习:1、led点亮原理

    此教程是鄙人蓝桥杯单片机的学习过程总结,可能会有错误,请指出批评.蓝桥杯单片机学习最重要的是将整个单片机模块化,比如,我们可以将它分为LED.蜂鸣器.继电器.数码管.按键.AD/DA.555定时器.光 ...

  7. 蓝桥杯单片机篇:NE555 频率测量

    主要是配置定时器0为外部脉冲计数模式 main.c #include "mycode.h" unsigned char key_value=0,len=0; unsigned sh ...

  8. 蓝桥杯单片机比赛学习:3、独立按键与矩阵按键的基本原理

    独立按键 首先我们看一下按键的原理图,如图1,当J5中的2,3接在一起的时候,红线标注就是一个完整的电路图,此时只有s4.s5.s6.s7按键可以使用,也就是独立按键.例如:当我们按下s4时,电路导通 ...

  9. 蓝桥杯单片机国赛客观题_蓝桥杯单片机比赛历年试题获取

    蓝桥杯单片机比赛历年试题获取!!! 准备蓝桥杯蓝桥杯比赛除了对板子各个模块的熟悉外,还有一件事,那就是把它们综合起来运用.当你单独使用板子上的某一个模块时,可能不会有什么问题,甚至对已经反复练习过后的 ...

最新文章

  1. 大牛整理:java去掉字符串中的逗号
  2. mysql5.7.11解压版_Mysql5.7.11在windows10上的安装与配置(解压版)_MySQL
  3. The temporary upload location [/tmp/tomcat.xxx/work/Tomcat/localhost/etc] is not valid
  4. 波利亚名著《怎样解题》笔记:四步解题法
  5. java基础工具VisualVM介绍与详细使用
  6. 微信为什么没有公众号导航
  7. 为什么没人种植金丝楠木?
  8. CNN————激活可能性小的神经元不代表这个神经元的用处小
  9. 计算机最低分怎么英语,编写一个学生类 有年龄 英语、数学、计算机三门成绩 求平均分、最高分、最低分...
  10. python画柱状图-python使用matplotlib画柱状图、散点图
  11. 票房连创新高 数据安全不能成为《熊出没》“拖油瓶”
  12. 面试记录:冒泡排序都不会,大哥你会编程吗
  13. 运输计划 洛谷P2680
  14. w10计算机网络标志不见了怎么办,Win10系统网络图标不见了怎么办?
  15. HashMap 底层实现原理,看完面试不再懵逼。
  16. 产品策划一:移动App项目研发流程及版本规划
  17. 开源高手推荐 十大最流行开源软件
  18. 2015互联网校招总结—一路走来
  19. 如何在CentOS上配置虚拟IP地址 (VIP)
  20. 财务共享,减少凭证复核与合同支付审计的风险,加强企业内控

热门文章

  1. 绝对定位absolute与相对定位
  2. 关于电脑黑屏后st-link下载不了的问题 Error: Flash Download failed - Target DLL has been cancelled
  3. 比原链发布2020年度BTM销毁计划:保底销毁100万美元BTM,不设上限
  4. 使用浏览器调试前端的必备技巧
  5. koa2的脚手架koa-generator
  6. iOS WKWebView加载本地文件之权威解说
  7. 【2022 小目标检测综述】Towards Large-Scale Small Object Detection: Survey and Benchmarks
  8. 【Javaweb学习笔记】在Eclipse中创建Web项目
  9. Firfox flash player
  10. 性能测试工具Locust和JMeter比较