简易自动电阻测试仪

合集下载

毕业设计---简易自动电阻测试仪的设计

毕业设计---简易自动电阻测试仪的设计

毕业设计(论文)任务书课题名称:简易自动电阻测试仪的设计一、原始依据(资料):刘松曹金玲《单片机技术与应用》天津电子信息职业技术学院《智能电子》《智能PID调节器的设计及应用》《传感器技术》二、设计(论文)内容和要求:设计内容:本系统对于不同的量程分别采用恒流源测阻电路、分压法测阻电路和惠更斯桥I/V变换测阻电路进行电阻测量,充分的发挥出不同电路不同量程的工作特点,并且在软件上进行了校准。

本自动电阻测试仪恒流源以及稳压电路由CA3140、TL431等元器件实现,由ATmega128高速单片机为主控制器,通过其内部自带10位AD转换器的A/D转换,对被测电阻两端电压信号进行采样,把连续信号离散化,然后通过LCD液晶显示屏显示电阻的大小。

该自动测试仪能够较精确的测量1Ω—10MΩ范围内的电阻,其测量误差为±1%,是一个简单易用的电阻测试仪方案。

该系统有,能够自动换档,筛选电阻,并且绘制电阻变化曲线。

实现了测量准确度为±(1%读数+2 字)的三位有效数字显示的简易自动电阻测试仪。

通过偏置电源的改进提高了精度,又通过软件算法的改进再次提高了精度,对22个范围在0~10M电阻的反复测试,证明了该系统测量精度的明显改善。

设计要求:该简易自动电阻测试仪系统实现了测量准确度为±(1%读数+2 字)的三位有效数字显示。

通过偏置电源的改进第一次提高了精度,又通过软件算法的改进再次提高了精度,对22个范围在0~10M电阻的反复测试三、建议查阅的技术资料:【1】刘松曹金玲《单片机技术与应用》天津电子信息职业技术学院【2】金发庆等编. 传感器技术与应用.北京机械工业出版社,2002【3】刘伯春.智能PID调节器的设计及应用.电子自动化,1995;(3):20~25【4】赵娜,赵刚,于珍珠等.基于51 单片机的温度测量系统[J]. 微计算机信息,2007,1-2:146-148。

【5】LED市场受节能减排利好关注度持续飙升.中国经济网(北京),2010/11/12【6】LED所涉及领域应用及研究报告,2010/11/24天津电子信息职业技术学院页号(1)序号起止日期计划完成内容实际完成内容检查日期检查人签字1 2011.10.31-2011.11.6分析课题搜集资料分析课题搜集资料2 2011.11.7-2011.11.13硬件设计硬件设计3 2011.11.14-2011.11.20软件设计软件设计4 2011.11.20-2011.12.25总结并撰写论文总结并撰写论文567系毕业设计(论文)领导小组审阅意见:系主任签字:年月日天津电子信息职业技术学院页号(2)注:1.本任务书由指导教师填写。

简易电阻、电容和电感测试仪报告概述

简易电阻、电容和电感测试仪报告概述

简易电阻、电容和电感测试仪1.1 基本设计要求(1)测量范围:电阻100Ω~1MΩ;电容100pF~10000pF;电感100μH~10mH。

(2)测量精度:±5% 。

(3)制作4位数码管显示器,显示测量数值。

示意框图1.2 设计要求发挥部分(1)扩大测量范围;(2)提高测量精度;(3)测量量程自动转化。

摘要:本系统是依赖单片机MSP430建立的的,本系统利用555多谐振荡电路将电阻,电容参数转化为频率,而电感则是根据电容三点式振荡转化为频率,这样就能够把模拟量近似的转换为数字量,而频率f是单片机很容易处理的数字量,一方面测量精度高,另一方面便于使仪表实现自动化,而且单片机构成的应用系统有较大的可靠性。

系统扩展、系统配置灵活。

容易构成何种规模的应用系统,且应用系统较高的软、硬件利用系数。

单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,成本低,可靠性高。

综上所述,利用振荡电路与单片机结合实现电阻、电容、电感测试仪更为简便可行,节约成本。

所以,本次设计选定以单片机为核心来进行。

关键词:430单片机,555多谐振荡电路,,电容三点式振荡一、系统方案电阻测量方案:555RC多谐振荡。

利用RC和555定时器组成的多谐振荡电路,通过测量输出振荡频率的大小即可求得电阻的大小,如果固定电阻值,该方案硬件电路实现简单,通过选择合适的电容值即可获得适当的频率范围,再交由单片机处理。

综合比较,本设计采用方案三,采用低廉的NE555构建RC多谐振荡电路,电路简单可行,单片机易控制。

电容测量方案:555RC多谐振荡同样利用RC和555定时器组成的多谐振荡电路,通过测量输出振荡频率的大小即可求得电容的大小,如果固定电阻值,该方案硬件电路实现简单,能测出较宽的电容范围,能够较好满足题目的要求。

