蓝桥杯单片机(七)NE555

article/2025/10/12 16:13:28

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

NE555的周期T=0.7(Ra+Rb)C
频率f=1/T

图中R8为定值电阻,所以NE555的斜率主要由Rb3这个滑动变阻器决定。图中NE555的PWM波输出引脚为NET SIG,所以测量只需要将单片机随便一个GPIO与NET SIG相连,然后向按键扫描那样读取高低电平就行了。
由于比赛通常用超声波跳线帽来连接P34和NET SIG引脚,所以本次例程同样如此。
首先来看测量程序:

unsigned int high=0,low=0,highdata=0,lowdata=0;void time0() interrupt 1
{if(P34==1){high++;if(low !=0){lowdata=low;low=0;}}else if(P34==0){low++;if(high !=0){highdata=high;high=0;}}	
}void Timer0Init(void)		//20微秒@11.0592MHz
{AUXR |= 0x80;		//定时器时钟1T模式TMOD &= 0xF0;		//设置定时器模式TL0 = 0x23;		//设置定时初值TH0 = 0xFF;		//设置定时初值TF0 = 0;		//清除TF0标志TR0 = 1;		//定时器0开始计时
}

让定时器每20us进行测量P34口的电平,然后将对应的高低电平的时间保存起来,然后就可以计算周期和频率了。
计算公式:

**

高电平加低电平次数乘以20us就是周期

**

time=(1000000/((highdata+lowdata)*20));

当然定时器的时间越短越精确。
实验内容:使用P34引脚测量PWM频率,使用数码管显示出来。
代码如下:

#include<stc15f2k60s2.h>
#include"intrins.h"#define uchar unsigned char
#define uint unsigned intvoid SMG_output(void);
void init(void);
void Delay1ms(void);
void Timer0Init(void);uchar tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
uchar SMG[8]={10,10,10,10,10,10,10,10};//初始显示10,全息数码管
uint high=0,low=0,highdata=0,lowdata=0;
uint time;void main(void)
{init();Timer0Init();EA=1;ET0=1;while(1){time=(1000000/((highdata+lowdata)*20));SMG[3]=time/10000;SMG[4]=time%10000/1000;SMG[5]=time%1000/100;SMG[6]=time%100/10;SMG[7]=time%10;SMG_output();}
}void time0() interrupt 1
{if(P34==1){high++;if(low !=0){lowdata=low;low=0;}}else if(P34==0){low++;if(high !=0){highdata=high;high=0;}}	
}void SMG_output(void)
{uchar i;for(i=0;i<8;i++){P2=(P2&0X1F)|0Xc0;P0=(1<<i);P2=(P2&0X1F)|0Xe0;P0=tab[SMG[i]];Delay1ms();}P2=(P2&0X1F)|0Xc0;P0=0Xff;P2=(P2&0X1F)|0Xe0;P0=0Xff;	
}void Timer0Init(void)		//20微秒@11.0592MHz
{AUXR |= 0x80;		//定时器时钟1T模式TMOD &= 0xF0;		//设置定时器模式TL0 = 0x23;		//设置定时初值TH0 = 0xFF;		//设置定时初值TF0 = 0;		//清除TF0标志TR0 = 1;		//定时器0开始计时
}void init(void)
{P2=(P2&0X1F)|0XA0;P0=0X00;P2=(P2&0X1F)|0X80;P0=0Xff;P2=(P2&0X1F)|0Xc0;P0=0Xff;P2=(P2&0X1F)|0Xe0;P0=0Xff;	
}void Delay1ms(void)		//@11.0592MHz
{unsigned char i, j;_nop_();_nop_();_nop_();i = 11;j = 190;do{while (--j);} while (--i);
}

最后效果如下:
在这里插入图片描述
调节滑动变阻器,频率发生改变。


http://chatgpt.dhexx.cn/article/wYZykTeK.shtml

相关文章

NE555方波发生器

基础知识 NE555不需要进行编程&#xff0c;或者与单片机进行通信&#xff0c;它本身就能产生方波。方波的频率可以调节&#xff0c;只要改变电阻电容的值就可以了。 电路原理 方波产生在排针J3的15&#xff08;SIGNA&#xff09;脚上&#xff0c;方波的频率通过Rb3电位器进行调…

NE555 工作模式介绍

&#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是泽奀。全栈领域新星创作者&#x1f3c6; 作者周榜:78 &#x1f451; &#x1f4dd; 个人主页&#xff1a;weixin_52632755的博客_泽奀_CSDN博客 &#x1f4ac; 本系列&#xff1a;【电子】系列_泽奀的博客-CSDN博…

NE555定时器

基本原理&#xff1a; 低电平触发端&#xff1a;TRIG 高电平触发端&#xff1a;THR 两者的电压值小于参考电压时&#xff0c;即U。1 放电管截止 两者的电压值大于参考电压时&#xff0c;即U。1 放电管导通 蓝桥杯板子上是一个信号发生电路 通过继电器RB3来改变输入信号的频…

使用NE555实现的延时开关电路

NE555 的电气特性 555系列有几种不同的规格 NE555是民用版本, 推荐的工作温度是 0 - 70 NA555, SA555, SE555 是工业版本, 推荐工作温度为 -40 - 100 电压: 最高18V, 推荐工作电压15V以内 电流: Pin3 输出电流支持 225 mA, 推荐的工作电流区间是 200 mA. 注意: 支持反向的电…

Android NE问题分析方法介绍

文章目录 简介Native内存布局NE问题常见类型常用调试工具tombstone抓取流程实例分析tombstone文件内容举例 简介 NE&#xff0c;全称Native Exception&#xff0c;在Android中主要指在用户空间运行的native程序或者natvie库发生异常。NE问题通常带来程序奔溃现象&#xff0c;导…

