单片机课程设计论文智能数字电压表.doc

上传人:sccc 文档编号:4847996 上传时间:2023-05-19 格式:DOC 页数:31 大小:475.02KB
返回 下载 相关 举报
单片机课程设计论文智能数字电压表.doc_第1页
第1页 / 共31页
单片机课程设计论文智能数字电压表.doc_第2页
第2页 / 共31页
单片机课程设计论文智能数字电压表.doc_第3页
第3页 / 共31页
单片机课程设计论文智能数字电压表.doc_第4页
第4页 / 共31页
单片机课程设计论文智能数字电压表.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机课程设计论文智能数字电压表.doc》由会员分享,可在线阅读,更多相关《单片机课程设计论文智能数字电压表.doc(31页珍藏版)》请在三一办公上搜索。

1、目 录一论 文 摘 要.2二 设计要求3功能要求3主要技术指示3三 方案论证与选择4四 系统原理及基本框图5(一)电源设计5(二)AT89C51单片机6(三)A/D转换芯片7五.软件设计12(一)主程序流程图:14(二)开机自检14(三)ROM自检流程图:15(四)显示子程序:16(五)A/D中断服务:17五、程序清单18(一)主程序18(二)ROM自检19(三)RAM自检20(四) 输入通道自检21(五)LED显示自检21(六)显示子程序23 (七)A/D中断.24六元器件清单26七 系统评估27 设计总结28参考文献30论 文 摘 要在集总参数电路中,考虑到操作的安全性、方便性、准确性等因

2、素,测量的主要参量是电压,电子电路的许多特性,如频率特性、调制度、非线性失真系数等都可以视为电压的派生量,各种电路的工作状态,如谐振、平衡、饱和、截止及动态范围等,通常都用电压的形式来反映。电子设备的各种控制、反馈信号也主要表现为电压量。因此电压测量是电子测量的最基本内容之一。本系统是利用AT89C51单片机的一种电压测量电路,该系统除了采用ICL7135高精度、双积分A/D转换电路外,还增设了超限报警电路。测量范围直流01000伏,交流0750伏, LED数码管显示。正文着重给出了软硬件系统的各部分电路,介绍了双积分电路的原理,AT89C51的特点,ICL7135的功能和应用。关键词:数字电

3、压表,AT89C51,ICL7135,双积分A/D转换器一 设计要求(一)功能要求(1) 能够测量各种波形交流电压的有效值; (2) 具有开机自检、自动量程转换功能;(3) 具有克服随机误差的数字滤波功能;(4) 使用220V交流电源,设置电源开关、源指示灯和电源保护功能。(二)主要技术指示(1) 直流电压量程200 mV、2V、20V、200V、1000V 交流电压量程为200 mV、2V、20V、200V、750V(2) 测量误差: (0.5%(读数)+0.2%(满度值))(3) 分辨率:100uV (最小量程)(4) 显示方式:四位LED数码管显示(5) 输入阻抗:10M(6) 带宽:1

4、0HZ 100kHZ(7) 测量速度:23次/秒 三 总体方案论证与选择A 从功能要求看,系统功能并不复杂,单片机和专用真有效值转换芯片完全可以胜任主机的角色;B 从分辨率看,AD7135和MC14433均可满足要求;分辨率=100u/7500.13u 采用双积分型A/D转换器,不需要采样保持器这样,系统组成方案的雏形已经建立。键盘控制电路 方案1LED显示电路单片机A/D转换器输入电路被测电压电源电路本方案利用A/D转换原理将被测模拟量转换成数字量,并通过控制系统即单片机用数字方式显示测量结果方案2基准参考电压时钟源计数器A/D转换量程开关被测电压 输入电压数字显示七段译码驱动逻辑控制本方案

5、采用双积分A/D转换器,使用时只需外接少量的元器件,配以译码驱动及LED数码管便可组成3位半的数字电压表。它由模拟电路和数字电路两部分组成,模拟部分包括转换式输入放大器、基准电压源和A/D转换电路。数字部分包括时钟源、计数器、译码驱动显示及逻辑控制。其中A/D转换、计数及控制是数字电压表的核心部件,其作用是将输入的模拟量转换为数字量,再通过译码驱动显示部件,将模拟量的数值显示出来方案3真有效值转换量程开关被测电压A/D转换电源部分 LED数码管本方案以专用真有效值转换芯片和A/D转换器为核心来设计数字电压表,设计简单易行,而且可靠性较高以上三种方案比较而言,第一种方法比较常用,并且技术也比较成