采用低廉的NE555构建RC多谐振荡电路,电路简单可行,单片机易控制。

电感测量方案:电容三点式采用LC配合三极管组成三点式震荡振荡电路,通过测输出频率大小的方法来实现对电感值测量。

简易电阻电容电感测试仪

简易电阻电容电感测试仪

Howland 恒流源
AD637
1
设计任务与要求 1.1 基本要求 (1)测量范围:电阻 100Ω~1MΩ;电容 100pF~10000pF;电感 100μH~10mH。 (2)测量精度:±5% 。 (3)制作 4 位数码管显示器,显示测量数值,并用发光二极管分别指示 所 测 元件的类型和单位。也可用液晶显示屏显示。 1.2 发挥部分 (1)扩大电阻、电容或电感的其中一种的测量范围:测量上限或者下限扩 10 倍。 (2)提高测量精度,电阻、电容或者电感其中一种的测量精度提高到 1%。 (3)测量量程自动转换。 方案比较与论证
电压降
求真有效值 芯片 AD637
数模转换芯片 AD 压降有效值
求得待测 元件大小
图(1) 方案框图
我们选择方案二, 因为方案二电路结构简单, 测电阻电感和电容都统一在一个主电路中, 电路可靠性高、 成本低。 硬件档位少, 因为电流值大小可以通过切换输入信号的频率来改变,
输入信号由AD9850产生,其频率可以由单片机控制。 3 系统硬件组成
表(3)电容测量档位的划分 档位
信号源频率 10 KHz 1 KHz 100 Hz
标准电容 Co 470K 47K 4.7K
信号源幅值 1Vpp
10pF--260pF 260pF--26nF 26nF--2.6uF
Vo
2.7V
0 10pF 4.4.3测电感电路 4.4.3.1 测电感主电路
260pF
2
方案一:谐振法。将待测L/C/R接入振荡电路中,通过测量RC或LC振荡频率来计算L/C/R值。 将被测元器件参数转换成频率后, 频率易于实现高精度测量。 但此方案在振荡频率 低于1MHz时,很难保证频率稳定度,故测量误差比较大。 方案二:电压法。通过 AD9850 芯片和 Howland 电流泵产生交流恒流源,交流恒流源流过 待测元件两端产生与待测量呈线性关系的电压值。 在待测电 待测电阻和待测电感, 容两端加交流电压, 产生的电流流过与电容串联的取样电阻产生与电容量呈线性关 系的电压值。根据欧姆定律求得待测元件的大小。方案框图如下图(1) AD9850 芯片 频率可调的正弦信号 Howland 电流泵 恒流源 待测元件

JK2512 系列型智能直流低电阻测度仪使用说明书

JK2512 系列型智能直流低电阻测度仪使用说明书

MODEL2512B系列智能直流低电阻测度仪操作使用手册常州市金艾联电子科技有限公司TEL:*************89187775概述JK2512B智能直流低电阻测试仪的外观流畅简洁,操作简便直观。

以新颖的设计思路,让各类触及者拥有全新的感觉。

特点介绍1直观的显示使用液晶显示,使得各项参数的显示都有明确的提示,也不管白天黑夜,都有清晰的字符让您一目了然,更没有让人眼花缭乱的各种指示灯让您难以记忆。

2少量的按键本仪器仅有四个操作按键,让您无须记忆更多条条款款,设置更多的功能数据。

3多参数显示当您读出了电阻值将其换算成百分比误差而感到麻烦,当您读出了百分比误差而将仪器显示改为显示电阻时感到重复工作时,您不妨选择本仪器的分选功能吧。

本仪器在分选测量时既显示电阻值,又显示百分比误差;在直读测量时既显示电阻值,又显示测量量程和读数范围,方便了您的阅读。

并且在设置时显示文字告知您正在做什么。

4等级品讯示在生产线上您也许要将电阻分成三个精度级别,本仪器完全可以满足您的要求。

本仪器可以按百分比的形式设置为三个等级品。

有合格闪光提示和合格的级别显示,也有合格讯响,但您可以关掉讯响而仅有合格灯指示和级别显示。

5通信接口如果您需要自动化测量,您可以利用通信接口达到这一目的。

本仪器的接口设计充分考虑了用户的方便性,您只要根据说明书对您的“编程器”或“计算机”简单编程,也可以用简单的硬件电路就可轻松完成。

6方便的校准如果为了校准要打开仪器机箱是一件多么麻烦的事情,如果为了校准要调节电位器是一件多么古老的方法。

本仪器的一种新的校准方法——人机对话的标准方式,只要按按键盘即可完成校准。

