找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 10084|回复: 8
打印 上一主题 下一主题
收起左侧

电阻、电容和电感测试仪设计论文 附单片机程序与实物制作资料

  [复制链接]
跳转到指定楼层
楼主
实物图
总电路图:
电源模块:
测量模块:
显示模块:
课程设计任务书

学生姓名:专业班级:

指导教师:   工作单位:信息工程学院

题  目:    简易电阻、电容和电感测试仪设计

初始条件:

LM317               LM337

NE555                            NE5532

STC89C52               TLC549               ICL7660               1602液晶

要求完成的主要任务:

1、测量范围:电阻 100Ω-1MΩ;

电容 100pF-10000pF;

电感 100μH-10mH。

2、测量精度:5%。

3、制作1602液晶显示器,显示测量数值,并用发光二级管分别指示所测元件的类别。

时间安排:

指导教师签名:年  月  日

系主任(或责任教师)签名:__________年  月

目录
摘  要              3
ABSTRACT              4
1、绪论              5
2、电路方案的比较与论证              5
2.1电阻测量方案              5
2.2电容测量方案              7
2.3电感测量方案              8
3、核心元器件介绍              10
3.1 LM317的介绍              10
3.2 LM337的介绍              11
3.3 NE555的介绍              11
3.4 NE5532的介绍              13
3.5 STC89C52的介绍              14
3.6 TLC549的介绍              16
3.7 ICL7660的介绍              17
3.8 1602液晶的介绍              18
4、 单元电路设计              20
4.1 直流稳压电源电路的设计              21
4.2 电源显示电路的设计              21
4.3 电阻测量电路的设计              22
4.4 电容测量电路的设计              23
4.5 电感测量电路的设计              24
4.6 电阻、电容、电感显示电路的设计              25
5、 程序设计              26
5.1 中断程序流程图              26
5.2 主程序流程图              27
6、仿真结果              27
6.1 电阻测量电路仿真              27
6.2 电容测量电路仿真              28
6.3 电感测量电路仿真              28
7、 调试过程              29
7.1 电阻、电容和电感测量电路调试              29
7.2 液晶显示电路调试              29
8、 实验数据记录              30
心 得 体 会              31
参 考 文 献              32
附  件              33
附件1:电路图              33
附件2:元件清单              34
附件3:程序代码              35
附件4:实物图              45
摘要
近几年来,电子行业的发展速度相当快,电子行业的公司企业数目也不断增多。这个现象带来的直接结果是电子行业方面的人才需求不断增多。所以,现在大多数高校都开设与电子类相关的专业及课程,为社会培养大量的电子行业的人才。做过电路设计的工作人员或者学生大多数使用万用表来测量一些元件参数或者电路中的电压电流。然而万用表有一定的局限性,它只能测量有限种类的元器件的参数,对于电容和电感等一些电抗元件就无能为力了。所以制作一种简便的电容电感测量仪显得尤为重要,方便电路设计人员或者高校电子类专业的学生测量电路中需要用到的电容及电感的具体值。
本次设计的思想是基于以上原因提出来的。该系统以STC89C52单片机为控制核心,搭配必要的外围电路对电阻、电容和电感参数进行测量。系统的基本原理是将电阻阻值、电容容值、电感感值的变化均转换成方波脉冲频率的变化,利用计数器测频后通过单片机做运算,最后计算出待测元件的各个参数并显示在1602液晶屏幕上。系统使用按键选择被测元件类型,使用1602液晶屏作为显示部分。测量时,只需将待测元件引脚放在测试仪的输入端,用按键操作需要测量的参数,便可以很快测出被测元器件的参数,简便易用。实验测试结果表明,本系统性能稳定,测量精度高。
1、绪论

在现代化生产、学习、实验当中,往往需要对某个元器件的具体参数进行测量,在这之中万用表以其简单易用,功耗低等优点被大多数人所选择使用。然而万用表有一定的局限性,比如:不能够测量电感,而且容量稍大的电容也显得无能为力。所以制作一个简单易用的电抗元器件测量仪是很有必要的。

现在国内外有很多仪器设备公司都致力于低功耗手持式电抗元器件测量仪的研究与制作,而且精度越来越高,低功耗越来越低,体积小越来越小一直是他们不断努力的方向。