6、熟,技术方面均能达到设计要求。因此本设计采用方案一三 系统原理及基本框图(一)电源设计由于单片机及所使用的芯片均为5V直流供电,经过变压器将其变为低压交流电压,低压电压经过桥式全波整流变成直流电压,再经过双T电容滤波加集成稳压芯片(7805和7905)最终变成稳定的5V直流电压。本电路还设计电路保护和电源指示灯。在使用数字电压表测量开关电源电路中的电压时,经常会由于人为疏忽出现意外情况。为维修时易发现故障所在。 电源电路原理图如下:图1 电源设计图由该电路实践证明:(1)最高输出电压受稳压器最大输入电压及最小输入输出压差的限制,该固定式三端集成稳压集成电路7805最大输入电压为35V,输入输出

7、差要保持2V以上,因此该电路中由于稳压器的直流输入电压为+14V,所以该电路的输出最大值为+12V。(2)实验表明,在稳压器的稳压范围内,其稳压精度可达0.03。(3)由于集成稳压器7805和7905具有很高的“电压调整率”把输入包含的交流成分和输入直流波动一起加以抑制,从而使输出直流稳定,交流纹波减小。1N4148是保护二极管,用来防止在输入短路时输出电容C4和C9所存储的电荷通过稳压器放电而损坏器件(二)AT89C51单片机芯片介绍:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Me

8、mory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。7 1.主要特性:8031 CPU与MCS-51 兼容 4K字节可编程FLASH存储器(寿命:1000写/擦循环) 全静态工作:0Hz-24KHz 三级程序存储器保密锁定 128*8位内部RAM 32条可编程I/O线 两个16位定时器/计数器6个中断源 可编程串行通道 低功耗的闲置和掉电模

9、式 片内振荡器和时钟电路(三)转换器ICL7135 如图所示:对输入模拟电压和基准电压进行两次积分,先对输入模拟电压进行积分,将其变换成与输入模拟电压成正比的时间间隔 T1,再利用计数器测出此时间间隔,则计数器所计的数字量就正比于输入的模拟电压;接着对基准电压进行同样的处理。在常用的A/D转换芯片(如ADC -0809、ICL7135、ICL7109等)中,ICL7135与其余几种有所不同,它是一种四位半的双积分A/D转换器,具有精度高(精度相当图2双积A/D 转换器的波形图于14位二进制数)、价格低廉、抗干扰能力强等优点。本文介绍用单片机并行方式采集ICL7135的数据以实现单片机电压表和小

10、型智能仪表的设计方案。1.ICL7135的引脚功能及主要特性ICL7135是双斜积分式4位半单片AD转换器,28脚DIP封装。其引脚功能如下:1脚(V)5V电源端;2脚(VREF)基准电压输入端;3脚(AGND)模拟地;4脚(INT)积分器输入端,接积分电容;5脚(AZ)积分器和比较器反相输入端,接自零电容;6脚(BUF)缓冲器输出端,接积分电阻;7脚(CREF)基准电容正端;8脚(CREF)基准电容负端;9脚(IN)被测信号负输入端;10脚(IN)被测信号正输入端;11脚(V)5V电源端;12、1720脚(D1D5)位扫描输出端;1316脚(B1B4)BCD码输出端;21脚(BUSY)忙状态

11、输出端;22脚(CLK)时钟信号输入端;23脚(POL)负极性信号输出端;24脚(DGND)数字地端;25脚(RH)运行读数控制端;26脚(STR)数据选通输出端;27脚(OR)超量程状态输出端;28脚(UR)欠量程状态输出端。2.性能:(1) 总读数达+20000和-20000计数,满标电压为2.0000V,精度达1计数;(2) 自校零,保证零电压输入时读数为零;(3) 输入阻抗大于1000M,(4) 具有精确的差分输入(5) 自动判别信号极性,保证零读数附近极性准确;(6) 只要求单一基准电压(7) 具有适用自动量程能力的超量程和欠量程信号;(8) 全部输出与TTL兼容;(9) 用闪烁显示