手册目录章节目录次目录页次第一章测试中注意事项4第二章安全规定4第三章安装要点5第四章技术规范6第五章面板和背板7面板图7面板说明7背板说明8第六章中英文词语对照表9第七章测试参数设定程序10第八章操作程序及步骤13第九章校准程序和步骤15JK2512B型智能直流低电阻测试仪使用说明书第一章:测试中的注意事项1开机预热仪器开机测试前必须预热15分钟,以等待仪器内部线路电参数稳定后再测量。

NEPRI-6253-20A直流电阻测试仪使用说明书

NEPRI-6253-20A直流电阻测试仪使用说明书

NEPRI-625320A直流电阻测试仪使用说明书国科电研(武汉)股份有限公司一、概述变压器直流电阻是变压器制造中半成品、成品出厂试验、安装、大修、改变分接开关后、交接试验及电力部门预防性试验的必测项目。

可以检查绕组接头的焊接质量和绕组有无匝间短路,可以检测电压分接开关的各个位置接触是否良好以及分接开关实际位置与指示位置是否相符,引出线是否有断裂,多股导线并绕是否有断股等情况。

为了满足变压器直流电阻快速测量的需要,我公司研制的NEPRI-6253-20A直流电阻测试仪。

该仪器采用全新电源技术,具有体积小、重量轻、输出电流大、重复性好、抗干扰能力强、保护功能完善等特点。

整机由高速单片机控制,自动化程度高,具有自动放电和放电报警功能。

仪器测试精度高,操作简便,可实现变压器直阻的快速测量。

二、主要技术指标主要技术指标三、功能特点1、整机由高速单片机控制,自动化程度高,操作简便。

2、仪器采用全新电源技术,电流档位多,测量范围宽,适合大中型变压器的直流电阻测量。

3、保护功能完善,能可靠保护反电势对仪器的冲击,性能更可靠。

4、具有声响放电报警,放电指示清晰,减少误操作。

5、智能功率管理技术,仪器总工作在最小功率状态,有效节能,减少发热。

6、七寸高亮度触摸彩色液晶,强光下显示清晰,全触屏操作,中英文自由切换。

7、仪器自带万年历时钟和掉电存储,可存储1000组测试数据,可随时查阅8、仪器配备RS232和USB接口,可和计算机通讯以及U盘存储9、自带面板式微型打印机,可汉化打印测量结果10、仪器可以使用安卓手机或平板,关注微信公众号,下载专用APP,通过专用软件全程控制仪器,测试数据存储上传,方便查阅。

四、面板结构AC220 开关仪器工作电源,交流220V。

接地柱仪器整机接地点,安全保护I+、 I- 输出电流接线柱,I+为输出电流正,I-为输出电流负。

V+、V-电压采样端,V+为电压线正端,V-为电压线负端。

RS232 通用串行接口,可通过计算机控制仪器。

大学生电子设计竞赛设计报告-简易自动电阻测试仪

大学生电子设计竞赛设计报告-简易自动电阻测试仪

简易自动电阻测试仪(G题)设计报告参赛学校:常州机电职业技术学院作者:朱化吉冯海涛骆翠玲简易自动电阻测试仪摘要该简易自动电阻测试仪可实现对电阻的自动测试功能,具有自动电阻筛选功能,并能自动测量和显示电位器阻值随旋转角度变化的曲线。

根据选题要求,该测试仪以AT89C55为核心,结合键盘、显示、程控放大器、A/D、步进电机控制器等外围电路,较好地实现了要求的功能。

测量量程为100Ω、1kΩ、10k Ω、10MΩ四档。

测量准确度为±(1%读数+2 字)。

3 位数字显示(最大显示数为999),能自动显示小数点和单位,测量速率大于5 次/秒。

100Ω、1kΩ、10kΩ三档量程具有自动量程转换功能。

具有自动电阻筛选功能。

即在进行电阻筛选测量时,用户通过键盘输入要求的电阻值和筛选的误差值;测量时,仪器能在显示被测电阻阻值的同时,给出该电阻是否符合筛选要求的指示。

设计并制作了一个能自动测量和显示电位器阻值随旋转角度变化曲线的辅助装置,曲线各点的测量准确度为±(5%读数+2 字),全程测量时间不大于10 秒,测量点不少于15 点。

关键词:单片机,电阻测试仪,自动量程转换,自动电阻筛选1 方案的选择与论证图1对各模块的实现,分别有以下一些不同的设计方案:1.1 系统控制模块方案一:FPGA/CPLD方式。

即用FPGA/CPLD完成键盘设置、步进电机控制、显示电路的驱动、与电阻测量模块的接口等功能。

这种方案的优点在于系统结构紧凑、速度快,而且可以使用的I/O口线很多;缺点是FPGA的设计与调试与单片机相比比较繁琐,调试的效率比较低,不够灵活。

方案二:单片机方式。

