NE555 (Timer IC)为8脚时基集成电路,NE555是属于555系列的计时IC的其中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;而555是一个用途很广且相当普遍的计时IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉波讯号。

主要特点:

1.只需简单的电阻器、电容器,即可完成特定的振荡延时作用。其延时范围极广,可由几微秒至几小时之久。

2.它的操作电源范围极大,可与TTL,CMOS等逻辑电路配合,也就是它的输出电平及输入触发电平,均能与这些系列逻辑电路的高、低电平匹配。

3.其输出端的供给电流大,可直接推动多种自动控制的负载。

4.它的计时精确度高、温度稳定度佳,且价格便宜。

引脚位:

Pin 1 (接地) -地线(或共同接地) ,通常被连接到电路共同接地。

Pin 2 (触发点) -这个脚位是触发NE555使其启动它的时间周期。触发信号上缘电压须大于2/3 VCC,下缘须低于1/3 VCC 。

Pin 3 (输出) -当时间周期开始555的输出脚位,移至比电源电压少1.7伏的高电位。周期的结束输出回到O伏左右的低电位。于高电位时的最大输出电流大约200 mA 。

Pin 4 (重置) -一个低逻辑电位送至这个脚位时会重置定时器和使输出回到一个低电位。它通常被接到正电源或忽略不用。

Pin 5 (控制) -这个接脚准许由外部电压改变触发和闸限电压。当计时器经营在稳定或振荡的运作方式下,这输入能用来改变或调整输出频率。

Pin 6 (重置锁定) - Pin 6重置锁定并使输出呈低态。当这个接脚的电压从1/3 VCC电压以下移至2/3 VCC以上时启动这个动作。

Pin 7 (放电) -这个接脚和主要的输出接脚有相同的电流输出能力,当Pin3为低电平时,Pin7对地为低阻态(对地导通),当Pin3为高电平时,Pin7对于为高阻态

Pin 8 (V +) -这是555计时器IC的正电源电压端。供应电压的范围是+4.5伏特(最小值)至+16伏特(最大值)。

NE555在蓝桥杯单片机省赛中只考过一次,是在第十届省赛中,要求使用NE555完成对Pinlv的测量和显示。如下图所示:

接下来我们要做的就是对第十届蓝桥杯省赛里关于频率测量这部分做一个单独的简单程序设计。

设计内容:

1.按照上图显示格式显示采集到的频率值显示在数码管上;

2.频率数据显示使用 6 位数码管,当显示的数据长度不足 6 位时,未使用到的数码管位应熄灭。

说明:频率测量功能需将竞赛板 J3-SIGNAL 引脚与 P34 引脚短接。频率大小调节通过板子上的RB3来实现。