12、的方式直观的表明超量程状态;(10) 设有六个I/O辅助信号,适用于多个异步收发机,微理器或其它组合线路;(11) 采用位扫描和BCD码输出。3 数据输出方式:ICL7135的输出方式为动态BCD码扫描形式,图中是其输出波形图,这种图形将BCD码数与字位数及ST倍相配合使用,可组成多种形式的数据据输也电路,以供显示或计算机采集数据之用。 当输入模拟量超过或者低于合适量程时OR端或UR端就会出现图所示的波形在过量程情况下,显示数还会自动“闪光报警”。 图3 ICL7135数据输出方式图4. 7135数字部分数字部分主要由计数器、锁存器、多路开关及控制逻辑电路等组成。7135一次A/D转换周期分为

13、四个阶段:1、自动调零(AZ);2、被测电压积分(INT);3、基准电压反积分(DE);4、积分回零(ZI)。具体内部转换过程如图所示 图4 ICL7135数字输出图由于数字部分以DGNG端作为接地端,所以所有输出端输出电平以DGNG作为相对参考点。基准电压,基准电压的输入必须对于模拟公共端COM是正电压。 5.与单片机系统的串行连接在ICL7135与单片机系统进行连接时,使用并行采集方式 需要外部的时钟信号,在实际应用系统中,经常采用外接RC振荡器的方式,这样可以根据积分时间确定振荡频率。为了使电路具有抗50HZ串模干扰能力,A/D转换的积分时间应选择积分时间等于50HZ工频的整数倍。当时钟

14、频率fclk=125kHZ时,则每个时钟周期为1/fclk,所以A/D转换的积分时间为To=40002*(1/fclk)=320ms 即当时钟频率为125kHZ时,每秒约转换3次。积分电阻Rint和积分电容Cint的选择是非常关键的。Rint应选择精密电阻,积分电阻是由满量程输入电压和用来对积分电容充电的内部缓冲放大器的输出电流来定义的,充电电流的常规值为20uA,积分电阻的精确值可由下式得到 Rint=满量程电压值/20uA 在ICL7135的实际应用中,最常用的时将输入电压范围接为最大即+2-2V,此时基准电压应为1/2满量程电压即+1V,Rint为100K,这种元件选择参数时ICL713

