




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录1系统方案整体设计 1.1设计方案论证1.2系统整体框图2系统硬件设计 2.1多谐振荡器模块 2.3 LCD显示模块2.2 单片机模块2.4 ADC0832转换模块3系统软件设计 3.1主程序设计 3.2电容值计算程序设置 3.3电阻值计算程序设计 3.4显示程序3.5程序整体设计图4程序清单5仿真结果 1系统方案整体设计1电阻、电容设计方案比较电阻、电容、电感测试仪的设计可用多种方案完成,例如利用模拟电路,电阻可用比例运算器法和积分运算器法,电容可用恒流法和比较法,电感可用时间常数发和同步分离法等、使用可编程逻辑控制器(PLC)、振荡电路与单片机结合或CPLD与EDA相结合等等来实现。在
2、设计前对各种方案进行了比较:1)利用纯模拟电路虽然避免了编程的麻烦,但电路复杂,所用器件较多,灵活性差,测量精度低,现在已较少使用。 2)可编程逻辑控制器(PLC) 应用广泛,它能够非常方便地集成到工业控制系统中。其速度快,体积小,可靠性和精度都较好,在设计中可采用PLC对硬件进行控制,但是用PLC实现价格相对昂贵,因而成本过高。 3)采用CPLD或FPGA实现应用目前广泛应用的VHDL硬件电路描述语言,实现电阻,电容,电感测试仪的设计,利用MAXPLUSII集成开发环境进行综合、仿真,并下载到CPLD或FPGA可编程逻辑器件中,完成系统的控制作用。但相对而言规模大,结构复杂。4)利用振荡电路
3、与单片机结合利用555多谐振荡电路将电阻,电容参数转化为频率,而电感则是根据电容三点式电路也转化为频率,这样就能够把模拟量近似的转换为数字量,而频率f是单片机很容易处理的数字量,一方面测量精度高,另一方面便于使仪表实现自动化,而且单片机构成的应用系统有较大的可靠性。系统扩展、系统配置灵活。容易构成各种规模的应用系统,且应用系统有较高的软、硬件利用系数。单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,成本低,可靠性高。综上所述,利用振荡电路与单片机结合实现电阻、电容、电感测试仪更为简便可行,节约成本。所以,本次设计选定以单片机为核心来进行。1.1设计方案论证对电阻的测量,可
4、将待测电阻与一标准电阻串联后接在+5V的电源上,根据串联分压原理,利用ADC测定电阻两端电压后,即可得到其阻值。对电容的测量,可将其与已知阻值的电阻RA和RB组成基于NE555的多谐振荡器如下图:其产生的方波信号频率为:f=1,44C(RA+2RB)故通过测定方波信号的频率可以比较精确的测定C的值,测定方波信号频率的方法有测频法和测周法。(1) 测频法:利用外部电平变化的外部中断,测算1s内的波数,从而实现对波数的测定;(2) 测周期法:通过测算某两次电平变化引发的中断之间的时间,实现对频率的测定。 简而言之,测频法是直接根据定义测量频率,测周法是通过测定周期间接测定频率,本方案采用测周法来测
5、量。1.2系统整体框图AT89S52输入电阻RADC0804复位电路 开关控制1602液晶显示NE555输入电容 图1 系统整体框图2系统硬件设计2.1多谐振荡器模块 该模块由NE555构成多谐振荡器,其中R10取100欧姆,R8取197欧姆,C5为被测电容。如下图所示: 图2多谐振荡器模块NE555 (Timer IC)为8脚时基集成电路,大约在1971年发布,在当时是唯一非常快速且商业化的Timer IC,在往后的30年中非常普遍被使用,且延伸出许多的应用电路,后来基于CMOS技术版本的Timer IC如MOTOROLA的MC1455已被大量的使用,但原规格的NE555依然正常的在市场上供
6、应,尽管新版IC在功能上有部份的改善,但其脚位劲能并没变化,所以到目前都可直接的代用。 NE555是属于555系列的计时IC的其中的一种型号,555系列IC的接脚功能及运用都是相容的,只是型号不同的因其价格不同其稳定度、省电、可产生的振荡频率也不大相同;而555是一个用途很广且相当普遍的计时IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率的脉波信号。2.2 单片机模块单片机电路是本设计的核心部分,本设计选用了常用的AT89S52单片机。AT89S52是低功耗、高性能、经济的8位CMOS微处理器,工作频率为024MHz,内置4K字节可编程只读闪存,128x8位的内部RAM,16位可
7、编程IO总线。AT89S52工作的最简单的电路是其外围接一个晶振和一个复位电路,给单片机接上电源和地,单片机就可以工作了。 图3单片机模块2.3 LCD显示模块显示模块由LCD1602组成,本设计使用的是2行16个字的1602液晶模块作为测量值显示部分。其中字符型液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据示的容量可以分为1行16个字、2行16个字、2行20个字等等。 图4 LCD显示模块2.4 ADC0832转换模块ADC0832是一个8位CMOS型逐次比较式A/D转换器,具有三态锁存输出功能,最短转换时间为100us, 图5 ADC0832转换模块 3系统软件设计3.1主程序
8、设计:配置单片机定时器0为计数模式,TH0,TL0初值均为0x00;外部中断0与多谐振荡器的脉冲输出端相连,NE555的参考电压引脚(4)与单片机IO口相连,系统上电后单片机给NE555参考电压引脚拉高,NE555开始震荡,同时外部中断接收多谐振荡器输出,当中断触发两次即表示计时一个周期,同时将多谐振荡器参考电压拉低,多谐振荡器停止震荡。取出定时器0中的值即得到一个周期的时间,再计算电容,完成显示。 3.2电容值计算程序设置:多谐振荡器震荡频率与电阻电容的关系为f=1.43/C*(R1+2R2),其中f的单位是赫兹,电阻单位是欧姆,电容单位是法拉。单片机晶振为12M所以单片机机器周期为1us,
9、计数器里面的值以us为单位。为了统一单位我将所以单位以ms为标准,作用计数器值应乘以1000。得到的电容值就是以uf为单位,而不再是法拉。3.3电阻值计算程序设计:将被测电阻与一标准电阻串联接在+5V上,根据串联分压原理,利用ADC0804测量被测电阻两端电压,经AD转换将模拟量转换成数字量,通过LCD1602显示出来。转换公式为:V测= 5*R测R测+R标3.4显示程序:计算得到的电容值,是一个浮点数对于整数部分采用求余数和求商的方法得到百位,十位和个位。对于小数部分,因为浮点数不允许进行求余数操作,所以我将这个数强制转化为int形,再乘以10,再求余数得到十分位,同理乘以100得到百分位。
10、再将每一位数送入液晶显示。开始3.5程序整体设计图初始化 电阻键按下?电容键按下? NO NOADC工作触发中断T-flag=T-flag YSYS显示T-flag=1?计算电阻值计算电容值开始计时 YS 显示T-flag=0?停止计时 YS4程序清单#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define LCD_Data P0unsigned char ReadADC(void); void delay1(unsigned char
11、x);uchar Ji_s=0,Ji_s1=0,Ji_s2=0,m4,js=0,T_flag;float R1=100,R2=197;/欧姆uchar code table="THE CAP IS:" uchar code table0="THE R IS:"uchar code table1="uF"sbit ADC_CLK=P11;sbit ADC_DO=P13;sbit ADC_DI=P12;sbit ADC_CS=P10;sbit lcden=P22;sbit lcdrs=P20;sbit lcdrw=P21;sbit _re
12、set=P14;sbit start=P27;sbit p3_1=P31;sbit p3_0=P30; uchar get_ad(); uchar jishu=0;uchar temp; void delay(void)uint y;for(y=5552;y>0;y-); void write_com(uchar com) lcdrs=0;lcdrw=0;P0=com;delay();lcden=1;delay();lcden=0;void write_data(uchar date)lcdrs=1;lcdrw=0;P0=date;delay();lcden=1;delay();lcde
13、n=0; void init() uchar num,num1; lcden=0;write_com(0x38); /显示模式设置write_com(0x0e); /D=1开显示 C=1显示光标write_com(0x06); /N=1读或写一个字符后地址指针加一且光标加一write_com(0x01); /清屏write_com(0x80); /设置数据地址指针for(num=0;num<11;num+)write_data(tablenum);delay();write_com(0xc8);for(num1=0;num1<2;num1+)write_data(table1num
14、1);delay(); void initt() uchar num2; lcden=0;write_com(0x38); /显示模式设置write_com(0x0e); /D=1开显示 C=1显示光标write_com(0x06); /N=1读或写一个字符后地址指针加一且光标加一write_com(0x01); /清屏write_com(0x80); /设置数据地址指针for(num2=0;num2<9;num2+)write_data(table0num2);delay();float Ji_sT() uchar nT; float T,CAP; nT=Ji_s; /计数个数减1得到
15、周期数 nT T=nT; /单位换算 单片机机器周期1US CAP=1.43*1000*T/(R1+2*R2) ; /多谐振荡器震荡周期 return CAP; void count() float C;float C1,C2,C3;uchar shi,ge,sf,bf; C= Ji_sT();C3=C/10;shi= (int)C3%10;write_com(0xc1); write_data(0x30+shi);ge = (int)C%10;write_com(0xc2); write_data(0x30+ge);write_com(0xc3); write_data(0x2e);C1=C
16、*10;sf=(int)C1%10;write_com(0xc4); write_data(0x30+sf);C2=C*100;bf=(int)C2%10;write_com(0xc5); write_data(0x30+bf); void count1() float data1;float r;uchar a1,a2;data1=ReadADC();r=data1/256*5*1.7*10;a1=(int)r/10;a2=(int)r%10;write_com(0xc1); write_data(0x30+a1);write_com(0xc2); write_data('.'
17、;);write_com(0xc3); write_data(0x30+a2);write_com(0xc4); write_data('K');write_com(0xc5); write_data(0xf4); unsigned char ReadADC(void) unsigned char i,ch; ADC_CS=0; /片选,DO为高阻态 ADC_CLK=0; delay1(2); ADC_DI=1; ADC_CLK=1; /第一个脉冲,起始位 delay1(2); ADC_CLK=0; delay1(2); ADC_DI=1; ADC_CLK=1; /第二个脉冲,
18、DI=1表示双通道单极性输入 delay1(2); ADC_CLK=0; delay1(2); ADC_DI=0; ADC_CLK=1; /第三个脉冲,DI=1表示选择通道1(CH2),DI=0表示选择通道0(CH1), delay1(2); ADC_CLK=1; delay1(2); ADC_CLK=0; /第一个下降沿为去数做准备 delay1(2); /这里加一个脉冲才能读出正确的数据,不加的话读出的数据少一位,且是错的 for(i=0;i<8;i+) /读出数据 ADC_CLK=1; delay1(2); ADC_CLK=0; delay1(2); ch=(ch<<1)|ADC_DO; /在每个脉冲的下降沿DO输出一位数据,最终ch为8为数据 ADC_CS=1; /取消片选,一个转换周期结束 return(ch); /把转换结果返回 void main() if(p3_1=0) init(); TMOD = 0x01; / 定时器0工作在计时模式 TH0 = 0x00; TL0 = 0x00; ET0 = 1; TR0 = 0;EX0=1;EA = 1;while(1) count(); if(p3_0=0) ReadADC(); initt(); count1()
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装设计从灵感到设计的流程
- 2024年7月高级育婴员测试题与答案(附解析)
- 6月保健按摩师模拟练习题含答案(附解析)
- 航标器材在航道安全保障系统中的应用考核试卷
- 安全用电知识培训教材
- 《S制度执行力》课件
- 道路安全措施施工方案
- 计划生育与生育政策与人口流动趋势考核试卷
- 移动通信技术在零售行业的应用考核试卷
- 四年级孩子性教育指南
- 福建省厦门市2025届高中毕业班高三5月第四次质量检测物理试卷(厦门四检)
- 非谓语动词动词不定式
- 《慢性阻塞性肺疾病》课件
- 家校共育 静待花开 课件高二下学期学考动员家长会
- 【2025二轮复习】读后续写专题
- 2025陕西氢能产业发展有限公司所属单位招聘(101人)笔试参考题库附带答案详解
- 2025年国家民委直属事业单位招聘考试笔试试题(附答案)
- 运动健康产业的市场分析与前景
- 2025年济南市中区九年级中考数学一模考试试题(含答案)
- 大模型原理与技术-课件 chap6 大模型微调
- 2024年个人信用报告(个人简版)样本(带水印-可编辑)
评论
0/150
提交评论