#include<stc15f2k60s2.h>#define uchar unsigned char   //定义无符号字符类型uchar
#define uint unsigned int     //定义无符号整型类型uintuchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0x8e};//数字0~9,“-”,“关”,“F”
uchar yi,er,san,si,wu,liu,qi,ba;   //定义字符型变量yi,er,san,si,wu,liu,qi,ba,当作数码管显示控制变量uint fan,fan_send,zheng,zheng_send,trie,pinlv,time;
bit flag=0;void delayms(int ms);          //延时函数
void allinit();                //初始化函数
void display1(uchar yi,uchar er);   //第一、二段数码管函数
void display2(uchar san,uchar si);  //第三、四段数码管函数
void display3(uchar wu,uchar liu);  //第五、六段数码管函数
void display4(uchar qi,uchar ba);   //第七、八段数码管函数
void Timer0Init(void);      //5微秒@12.000MHz
void Timer1Init(void);      //1毫秒@12.000MHz
void Frequency();         //频率测量显示函数void main()//主函数
{allinit();                  //初始化函数Timer0Init();Timer1Init();yi=1;er=2;san=3;si=4;wu=5;liu=6;qi=7;ba=8;//让数码管依次显示1~8,用来检验数码管显示函数程序是否有误while(1){Frequency();              //频率测量显示函数display1(yi,er);          //第一、二段数码管函数display2(san,si);         //第三、四段数码管函数display3(wu,liu);         //第五、六段数码管函数display4(qi,ba);          //第七、八段数码管函数}
}
void Frequency()           //频率测量显示函数
{yi=12;er=11;san=11;if(pinlv>=10000){si=pinlv/10000;wu=pinlv%10000/1000;liu=pinlv%1000/100;qi=pinlv%100/10;ba=pinlv%10;}else if(pinlv>=1000){si=11;wu=pinlv/1000;liu=pinlv%1000/100;qi=pinlv%100/10;ba=pinlv%10;}else if(pinlv>=100){si=11;wu=11;liu=pinlv/100;qi=pinlv%100/10;ba=pinlv%10;}else if(pinlv>=10){si=11;wu=11;liu=11;qi=pinlv/10;ba=pinlv%10;}
}
void Timer0Init(void)       //5微秒@12.000MHz
{AUXR |= 0x80;      //定时器时钟1T模式TMOD &= 0xF0;        //设置定时器模式TL0 = 0xC4;        //设置定时初值TH0 = 0xFF;     //设置定时初值TF0 = 0;        //清除TF0标志
//  TR0 = 1;        //定时器0开始计时
}
void time0() interrupt 1
{if(P34==0){fan++;if(flag==0){flag=1;zheng_send=zheng;zheng=0;}}else if(P34==1){zheng++;if(flag==1){flag=0;fan_send=fan;fan=0;}}
}
void Timer1Init(void)       //1毫秒@12.000MHz
{AUXR |= 0x40;      //定时器时钟1T模式TMOD &= 0x0F;        //设置定时器模式TL1 = 0x20;        //设置定时初值TH1 = 0xD1;     //设置定时初值TF1 = 0;        //清除TF1标志TR1 = 1;       //定时器1开始计时EA=1;ET1=1;
}
void time1() interrupt 3
{trie++;if(trie==969){TR0 = 1;ET0=1;}else if(trie==999){TR0 = 0;ET0=0;trie=0;time=(zheng_send+fan_send)*5;pinlv=1000000/time;}
}
void delayms(int ms)//延时函数
{uint i,j;for(i=ms;i>0;i--)for(j=845;j>0;j--);
}
void allinit()//初始化函数
{P2=0XA0;P0=0X00;      //关闭蜂鸣器继电器P2=0X80;P0=0XFF;      //关闭所有LED灯P2=0XC0;P0=0XFF;      //选中所有数码管段选P2=0XFF;P0=0XFF;      //关闭所有数码管
}
void display1(uchar yi,uchar er)//第一、二段数码管函数
{P2=0XC0;P0=0X01;               //选中第一个数码管位选P2=0XFF;P0=tab[yi];            //让第一个数码管显示yi指向的值delayms(1);                    //延时1msP2=0XC0;P0=0X02;               //选中第二个数码管位选P2=0XFF;P0=tab[er];            //让第一个数码管显示er指向的值delayms(1);                       //延时1ms
}
void display2(uchar san,uchar si)//第三、四段数码管函数
{P2=0XC0;P0=0X04;               //选中第s三个数码管位选P2=0XFF;P0=tab[san];           //让第一个数码管显示san指向的值delayms(1);                    //延时1msP2=0XC0;P0=0X08;               //选中第四个数码管位选P2=0XFF;P0=tab[si];            //让第一个数码管显示si指向的值delayms(1);                     //延时1ms
}
void display3(uchar wu,uchar liu)//第五、六段数码管函数
{P2=0XC0;P0=0X10;               //选中第五个数码管位选P2=0XFF;P0=tab[wu];            //让第一个数码管显示wu指向的值delayms(1);                    //延时1msP2=0XC0;P0=0X20;               //选中第六个数码管位选P2=0XFF;P0=tab[liu];           //让第一个数码管显示liu指向的值delayms(1);                      //延时1ms
}
void display4(uchar qi,uchar ba)//第七、八段数码管函数
{P2=0XC0;P0=0X40;               //选中第七个数码管位选P2=0XFF;P0=tab[qi];            //让第一个数码管显示qi指向的值delayms(1);                    //延时1msP2=0XC0;P0=0X80;               //选中第八个数码管位选P2=0XFF;P0=tab[ba];            //让第一个数码管显示ba指向的值delayms(1);                    //延时1ms
}