15、5最常用的接法。 Cint积分电容的计算公式为 Cint=(10000*(1/fclk)*20uA)/积分器输出电压的摆动幅值由于积分电容和积分电阻的乘积由给定的最大电压波动选择,而最大电压波动不超过积分器允许范围(接近正负电源的0.3V)。所以,满量程积分器输出电压的摆动幅值控制在3.5V4V的电压范围较为理想。如果电源电压取5V,ICL7135的模拟地端接0V,则积分器输出电压的摆幅取4V就是合适的。此时的电容为 Cint=10000*(1/125)*(10(-3)*20*(10(-6))/4=0.4uF在实际应用中考虑到可靠性,应使积分器的输出电压摆幅稍小一些,所以常取Cint=0.47

16、uF。此外积分电容一个很重要的特性是当它只有很小的介质吸收系数时,才可阻止过冲翻转。通常选聚丙烯电容器或聚碳酸酯电容器作积分电容。自动调零电容Caz的大小对系统的噪声有些影响,选用较大容量的电容可以减小噪声,典型值为1uF。 基准电容Cref应大到足以使结点对地的寄生电容可以被忽略为止,典型值为1uF。积分输出端串接一个二极管D和电阻R=100k,是为了消除ROLLOVER 误差,根据要求接上即可。ICL7135的并行方式在实践中的应用效果很好。与串行方式相比,其突出的优点是结构简单、程序简洁、占用单片机的资源少、可提高抗干扰能力,同时可提高仪器的检测可靠性,并且可在不添加任何扩展口线器件的情

17、况下使系统的成本得到降低。ICL7650是Intersil公司利用动态校零技术和CMOS工艺制作的斩波稳零式高精度运放,它具有输入偏置电流小、失调小、增益高、共模抑制能力强、响应快、漂移低、性能稳定及价格低廉等优点. ICL7650是一种高增益、高共模抑制比和具有双端输入功能的运算放大器. CD4066是一种双向模拟开关,在集成电路内有4个独立的能控制数字及模拟信号传送的模拟开关。每个开关有一个输人端和一个输出端,它们可以互换使用,还有一个选通端(又称控制端),当选通端为高电平时,开关导通;当选通端为低电平时,开关截止。使用时选通端是不允许悬空的. 输入衰减器、程控电压放大电路设输入衰减器的传

18、输系数为A1,放大器的增益为A2。 输入衰减器和放大器增益控制由于A/D转换器满度输入电压即放大器的输出电压UO=2V,所以 200mV量程总增益为A200mV=UO/UI=2/0.2=110=A1A2, 2V量程总增益A2V=UO/UI=2/2=11=A1A2,初步确定采用同相比例放大器,200mV和2V量程不使用输入衰减器,由电子开关控制放大器增益A2=10或1实现量程转换。 20V量程总增益A20V= UO/UI=2/20=1/10=(1/100)10=A1A2, 200V量程总增益A200V=UO/UI=2/200=(1/100)1=A1A2, 700V量程总增益A1000V=UO/U

19、I=1/1000=(1/1000)1=A1A2。在20V、200V两档由继电器J1、J2接入A1=1/100的输入衰减器,配合A2=10或1实现量程转换,1000V量程由J1、J2接入A1=1/1000的输入衰减器,配合A2=1实现量程转换。 电路参数计算:运放A1选ICL7650斩波稳零运放。R1、R2、R3组成输入衰减器,D1、D2、D3、D4、R4、R5、R6组成输入保护电路,A1、R8、R9组成高阻同相放大电路,J1、J2、S1组成量程转换电路。S2与R10等组成输入通道自检电路。(J1、J2继电器、S1、S2电子开关CD4053)。ICL7650运放的输入电阻远大于10M(Ri=10

20、12),所以R1+R2+R3=10M。因为R3/(R1+R2+R3)=1/1000,所以R3=(R1+R2+R3)/1000=10M/1000=10k因为(R2+R3)/(R1+R2+R3)=1/100,所以R2+R3=(R1+R2+R3)/100=10M/100=100kR2=100-R3=90k,R1=10M-(R2+R3)=10M-100k=9.9M因为Au=1+R8/R9=10即R8/R9=9,取R9=1k,则R8=9R9=9k;D1、D2选用开关二极管1N4148,R4为限流电阻,设流过D1、D2的最大电流为10mA,则R4UIMAX/IDM=1000/0.01=100k,PR4UI

21、MAX2/R4=10002/100=10W,由于ICL7650最大允许输入电压为:VCC+0.3V和VEE-0.3V,所以,使用4V的稳压二极管将A1同相端电位限制在4.7V。R5为直流平衡电阻,其值应等于运放同相端到地的电阻(约为100k)。 I/O口分配I/O口用途P0.0P0.7输出显示7段码ag、dp,高电平有效P1.0接7135的OUTRUNP1.1接7135的D5 ,作的中断请求信号P1.2接7135的过量程信号输出端OR,OR=1过量程P1.3接7135的欠量程信号输出端UR,UR=1欠量程P1.4接7135的符号输出端POL,“1”正“0”负P1.5接7135的BCD码输出端B

22、1P1.6接7135的BCD码输出端B2P1.7接7135的BCD码输出端B4P2.0P2.3显示器个位万位位选信号输出,高电平有效(经SN7407反相驱动)P2.6mV单位指示LED,低电平有效P2.7V单位指示LED,低电平有效P3.1接7135的BCD码输出端B8P3.2接7135的 D5 D5=1时A/D转换结果万位数据输出P3.3接继电器J1,P3.4=1时K1吸合,接入衰减器P3.4接继电器J2,P3.5=1时K2吸合,接1/100衰减P3.6接电子开关K1,P3.6=0时放大器电压增益为10,P3.6=1时增益为1P3.7接电子开关K2,P3.7=0时测量;P3.7=1时输入通道

23、自检四 软件设计1 时钟频率的确定 单片机时钟:时钟频率高运算速度快,但耗电量增加、抗干扰能力变差。本设计对速度要求不高,也无串行通信功能,故对时钟无特殊要求,选fosc=6MHz。 A/D的时钟:如果正向积分阶段的时间(10000TCP)是干扰信号周期的整倍数时对此干扰抑制效果很好,如50Hz工频干扰的周期为20mS,取正向积分时间为80mS,则80000S=10000TCP,即TCP=80000S/10000=8S,fCP=1/TCP=1/8S=125kHz。ICL7135完成一次A/D转换需要40002个时钟周期,当TCP=8S时,转换周期为T400008S=320mS。A/D转换速度约

24、每秒3次。2 监控程序设计 RAM地址分配附表5-1 RAM地址分配表地址用途说明0组工作寄存器R1、R4、R5显示器自检子程序,R0、R2 ROM、RAM自检子程序,R1、R3通道自检子程序,R0、R2、R6、R7显示子程序1组工作寄存器A/D转换中断服务,R0地址指针,R5中断计数(0万位、4千位1个位),R6当前量程状态2组工作寄存器K1、K2键处理子程序,R7手动量程键K2状态计数器20H22HA/D转换结果,20H.7符号位,20H.0万位,21H22H千位个位23H25H存放零漂值,压缩BCD码,存放方式与上面类似26H28H存放计算的显示值,压缩BCD码,存放方式与上面类似2BH

25、小数点应在的字位码2CH显示字段码暂存2FH33H显示缓冲区,BCD码,万位个位50H7FH堆栈F0暂存A/D转换结果的符号位,“0”正/“1”负2DH.02DH.0=1ROM有故障2DH.12DH.1=1RAM有故障2DH.22DH.2=1输入通道有故障2DH.32DH.3=1开机自检有故障2DH.42DH.4=1过量程2DH.52DH.5=1欠量程2DH.62DH.6=1自动量程转换,2DH.6=0手动量程转换2DH.72DH.7=1过载,即最高量程仍超量程 量程状态转换表:量程R6S2S1J2J1(P3.7P3.4)P3口状态代码小数点应在字位码(2BH)200mV00H00000FH0

26、4H(百位)2V01H01004FH10H(万位)20V02H00011FH08H(千位)200V03H01015FH04H(百位)1000V04H01117FH02H(十位)通道自检05H10110BFH10H(万位) 系统初始化参数及控制字:(P2)=40H,关报警、V单位灯亮、关显示器(P3)=0BFH,量程开关置自检状态0EH=05H,置量程指示寄存器1组R6为自检(SP)=4FH(IP)=01H,设为高级中断,其余为低级中断IT0=1,外部中断置为边沿出发(IE)=81H,仅允许请求中断(2BH)=10H,置小数点应在字位码(万位)(2DH)=00H,请各个位标志(一)主程序流程图:

27、开始开机自检有故障F11系统初始化扫描显示器F0=1?F1=1?报警报警关报警1. (二)开机自检 开机自检输入通道故障清除F1ROM自检RAM自检显示缓存区E1显示缓存区E2显示缓存区E3量程F1(F11)系统初始化(三)ROM自检流程图:ROM自检清零A,BA读ROMBA异或B最后字节A校验和A=B?置位返回清零指向下一单元(四)显示子程序:返回显示子程序置显缓存区首址,置位码关显示,取显示数,查段码百位?十位=1?A=0最后一位加符号段码送P0.位码送P2延时1ms修改位码显缓区地址减1加DP应加DP(五)A/D中断服务:ICL7135每一分钟完成3次据的采集工作,1/3秒完成后向CPU

28、申请中断,CPU这时暂停工作,为中断服务.中断响应后关中断,将PSW、ACC压栈,判断是否首次中断,如果是首次中断,则将正负号标志位置入60H,再把百位置入61H中,如果不是首次中断,则跳到NEXT处,如果是第二次中断,则将十位数置入62H中,如果是第三次中断,再将个位数置入63H中,第五次中断则将小数点位置入64H中,同时个位置入64H中。同时清除中断次数寄存器30H中的值,完成中断后将ACC、PSW出栈,开中断。消隐的思想:每次电压采集后,CPU将数据送到LED显示,将可能出现以下几种需要消隐的情况。例如:750V档量程:0199.9此时百位的值0不符合人们的视觉习惯,需要把百位的值消隐掉

29、,编程是将#20H送入百位,使其在LED中不显示任何字符即可。同样的情况如下:需要消隐百位、十位需要消隐百位、十位、个位2000V档量程:01.900.9需要消隐百位需要消隐百位、十位200V档量程:01.900.9需要消隐百位20V档量程:19.9在采集到数据之后,置数之前判断档位,是2V档不消隐,是其他档位时再看要消隐的位之前有几个是零。例如750V档量程,-01.9V,在2次中断时判断档位是750V档,第1位是零,消隐第2位个位。五、程序清单(一)主程序T1: ACALL DISPLY ACALL TROM JB 20H.0,E1 ACALL TRAM JB 20H.1,E2 ACALL

30、 TCH JB 20H.2,E3 CLR F1 ACALL INI E1: MOV 2CH,#79H MOV 2BH,#06H AJMP FFE2: MOV 2CH,#79H MOV 2BH,#5BH AJMP FFE3: MOV 2CH,#79H MOV 2BH,#4FH AJMP FFFF: SETB F1 AJMP INI INI: ORG 0000H AJMP MAIN ORG 0003H AJMP INT0 MAIN: MOV SP,#4FH MOV IE,#81H SETB IT0 MOV P2,#1FH MOV P3,#03H MOV 14H,#05HHH: ACALL DIS1

31、 JNB F0,GG SETB P3.3 AJMP HHGG: JNB F1,II SETB P3.3 AJMP T1II: CLR P3.3 AJMP HH RET END (二)ROM自检TROM MOV DPTR,#0FFFH PUSH DPH PUSH DPL MOV DPTR,#0000H MOV B,#0LP1: CLR A MOV A,A+DPTR XRL B,A POP ACC MOV R1,A CJNE A,DPL,LP3 POP ACC MOV R2,A CJNE A,DPH,LP2 AJMP LP4LP2: MOV A,R2 PUSH ACC LP3: MOV A,R1

32、PUSH ACC INC DPTR AJMP LP1LP4: MOV DPTR,#0100H CLR A MOV A,A+DPTR XRL A,B JNZ LP5 CLR 20H.0 AJMP LP6 LP5: SETB 20H.0LP6: RET END(三) RAM自检TRAM: MOV R1,#00H LOOP: MOV R1,#55H MOV A,R1 CJNE A,#55H,AA MOV R1,#AA MOV A,R1 CJNE A,#0AAH,AAINC R1 CJNE R1,#7FH,LOOP CLR 20H.1 RET AA: SETB 20H.1 END(四)输入通道自检.T

33、CH: MOV 14H,#05H SETB P2.5 ACALL delay MOV A,26H CJNE A,#00H,BB MOV A,25H CJNE A,#9,CC CLR C MOV A,24H SUBB A,#7 JC EE DD: CLR 20H.2 RET EE:SETB 20H.2 RETBB: MOV A,25H CJNE A,#0H,DD MOV A,24H SUBB A,#5 JC EE AJMP DD RET CC: AJMP DD RETdelay: MOV R7,#10 DL3: MOV R6,#200 DL2: MOV R5,#248 NOP DL1: DJNZ

34、 R5,DL1 DJNZ R6,DL2 DJNZ R7,DL3 RET END(五)LED显示自检(显示4位“0“和4位数字“8”)DISPLY: NOP CLR R5 MOV R5,#4 MOV R2,#100DISPLY1: SETB P3.3 ACALL DL1 DJNZ R2,DISPLY1 MOV R2,#100 CLR P3.3DISPLY4: MOV R0,#2CH MOV R3,#01HDISPLY2: MOV A,R3 MOV P2,A CLR A MOV DPTR,#TAB1 MOVC A,A+DPTR MOV P0,A ACALL DL1 INC R0 MOV A,R3 JB ACC.4,DISPLY3 RL A MOV R3,A

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号