使用单片机也可以完成键盘设置、步进电机控制、显示电路的驱动、与电阻测量模块的接口功能。

单片机算术运算功能强,软件编程灵活、自由度大,可以用软件编程实现各种算法和逻辑控制,并且由于其功耗低、体积小、技术成熟和成本低等优点,使其在各个领域应用广泛,调试的效率也比较高。

HM2540B 直流电阻智能测试仪 说明书

HM2540B 直流电阻智能测试仪 说明书

目 录一、概述..........................................................................................1 二、技术指标....................................................................................1 三、工作原理....................................................................................3 四、结构特征....................................................................................3 五、操作使用说明 (5)5.1 注意事项.................................................................................5 5.2 键功能 (5)5.3 仪器的测量状态及功能 (5)5.3.1 蜂鸣器的设置 (6)5.3.2 显示方式的设置 (6)5.3.3测量速度的设置 (6)5.3.4统计/计数方式的设置 (6)5.3.5标称分选范围的自动设置 (7)5.3.6测量值及统计结果的查看......................................................7 5.3.7 仪器的自动保护功能 ...............................................................8 5.4 仪器的设置状态及功能 (8)5.4.1 测量方式的设置 (9)5.4.2量程的设置...........................................................................9 5.4.3数据输入的一般方法 (10)5.4.4自动分选功能........................................................................10 5.4.5调零和样校功能........................................................................11 5.4.6 I/O 接口功能 (12)六、维护与维修 (13)Un Re gi st er ed1一 概 述HM2540B 是直流电阻智能测试仪。

基于STM32的简易自动电阻测量仪(软件设计)

基于STM32的简易自动电阻测量仪(软件设计)

宜宾职业技术学院毕业设计基于STM32的简易自动电阻测量仪(软件设计)系部电子信息工程系专业名称电子信息工程技术班级电子1091班姓名尹小东学号 2 0 0 9 1 1 1 6 6指导教师王伯黎2011 年 11 月 10 日摘要--------------------------------------------------- 2 1、方案论证与选择 --------------------------------------- 41.1核心控制芯片------------------------------------------------- 4 1.2档位切换模块------------------------------------------------- 4 1.3ADC采样电路------------------------------------------------- 5 1.4显示模块----------------------------------------------------- 5 1.5键盘控制电路------------------------------------------------- 52、系统设计 --------------------------------------------- 62.1系统总体思路------------------------------------------------- 6 2.2系统硬件模块设计--------------------------------------------- 72.2.1电源电路设计--------------------------------------------- 72.2.2恒压源电路设计------------------------------------------- 82.2.3档位切换电路设计----------------------------------------- 82.2.4电压跟随电路设计----------------------------------------- 92.2.5电机驱动电路设计---------------------------------------- 10 2.3软件设计---------------------------------------------------- 113、系统测试 -------------------------------------------- 124、设计总结 -------------------------------------------- 13 参考文献----------------------------------------------- 13 附录--------------------------------------------------- 14附录1主要元件清单 --------------------------------------------- 14 附录2产品实物图片 --------------------------------------------- 14本系统由闭环恒压源电路、闭环测量电路、电机驱动电路三大部分构成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

毕业设计(论文)《简易自动电阻测试仪》专业(系)班级学生姓名指导老师完成日期前言在工程实践中,常需要测定某些高导电材料的电阻率。

我们电阻测量的思路是:由精密恒流源电流通过被测电阻,通过放大器将信号扩展到信号能被提取出来,接着进行信号处理,然后进行信号采集和A/D转换,最后显示测量结果。

在测量电路中,电压的分辨率影响测量精度,即受A/D转换的位数影响。

而整个电路的误差决定电路所采用的形式。

系统的误差主要由量化误差及模拟误差组成,当然也要考虑外部噪声和干扰对测量的影响。

因此,恒流源和放大器的性能非常关键。

在电路的测试过程中,常常会碰到由于忽略某些电阻实际值与理论值之间的误差,从而影响检测结果。

我们选用了单片机来设计该测量仪。

该测量仪可直接从液晶显示屏上读出所测得的电阻值,同时可以对需要指定测试的数据进行设定,能够帮助我们更快更好的选出我们所需要的电阻。

摘要本简易电阻自动测试仪采用STC89C52单片机为核心控制器,利用伏安法测电阻的测量方法,将测量的电压值通过模数转换模块AD7705转换成数字信号,将数字信号输入STC89C52单片机进行处理,完成电阻测量功能、自动换挡和筛选功能、电位器阻值变化曲线测试的功能。

再通过单片机与显示模块的连接,显示测量结果。

