历史上的今天
返回首页

历史上的今天

今天是:2024年12月28日(星期六)

2021年12月28日 | 创意小发明:单片机制作电容电阻测量仪

2021-12-28 来源:eefocus

课题

电路元件参数RC测量电路的设计


设计要求:

测量仪的工作原理为:利用振荡电路,将电阻、电容的测量转变为与之成一定函数关系频率的测量,再利用单片机对不同频率进行测量和处理,用数码管显示被测量的大小,可以利用按键对被测量类型进行选择。


测量电阻范围为:≤1MΩ。

测量电容范围为:≤10000pF。

测量精度〈±5%。


废话不多说,先上实物图


注意,做实物没找到开关,用的是跳线冒,当未接跳线时,显示上面最后一张截图待测状态,跳线接好后,将显示对应的测量值。

在这里插入图片描述

单片机电容电阻测量仪仿真原理图截图如下:

在这里插入图片描述

细节1截图在这里插入图片描述

细节2截图

在这里插入图片描述

设计主旨:主要原理是利用555定时器的振荡频率受外围电阻电容的影响来测量的,

以下是部分单片机C语言参考代码:


void measure(void)

{

IE=0x8a;

EA=1;

ET1=1;

ET0=1;

TMOD=0x51;

TH0=H_0;

TL0=L_0;

TH1=0;

TL1=0;


TR0=1;

// while(fw1);//测得引脚P3^5为高电平

TR1=1; //timer1 开始计数

// while(fw0); //测得引脚P3^5为低电平

// TR1=0;

//timer1 停止计数

// DL=TL1; //读当前计数值

// DH=TH1;

/// freq=DPTR;

// TH1=100;

// TL1=100;

// uu=DH256+DPL+inte65536; //计算总计数值

// inte=0; //清累计溢出计数

// tt=uu/(12*1000000.0/12.0); //求振荡周期

// ff=(unsigned long int)(1.0/tt); //频率值 求震荡频率

}


void yunsuan (void)

{

float tt=0;

// DPH=11;

// DPL=12;

uu=DH256+DL+inte65536; //计算总计数值

inte=0; //清累计溢出计数

tt=uu/(12*1000000.0/12.0); //求振荡周期

ff=(unsigned long int)(1.0/tt); //频率值 求震荡频率

}

void judgekey1()

{

long int R=0;


// R=(dat1000)/(255-dat);

R=10dat-130;

display®;

LED=~LED;

}


void judgekey2()

{

long int C=0;

if(scd0)

{

// C=3193333.0/freq;

C=((9.4*ff)-200)*0.8;

display1©;

LED=~LED;

}

else if (scg0)

{

// C=3193333.0/ff;

C=(9.4*ff)-200;

display1©;

LED=~LED;

}

}

推荐阅读

史海拾趣

AIM - American Iron and Metal公司的发展小趣事

在电子行业的初期,AIM主要以传统的铁和金属加工业务为主。然而,随着电子技术的迅猛发展,公司管理层意识到转型的必要性。AIM开始投资研发,逐步将业务扩展到电子元件和设备的制造领域。通过引进先进的生产线和技术人才,AIM成功开发出一系列高性能的电子零部件,逐渐在市场中站稳脚跟。

BEKA Associates Ltd公司的发展小趣事

BCD Semi(Diodes)在电子行业中以其卓越的技术实力和持续的产品创新而闻名。近年来,公司成功研发出一系列高性能的模拟半导体产品,这些产品在市场上取得了显著的成功。通过不断优化生产工艺和设计理念,BCD Semi成功提升了产品的性能和可靠性,赢得了客户的广泛认可。同时,公司还积极开拓新的应用领域,将产品应用于汽车、通信、工业控制等多个领域,进一步扩大了市场份额。

Eastman Kodak Company公司的发展小趣事

伊士曼柯达公司由发明家乔治·伊士曼于1880年创立,最初名为伊斯曼干版公司。伊士曼的初衷是提供一种更便捷、更经济的摄影方式,以满足大众对摄影的日益增长的需求。他通过不断的研发和创新,成功推出了易于使用的胶卷和相机,使摄影技术得以普及。这一创新不仅改变了摄影行业的格局,也为伊士曼柯达公司的后续发展奠定了坚实的基础。

AINFO Inc公司的发展小趣事

随着电子行业的快速发展,AINFO Inc公司积极响应国家产业政策,加快了产业升级的步伐。公司引进了先进的生产设备和技术,实现了智能制造和数字化转型。通过优化生产流程和提高生产效率,公司降低了成本,提高了产品质量,进一步巩固了市场地位。

