基于STC12C5A60S2单片机的数字电阻表设计9900字【论文】_第1页
基于STC12C5A60S2单片机的数字电阻表设计9900字【论文】_第2页
基于STC12C5A60S2单片机的数字电阻表设计9900字【论文】_第3页
基于STC12C5A60S2单片机的数字电阻表设计9900字【论文】_第4页
基于STC12C5A60S2单片机的数字电阻表设计9900字【论文】_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于STC12C5A60S2单片机的数字电阻表设计本系统是以STC12C5A60S2单片供电采用5V直流电源,硬件部分由单片机部分、电阻测量部分、换挡模块、显示部分四部分组成。其中电阻测量模块采用的原理是伏安法采集电压信号,显示模块采用LCD1602模块显示结果。本文同时对系统的软件部分的进行比较详细的阐述,其中重要的模块包括AD采集数据、数据计算处理、自动换挡、LCD显示几个模块。使用芯片自带的AD将模拟量转换为相应的数字量,由软件控制判断所采集到的数字量是否在合适的范围来实现档位的自动切换,并通过定义均值函数来减小误差。经过调试,系统实现了所要求功能,误差也在要摘要第2章智能电阻的硬件原理第3章智能电阻的软件设计3.2.3.档位切换函数第4章实验结果第5章总结与展望参考文献第1章绪论目前,电子行业发展迅速,随着社会的发展和科学的进步,电子工业也将发展到一个新阶段。电子技术越来越可以代表一个国家的综合实力,因此精密电子产品的更新周期越来越短。每一种电子产品的设计和生产都需要更精确的电子测量仪器,这是电子产品发展的必要条件,因此,精密测量仪器将成为电自从电阻诞生以来电阻的测量方式就多种多样:欧姆表测量,伏安法测量,桥式电路测量,半偏法测量,等效替代法测量。数字欧姆表就是一种利用模数转换原理将数据转换成数字量并以数字形式显示测量结果的测量仪器。这些均子元件的数量和种类也在不断增加。电阻器作为电子元件中应用最广泛的器件,单片机是指一个芯片上包含了CPU、内存、内部和外部总线系统,已经相当于一个小型的计算机了,同时单片机还可以接有外存目前一个较复杂的单片机系统已经可以做到将距离、图像、声音等复杂的信号集成在一块芯片上,在单片机没有广泛使用前,要实现这些功能往往要外接复杂的电路,第一台电脑诞生的时候需要好几个教室来提供空间,在出现错误时往往需要每一条线路去测试,甚至一只虫子会造成整个电脑崩溃,如今一块小型的单片机芯片可能都没有当时的一只虫子大。这主要得益于单片机系统采用软件技术代替了硬件线路,也就是当代的微控制技术。微控制技术具有体积小、计算量大、能耗低等特点大大提高了近代电子行业的发展。它可以集成现有的定时器、通讯接口等外围设备,广泛的用于仪器测量中外接传感器来实现电压、电流的测量本次设数字万用表原理相同,也是一种测量仪器,利用数字/模拟转换原理将测量数据转换为数字量,并通过LCD液晶显示模块将测量结果可视化。目前市面上常见的电阻表按外形主要分为台式和手持式两种,其中手持式主要有万用表和钳式电阻表。台式数字电阻表虽然不易携带,但其单一的功能也客观上使得其精度和测量范围方面较普通的指针式电阻表或数字万用表有了很大的开发空间。台式万用表主要有数字欧姆表、接地电阻表、阻抗分析仪等,但是这几种电阻测量领域测量精度低,存在依赖按键换挡的问题,因此可以引常用的电阻测量方法有三种:1.测频法:方法是利用555定时器形成多谐振子,通过控制555定时器外围电路中的R和C的值来产生不同频率的激波。通过改变不同的电阻得到不同的频率,最后,利用频率与电阻的正比关系,得到电阻值,但由于该方法使用的电容受温度影响较大,测量误差较大。2.分压法:我们用测量电阻和已知电阻除以电压,然后用输出电压计算出未知电阻的值。3.恒流欧姆法。在电路中放置待测电阻并给以恒流电流,并且根据欧姆定律测测量频率方法是采用555定时器,通过多谐振的输出信号的高、低电位来控制两台单片机的计数器,测量电阻值Rx和计数器之间的差值,这种测量电路简单,成本低,精度高。该方法具有结构紧凑、调整方便等优点,且都是通过粗调和精细调整实现对检流表进行有效的防护。同时还可以增加测量的速率,但不能准确地反映在电流计和电压计上,所以通过改进电流计和电压计的准确本设计采用的伏安法测量电阻,将电阻的电阻值转换成A/D所能检测到的电压信号,最终将AD转换完成的数字信号转换进入单片机的进行计算和处理,实现自动测量、自动移位和电阻值筛选等功能,但是由于51单片机不存在AD转换模块需要外接,最终选择了STC12C5A60S2芯片,该芯片兼容51单片机的库同时也自带10位的AD转换模块,在软件方面采用的是keiluVision5来进行档模块其中包含放大器LM358,显示模块主要是LCD1602模块。第二章是将系统的各个模块分模块拆解并附上代码以及讲解。从main函数,第三章是实验软硬件调试并对实验结果进行记录,并且判断是否在误差范第四章是总结论文行文逻辑,实验创新点,系统完成过程中遇到的麻烦及解决办法,最后展望未来。第2章智能电阻的硬件原理STC12C5A60S2单片机是由STC公司制作的单机器周期的单片机,设备要求低,开发时间短,可加密的优点。在CPU方面他采用增强型8051CPU可以兼容传统的51单片机,工作电压为3.3v~5.5v,工作频率为0-35MHz,有7个外部中断I/O端口、下降沿中断和低电平触发中断,并增加了支持上升沿中断的PCA模块,可通过外部中断唤醒关机模式。A/D转换器有八个10位高精度ADC,适用于驱动电机和强干扰。它的ISP(可在该系统中进行编程)/IAP(可在该程序中进行程序设计),不需要专门的软件程序或专门的模拟程序,该用户的软件可以直接经由串口进行(P3.0/P3.STC12C5A60S2是8051系列的微处理器,它与一般51型微处理器的特点是:1)在同等晶振条件下,其运算速率是常规51的8-12倍。2、8个10个位置置1K内存扩充内存。7、有WATCH_DOG。8、多了一个插槽。9、IO端口可以被限定为4个状态。10、存在四个可以确定中断优先权的状态。STC12C5A60S2是8051系列的微处理器,它与一般51型微处理器的特点是:1)在同等晶振条件下,其运算速率是常规51单片机的8-12倍。2)存在8个10位的AD。3)增加PWM两个定时装置。4)有带有适合SPI的串□.5)有EEPROM。6)内置1K内存扩充内存。7)有WATCH_DOG看门狗。8、多了一个串□。9)IO端口可以被限定为4个状态。10)存在四个可以确定中断优STC12C5A60S2自带A/D转换器。模数转换可以将模拟数据转换为相应的必须保持输入模拟信号的恒定性质。因此,在将模拟信号转换为连续变化的数据之前,需要对离散的模拟信号进行处理,即对选定时间序列的输入模拟信号进行采样,保留采样值,完成采样值的量化和编码,最后发送数字信号。因此,A/D转换分为两个阶段:样本保留和量化编码。在本系统中因为自带AD转换模块所以在电路过程中不需要额外在焊接AD模块。2.2电流源分档电路434L三专?5÷Y动电阻的测量仪系统实现了测量精度为<0.5%,测量的范围在10Ω-1MQ的电阻进行自动测量与显示。其中除了电阻外还有一个放大模块LM358,LM358是一款8针双运算放大器芯片。引脚8为正电源,引脚4为负电源 (双电源操作)或接地(单电源操作);引脚1、2和3为运算放大器通道,引脚1为输出,引脚2为反向输入,引脚3为同相位输入;5,6和7是另一个放大器通道,7是输出,6是反向输入,5是同相位输入。它的应用包括传感器放大器、直流增益模块和所有其他为运算放大器使用单一电源的应用。电路设计中使用了9012晶体管,是一种非常常见的PNP晶体管,常见于无线电和各种放大器电路中,它有着广泛的应用。三极管由发射极、基极和集电极组成。集电极到发射极电压为-30V,集电极到基极电压为-40V,发射极到基极电压-5V,集电极电流0.5A,耗散功率0.625w。其最主要的测量原理是欧姆定律U=RI。如图2所示为基于电流源分档电路,相连。由左往右依次为P2.0,P2.1,P2.2,P2.3,P2.4,恒流源提供了5档电流值,这五路就是给电阻分了5档。P2.4路电流为I₁=1×10-³,电阻测量范围10~100欧姆;P2.3电流为I₂=1×10⁻⁴,电阻测量范围100~1k欧姆;P2.2电流为I₃=1×10-⁵,电阻测量范围1k~10k欧姆;P2.1电流为I₄=1×10-⁶,电阻测量范围10k~100k欧姆;P2.0电流为I₅=1×10⁻,电阻测量范围100k~1000k欧姆,。测量流程为:首先选择电流最小端口通,根据所测得的电压来判断电阻是在什么范围。再选通合适的电路,精确地测出电压,求出精确的电阻。所测电阻的电压通过放大器放大后输入给A/D转换器。再由单片机完成数据处理并进行软图中,如果我们将P2.4置1那么,Q9将饱和,V1=5-0.7=4.3V。而电流如果将P2.3置1,那么,Q10将饱和,I₃将满足以下公式:I=I₈=V1/R5。这样就有单片机通第5路时,电流I=I₂=I1/43=1×10-⁷A,此时电阻范围为100000欧姆1000000欧姆,则电压范围就是0.01V0.1V,通过运算放大器放大50倍后就是0.5V5V,在AD转换的电压范围内。而同理,第4路电流I=1×10-⁶A,因为电阻范围为10000欧姆100000欧姆,所以放大后的电压范围还是在0.5V到5V之间。第3路电流I=1×10-⁵A,因为电阻范围为1000欧姆~10000欧姆,100欧姆到1000欧姆,所以放大后的电压范围为0.5V到5V。又因为I=I10,所以I=1×10-³A。因为电阻范围为10欧姆到100欧姆,所以放大2.2LCD显示模块图2-5LCD1602接线图显示器由64行组成,每行包含128列,在64×16屏幕上显示的这些列对应于在16字节的000H~00FH范围内,RAM的内容决定了显示器第包含16个管脚。其中管脚1,接地;管脚2,输出,系统参考电源连接到5V;管脚3:液晶显示器对比度指示器,连接电源时对比度最弱,接地时对比度最 四种状态:高电平是数据寄存器、低电平是指令寄存器。R/W用于读写选择,高电平用于第3章智能电阻的软件设计软件总体流程图如图2-5所示:化化在开始后系统将各个模块初始化,包括分档模块,LCD显示模块,AD采样并计算模块,接着由电脑控制给电阻选择合适挡位,采集到输出电压后通过3.2.1.main主函数PutString(1,3,"405616PutString(2,3,"2022/}主循环函数,首先将挡位在电流最小的挡位,这个时候测量的范围最大,电流为1*10(-7)安培,哪怕电阻最大的时候是1000k欧姆,所得的电压也是0.1V电压经过放大50倍是5V,在电路额定范围内保护电路。接着是AD转换函数和初始化模块最后输出函数中间加上延时函数。3.2.2.AD模块AD显示流程图如2-6所示:值给一个变量,这样在后面的程序中就可以中这个变量指向该寄存器*/sfrADC_CONTR=0xBC;sfrADC_RES=0xBD;//ADC的高sfrADC_LOW2=0xBE;//ADC的低2位寄存sfrP1ASF=0x9D;//P1secondaryfunctioncontrolreunsignedcharou[]="0000unsignedintADC_temp=0;unsignedintADC_#defineADC_POWER0x80//电源控制位总电源10000000#defineADC_SPEEDHOx40/*********************************************voidDelay(unsignedi/*********************************************jADC_CONTR=ADC_POWER|ADC_SP}/*********************************************ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ch|AD_nop_();_nop_();_nop_();_nop_();while(!(ADC_CONTR&ADC_FLAG));}主循环主要是执行A/D采样,档位切换和电阻值的计算显示这几个关键函数。涉及AD转换的两个寄存器不能进行位寻址,所以只能直接通过计算赋值来实现功能。ADC_CONTR寄存器的第3位是AD转换的启动位(ADC_START),当手动将其置1后,AD转换开始,当AD转换结束后这个位就会自动置0。ADC_CONTR寄存器的第4位就是AD转换的转换标志位(ADC_FLAG),每次当AD转换结束完成后,这个位就会自动置1,需要手动将这一位重新置0。ADC_CONTR寄存器的第7位就是AD转换的总开关(ADC_POWER)即总开关,想用AD转换就必须把这个位置1,将AD转换打开。时要求比较长的部分,采用代码中的delay函数循环语句来实现。其中P1ASF=ADC_POWER|ADC_SPEEDLL|H|ADC_START;该部分是直接把总电源、速度、端口选择、启动位全部置1,进行或运算后赋值给了寄存器里;ADC_CONTR&=~ADC_FLAG这句就是重新把AD转换标志位重新置0,等待下次AD转换。电压是否在该模块实现了档位的切换,初始状态下为第一档,电流最小,这个时候电阻范围是100k~1000k(1M)欧,从寄存器中获取到的值经过换算得到实际的电压值,每档电阻范围对应一个电压范围,如果测得的电压值在这个范围内即0.5V到5V范围,则说明找到合适的电流档,就可以进行电阻值的计算与显示了;如果低于这个范围,则说明当前的电流太小,需切换到下一级大电流档;经过测量并且换挡后通过res_number函数记录当前挡位,需要注意的是因为硬件存在误差所以每个挡位测量出来的R需要乘以一个值来矫正,这个值通过测量实际值与输出的比来确认,在代码中我姑且以完美的情况来判断,将其的系数定为1。voiddangwei(uintADC_temp)if(ADC_temp<0.5)//电压小于0.5换挡t{}}elseif(sw4==1)//挡位在第四档电流为1x10-4{}}elseif(sw5==1)//挡位在第五档电流为1x10-3软件上的档位用变量dangwei来表示,硬件上的档位通过IO□拉高拉低来实现切换档位(P2.0,P2.1,P2.2,P2.3,P2.3分别表示第一至五档,电流从小到大)。档位切换的判断电压是通过实际每档的电流乘上每档的电阻范围再乘上放大倍数得到的,比如第一档中的0.5,就是10Ω(第一档的最小电阻) *1*10-⁷(第一档的电流)*50(运算放大器的放大倍数)得到的。第二路电流为I₂=1×10⁶,电阻测量范围100~1k欧姆;第三路电流为I₃=1×10-⁵,电阻测量范围1k~10k欧姆;第四路电流为I₄=1×10,电阻测量范围10k~100k欧姆;第五路电流为I5=1×10,电阻测量范围100k~1000k欧姆。初始档位在第一档,如果Vo<=0.5,就是电压偏小,需要切换到第二档。其中挡位由SW函数来控制,当要选择某一挡位时,将使用的通道置1其余置0,当测量范围大于1000k欧姆时输出NONE。电阻值计算和显示函数流程图如图:图3-3电阻测量流程图该模块的功能为根据不同的档位进行不同范块是这些模块当中最费时的一个模块,因为每个档位的电相差十倍,所以每个档的比例系数不能单纯的乘中多测几个电阻,根据测得的电阻值与万用表测得的实际数,另外C语言在处理小数的时候取小数部分某一位的值不如取整数部分某一位值来的方便,所以在这对计算出来的电阻值进行了放大了统一的数组来存放显示的字符,大大精简了代码。在档位切换模块中提到的无电阻判断在第五档显示中体现,当取到的电压值为最大值时,判断为无电以下为电阻计算显示模块的详细代码:/*******************************************ADC_temp=(unsignedint)GetADCResult(ch);ADC_temp=ADC_temp*100/256*5;//ad转换倍ADC_sj=ADC_temp/50;//不一定是50,等到实测值出来可以更换矫正if(res_number==1){}if(res_number==2){}if(res_number==3)if(res_number==4){}if(res_number==5){}Inttochar(R,(unsignedchar*)ou);//H整型转换为字符型/**********************LCD忙函数检测***********************{/*********************************************/*********************************************/**********************地址转换***********************voidSetAddress(unsignedcharunsignedcharbyAddre{}/*********************************************{{/*********************************************/*********************************************{if(res_number<4){if(res_number>3)平,然后将指令数据送到数据□D0~D7,延时tsp1,让1602准备接收数据,这包括首地址指令,显示光标指令。在发送字符串到LCD的代码过程中出现了的类型。ShowResult()函数是显示函数,从AD模块出数值然后将AD读取的数值。10的AD采样值转换成实际值的公式测量值除以ADC的最大数值即量程再乘以参考电压值就是实际量,其中寄存器将AD的读取数值转换成实际数值,但是因为电压是经过放大50倍的所以接通过上面的公式就可以直接知道电阻阻值了。最后的Inttochar()函数是为了将整型转换为字符型来输出,其中值得注意的是这一部分+48是将其大小写转换成为ASCII码。其中计算的时候第4或者是第5档时他们的单位是欧姆,剩第4章实验结果本章是记录实验结果与数据分析,通过单片机及附属电路,完成被测电阻数值的自动测量与显示。达成以下目的1、电阻测量范围:10Ω1MΩ;,2、电阻测量的相对误差<0.5%>;3、完成软件的设计与调试;4、完成硬件与软件的联机调试。调试工作包括:点亮LCD模块判断液晶显示屏有无损坏。用万用电表测量三极管周边电压判断三极管有无损坏,测量放大模块周边的电压,判断是否正常,并且通过软件计算让其输出电压稳定,测试固定电阻找到系统存在的误差并通过软件计算让其得出数值尽量靠近实际值。.4.1数据实际值是否符合是是是是是.4.2实物图图4-1实物图本设计是设计一种基于单片机的便携式高精度的可靠的测量电子设备——基于单片机的数字电阻表设计。本文先说明了电子元器件的发展历程引出电阻的测量,再分析了国内外的数字电阻表研究现状,指出了电阻测量的难点当前电阻测量领域测量精度低,并且台式电阻表依赖按键换挡的问题,本设计的创新性是做出高可靠性、高精度、全自动测量电阻值的数字电阻表。整个系统主要包括电源模块、测量电路模块、显示模块等集阻值数据采集、数据显示、自动换挡等功能于一体。对于电阻测量,伏安法测电阻,电桥测电阻使得数欧姆以上电阻测量一直不作为难题,但是小电阻测量由于存在引线电阻和接触电阻,要精确测量有些难度,随着开尔文电桥法的推广,小电阻测量问题已从根本上得到解决,并在技术上得以实现。现在我们主要致力于测量自动化和减少设备体积。由于电子测量技术的发展,精确的电阻测量不再依赖于电桥线路,采用四线制电压和电流法的电阻测量技术已经非常成熟。目前,它越来越多地由单片机实现,并获得了许多辅助功能,如自动量程切换、自动记录和分析测试结本次论文中的难点部分我觉得是软硬件系统的配合调节,在完成整个测试过程中经常出现由于小元器件损害导致电路不通的失误,有使用了错误的放大器引脚图导致元器件在上电后变得滚烫,还有在显示模块的电阻阻值太小导致显示屏过亮显示不出读数,而误以为整个电路没有接通,后面是经过将同样的元器件复制的排到面包板上并且单独写了一段LC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论