该类仪器的基本工作原理是将电阻器阻值的变化量,电容器容值的变化量,电感器电感量的变化量通过一定的调理电路统统转换为电压的变化量或者频率的变化量等等,再通过高精度AD采集或者频率检测计算等方法来得到确定的数字量的值,进而确定相应元器件的具体参数。
2、电路方案的比较与论证2.1电阻测量方案

方案一:利用串联分压原理的方案



图2-1串联分压电路图

根据串联电路的分压原理可知,串联电路上电压与电阻成正比关系。测量待测电阻Rx和已知电阻R0上的电压,记为UxU0.

方案二:利用直流电桥平衡原理的方案

图2-2  直流电桥平衡电路图

根据电路平衡原理,不断调节电位器R3,使得电表指针指向正中间,再测量电位器电阻值。

  方案三:利用555构成单稳态的方案

图2-3   555定时器构成单稳态电路图

根据555定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电阻阻值。  

上述三种方案从对测量精度要求而言,方案一的测量精度极差,方案二需要测量的电阻值多,而且测量调节麻烦,不易操作与数字化,相比较而言,方案三还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。故本设计选择了方案三。

2.2电容测量方案

方案一:利用串联分压原理的方案(原理图同图2-1)

通过电容换算的容抗跟已知电阻分压,通过测量电压值,再经过公式换算得到电容的值。原理同电阻测量的方案一。

方案二:利用交流电桥平衡原理的方案(原理图同图2-2)

  通过调节Z1、Z2使电桥平衡。这时电表的读数为零。通过读取Z1、Z2、Zn的值,即可得到被测电容的值。

方案三:利用555构成单稳态原理的方案

图2-4   555定时器构成单稳态电路图

根据555定时器构成单稳态,产生脉冲波形,通过单片机读取高低电平得出频率,通过公式换算得到电容值。

R1=R2,得

上述三种方案从对测量精度要求而言,方案一的测量精度极差,方案二需要测量的电容值多,而且测量调节麻烦、电容不易测得准确值,不易操作与数字化,相比较而言,方案三还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。故本设计选择了方案三。

2.3电感测量方案

方案一:利用交流电桥平衡原理的方案(原理图同图2-2)

方案二:利用电容三点式正弦波震荡原理的方案

   

                                                       图2-5 电容三点式正弦波震荡电路图

上述两种方案从对测量精度要求而言,方案二需要测量的电感值多,而且测量调节麻烦、电感不易测得准确值,不易操作与数字化,相比较而言,方案二还是比较符合要求的,由于是通过单片机读取转化,精确度会明显的提高。故本设计选择了方案二。

3、核心元器件介绍3.1 LM317的介绍

LM317可输出连续可调的正电压,可调电压范围1.2V—37V,最大输出电流为1.5A,内部含有过流、过热保护电路,具有安全可靠、应用方便、性能优良等特点。

引脚图:

典型电路:
R1R2组成电压输出调节电路,输出电压UO表达式为:
V
电容C2R2并联组成滤波电路,减小输出的纹波电压。二极管D2的作用是防止输出端与地短路时,电容C2上的电压损坏稳压器。
3.2 LM337的介绍

与LM317正好相反,LM337可输出连续可调的负电压,可调电压范围1.2V—37V,最大输出电流为1.5A,内部含有过流、过热保护电路,具有安全可靠、应用方便、性能优良等特点。

引脚图:

典型电路:

R1R2组成电压输出调节电路,输出电压UO表达式为:
V

3.3 NE555的介绍
555集成电路开始是作定时器应用的,所以叫做555定时器或555时基电路。但后来经过开发,它除了作定时延时控制外,还可用于调光、调温、调压、调速等多种控制及计量检测。此外,还可以组成脉冲震荡、单稳、双稳和脉冲调制电路,用于交流信号源、电源变换、频率变换、脉冲调制等。它由于工作可靠、使用方便、价格低廉,目前被用于各种电子产品中,555集成电路内部有几十个元器件,有分压器、比较器、基本R-S触发器、放电管以及缓冲器等,电路比较复杂,是模拟电路和数字电路的混合体。
555集成电路内部结构图:
引脚图:

管脚介绍:
555集成电路是8脚封装,双列直插型,如图(A)所示,按输入输出的排列可看成如图(B)所示。其中6脚称阈值端(TH),是上比较器的输入;2脚称触发端,是下比较器的输入;3脚是输出端(VO),它有0和1两种状态,由输入端所加电平决定;7脚是放电端(DIS),它是内部放电管的输出,有悬空和接地两种状态,也是由输入端的状态决定;4脚是复位端(MR),加上低电平时可使输出为低电平;5脚是控制电压端(VC),可用它改变上下触发电平值;8脚是电源端,1脚是接地端。
典型应用—555震荡器电路:
由555构成的多谐振荡器如图(a)所示,输出波形如图(b)所示。