关键词:电阻自动测试仪、STC89C52、电阻测量功能、自动换挡、曲线测试、AD7705AstractThis paper introduces A kind of based on A kind of AT89S52 SCM voltage measurement circuit, this circuit adopts high precision, AD7705 dual-slope A/D circuit, measurement range dc 0-+ 2.500 v, use LCD module that can be with A PC for serial communication. The text mainly gives all the parts of the circuit hardware and software system, this paper introduces the principle of the double integral circuit AT89S52 devices, the characteristics of the AD7705, function and application of the function and application, CD4040. The circuit design is novel, the powerful, flexible expandability.The technique to be used mainly has:(1) through the programming to realize the resistance value directly measuring the;(2) ICL7135 converter effective application;(3) 12864 LCD monitor effective application;(4) through the keyboard to realize resistance tolerance of parameters set;(5) through the single-chip microcomputer control motor to realize the automatic control of potentiometer.Keywords: AT89S52 devices, ICL7135, 12864 liquid crystal display, keyboard.第1章方案设计与论证1.1比较与选择采用单片机电阻的设计目前有多种方案可以实现,例如、使用可编程逻辑控制器(PLC)、振荡电路与单片机结合或CPLD与EDA相结合等等来实现。

在设计前本文对各种方案进行了比较:方案一、基于模拟电路的测量仪利用模拟电路,电阻可用比例运算器法和积分运算器法,电容可用恒流法和比较法,电感可用时间常数发和同步分离法等,虽然避免了编程的麻烦,但电路复杂,所用器件较多,灵活性差,测量精度低,现在已较少使用。

方案二、可编程逻辑控制器(PLC)此方案采用PLC对硬件进行控制,应用较为广泛。

它能够非常方便地集成到工业控制系统中。

其速度快,体积小,可靠性和精度都较好,在设计中可采用PLC对硬件进行控制,但是用PLC实现价格相对昂贵,因而成本过高。

方案三、采用CPLD或FPGA实现此方案则采用广泛应用的VHDL硬件电路描述语言,实现电阻,电容,电感测试仪的设计,利用MAXPLUSII集成开发环境进行综合、仿真,并下载到CPLD或FPGA可编程逻辑器件中,完成系统的控制作用。

但相对而言设计规模大,系统结构复杂。

方案四、利用基于伏安法的电阻测量与单片机结合利用基于伏安法电阻测量方法,将电阻参数转化为电压模拟信号,此模拟量由高精度AD转换芯片转换为数字量。

这样由单片机处理数字量,能够满足测量精度高、易于实现自动化测量等设计需要,而且单片机构成的应用系统有较大的可靠性、系统扩展、系统配置灵活,容易构成各种规模的系统。

通过对上述方案的比较,利用基于恒流源的电阻测与单片机结合实现电阻测试仪更为简便可行,节约成本。

所以,本文选定以单片机为核心来实现对电阻测量的设计。

1.2方案描述本简易电阻自动测试仪采用STC89C52单片机为核心控制器,利用基于LM358构成的恒流源的电阻测量方法,将测量的电压值通过模数转换模块AD7705转换成数字信号,将数字信号输入STC89C52单片机进行处理,完成电阻测量。

再通过单片机与显示模块的连接,显示测量结果。

该测试仪由电阻测量电路模块、电位器阻值变化曲线测试模块、单片机,A/D转换电路,时钟电路,稳压电源,恒流源,显示,报警,键盘等模块组成。

系统方框图如图1所示。

图1 系统方框图第2章 理论分析与计算2.1基于电阻测量原理说明图2所示电路是该系统采用的电阻测量示意图,电路中A 点的电位为1.25伏,电压表侧A,B 两点的电位,根据电路理论可得如下表达式:11.25 1.25AB AB xU U R R +-= 由此可得被测电阻x R ,()11.251.25AB x ABU R R U -⨯=-图2 电阻测量示意图2.2 自动量程转换与筛选功能通过多次测量和对比,然后对数据进行分析,最后得到一个算法,公式如下:电阻显示值=[247500/(测量值*0.038147)]-990筛选功能通过设置一个初始电阻值及其阻值范围,将阻值范围内的电阻选择出来,并测量阻值。

具体方法是用单片机STC89S52软件编程来自动控制继电器实现电阻的自动转换量程和筛选功能2.3电位器阻值变化曲线装置将4.7kΩ 旋转式单圈电位器的旋转角度范围划分为16等分(包括电阻最小值和最大值对应的角度),测试每一个等分点所对应的阻值,然后利用单片机求出相邻两个点之间的函数关系式y k b α=+,再根据函数关系式描点划线。

示意图如图3所示图3 电位器阻值变化曲测试示意图第3章硬件电路设计3.1电路设计(1)电阻测量电路图4 电阻测量原理图(2)电源模块输入的外部电源首先经过桥式整流、滤波电路滤波,再经过7805芯片稳压成5V的直流电压,向主控制器供电。