德芯半导体(Doeshare)公司的发展小趣事

德芯半导体在成立之初就明确了其市场定位:以高性价比的特色传感器系列产品为目标市场。公司秉承“以德治企,创造精品”的经营理念,通过深入了解市场需求,不断推出符合市场需求的创新产品。在智能家居、智能制造等领域,德芯半导体的产品凭借其高性能、高品质和低价格,赢得了国内外知名公司的认证和合作。

东晶(ECEC)公司的发展小趣事

近年来,随着电子信息技术的快速发展和智能化趋势的加剧,东晶电子也面临着新的机遇和挑战。为了适应市场变化和满足客户需求,公司开始实施战略转型和升级。公司加大了对新型电子元器件的研发力度,推动产品向微型化、功能化、高精度方向发展。同时,公司还积极开拓新领域和新市场,拓展业务范围和市场份额。这些举措为公司未来的发展奠定了坚实的基础。

请注意,这些故事是基于已知信息的概括性描述,并非具体的历史事件。在实际情况中,东晶电子的发展历程可能更加复杂和多样化。

问答坊 | AI 解惑

全球通用测试测量市场趋势分析

根据测试测量世界tmworld与Frost & Sullivan的联合调查,全球通用仪器市场的大部分份额仍然由示波器、频谱分析仪、信号发生器、万用表四种仪器把持。如图(1)所示四种仪器所占份额依次为33.7%,17.3%,16.3%,13.1%。个人认为,频谱分析仪之所以会占 ...…

查看全部问答>

Altium Designer 6.0 设计管理器学习

Altium Designer 6.0 的所有电路设计工作都必须在 Design Explorer (设计管理器)中进行,同时设计管理器也是 Altium Designer 6.0 启动后的主工作接口。设计管理器具有友好的人机接口,而且设计功能强大,使用方便,易于上手。因此本章将对设计管 ...…

查看全部问答>

TFTP: Desktop losing ACK, block number =3(无法传输nk)

pb通过以太网无法传输nk,串口调试信息                               TFTP: Desktop losing ACK, block number = 3      ...…

查看全部问答>

DM365DVR上TD模块(LC6311)的网速测试的疑问

我的开发平台是DM365DVR,通过USB方式将TD模块(LC6311)连接到DM365DVR上,正确配置后,能够成功拨号,也能够通过TD网络传输视频,但是传输效果极差。CIF(352*288)格式的视频每秒只能传输一到两帧,而且画面质量也不好。更可气的是传不几秒就断 ...…

查看全部问答>

系统 电池电量低挂起。

要做这个功能,希望大家说说。你们系统是在哪个位置做的这个功能,我好去看看我的代码,谢谢大家。…

查看全部问答>

新手紧急求助:232编程问题

具体事情如下: 传感器测一个力,送到“TR700数字式重量变送器”上显示。现在从“TR700数字式重量变送器”上接出的一个RS232接到电脑上,需要做的是在电脑上采集传感器测得的数据并存储下来。 从来没做过这方面的工作,在网上查了一下还是毫无头 ...…

查看全部问答>

驱动中触摸屏坐标和LCD坐标转换问题!!

#define TOUCH_MAX_X 1000 // 950 #define TOUCH_MIN_X 30 // 90 #define TOUCH_MAX_Y 980 // 960 // 910 #define TOUCH_MIN_Y 30 // 70 //50 #define TOUCH_X 800 #define TOUCH_Y 480 VOID Touch_CoordinateConversion(INT *px, INT ...…

查看全部问答>

bsp中romStart的解压缩过不去~

开发的硬件是mips架构的CPU~ 郁闷了~在dos下编bootrom.bin,烧进flash后通过点灯观察运行状况 在romStart函数中复制rom代码到ram已经没问题,之后可以成功调用rom中的点灯程序或者已经复制到ram中的点灯程序拷贝。 但是解压缩就是过不去~ 想问 ...…

查看全部问答>

初学者

向各位高手请教一下,我是刚学51单片机的,8位CPU和片外32口线,16地址线是什么意思?尽量讲的通俗易懂些,谢谢!…

查看全部问答>

一个文件读取的问题?

我在VC下写        char szDrive[256]={0};         char szDir[256]={0};         char szPath[256]={0};         _splitpath(szFileName,szDrive,szDir,NUL ...…

查看全部问答>