3.4 NE5532的介绍
NE5532是一种双运放高性能低噪声运算放大器。 相比较大多数标准运算放大器,如1458,它显示出更好的噪声性能,提高输出驱动能力和相当高的小信号和电源带宽。这使该器件特别适合应用在高品质和专业音响设备,仪器和控制电路和电话通道放大器。如果噪音非常最重要的,因此建议使用5532A版,因为它能保证噪声电压指标。
NE5532特点:
  •小信号带宽:10MHZ
•输出驱动能力:600Ω,10V(有效值)
•输入噪声电压:5nV/√Hz(典型值)
•直流 [url=]电压增[/url]益:50000
•交流电压增益:2200-10KHZ
•功率带宽: 140KHZ
•转换速率: 9V/μs
•大的电源电压范围:±3V-±20V
•单位增益补偿
NE5532引脚图:
NE5532内部原理图:
(见附件)

3.5 STC89C52的介绍
STC单片机的优点:
★加密性强,很难解密或破解
★超强抗干扰:
1 、高抗静电(ESD保护)
2 、轻松过 2KV/4KV快速脉冲干扰(EFT 测试)
3 、宽电压,不怕电源抖动
4 、宽温度范围,-40℃~85℃
5 、I/O 口经过特殊处理
6 、单片机内部的电源供电系统经过特殊处理
7 、单片机内部的时钟电路经过特殊处理
8 、单片机内部的复位电路经过特殊处理
9 、单片机内部的看门狗电路经过特殊处理
★超低功耗:
1 、掉电模式:典型功耗<0.1 μ A   
2 、空闲模式:典型功耗2mA
3 、正常工作模式:典型功耗4mA-7mA
4 、掉电模式可由外部中断唤醒,适用于电池供电系统,如水表、气表、便携设备等.
★在系统可编程,无需编程器,可远程升级
★可送 STC-ISP 下载编程器,1 万片/人/天
★可供应内部集成 MAX810 专用复位电路的单片机
STC89C52单片机最小系统原理图:
3.6 TLC549的介绍
  TLC549是美国德州仪器公司生产的8位串行A/D转换器芯片,可与通用微处理器、控制器通过CLK、CS、DATA OUT三条口线进行串行接口。具有4MHz片内系统时钟和软、硬件控制电路,转换时间最长17μs, TLC549为40 000次/s。总失调误差最大为±0.5LSB,典型功耗值为6mW。采用差分参考电压高阻输入,抗干扰,可按比例量程校准转换范围,VREF-接地,VREF+VREF-≥1V,可用于较小信号的采样。
引脚图:
极限参数:
    ●电源电压:6.5V;
  ●输入电压范围:0.3V~VCC+0.3V;
  ●输出电压范围:0.3V~VCC+0.3V;
  ●峰值输入电流(任一输入端):±10mA;
  ●总峰值输入电流(所有输入端):±30mA;
  ●工作温度: TLC549C:0℃~70℃
    TLC549I:-40℃~85℃
    TLC549M:-55℃~125℃
工作原理:
  TLC549均有片内系统时钟,该时钟与I/O CLOCK是独立工作的,无须特殊的速度或相位匹配。其工作时序如图2所示。
  当CS为高时,数据输出(DATA OUT)端处于高阻状态,此时I/O CLOCK不起作用。这种CS控制作用允许在同时使用多片TLC549时,共用I/O CLOCK,以减少多路(片)A/D并用时的I/O控制端口。
