🌍首页
📁归档
⏳时光机
🚩友链
📫留言
📧订阅
🌟推荐
📕考研课程
🏜️ 免费壁纸
❤ 捐助本站
💰资助名单
🎵音乐实验
Search
1
【NPN/PNP三极管】放大电路饱和失真和截止失真的区别
20,239 阅读
2
论文写作中如何把word/wps里面所有数字和字母替换为新罗马字体
10,770 阅读
3
【高数】形心计算公式讲解大全
9,127 阅读
4
Vivado-FPGA Verilog烧写固化教程
8,179 阅读
5
【概论】一阶矩、二阶矩原点矩,中心矩区别与概念
7,903 阅读
🪶微语&随笔
励志美文
我的随笔
工作办公
📡电子&通信
嵌入式&系统
通信&信息处理
编程&脚本笔记
⌨️IC&系统
FPGA&ASIC
VLSI&IC验证
EDA&虚拟机
💻电子&计算机
IP&SOC设计
机器学习
软硬件算法
登录
/
注册
嵌入式(共37篇)
找到
37
篇与
嵌入式
相关的结果
- 第 4 页
2021-02-14
电容、电感、电阻参数测量系统设计
摘要本文设计了一个元器件参数测量仪,可测量电阻、电容和电感参数,测量范围分别为100Ω~1MΩ、100pF~10000pF,测量精度±5%。文章详细介绍了单元电路设计、参数计算、总原理图及元器件清单,并提供了软件程序。关键词:电容, 电感, 电阻, 参数测量, 元器件目录 一、设计任务和要求 二、单元电路设计和参数计算 三、总原理图及元器件清单 四、附录 一、设计任务和要求 1、设计并制作一个元器件参数测量仪。 2、电阻阻值测量,范围:100Ω~1MΩ; 3、电容容值测量,范围:100pF~10000pF; 4、测量精度:±5% ; 5、电感参数的测量; 6、扩大量程; 7、提高测量精度; 系统设计图图片 二、单元电路设计和参数计算 1、电阻的检测单元电路设计 电阻检测图片 从而,可以计算得出电阻值的大小。 2、电容的检测单元电路设计 电容检测图片 从而,可以计算得出电容值的大小。 3、电感的检测单元电路设计 电感检测图片 从而,可以计算得出电感值的大小。 三、总原理图及元器件清单 总电路图片 实物图图片 (2)元器件清单 表1 原理图中所使用的元器件清单 元件序号 型号 数量 备注 U1 STC89C52RC 1 单片机 R3 A103J 1 排阻 R2,R3,R17,R18 10KΩ 4 电位器 X1 11.0592M 1 晶振 C3 25V,10uF 1 电解电容 C1,C2,C11 103(0.01uF) 3 瓷片电容 R1,R13,R18 10KΩ 3 电阻 J1,J2,J3,J4 4 按键 U2 1602 1 液晶 A1,A2 NE555 2 555定时器 R4 300Ω 1 电阻 R5,R6 510KΩ 2 电阻 C4,C5,C6,C7,C8,C9 104(0.1uF) 6 瓷片电容 R7,R9 100KΩ 2 电阻 C10 50V,22uF 1 电解电容 Q1,Q2,Q3 S9108(NPN型) 3 三极管 R10 2KΩ 1 电阻 R8,R11,R14 1KΩ 3 电阻 C12,C13 50V,47uF 2 电解电容 R12,R19 39KΩ 2 电阻 R15,R16 51Ω 2 电阻 C14 25V,470uF 1 电解电容 U3 NE55532 1 运放 四、附录 软件程序 //RCL测量仪程序 //初始化 #include <reg52.h> #define uint unsigned int #define uchar unsigned char #define ulong unsigned long #define PI 3.1415926 uchar code table1[8]="Welcome! RCL detector"; uchar table2[16]="f(Hz)="; uchar table3[16]="R(Ohm)="; uchar table4[16]="C(pF)="; uchar table5[16]="L(uH)="; uchar num,a=0,th0,tl0; uint C,L; ulong f,R; sbit lcden=P2^4; //液晶使能端 sbit lcdrs=P2^5; //液晶数据命令选择端 sbit key_R=P1^5; //测量电阻按键 sbit key_C=P1^6; //测量电容按键 sbit key_L=P1^7; //测量电感按键 sbit R_out=P1^2; //测量电阻信号输入 sbit C_out=P1^3; //测量电容信号输入 sbit L_out=P1^4; //测量电感信号输入 //声明子函数 void delayms(uint xms); //延时函数 void write_com(uchar com); //液晶写命令函数 void write_data(uchar date); //液晶写数据函数 void led_init(); //液晶初始化函数 void t_init(); //定时器0初始化函数 void keyscan(); //键盘检测函数(确定被测元件为电阻、电容或电感) void display_f(ulong f); //频率显示函数 void display_R(ulong R); //电阻显示函数 void display_C(uint C); //电容显示函数 void display_L(uint L); //电感显示函数 //主函数 void main() { led_init(); t_init(); keyscan(); write_com(0x01); while(1) { display_f(f); switch(a) { case 1:R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break; case 2:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break; case 3:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break; } } } //中断函数 void T0_count() interrupt 1 { switch(a) { case 1:while(R_out); while(!R_out); TH0=0; TL0=0; while(R_out); while(!R_out); th0=TH0; tl0=TL0; TR0=0; break; case 2:while(C_out); while(!C_out); TH0=0; TL0=0; while(C_out); while(!C_out); th0=TH0; tl0=TL0; TR0=0; break; case 3:while(L_out); while(!L_out); TH0=0; TL0=0; while(L_out); while(!L_out); th0=TH0; tl0=TL0; TR0=0; break; } f=1000000.0/1.085069/(th0*256+tl0)+0.5; } //延时函数 void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } //液晶写命令函数 void write_com(uchar com) { lcdrs=0; P0=com; delayms(5); lcden=1; delayms(5); lcden=0; } //液晶写数据函数 void write_data(uchar date) { lcdrs=1; P0=date; delayms(5); lcden=1; delayms(5); lcden=0; } //液晶初始化函数 void led_init() { lcden=0; write_com(0x38); //设置16×2显示,5×7点阵,8位数据接口 write_com(0x0c); //设置开显示,不显示光标 write_com(0x06); //写一个字符后地址指针加1 write_com(0x01); //显示清0,数据指针清0 write_com(0x80); //显示欢迎界面 for(num=0;num<8;num++) { write_data(table1[num]); delayms(5); } } //定时器0初始化函数 void t_init() { TMOD=0x01; //设置定时器0工作方式1(M1M0=0x0001) TH0=0; //装初值 TL0=0; EA=1; //开总中断 ET0=1; //开定时器0中断 TR0=1; //启动定时器0 } //键盘检测函数(确定被测元件为电阻、电容或电感) void keyscan() { if(key_R==0) { delayms(10); if(key_R==0) a=1; } else if(key_C==0) { delayms(10); if(key_C==0) a=2; } else if(key_L==0) { delayms(10); if(key_L==0) a=3; } else while(key_R&&key_C&&key_L); //按键按下时退出死循环 } //频率显示函数 void display_f(ulong f) { uchar count=0; ulong f0; f0=f; while(f) { f=f/10; count++; } for(num=5+count;num>5;num--) { table2[num]=f0%10+48; f0=f0/10; } write_com(0x80); for(num=0;num<6+count;num++) { write_data(table2[num]); delayms(5); } } 剩余程序付费0.5元即可阅读
嵌入式&系统
# 嵌入式
刘航宇
5年前
5
2,178
3
上一页
1
...
3
4