认真学习设计模式之适配器模式(Adapter Pattern)/包装器模式

【1】适配器模式 ① 介绍 适配器模式是将一个类的接口&#xff0c;转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 适配器的作用可以简单通过下图得知&#xff0c;OO适配器就是将一个接口转换成另一个接口&#xff0c;以符合客户的期望。 实际场景应…

学习:java设计模式—Adapter模式

1、核心意图&#xff1a; 将一个类的接口转换成客户希望的另外一个接口&#xff0c;从而使得原本由于接口不兼容而不能一起工作的类可以一起工作。 该模式的目标是通过一个代理&#xff08;这里是Adapter&#xff09;&#xff0c;在原来的类&#xff08;Adaptee&#xff09;和客…

23种设计模式之适配器模式(Adapter模式)

转载地址 https://sscloud.net/solution/jsp/article.jsp?articleId10090 模式的定义与特点 23种设计模式demo下载 适配器模式&#xff08;Adapter&#xff09;的定义如下&#xff1a;将一个类的接口转换成客户希望的另外一个接口&#xff0c;使得原本由于接口不兼容而不能一…

安卓设计模式のAdapter模式

1. 模式介绍 模式的定义 适配器模式把一个类的接口变换成客户端所期待的另一种接口&#xff0c;从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。 使用场景 用电源接口做例子&#xff0c;笔记本电脑的电源一般都是接受5V的电压&#xff0c;但是我们生活中的…

设计模式2--Adapter(适配器模式)

1.Adapter模式 在程序中&#xff0c;经常会出现有的程序无法直接使用的情况&#xff0c;需要进行适当的变换之后才能使用的情况。这种用于填补现有程序和所需程序之间差异的设计模式就是Adapter模式 Adapter模式也被称为Wrapper模式&#xff0c;有以下两种 &#xff08;1&am…

设计模式02——Adapter模式

定义 适配器设计模式&#xff0c;顾名思义就是将适配器的作用总结抽象成为一种代码的组织方式&#xff0c;将现有的代码通过适配器进行适配&#xff0c;以满足项目对另外一个类或者接口的要求。换句话说就是将一个类的接口适配&#xff08;包装/转换&#xff09;成客户&#x…

图解设计模式 - Adapter 模式

读书笔记 仅供参考 Adapter 模式 Adapter 即为是适配器,用来填补两者之间的差异。就想充电器的装换器,要把 220v 的电压转换为低电压才能对手机或电脑充电。 Adapter 模式也称为 Wrapper(包装器)模式。 两种 Adapter 模式: 类适配器模式(使用继承的适配器)对象适配器…

适配器模式(Adapter模式)

在现实生活中&#xff0c;经常出现两个对象因接口不兼容而不能在一起工作的实例&#xff0c;这时需要第三者进行适配。例如&#xff0c;讲中文的人同讲英文的人对话时需要一个翻译&#xff0c;用直流电的笔记本电脑接交流电源时需要一个电源适配器&#xff0c;用计算机访问照相…

设计模式学习(三):Adapter适配器模式

一、什么是Adapter模式 我们先举个例子&#xff1a;如果想让额定工作电压是直流12V的笔记本电脑在交流220V的电源下工作&#xff0c;应该怎么做呢?通常&#xff0c;我们会使用适配器&#xff0c;将家庭用的交流220V电压转换成我们所需要的直流12V电压。这就是适配器的工作&…

3.设计模式--适配器模式(adapter模式)

1.场景 适配器模式可能是开发人员用的最多的一种设计模式&#xff0c;做后台开发你可能每天都在使用。只是不知道他的名字&#xff1b;现实中的适配器你应该不会陌生&#xff0c;新款的IQOO 8 pro手机充电器已经达到了120w&#xff0c;实际上充电器就是一个适配器&#xff0c;他…

设计模式【7】——适配器模式(Adapter 模式)

文章目录 前言一、适配器模式&#xff08;Adapter 模式&#xff09;二、具体源码1.Adapter.h2.Adapter.cpp3.main.cpp 三、运行结果总结 前言 实际上在软件系统设计和开发中&#xff0c;经常会遇到&#xff1a;我们为了完成某项工作购买了一个第三方的库来加快开发。这就带来了…

【Adapter模式】C++设计模式——适配器

适配器 一、设计流程探讨二、模式介绍三、代码实现 C设计模式大全&#xff0c;23种设计模式合集详解—&#x1f449;&#xff08;点我跳转&#xff09; 一、设计流程探讨 首先放一张图&#xff0c;让大家大致了解什么叫适配器。适配器属于接口隔离的一种&#xff0c;它能使接口…

设计模式-Adapter模式(适配器模式)

适配器模式是什么&#xff1f;为什么要有适配器模式&#xff1f;用一个例子来看看代码的实现 适配器模式是什么&#xff1f; 我的理解&#xff1a; 比如现实世界&#xff0c;电脑充电需要的电压是12V&#xff0c;而家用电压是220V&#xff0c;肯定不能直接用呀&#xff0c;那不…

adapter 模式

一、adapter是什么 属于结构模式&#xff08;持有或继承被适配的类&#xff09;。 对功能类进行包装&#xff0c;转换成客户端希望的样子&#xff0c;所以也叫包装模式。 实现比较直观&#xff0c;比较简单&#xff0c;就是加了一层封装。 二、adapter的使用场景 系统改造&a…

Adapter 模式(适配器模式)

适配器 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 动机 由于应用环境的变化&#xff0c;常常需要将「一些现存的对象」放在新的环境中应用&#xff0c;但是新环境要求的接口是这些现存对象所不满足…