通常的控制时序:
    (1)将CS置低。内部电路在测得CS下降沿后,再等待两个内部时钟上升沿和一个下降沿后,然后确认这一变化,最后自动将前一次转换结果的最高位(D7)位输出到DATA OUT端上。
  (2) 前四个I/O CLOCK周期的下降沿依次移出第2、3、4和第5个位(D6、D5、D4、D3),片上采样保持电路在第4个I/O CLOCK下降沿开始采样模拟输入。
   (3)接下来的3个I/O CLOCK周期的下降沿移出第6、7、8(D2、D1、D0)个转换位,
  (4)最后,片上采样保持电路在第8个I/O CLOCK周期的下降沿将移出第6、7、8(D2、D1、D0)个转换位。保持功能将持续4个内部时钟周期,然后开始进行32个内部时钟周期的A/D转换。第8个I/O CLOCK后,CS必须为高,或I/O CLOCK保持低电平,这种状态需要维持36个内部系统时钟周期以等待保持和转换工作的完成。如果CS为低时I/O CLOCK上出现一个有效干扰脉冲,则微处理器/控制器将与器件的I/O时序失去同步;若CS为高时出现一次有效低电平,则将使引脚重新初始化,从而脱离原转换过程。
  在36个内部系统时钟周期结束之前,实施步骤(1)-(4),可重新启动一次新的A/D转换,与此同时,正在进行的转换终止,此时的输出是前一次的转换结果而不是正在进行的转换结果。
  若要在特定的时刻采样模拟信号,应使第8个I/O CLOCK时钟的下降沿与该时刻对应,因为芯片虽在第4个I/O CLOCK时钟下降沿开始采样,却在第8个I/O CLOCK的下降沿开始保存。
时序图:
3.7 ICL7660的介绍
ICL7660是Maxim公司生产的小功率极性反转电源转换器。该集成电路与TC7662ACPA MAX1044的内部电路及引脚功能完全一致,可以直接替换。
引脚图:

引脚介绍:
引脚号
引脚符号
引脚功能
1
N.C
空脚
2
CAP+
储能电容正极
3
GND
接地
4
CAP-
储能电容负极
5
VOUT
负电压输出端
6
LV
输入低压电压控制端,输入电压低于3.5V时,该脚接地,输入电压高于3.5V时,该脚必须悬空。
7
OSC
工作时钟输入端
8
V+
电源输入端

ICL7660作为电源极性转换器的典型应用电路:
3.8 1602液晶的介绍
本设计使用的1602液晶为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置含128个字符的ASCII字符集字库,只有并行接口,无串行接口。
1602与单片机接口:

接口说明:
编号
符号
引脚说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据口
2
VDD
电源正极
10
D3
数据口
3
VQ
液晶显示对比度调节
11
D4
数据口
4
RS
数据/命令选择端(H/L)
12
D5
数据口
5
R/W
读写选择端(H/L)
13
D6
数据口
6
E
使能信号
14
D7
数据口
7
D0
数据口
15
BLA
背光灯电源正极
8
D1
数据口
16
BLK
背光灯电源负极

基本操作时序:
读状态 输入:RS=L,R/W=H,E=H                                                                                                 输出:D0~D7=状态字
读数据 输入:RS=H,R/W=H,E=H                                                                                                 输出:无
写指令 输入:RS=L,R/W=L,D0~D7=指令码,E=高脉冲              输出:D0~D7=数据
写数据 输入:RS=H,R/W=L,D0~D7=指令码,E=高脉冲              输出:无

1602写操作时序图:
4、单元电路设计
系统方框图:


4.1 直流稳压电源电路的设计
本系统采用双电源供电,故应设计正、负两路直流稳压电源。
4.2 电源显示电路的设计
由于TLC549输入电压范围不超过5V,而要测的直流电源电压达15V,可用变阻器分压,将电源电压缩小为1/4后输给TLC549。又由于TLC549只能输入正电压,对于负电压,可用一NE5532构成的反相器先将负电压转成正电压再加到TLC549的输入端。其中NE5532采用双电源供电效果比较理想,VEE由ICL7660构成的电源极性转换电路提供,将+5V转换为-5V。TLC549采集的数据通过1602液晶显示。
4.3 电阻测量电路的设计
P1^5接一独立按键,当其按下时,NE555的3引脚输出方波,3脚与P1^2相接,可通过程序测出其频率,进而求出Rx的值,显示在1602液晶屏上。
4.4 电容测量电路的设计
P1^6接一独立按键,当其按下时,NE555的3引脚输出方波,3脚与P1^3相接,可通过程序测出其频率,进而求出Cx的值,显示在1602液晶屏上。
4.5 电感测量电路的设计
由于电容三点式震荡电路产生的信号较小,所以先加一级单管放大,在跟比较器将正弦波转化成方波。P1^4接一独立按键,当其按下时,运放输出口输出方波,该口与P1^3相接,可通过程序测出其频率,进而求出Lx的值,显示在1602液晶屏上。
4.6 电阻、电容、电感显示电路的设计
采用1602液晶显示,耗能低,显示数值范围较大。
5、程序设计5.1 中断程序流程图

