蓝桥杯单片机比赛学习:11、频率测量的基本原理
在蓝桥杯单片机比赛中,频率测量一次都没考过,但是也不排除不考的可能。频率测量相对前面的几个模块来说相对简单,只需要两个定时器就可以实现。
频率测量的基本原理
产生脉冲的主要元件是555定时器。555定时器是一种集成电路芯片,常被用于定时器、脉冲产生器和振荡电路。本实验中555定时器就用作脉冲产生器,通过调节RB3旋钮改变电阻值的大小=改变脉冲频率(原理图如下图1)。NET SIG引脚在设计的时候是引出来的(我们这里将此引脚接到P3^4引脚)
频率我们在pwm这一讲有详细讲解(3条消息) 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯_Do My Best的博客-CSDN博客
频率就是1s中的脉冲个数,所以我们这里要是用两个定时器,一个测量P3^4引脚的脉冲数目(必须使用定时器0) 另一个定时1s。
频率测量的方法
在使用时我们需要使用两个定时器并且必须使用定时器0(因为定时器0的计数功能是对P3^4计数,如下图2)所以我们将定时器0设置为计数功能,定时器1设置为定时功能。此处设置的过程就不再详细讲解,如有不会请去(3条消息) 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理_Do My Best的博客-CSDN博客
代码实现:
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、频率测量的基本原理相关推荐
- 蓝桥杯单片机比赛学习:8、PWM的基本原理之呼吸灯
经过7节的学习,我们已经掌握了基本的硬件的使用规则,从本节开始我们开始学习一些模块的使用PWM.PCF8591.AT24C02.DS18B20.DS1302.555频率测量.光敏电阻测量.超声波测距等 ...
- 蓝桥杯单片机比赛学习:6、中断系统之定时器中断的基本原理
上节我们讲了中断的外部中断,基本的了解了一下中断,这一节我们继续来学习中断系统的定时器中断基本原理,本节很重要无论是在比赛中还是在单片机.嵌入式等的学习上都有着很重要的地位.如对本作者有兴趣可以去我主 ...
- 蓝桥杯单片机比赛学习:9、PCF8591的基本原理和使用方法
前面一节我们说了PWM呼吸灯的基本原理和使用方法,下面我们来看第二个模块,也是蓝桥杯单片机比赛中常考的一个模块--PCF8591.我主页有其他模块的使用方法和基本原理(2条消息) Do My Best ...
- 蓝桥杯单片机比赛学习:7、中断系统之串口中断的基本原理
这一节我们讲一下蓝桥杯单片机比赛中断中的最后一个模块--串口.中断的其他模块在我的个人主页(4条消息) Do My Best的博客_CSDN博客-蓝桥杯单片机比赛学习领域博主有兴趣的可以去学习. 通信 ...
- 蓝桥杯单片机比赛学习:5、中断系统之外部中断的基本原理
中断的基本概念 百度百科上是这样说的,当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件,处理完以后,再回到原来被中断的地方,继续原来的工作 ...
- 蓝桥杯单片机比赛学习:1、led点亮原理
此教程是鄙人蓝桥杯单片机的学习过程总结,可能会有错误,请指出批评.蓝桥杯单片机学习最重要的是将整个单片机模块化,比如,我们可以将它分为LED.蜂鸣器.继电器.数码管.按键.AD/DA.555定时器.光 ...
- 蓝桥杯单片机篇:NE555 频率测量
主要是配置定时器0为外部脉冲计数模式 main.c #include "mycode.h" unsigned char key_value=0,len=0; unsigned sh ...
- 蓝桥杯单片机比赛学习:3、独立按键与矩阵按键的基本原理
独立按键 首先我们看一下按键的原理图,如图1,当J5中的2,3接在一起的时候,红线标注就是一个完整的电路图,此时只有s4.s5.s6.s7按键可以使用,也就是独立按键.例如:当我们按下s4时,电路导通 ...
- 蓝桥杯单片机国赛客观题_蓝桥杯单片机比赛历年试题获取
蓝桥杯单片机比赛历年试题获取!!! 准备蓝桥杯蓝桥杯比赛除了对板子各个模块的熟悉外,还有一件事,那就是把它们综合起来运用.当你单独使用板子上的某一个模块时,可能不会有什么问题,甚至对已经反复练习过后的 ...
最新文章
- 大牛整理:java去掉字符串中的逗号
- mysql5.7.11解压版_Mysql5.7.11在windows10上的安装与配置(解压版)_MySQL
- The temporary upload location [/tmp/tomcat.xxx/work/Tomcat/localhost/etc] is not valid
- 波利亚名著《怎样解题》笔记:四步解题法
- java基础工具VisualVM介绍与详细使用
- 微信为什么没有公众号导航
- 为什么没人种植金丝楠木?
- CNN————激活可能性小的神经元不代表这个神经元的用处小
- 计算机最低分怎么英语,编写一个学生类 有年龄 英语、数学、计算机三门成绩 求平均分、最高分、最低分...
- python画柱状图-python使用matplotlib画柱状图、散点图
- 票房连创新高 数据安全不能成为《熊出没》“拖油瓶”
- 面试记录:冒泡排序都不会,大哥你会编程吗
- 运输计划 洛谷P2680
- w10计算机网络标志不见了怎么办,Win10系统网络图标不见了怎么办?
- HashMap 底层实现原理,看完面试不再懵逼。
- 产品策划一:移动App项目研发流程及版本规划
- 开源高手推荐 十大最流行开源软件
- 2015互联网校招总结—一路走来
- 如何在CentOS上配置虚拟IP地址 (VIP)
- 财务共享,减少凭证复核与合同支付审计的风险,加强企业内控
热门文章
- 绝对定位absolute与相对定位
- 关于电脑黑屏后st-link下载不了的问题 Error: Flash Download failed - Target DLL has been cancelled
- 比原链发布2020年度BTM销毁计划:保底销毁100万美元BTM,不设上限
- 使用浏览器调试前端的必备技巧
- koa2的脚手架koa-generator
- iOS WKWebView加载本地文件之权威解说
- 【2022 小目标检测综述】Towards Large-Scale Small Object Detection: Survey and Benchmarks
- 【Javaweb学习笔记】在Eclipse中创建Web项目
- Firfox flash player
- 性能测试工具Locust和JMeter比较