图4 电源模块电路(3)AD采样模块本模块利用AD7705实现AD转换功能把整流滤波后的模拟信号转换为单片机能够处理的数字信号,并传送给处理器。

图5 AD转换模块(4)主控制模块本模块采用低功耗的STC89C52微处理器控制AD装换,并对转换结果数据进行接收和处理;通过按键控制测量的类型和单位。

图6 主控模块电路图键盘功能如下:s1;电阻筛选功能键;s2:-s3:+s4:自动测量电位器(5)显示模块通过LCD驱动程序对STC89S52处理后的结果数据进行稳定显示,在测试期间显示能够保持稳定状态,当离开测试能够迅速归零。

图7 液晶模块连接电路图(6)电机驱动电路电机驱动模块采用电机驱动芯片LN297和LN298来控制步进电机。

输入的信号用光耦TLP512-5送入LN297,很好的隔离了输入与输出信号,抗干扰能力强。

进而带动电位器旋转,实现电位器阻值变化曲线测试功能。

图8 电机驱动电路图第4章系统软件设计4.1软件组成(1)控制测量程序,单片机控制测量程序不仅担负着量程的识别与转换,而且还负责数据的修正和传输;因此主控制器的工作状态直接决定着整个测量系统能否正常工作,所以控制测量程序对整个测量来说至关重要;(2)按键处理程序,根据按键的状态做相应的功能设置;(3)电阻计算程序,单片机根据A/ D 转换得到的电压值计算出电阻值;(4) 液晶模块显示程序。