5.2 主程序流程图

6、仿真结果6.1 电阻测量电路仿真
仿真电路图:
输出波形:
6.2 电容测量电路仿真
仿真电路图:
输出波形:
6.3 电感测量电路仿真
仿真电路图:
输出波形:
7、调试过程7.1 电阻、电容和电感测量电路调试
接通电源,用示波器观察输出波形,若为方波,则电路焊接无误,否则检查电路。
在调试过程中发现,若改变电源电压,输出方波的频率会发生变化,计算出的数值存在一定误差,当VCC为3.25V左右时误差较小。
7.2 液晶显示电路调试
将测量电路的输出分别与单片机的P1^5、P1^6、P1^7相接,观察液晶是否显示测量结果。
在调试过程中发现,电阻、电容的测量误差较小,由于电容三点式震荡电路的频率不稳定,电感测量的误差较大。
8、实验数据记录
待      测      元      件
示  波  器  测  量  结  果
单  片  机  显  示  结  果
待 测 电 阻
标   称   值
(Ω)
频  率
(Hz)
计 算 值
(Ω)
相对误差
(%)
频   率
(Hz)
计 算 值
(Ω)
相对误差
(%)




R
1000
5882
1064.36
6.44
5796
1094
9.40
2000
3289
2021.74
1.09
3233
2081
4.05
2400
2841
2364.21
1.49
2801
2425
1.04
5100
1389
4992.45
2.11
1365
5134
0.67
100000
730
9634.74
3.65
716
9924
0.76
12000
610
11559.60
3.67
600
11872
1.07
39000
184
38669.88
0.85
182
39484
1.24
100000
70
101890.82
1.89
68
105930
5.93
330000
20
356992.86
8.18
20
360523
9.25
待测电容
标  称  值
(pF)
频  率
(Hz)
计 算 值
(pF)
相对误差
(%)
频  率
(Hz)
计 算 值
(pF)
相对误差
(%)

C
100
7813
119.51
19.51
7616
123
23.00
470
1953
478.09
1.72
1965
479
1.91
10000
89
10491.09
4.91
87
10838
8.38
待测电感
标  称  值
(uH)
频  率
(Hz)
计 算 值
(uH)
相对误差
(%)
频  率
(Hz)
计 算 值
(uH)
相对误差
(%)

L
100
113600
78.59
21.41
113875
78.21
21.79
150
90910
122.72
18.19
91574
120.95
19.37
220
74630
182.10
17.23
75132
179.68
18.33
470
44250
517.98
10.21
43886
526.61
12.04



心 得 体 会

这次模电课设的论文和设计是我这大学期间干的最有意义的事之一。从最初的选题,开题到写论文直到完成论文。其间,查找资料,老师指导,与同学交流,反复修改论文,每一个过程都是对自己能力的一次检验和充实。通过这次实践,我了解了简易电阻、电容和电感测试仪的用途及工作原理,熟悉了其的设计步骤,锻炼了设计实践能力,培养了自己独立设计能力。这次课程设计收获很多,比如学会了查找相关资料相关标准,分析数据,提高了自己的制作能力。这么一次锻炼可以学到书本里许多学不到的知识,坚韧、独立、思考等。但是课程设计也暴露出自己专业基础的很多不足之处。比如缺乏综合应用专业知识的能力,对材料的不了解等等。由于能力有限,未能做到准确测量电阻、电容和电感,某些测量结果误差,测量范围较小,感到有点儿遗憾。这次实践是对自己模电所学的一次大检阅,使我明白自己知识还很不全面。

本设计是在老师的精心指导和鼓励下完成的。在此,谨向老师和帮助我的同学表示衷心的感谢!

此外,我还要感谢在我的论文中所有被援引过的文献的作者们,他们是我的知识之源!

最后,再次向所有给予我帮助和鼓励的同学和老师致以最诚挚的谢意!



参 考 文 献

[1] 吴友宇主编. 模拟电子技术基础. 北京:清华大学出版社,2009

[2] 康华光主编. 电子技术基础(数字部分、模拟部分). 第5版. 北京:高等教育出版社,1998

[3] 郭天祥主编. 51单片机C语言教程--入门、提高、开发、拓展全攻略. 北京:电子工业出版社,2009

[4] 聂典,丁伟. Multisim 10计算机仿真--在电子电路设计中的应用. 北京:电子工业出版社,2009