蓝桥杯单片机----NE555频率测量相关推荐

  1. 蓝桥杯单片机NE555编程

    蓝桥杯单片机中的NE555模块的编程,其实是很简单.简单来说就是计算一秒钟之内有多少个频率响应.中间所谓的频率响应也就是计算定时器作为计数器时候溢出的个数而已.能够考察的点就是这样子了,也要稍微了解, ...

  2. 蓝桥杯单片机-NE555模块

    一.简介 1.NE555在开发板中用于输出频率可变,占空比不变的方波. 2.NE555是纯硬件的设计,通过电位器RB3可改变其信号输出频率.不需要编程实现其功能. 考点:使用定时器的计数模式测量NE5 ...

  3. 蓝桥杯单片机学习13——NE555方波发生器频率测量

    NE555 简介 引脚图 原理图 真值表 工作原理 频率测量原理 定时器测量频率方法 代码实现 总结(一堆废话) 简介 NE555是一种高度稳定的控制器,内部用三个阻值为5KΩ的电阻分压,因此叫做55 ...

  4. 单片机蓝桥杯——NE555频率测量

    原理: 对蓝桥杯单片机板子上NE555电路进行频率测量时,不需要任何的配置,整个单片机测量频率的过程中,跟NE555芯片没什么关系,归根结底考察的还是定时/计数器.但需要注意: (1)当用到NE555 ...

  5. 蓝桥杯单片机之NE555频率发生计的使用(IO模式)

    蓝桥杯单片机之NE555频率发生计的使用 NE555原理图及基本原理分析 基本控制 设计思路 代码 NE555原理图及基本原理分析 NE555时基芯片的频率输出引脚为NET_SIG,连接着外部排针J3 ...

  6. 蓝桥杯单片机比赛学习:11、频率测量的基本原理

    在蓝桥杯单片机比赛中,频率测量一次都没考过,但是也不排除不考的可能.频率测量相对前面的几个模块来说相对简单,只需要两个定时器就可以实现. 频率测量的基本原理 产生脉冲的主要元件是555定时器.555定 ...

  7. 蓝桥杯单片机(七)NE555

    上一章讲了蓝桥杯单片机如何输出PWM波 蓝桥杯单片机(六)PWM 这一章讲解蓝桥杯单片机开发板上的NE555方波发射器的频率测量,这也是近几年的考点. 首先看原理图: 由数电的知识: NE555的周期 ...

  8. 蓝桥杯单片机 赛后资料整理——NE555芯片模块与第十届省赛的总结

    蓝桥杯单片机 赛后资料整理--NE555芯片模块 电路原理 模块特性 驱动方法 代码模板 个人总结 本文适用于 CT107D竞赛板+ IAP15转接板 电路原理 模块特性 NE555是一种时钟芯片,输 ...

  9. 蓝桥杯单片机——用NE555定时器来测量频率

    蓝桥杯单片机比赛第十届以及十二届(第二场)中会用到NE555来测量频率以及频率周期,平时也会用到所以这个是必须要掌握的知识,简单来介绍一下芯片和编程用法. 芯片简介 NE555是属于555系列的计时I ...

最新文章

  1. linux epoll事件模型详解
  2. 阿里云Linux创建docker容器
  3. selenium python 安装
  4. 前端学习(2338):记录解决问题的一次
  5. django 1.8 官方文档翻译: 6-6-2 如何使用WSGI 部署
  6. 又掐起来了!余承东称小米环幕屏手机无实用价值,卢伟冰回怼...
  7. C语言学习笔记---一个简单的文件压缩示例
  8. 【转】VS2010新建Web网站与新建Web应用程序的区别
  9. 7号团队-团队任务5:项目总结
  10. redis 在 php 中的应用(Set篇)
  11. C# ADO.NET中设置Like模糊查询
  12. 计算机方法学,浅谈计算机教学的方法
  13. 7天快速掌握MySQL-DAY2
  14. 机器视觉工业缺陷检测(光源,相机,镜头,算法)
  15. 大数据和位置智能:助力企业数字化战略落地
  16. app抓包工具_抓包助手app下载安装_抓包助手软件最新版免费下载
  17. 架构师之路--从原理角度来分析性能
  18. 连接字符串大全。。。
  19. 【Matlab学习手记】线搜索Goldstein准则
  20. 某大型合资企业审批系统上线经验教训总结

热门文章

  1. 别告诉我你会记笔记——工作中如何使用笔记(笔记)
  2. 简单的爱,简单的幸福
  3. java io基础知识(四)
  4. Jenkins+Gradle+Python进行Android自动化打包
  5. java单数字随机抽奖特效_jquery输入数字随机抽奖特效的简单实现代码
  6. TSINGHUAJOKING公众号基本信息
  7. C++标准库学习笔记——标准模板库笔记
  8. 自定义View 测量过程(Measure)
  9. AutoCAD 2021中文授权版
  10. graphics.h 的下载及安装