该自动电阻测试仪的系统流程图如图9所示:4.2系统软件流程图4.3 系统总程序#include"LCD12864.h "#include"reg51.h"#include"ADC.h"#define uchar unsigned char#define uint unsigned int#define THO_int 0xff#define TL0_int 0x15#define TMOD_int 0x01#define TCON_int 0x10uchar time_4ms;uchar cont_200ms;uchar stop_run_delay;uchar set_read_cont;uchar key;uchar key_buf;uchar key_cont;uchar set_step;uchar tast_delay;//************************************ uint moto_cont;uint moto_time;uchar P1_buf;uchar beef_delay;uchar beef_cont;uint pdata buf[50];uchar mode;uchar set_mode;uchar R_wc;//************************************uchar AD_data[2];char dsp_buf[10];unsigned long AD_BUF1,R1,RA,A0,set_R;uint AD_UOR;uchar ad_cont;//***********************************sbit out1=P1^4;sbit out2=P1^5;sbit out3=P1^6;sbit out4=P1^7;sbit buz= P3^6;sbit led= P3^7;uchar code moto_tap[8]={0x08,0x0c,0x04,0x06,0x02,0x03,0x01,0x09,};//步进电机时序表格uchar code moto_tap2[8]={0x08,0x0a,0x02,0x06,0x04,0x05,0x01,0x09,};//步进电机时序表格char code LCD_TAP2[10]={"0123456789"};uchar code dsp_[16]={" "};uchar bdata FLG;sbit FLG_200MS=FLG^0;sbit run_flg= FLG^1;sbit beef_en= FLG^2;sbit colck= FLG^3;sbit key_out= FLG^4;sbit ad_out= FLG^5;sbit call_en= FLG^6;void Ad_read(void);void T0_int(void){TMOD=TMOD_int; //设置定时器工作模式TCON=TCON_int; //启运定时器TL0=TL0_int; //装入定时器初值TH0=THO_int; //装入定时器初值ET0=1; //允许定时器0中断EA=1; //开总断}void timer0_(void)interrupt 1 using 1 // 定时器溢出周期为125us已加入16t{TR0=0;//TL0=TL0_int;TH0=THO_int;TR0=1;time_4ms++;if(beef_en)buz=!buz;elsebuz=1;if(time_4ms>=16){ //4ms平台time_4ms=0;if(set_mode==0)led=0;elseled=1;if(beef_delay)beef_delay--;if(stop_run_delay)stop_run_delay--;if(set_step==0){out1=0;out2=1;out3=1;out4=1;}elseif(set_step==1){out1=1;out2=0;out3=1;out4=1;}elseif(set_step==2){ out1=1;out2=1;out3=0;out4=1;}elseif(set_step==3){ out1=1;out2=1;out3=1;out4=0;}elseif(set_step==4){ out1=1;out2=1;out3=1;out4=0;}colck=1;cont_200ms++;if(cont_200ms>=25) {cont_200ms=0;FLG_200MS=1; }if(moto_cont){moto_cont--;P1_buf=P1&0xf0;if(run_flg){P1=P1_buf|moto_tap[moto_cont];}elseP1=P1_buf|moto_tap[7-moto_cont]; }elseif(moto_time){moto_time--;moto_cont=8;P1=P1&0xf0;if(moto_time==0){stop_run_delay=20;}}elseif(moto_time==0){P1=P1&0xf0;}}}void moto_control(uint cont,uchar fx){if(fx==1){run_flg=1;}elserun_flg=0;moto_time=cont;}void tast_control(void){unsigned char i,j=0;char dsp[10];delay_ms(200);if((ad_out)&&(tast_delay==0)){ad_out=0;lcd_dsp(0,0," 电阻测试仪",12);lcd_dsp(1,0,"检测值: ",8);lcd_dsp(2,0,"筛选值: ",8);lcd_dsp(3,0,"误差: ",10);dsp_buf[0]=set_R/1000000;dsp_buf[1]=(set_R%1000000)/100000;dsp_buf[2]=((set_R%1000000)%100000)/10000;dsp_buf[3]=(((set_R%1000000)%100000)%10000)/1000;dsp_buf[4]=((((set_R%1000000)%100000)%10000)%1000)/100; dsp_buf[5]=(((((set_R%1000000)%100000)%10000)%1000)%100)/10;dsp_buf[6]=(((((set_R%1000000)%100000)%10000)%1000)%100)%10;for(i=0;i<3;i++){if(dsp_buf[i]==0){dsp_buf[i]=' ';j++;}}for(i=0;i<7-j;i++){dsp[i]=dsp_buf[i+j];}lcd_no_write2(2,4,dsp,7-j);dsp_buf[0]=R_wc/10;dsp_buf[1]=R_wc%10;lcd_no_write2(3,4,dsp_buf,2);lcd_dsp(3,5,"%",1);A0=AD_UOR*0.038147;R1=((2475000)/A0)-990; if(set_step==0){RA=R1/10;}elseif(set_step==1){RA=R1;}elseif(set_step==2){RA=R1*10;}elseif(set_step==3){RA=R1*100;}elseif(set_step==4){RA=set_R;}if(RA>set_R){ if((RA-set_R)>(set_R*R_wc)/100) if(call_en)beef_cont=1;}elseif(RA<set_R){ if((set_R-RA)>(set_R*R_wc)/100) if(call_en)beef_cont=1;}if(set_step==0){if(R1>1010){ set_step=1;wcode(0x01); //清除显示}}elseif(set_step==1){ if(R1>1010){ set_step=2;wcode(0x01); //清除显示}elseif(R1<100){ set_step=0;wcode(0x01); //清除显示}}elseif(set_step==2){ if(R1>1050){ set_step=3;wcode(0x01); //清除显示}elseif(R1<100){set_step=1;wcode(0x01); //清除显示}}elseif(set_step==3){if(R1<99){ set_step=2;wcode(0x01); //清除显示}elseif(R1>99999){ wcode(0x01); //清除显示set_step=4;}}elseif(set_step==4){if(R1<99999){ set_step=3;wcode(0x01); //清除显示}}if(set_step==0){dsp_buf[0]=LCD_TAP2[(R1%10000)/1000];dsp_buf[1]=LCD_TAP2[((R1%10000)%1000)/100];dsp_buf[2]=LCD_TAP2[(((R1%10000)%1000)%100)/10];dsp_buf[3]='.';dsp_buf[4]=LCD_TAP2[(((R1%10000)%1000)%100)%10];if(((R1%10000)/1000)==0)dsp_buf[0]=' ';lcd_dsp(1,4,dsp_buf,5);}elseif(set_step==1){ dsp_buf[0]=LCD_TAP2[(R1%10000)/1000];dsp_buf[1]=LCD_TAP2[((R1%10000)%1000)/100];dsp_buf[2]=LCD_TAP2[(((R1%10000)%1000)%100)/10];dsp_buf[3]=LCD_TAP2[(((R1%10000)%1000)%100)%10];if(((R1%10000)/1000)==0)dsp_buf[0]=' ';lcd_dsp(1,4,dsp_buf,4);}elseif(set_step==2){dsp_buf[0]=LCD_TAP2[(R1%10000)/1000];dsp_buf[1]=LCD_TAP2[((R1%10000)%1000)/100];dsp_buf[2]='.';dsp_buf[3]=LCD_TAP2[(((R1%10000)%1000)%100)/10];dsp_buf[4]=LCD_TAP2[(((R1%10000)%1000)%100)%10];if(((R1%10000)/1000)==0){for(i=0;i<4;i++){dsp_buf[i]=dsp_buf[i+1];}}lcd_dsp(1,4,dsp_buf,4);lcd_dsp(1,7,"K",1);}elseif(set_step==3){ dsp_buf[0]=LCD_TAP2[R1/10000];dsp_buf[1]='.';dsp_buf[2]=LCD_TAP2[(R1%10000)/1000];dsp_buf[3]=LCD_TAP2[((R1%10000)%1000)/100];dsp_buf[4]=LCD_TAP2[(((R1%10000)%1000)%100)/10];dsp_buf[5]=LCD_TAP2[(((R1%10000)%1000)%100)%10];lcd_dsp(1,4,dsp_buf,4);lcd_dsp(1,7,"M",1);}elseif(set_step==4){lcd_dsp(1,4,"_____M",6);}}}void key_control(void){ uchar i;if(key_out){key_out=0;if(key==0x0f){wcode(0x01); //清除显示mode=0;}elseif(key==0x17){ mode=1;beef_en=0;beef_cont=0;beef_delay=0;set_step=1;out1=1;out2=0;out3=1;out4=1;wcode(0x01); //清除显示lcd_dsp(0,0,dsp_,16);lcd_dsp(1,0,dsp_,16);lcd_dsp(2,0,dsp_,16);lcd_dsp(3,0,dsp_,16);lcd_dsp(1,0," 请稍等候! ",12);set_read_cont=50;for(i=0;i<=30;i++) buf[i]=3*i;ad_out=0;for(i=0;i<4;){if((stop_run_delay==0)&&(moto_time==0)){ if(set_read_cont){ set_read_cont--;if(set_read_cont==0)i=4;moto_time=8;ad_out=0;while(ad_out==0){ Ad_read();delay_ms(100);}A0=AD_UOR*0.038147;R1=((2480000)/A0)-992; buf[49-set_read_cont]=R1/10;}}}lcd_dsp(0,0,dsp_,16);lcd_dsp(1,0,dsp_,16);lcd_dsp(2,0,dsp_,16);lcd_dsp(3,0,dsp_,16);show_line(buf); }elseif(key==0x1b){ beef_cont=1;if(set_mode==0){set_R++;}elseif(set_mode==1){ R_wc++;}}elseif(key==0x3b){ key_cont=180;beef_cont=1;if(set_mode==0){set_R++;}elseif(set_mode==1){ R_wc++;}}elseif(key==0x3d){ key_cont=180;if(set_mode==0){ if(set_R)set_R--;}elseif(set_mode==1){ if(R_wc)R_wc--;}beef_cont=1;}elseif(key==0x1d){if(set_mode==0){ if(set_R)set_R--;}elseif(set_mode==1){ if(R_wc)R_wc--;}beef_cont=1;}elseif(key==0x1e){ set_mode=set_mode^0x01; beef_cont=1;}elseif(key==0x3e){call_en=!call_en;if(call_en)beef_cont=0x81;elsebeef_cont=1;}}}void beef_control(void){if(beef_delay==0){if(beef_en){beef_en=0;beef_delay=20;}else{if(beef_cont&0x0f){beef_cont--;beef_en=1;if(beef_cont&0x80)beef_delay=100;elsebeef_delay=20;}}}}void key_scan(void){if((P2&0x1f)!=0x1f){if(key_cont<200){key_cont++;if(key_cont==10){key_buf=P2&0x1f;}elseif(key_cont==200){key=key_buf|0x20;key_out=1;}}}else{ if((key_cont>=10)&&(key_cont<200)){key=key_buf;key_out=1;}key_cont=0;}}void Ad_read(void){ uint temp,i,cons;// max0,min0,max1,min1, uint data0[5],data1[5];//,t0,t1;long temp0=0,temp1=0;cons=5;if(FLG_200MS){FLG_200MS=0;for(i=0;i<cons;i++){AD7705_Write_Reg(0x38); //启动AD7705AD转换delay_ms(2);AD_data[0]=AD7705_Read_Reg(); //保存高8位数据data0[i]=AD_data[0];delay_ms(2);AD_data[1]=AD7705_Read_Reg(); //保存低8位数据data1[i]=AD_data[1];}for(i=0;i<cons;i++){if(data0[i]!=0xffff){ temp0=temp0+data0[i]; }if(data1[i]!=0xffff){ temp1=temp1+data1[i]; }}temp0=temp0/(cons);temp1=temp1/(cons);temp=(uint)temp0*256+(uint)temp1;//保存16位ADAD_BUF1=temp+AD_BUF1;ad_cont++;if(ad_cont>=2){ad_cont=0;AD_UOR=AD_BUF1/2;AD_BUF1=0;ad_out=1;if(tast_delay)tast_delay--;}}}void main(void){AD7705_Reset(1);setup();T0_int();run_flg=0;moto_cont=8;set_step=3;beef_cont=1;set_R=4000;R_wc=10;set_mode=0;call_en=0;while(1){if(colck){colck=0;if(mode==0){tast_control();}delay_ms(2);Ad_read();beef_control();key_scan();key_control();}}}第4章系统测试图10 自动筛选功能展示图电位器阻值变化曲线,如图11所示图11 电位器阻值变化曲线5、测试分析:根据以上的测试结果表明,本系统完成了文章开始所提出设计内容和功能。

相关文档
最新文档