[5] 铃木雅臣. 晶体管电路设计. 北京:科学出版社,2012

附  件
附件1:电路图

附件2:元件清单
元件
型号
位号
数量
单片机
STC89C52RC
U1
1
排阻
A103J
R3
1
电位器
10KΩ
R2,R13,R17,R18
4
晶振
11.0592M
X1
1
电解电容
25V,10uF
C3
1
瓷片电容
103(0.01uF)
C1,C2,C11
3
电阻
10KΩ
R1,R13,R18
3
按键

J1,J2,J3,J4
4
液晶
1602
U2
1
555定时器
NE555
A1,A2
2
电阻
300Ω
R4
1
电阻
510KΩ
R5,R6
2
瓷片电容
104(0.1uF)
C4,C5,C6,C7,C8,C9
6
电阻
100KΩ
R7,R9
2
电解电容
50V,22uF
C10
1
三极管
S9018(NPN型)
Q1,Q2,Q3
3
电阻
2KΩ
R10
1
电阻
1KΩ
R8,R11,R14
3
电解电容
50V,47uF
C12,C13
2
电阻
39KΩ
R12,R19
2
电阻
51Ω
R15,R16
2
电解电容
25V,470uF
C14
1
运放
NE5532
U3
1

附件3:程序代码
单片机源程序如下:
  1. 程序2:电阻、电容和电感测量值的显示
  2. //简易电阻、电容、电感测量仪程序
  3. //初始化
  4. #include <reg52.h>
  5. #define uint unsigned int
  6. #define uchar unsigned char
  7. #define ulong unsigned long
  8. #define    PI3.1415926
  9. uchar code table1[8]="Welcome!";
  10. uchar table2[16]="f(Hz)=";
  11. uchar table3[16]="R(Ohm)=";
  12. uchar table4[16]="C(pF)=";
  13. uchar table5[16]="L(uH)=";
  14. uchar num,a=0,th0,tl0;
  15. uint C,L;
  16. ulong f,R;
  17. sbit lcden=P2^4;                         //液晶使能端   
  18. sbit lcdrs=P2^5;                        //液晶数据命令选择端
  19. sbit key_R=P1^5;                      //测量电阻按键
  20. sbit key_C=P1^6;                      //测量电容按键
  21. sbit key_L=P1^7;                      //测量电感按键
  22. sbit R_out=P1^2;                        //测量电阻信号输入
  23. sbit C_out=P1^3;                        //测量电容信号输入
  24. sbit L_out=P1^4;                        //测量电感信号输入
  25. //声明子函数
  26. void delayms(uint xms);               //延时函数
  27. void write_com(uchar com);         //液晶写命令函数
  28. void write_data(uchar date);         //液晶写数据函数   
  29. void led_init();                            //液晶初始化函数
  30. void t_init();                               //定时器0初始化函数
  31. void keyscan();                            //键盘检测函数(确定被测元件为电阻、电容或电感)
  32. void display_f(ulong f);              //频率显示函数
  33. void display_R(ulong R);             //电阻显示函数
  34. void display_C(uint C);              //电容显示函数
  35. void display_L(uint L);                //电感显示函数
  36. //主函数
  37. void main()
  38. {
  39. led_init();
  40. t_init();
  41. keyscan();
  42. write_com(0x01);
  43. while(1)
  44.   {
  45.        display_f(f);
  46.        switch(a)
  47.        {
  48.          case1:R=(ulong)(5000000.0/0.6931472/f-150+0.5);display_R(R);break;
  49.          case2:C=(int)(100000000.0/153/0.6931472/f+0.5);display_C(C);break;
  50.          case3:L=(int)(1000000000000.0/0.1/PI/PI/f/f+0.5);display_L(L);break;
  51.       }
  52.   }
  53. }
  54. //中断函数
  55. void T0_count() interrupt 1
  56. {
  57. switch(a)
  58.   {
  59.   case 1:while(R_out);
  60.               while(!R_out);
  61.                TH0=0;
  62.                TL0=0;
  63.                while(R_out);
  64.                while(!R_out);
  65.                th0=TH0;
  66.                tl0=TL0;
  67.                TR0=0;
  68.                break;
  69.   case 2:while(C_out);
  70.               while(!C_out);
  71.                TH0=0;
  72.                TL0=0;
  73.                 while(C_out);
  74.                while(!C_out);
  75.                th0=TH0;
  76.                tl0=TL0;
  77.                TR0=0;
  78.                break;
  79.        case3:while(L_out);
  80.               while(!L_out);
  81.                TH0=0;
  82.                TL0=0;
  83.                while(L_out);
  84.                while(!L_out);
  85.                th0=TH0;
  86.                tl0=TL0;
  87.                TR0=0;
  88.                break;
  89.    }
  90.   f=1000000.0/1.085069/(th0*256+tl0)+0.5;
  91. }
  92. //延时函数
  93. void delayms(uint xms)  
  94. {
  95. uint i,j;
  96. for(i=xms;i>0;i--)
  97.        for(j=110;j>0;j--);
  98. }
  99. //液晶写命令函数
  100. void write_com(uchar com)
  101. {
  102. lcdrs=0;
  103. P0=com;
  104. delayms(5);
  105. lcden=1;
  106. delayms(5);
  107. lcden=0;
  108. }
  109. //液晶写数据函数
  110. void write_data(uchar date)   
  111. {
  112. lcdrs=1;
  113. P0=date;
  114. delayms(5);
  115. lcden=1;
  116. delayms(5);
  117. lcden=0;
  118. }
  119. //液晶初始化函数
  120. void led_init()
  121. {
  122. lcden=0;
  123. write_com(0x38);                    //设置16×2显示,5×7点阵,8位数据接口               
  124. write_com(0x0c);                    //设置开显示,不显示光标         
  125. write_com(0x06);                    //写一个字符后地址指针加1            
  126.   write_com(0x01);                    //显示清0,数据指针清0           
  127. write_com(0x80);                    //显示欢迎界面
  128. for(num=0;num<8;num++)
  129.   {
  130.         write_data(table1[num]);
  131.         delayms(5);
  132.   }
  133. }
  134. //定时器0初始化函数
  135. void t_init()
  136. {
  137. TMOD=0x01;                         //设置定时器0工作方式1(M1M0=0x0001)                                                     
  138. TH0=0;                                  //装初值               
  139. TL0=0;
  140. EA=1;                                    //开总中断                  
  141. ET0=1;                                   //开定时器0中断
  142. TR0=1;                                   //启动定时器0
  143. }
  144. //键盘检测函数(确定被测元件为电阻、电容或电感)
  145. void keyscan()
  146. {
  147. if(key_R==0)
  148.   {
  149.        delayms(10);
  150.        if(key_R==0)
  151.          a=1;
  152.   }
  153. else
  154.    if(key_C==0)
  155.     {
  156.          delayms(10);
  157.          if(key_C==0)
  158.            a=2;
  159.     }
  160.       else
  161.      if(key_L==0)
  162.      {
  163.            delayms(10);
  164.            if(key_L==0)
  165.              a=3;
  166.      }
  167.          else
  168.               while(key_R&&key_C&&key_L);              //按键按下时退出死循环
  169. }
  170. //频率显示函数
  171. void display_f(ulong f)  
  172. {
  173. uchar count=0;
  174. ulong f0;
  175. f0=f;

  176. ……………………

  177. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
完整的Word格式文档51黑下载地址(共48页):
简易电阻、电容和电感测试仪设计.doc (1.64 MB, 下载次数: 137)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2017-11-28 02:57 | 只看该作者
好资料,51黑有你更精彩!!!
回复

使用道具 举报

板凳
ID:583274 发表于 2019-7-13 09:09 | 只看该作者
很棒,这个资料很全面,详细
回复

使用道具 举报

地板
ID:576744 发表于 2019-7-14 08:49 | 只看该作者
对我的帮助真的很大,谢谢大佬
回复

使用道具 举报

5#
ID:69380 发表于 2019-7-23 13:27 | 只看该作者
不错的资料,讲解也详细
回复

使用道具 举报

6#
ID:256725 发表于 2019-8-9 18:57 | 只看该作者
为什么按电路图电感仿真会出错的
回复

使用道具 举报

7#
ID:767535 发表于 2020-8-22 15:56 | 只看该作者
老庄扒 发表于 2019-8-9 18:57
为什么按电路图电感仿真会出错的

我也是,什么问题啊
回复

使用道具 举报

8#
ID:978679 发表于 2022-10-11 14:17 | 只看该作者
资料不错,但是集成度还是不高,分立件多精度低
回复

使用道具 举报

9#
ID:335252 发表于 2022-10-12 19:31 | 只看该作者
版主好棒!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表