基于Atmega16电容自动测量仪的设计140527.doc_第1页
基于Atmega16电容自动测量仪的设计140527.doc_第2页
基于Atmega16电容自动测量仪的设计140527.doc_第3页
基于Atmega16电容自动测量仪的设计140527.doc_第4页
基于Atmega16电容自动测量仪的设计140527.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

届 别 2014 届 学 号 201014240115 毕业设计 基于 Atmega16 的电容自动测量仪的设计 姓 名 许治豹 系 别、 专 业 物理与电子信息工程系 电气工程及其自动化 导 师 姓 名、职 称 段凌飞 讲师 完 成 时 间 2014.05 目录 摘要I 1.引言1 1.1 本论文的国内外研究动态 1 1.2 本论文的理论和实践意义.1 2 方案设计.2 2.1 方案选择 2 2.2 方案设计 2 2.3 芯片选型 3 2.4 显示器选型 5 3 硬件电路.7 3.1 多谐振荡器的设计 7 3.2 单片机最小系统电路设计 10 3.3 LCD 硬件电路设计11 3.4.供电电路的设计.11 3.5 系统总原理图 12 4 软件设计.12 4.1 软件实现.12 4.2.主程序流程图.12 4.3 LCD1602 显示子程序13 4.4 中断程序 14 4.5 数据处理程序分析.15 4.6 程序设计 18 5 系统功能测试.18 参考文献.19 致 谢.20 附录.21 I 摘 要 改革开放以来我国测量仪器的可靠性和稳定性问题得到了很多方面的重视,状况 有了很大改观。测试仪器行业目前已经越过低谷阶段,重新回到了快速发展的轨道, 尤其最近几年,中国本土仪器取得了长足的进步,特别是通用电子测量设备研发方面, 与国外先进产品的差距正在快速缩小,对国外电子仪器巨头的垄断造成了一定的冲击。 随着模块化和虚拟技术的发展,为中国的测试测量仪器行业带来了新的契机,加 上各级政府日益重视,以及中国自主应用标准研究的快速进展,都在为该产业提供前 所未有的动力和机遇。从中国电子信息产业统计年鉴中可以看出,中国的测试测量仪 器每年都以超过 30%以上的速度在快速增长。在此快速增长的过程中,无疑催生出了 许多测试行业新创企业,也催生出了一批批可靠性和稳定性较高的产品。电容测量仪 是当前实验室较为缺少的仪器,在某些试验过程中,常常需要知道电容值,而普通万用 表不具备此功能。 本设计以Atmega16 单片机为核心,通过555 定时器组成的多谐振荡器,能自动测量 50pF-1000uF 的电容值,测量精度为5%以内,通过LCD 显示测量值,能自动显示pF 档、 nF 档、uF 档量程. 关键词:电容自动测量,LCD 液晶显示,多谐振荡器 II Abstract Reliability and stability problems of our measuring instruments since the reform and opening has been a lot ofattention, situation has improved a lot. The test instrumentindustry has crossed the low stage, back to the track of rapid development, especially in recent years, China localinstrument has made considerable progress, particularly in terms of universal electronic measurement equipment research and development, the gap with foreign advanced products is rapidly shrinking, the foreign electronics giant monopoly caused certain impact. With the development of modular and virtual technology, it brings a new opportunity to test and measurement instrument industry China,coupled with all levels of government pay more and more attention, and rapid advancesin Chinese independentapplication standard, for the industry to provide the motive and opportunity hitherto unknown. From the statisticalyearbook China electronic information industry can be seen, test and measurement equipment Chinese each yearare more than 30% of the speed of rapid growth in the.This rapid growth, has spawned many testing industry, new ventures, also gave rise to a batch of high reliability andstability of the product. Capacitance measuring instrumentof current laboratory is missing, in some test process, oftenneed to know the capacitance value, while the ordinarymultimeter do not have this feature. The design of the microcontroller core, multivibrator basedon 555 timer, capacitor automatic measurement of 50pF - 10uF value, the measuring accuracy is within 5%,through the LCD display measurement, it can automatically display range, range pF file, nF file, uF file. Keywords: capacitancemeasurement; LCD liquid crystal display; Multivibrator. 1 1.引言 1.1 本论文的国内外研究动态 目前,随着电子工业的发展,电子元器件急剧增加,在当今的电子测试领域,电 容的测量已经在测量技术和产品研发中应用十分广泛。因此,设计安全、可靠、便捷 的电阻测试仪具有极大的现实必要性。电子技术在日常生活中得到了广泛的应用,各 种电路的不断推出以及电子产品的快速更新,电子技术已成为世界发展和人们生活中 必不可少的工具。测试仪器行业目前已经越过低谷阶段,重新回到了快速发展的轨道, 尤其最近几年,中国本土仪器取得了长足的进步,特别是通用电子测量设备研发方面, 与国外先进产品的差距正在快速缩小,对国外电子仪器巨头的垄断造成了一定的冲击5。 在现代实验室和电子设备维修中,电容是不可缺少的电子元器件,而因电容导致 的电路故障也占多数,电容的检测和更换维修常常需要工具,直接测量其电容值是判 断电容好坏的重要参数,一般测量工具无法测量电容容值,不能够满足当代测量工具 自动化和智能化的要求。中国电子测量技术经过 40 多年的发展历程,为中国的经济发 展、科学文化、 特别是国防军事的发展做出了的巨大贡献。随着世界高科技发展的潮 流,中国电子测量仪器也步入了高速发展的道路,特别是经过“九五”期间的发展,我 国电子测量技术在若干重大科技领域取得了突破性进展,为我国电子测量仪器走向世 界水平奠定了良好的基础。进入 21 世纪以来,科学技术的发展已难以用日新月异来描述。 新工艺、新材料、新的制造技术催生了新的一代电子元器件,同时也促使电子测量技术 和电公务员之家子测量仪器产生了新概念和新发展趋势5。 对于电容测量,一直是一个难题,一般万用表不具备电容测量,或者测量精度较 差,要精确测量有些难度,一般采用电容振荡的方式测量,在技术上问题不大。现在 主要是在测量的自动化、减小设备体积上做文章。当然,这些测量也可以用单片机来 实现,并获得许多辅助功能如自动量程切换、自动记录和分析测试结果、于上位电脑 接口实现数据传送、自动平衡。 用单片机精确测量电容可以实现自动量程切换,避免操作失误时卡住指针,损坏 仪表,同时在测量时的精度也大有提高,同时可以实现自动记录跟分析结果,操作十 分方便,而且由单片机构成的应用系统有较大的可靠性,系统配置、扩展灵活。 1.2 本论文的理论和实践意义 因为传统的测电容因系统误差较大,故本文采用多谐振荡方式测量,将电容转换 为频率后,进行计算,且测量方便 本设计中,考虑到单片机具有物美价廉、功能强、使用灵活方便、可靠性高等特 2 点。采用Atmega16单片机作为主控制器,对待测电容进行测试,再通过程序对所测数 据进行分析计算,最后将所得数据经过液晶屏显示出来。不仅测量精度高、便于使仪 表实现自动化。 2 方案设计 2.1 方案选择 方案一:利用电容器放电测电容 本方案时利用电容器充电后,所带电量 Q 与两极板间电压 U 和电容 C 之间满足 QCU 的关系。U 可由直流电压表测出,Q 可由电容器放电测量。使电容器通过高电 阻放电,放电电流随电容器两极板间的电压下降而减少,通过测出不同时刻的放电电 流值,直至 I0,作出放电电流 I 随时间变化的曲线,曲线下的面积即等于电容器所 带电量。由 CQU 可求出电容器的电容值。 方案二:利用放电时间比率来测电容 本方案时利用其测量原理是把被测电容和基准电容连接到同一电阻上,构成 RC 网络。通过测量两个电容放电时间的比率,就可以求出被测电容的电容值。测量范围 从 pF(10-12F)到几十个 nF(10-9F),并且在寄生电容的抑制和温度稳定性方面具有极很 大的优势。 方案三:利用单片机测脉冲来测时间常数 RC 再计算电容 本方案时利用其测量原理是把被测电容和电阻串联,构成 RC 网络,然后可利用 这个时间常数去弄个振荡器,调好振荡信号的波形然后开始计数脉冲值,可能的周期 为 T=A0RC,A0为一个常数,可通过周期可以计算出 C 的值。这个可以用单片机来 测,理论上可以从测的值可以为 N 多个,大大超过前面所讲述的。 方案一,利用电荷电量来测电容,当电压固定时,电容容值较小时,电荷电量较 低,电流也较小,但是电容较大时,电荷电量较高,电流也较大,容易烧毁芯片和器 件。 方案二,当测量范围从 pF(10-12F)到几十个 nF(10-9F),寄生电容的抑制和温度稳 定性方面具有极很大的优势。超出此范围时,误差较大,且此测量方法范围太小。 方案三,此方案时将电容值通过 RC 振荡,将电容值转换为稳定的频率值,便于单 片机检测,且测量精度较高,便于实现自动化测量。 综上考虑,本次设计选择方案三。 2.2 方案设计 本设计采用 555 定时器构成的多谐振荡器,将电容值转换为频率值送定时器/计数 3 器 T1 的输入捕捉口 PD6,将频率值通过输入捕捉中断和溢出中断计算出频率值,再经 转换为相应的电容值,通过单片机控制 LCD1602 显示电路将电容值显示出来。 电容信号 调理电路 Atmega16 单片机 LCD显示器 图 1 系统整体组成 2.3 芯片选型 2.3.1 单片机选型 本设计选用 ATmega16 单片机,它的芯片内部集成了较大容量的存储器和丰富强 大的硬件接口电路,具备 AVR 高档单片机 Mega 系列的全部性能和特点。但由于采用 了小引脚封装(为 DIP 40 和 TQFP/MLF32),所以其价格仅与低档单片机相当,再加 上 AVR 单片机的系统内可编程特性,使得无需购买昂贵的仿真器和编程器也可进行单 片机嵌入式系统的设计和开发6。 Atmega16 是一款采用低功耗 CMOS 工艺生产的基于 AVR RISC 结构的 8 位单片 机。AVR 单片机的核心是将 32 个工作寄存器和丰富的指令集联结在一起,所有的工 作寄存器都与 ALU(算术逻辑单元)直接相连,实现了在一个时钟周期内执行的一条 指令同时访问(读写)两个独立寄存器的操作。这种结构提高了代码效率,使得大部 分指令的执行时间仅为一个时钟周期。因此,ATmega16 可以达到接近 1MIPS/MHz 的 性能,运行速度比普通 CISC 单片机高出 10 倍。同时自带 10 位 6 路 ADC,方便软件 设计,而且在省电性能、稳定性、抗干扰性以及灵活性方面考虑得更加周全和完善6。 具有如下特点: 16K 字节的系统内可编程 Flash(具有同时读写的能力,即 RWW)。 512 字节 EEPROM,1K 字节 SRAM,32 个通用 I/O 口线,32 个通用工作寄存器, 三个具有比较模式的灵活的定时器/计数器(T/C), 片内/外中断,可编程串行 USART, 面向字节的两线串行接口,10 位 6 路(8 路为 TQFP 与 MLF 封装)ADC,具有片内振荡 器的可编程看门狗定时器,一个 SPI 串行端口,及五种可以通过软件进行选择的省电 模式6。其引脚图如图 2 所示。 工作于空闲模式时 CPU 停止工作,而 SRAM、T/C、SPI 端口以及中断系统继续工 作;掉电模式时晶体振荡器停止振荡,所有功能除了中断和硬件复位之外都停止工作; 在省电模式下,异步定时器继续运行,允许用户保持一个时间基准,而其余功能模块 处于休眠状态;ADC 噪声抑制模式时终止 CPU 和除了异步定时器与 ADC 以外所有 4 I/O 模块的工作,以降低 ADC 转换时的开关噪声;Standby 模式下只有晶体或谐振振荡 器运行,其余功能模块处于休眠状态,使得器件只消耗极少的电流,同时具有快速启 动能力6。 本芯片是以 Atmel 高密度非易失性存储器技术生产的。片内 ISPFlash 允许程序存 储器通过 ISP 串行接口,或者通用编程器进行编程,也可以通过运行于 AVR 内核之中 的引导程序进行编程。在更新应用 Flash 存储区时引导 Flash 区(Boot Flash Memory)的 程序继续运行,实现了 RWW 操作。通过将 8 位 RISCCPU 与系统内可编程的 Flash 集 成在一个芯片内,ATmega16 成为一个功能强大的单片机,为许多嵌入式控制应用提供 了灵活而低成本的解决方案7。 Atmega16 具有一整套的编程与系统开发工具,包括:C 语言编译器、宏汇编、程 序调试器/软件仿真器、仿真器及评估板7。 PB0(XCK/T0) 1 PB1(T1) 2 PB2 3 PB3 4 PB4 5 PB5 6 PB6 7 PB7 8 RESET 9 VCC 10 GND 11 XTAL2 12 XTAL1 13 PD0 14 PD1 15 PD2 16 PD3 17 PD4 18 PD5 19 PD6 20 PD7 21 PC0 22 PC1 23 PC2 24 PC3 25 PC4 26 PC5 27 PC6 28 PC7 29 AVCC 30 GND 31 AREF 32 PA7 33 PA6 34 PA5 35 PA4 36 PA3 37 PA2 38 PA1 39 PA0 40 图 2 Atmega16 引脚图 引脚说明: 表 1 单片机引脚 VCC数字电路电源。 GND地。 端口B(PB7PB0)端口B为8位双向I/O口。 端口C(PC5PC0)端口C为7位双向I/O 口。 PC6/RESET 若RSTDISBL熔丝位编程,PC6作为I/O 引脚使用。若RSTDISBL 熔丝位未编程,PC6 作为复位输入引脚。 端口D(PD7PD0)端口D为8位双向I/O口。 RESET 复位输入引脚。持续时间超过最小门限时间的低电平将引起复位。 5 AVCCAVCC是A/D转换器、端口C(30)及ADC (76)的电源。 AREFA/D 的模拟基准输入引脚。 ADC76(TQFP与MLF 封装) TQFP与MLF封装的ADC76作为A/D转换器的模拟输入。为模拟 电源 且作为10位ADC通道。 2.4 显示器选型 2.4.1. LCD 简介 LCD(Liquid Crystal Display)液晶显示器。LCD 的构造是在两片平行的玻璃基 板当中放置液晶盒,下基板玻璃上设置 TFT(薄膜晶体管) ,上基板玻璃上设置彩色滤 光片,通过 TFT 上的信号与电压改变来控制液晶分子的转动方向,从而达到控制每个 像素点偏振光出射与否而达到显示目的。现在 LCD 已经替代 CRT 成为主流,价格也 已经下降了很多,并已充分的普及8。 2.4.2 LCD 的类型 按照背光源的不同,LCD 可以分为 CCFL 和 LED 两种。CCFL 指用 CCFL(冷阴 极荧光灯管)作为背光光源的液晶显示器(LCD)。 CCFL 的优势是色彩表现好,不足在于功耗较高9。 LED 指用 LED(发光二极管)作为背光光源的液晶显示器(LCD),通常意义上 指 WLED(白光 LED)。 LED 的优势是体积小、功耗低,因此用 LED 作为背光源,可以在兼顾轻薄的同 时达到较高的亮度。其不足主要是色彩表现比 CCFL 差,所以专业绘图 LCD 大都仍 采用传统的 CCFL 作为背光光源10。 2.4.3 工作原理 LCD 由两块玻璃板构成,厚约 1mm,其间由包含有液晶材料的 5m 均匀间隔隔 开。因为液晶材料本身并不发光,所以在显示屏两边都设有作为光源的灯管,而在液 晶显示屏背面有一块背光板(或称匀光板)和反光膜,背光板是由荧光物质组成的可 以发射光线,其作用主要是提供均匀的背景光源11。 背光板发出的光线在穿过第一层偏振过滤层之后进入包含成千上万液晶液滴的液 晶层。液晶层中的液滴都被包含在细小的单元格结构中,一个或多个单元格构成屏幕 上的一个像素。在玻璃板与液晶材料之间是透明的电极,电极分为行和列,在行与列 的交叉点上,通过改变电压而改变液晶的旋光状态,液晶材料的作用类似于一个个小 的光阀。在液晶材料周边是控制电路部分和驱动电路部分11。 当 LCD 中的电极产生电场时,液晶分子就会产生扭曲,从而将穿越其中的光线进 行有规则的折射,然后经过第二层过滤层的过滤在屏幕上显示出来11。 综合考虑,本次设计选用 2 行 16 位显示器 LCD1602 作为显示屏。 6 2.4.4 液晶 LCD1602 1602 字符型 LCD 通常有 14 条引脚线或 16 条引脚线的 LCD,多出来的 2 条线是 背光电源线。 LCD1602 的引脚图如下图图 3 所示,引脚定义和主要参数分别在表 2,表 3 中, 其基本时序操作在下文中有说明。 VSS 1 VCC 2 VEE 3 RS 4 R/W 5 E 6 DB0 7 DB1 8 DB2 9 DB3 10 DB4 11 DB5 12 DB6 13 DB7 14 A 15 K 16 图 3 LCD1602 引脚图 LCD1602 的引脚定义如表 1: 表 2 LCD1602 引脚定义表 编号符号引脚说明编号符号引脚说明 1VSS电源地9D2Data I/O 2VDD电源正极10D3Data I/O 3VL液晶显示偏压信号11D4Data I/O 4RS 数据/命令选择端 (H/L) 12D5Data I/O 5R/W读/写选择端(H/L)13D6Data I/O 6E使能信号14D7Data I/O 7D0Data I/O15BLA背光源正极 8D1Data I/O16BLK背光源负极 1602 主要参数: 表 3 LCD1602 主要参数 显示容量:162 字符 芯片工作电压: 4.5V .5V 工作电流:2.0mA(5.0V) 7 最佳模块工作电压:5.0V 字符尺寸:2.954.35(WXH)mm 基本操作时序: 读状态:输入:RS=L,RW=H,E=H 输出:D0D7=状态字。 写指令:输入:RS=L,RW=L, D0-D7=指令码,E=高脉冲 输出:无。 读数据:输入:RS=H,RW=H,E=H 输出: D0-D7=数据。 写数据:输入;RS=H,RW=L,D0-D7=指令码,E=高脉冲 输出:无。 3 硬件电路 3.1 多谐振荡器的设计 3.1.1 555 多谐振荡器电路设计 555 定时器是一种模拟和数字功能相结合的中规模集成器件,其电源电压范围宽, 可在 4.5V16V 工作,输出驱动电流约为 200mA,其输出可与 TTL、CMOS 或者模拟 电路电平兼容。其引脚图如图 4 所示,其引脚功能如表 4 所示。 GND 1 TRIG 2 OUT 3 RESET 4 CTRL 5 THR 6 DIS 7 VCC 8 555 图 4 555 引脚图和内部电路图 表 4 555 定时器引脚功能 引脚名称功能 1GND(地)接地,作为低电平 2TRIG(触发) 当此引脚电压降至 1/3VCC(或有控制端决定的阀值电压)时输出端给高 电平。 3OUT(输出)输出高电平(+VCC)或低电平 4RESET(复位) 是直接清零端。当此端接低电平,则时基电路不工作,此时不论 TR、TH 处于何电平,时基电路输出为“0”,该端不用时应接高电平。 5CTRL(控制)VC 为控制电压端。若此端外接电压,则可改变内部两个比较器的基准电 8 压,当该端不用时,应将该端串入一只 0.01F 电容接地,以防引入干扰。 6THR(阀值)TH 高触发端 7DIS(放电)放电端。该端与放电管集电极相连,用做定时器时电容的放电。 8VCC(供电)提供高电平给芯片 以下为 NE555 的电气参数: 表 5. NE555 电气参数 供电电压(VCC)4.5-15V 最大输出电流 200mA 额定工作电流 (VCC=+5V) 3-6mA 最大功耗 600mA 额定工作电流(VCC=+15V)10-15mA 最低工作功耗 30Mw(5v),225Mw(15v) 3.1.2 555 构成的多谐测量电路 多谐振荡器又称为无稳态触发器,在无稳态工作模式下 555 定时器可输出连续的 特定频率的方波。 G ND 1 TRIG 2 O UT 3 RESET 4 CTRL 5 THR 6 D IS 7 V CC 8 U 2 N E555 V CC V CC G ND C6 0.01U F V CC CX out R5 51K R651K D 6 IN 5819 D 7 IN 5819 图 5 电容测量电路 本电路图是由 NE555 定时器构成的占空比可调的多谐振荡器,电源 Vcc 通过 R5、D6 向(待测电容)充电,以及 CX 通过 D5、R6 向 NE555 的第 7 脚 DIS 放电, X C 是电路产生振荡。电容在 1/3VCC 和 2/3VCC 之间充放电(占空比为 0.5),其波形 X C 如图 6,输出信号的时间参数为 : 式 3-0 PLPH TTT 式 3-1 XPH CRT 5 7 . 0 式 3-2 XPL CRT 6 7 . 0 9 式 3-3)65(/43 . 1 )65(7 . 01)1 (RRCRRCTf XX 根据设计要求为 50pF-10uF 的电容值 X C 图 6 多谐振荡产生的波形 由式 3-3 所示,设计要求能够测量 50pf-10uF 的值,下面按 pF、nF、uF 将其分为 三个部分进行近似计算,其中,R 为常数为 102Kohm,则 式 3-4RCf/ )43. 1 ( maxmin 式 3-5RCf/ )43. 1 ( minmax :pF 档: 当 时,555 多谐振荡器输出 pF 级最小频率;KohmRpFC102,1000 max min1 f 将 R 代入式 3-4 得: 式 3-6)(0196.14102000/)101000(43. 1 / )43. 1 ( 12 maxmin1 KHzRCf 当 时,555 多谐振荡器输出 pF 级最大频率;KohmRpFC102,50 min ax1m f 将 R 代入式 3-5 得: 式 3-7)(396.280102000/)1050(43. 1 /min)43. 1 ( 12 max1 KHzRCf nF 档: 当 时,555 多谐振荡器输出 nF 级最小频率;KohmRnFC102,1000 max min2 f 将 R 代入式 3-4 得: 式 3-8)(049.14102000/)101000(43. 1 / )43. 1 ( 9 maxmin2 HzRCf 当 时,555 多谐振荡器输出 pF 级最大频率;KohmRnFC102,1 min ax2m f 将 R 代入式 3-5 得: 式 3-9)(0196.14102000/)101 (43. 1 / )43. 1 ( 9 minmax2 KHzRCf uF 档: 当时,555 多谐振荡器输出 nF 级最小频率;KohmRuFC102,1000 max min3 f 将 R 代入式 3-4 得: 式 3-10)(0140196 . 0 102000/)101000(43. 1 / )43. 1 ( 6 maxmin3 HzRCf 当时,555 多谐振荡器输出 pF 级最大频率;KohmRuFC102,1 min ax3m f 将 R 代入式 3-5 得: 式 3-11)(0196.14102000/)101 (43. 1 / )43. 1 ( 6 minmax3 HzRCf 综上所述,555 多谐振荡器在不同电容值情况下,输出频率如表 6 所示。 V0 VCH 0 TPL T TPH 10 表 6.档位频率值 档位频率最小值 min f频率最大值 max fR 值级别备注 PF 14.0196 KHZ (1.43/Q MHZ) 280.392 KHZ (28.6/Q MHZ) Kohm 级别Q=102 nF 14.0196 HZ (1.43/Q KHZ) 14.0196 KHZ (1.43/Q MHZ) Kohm 级别Q=102 uF 0.0140196 HZ (143/Q HZ) 14.0196 HZ (1.43/Q KHZ ) Kohm 级别Q=102 由表6 可知,取R=102K, 0.0140196 HZ 280.392 KHZ 在系统晶振可测量 f 范围内。 故取 R5,R6,为 51k 金属膜电阻精度为1%,总电阻R=102k。 由于被测量电路有会产生高频,所以D6,D7 选用肖基特二极管IN5819。 3.2 单片机最小系统电路设计 3.2.1. 复位电路设计 单片机复位电路如图 7 所示。由于 ATMega16 已经内置了上电复位设计。并且在 “熔丝位”里,可以控制复位时的额外时间,故改芯片的外部上电复位线路的设计变得 简单,由 R2(10K)的电阻到 VCC 和 C5(0.1uF)的电容接地以消除干扰、杂波。 图中 D3(1N4007)的作用有两个:作用一是将复位输入的最高电压钳在 Vcc+0.5V 左右,另一作用是系统断电时,将 R2(10K)电阻短路,让 C5 快速放电,让下一次来电 时,能产生有效的复位。 当 AVR 在工作时,按下 SB0 开关时,复位脚变成低电平,触发 AVR 芯片复位。 PB0(XCK/T0) 1 PB1(T1) 2 PB2 3 PB3 4 PB4 5 PB5 6 PB6 7 PB7 8 RESET 9 VCC 10 GND 11 XTAL2 12 XTAL1 13 PD0 14 PD1 15 PD2 16 PD3 17 PD4 18 PD5 19 PD6 20 PD7 21 PC0 22 PC1 23 PC2 24 PC3 25 PC4 26 PC5 27 PC6 28 PC7 29 AVCC 30 GND 31 AREF 32 PA7 33 PA6 34 PA5 35 PA4 36 PA3 37 PA2 38 PA1 39 PA0 40 U1 ATMEGA16 VCC R2 10K C5 0.1UF D3 IN4007 SB0 RESET VCC 图 7 复位电路 3.2.2. 晶振电路设计 11 PB0(XCK/T0) 1 PB1(T1) 2 PB2 3 PB3 4 PB4 5 PB5 6 PB6 7 PB7 8 RESET 9 VCC 10 GND 11 XTAL2 12 XTAL1 13 PD0 14 PD1 15 PD2 16 PD3 17 PD4 18 PD5 19 PD6 20 PD7 21 PC0 22 PC1 23 PC2 24 PC3 25 PC4 26 PC5 27 PC6 28 PC7 29 AVCC 30 GND 31 AREF 32 PA7 33 PA6 34 PA5 35 PA4 36 PA3 37 PA2 38 PA1 39 PA0 40 U1 ATMEGA16 C4 22PF Y1 12MHZ C3 22PF VCC 图 8 晶振电路 ATMega16 已经内置 RC 振荡线路,可以产生 1M、2M、4M、8M 的振荡频率。由 于内置采用 RC 振荡电路,晶振频率不够稳定,在一些要求较高的场合,如定时器等 需要比较精确的定时时间时,使用外部的晶振线路更为可靠。综合考虑,本设计选择 外接晶振电路,如图 8 所示。 3.3 LCD 硬件电路设计 3.3.1. 显示电路设计 12 PB0(XCK/T0) 1 PB1(T1) 2 PB2 3 PB3 4 PB4 5 PB5 6 PB6 7 PB7 8 RESET 9 VCC 10 GND 11 XTAL2 12 XTAL1 13 PD0 14 PD1 15 PD2 16 PD3 17 PD4 18 PD5 19 PD6 20 PD7 21 PC0 22 PC1 23 PC2 24 PC3 25 PC4 26 PC5 27 PC6 28 PC7 29 AVCC 30 GND 31 AREF 32 PA7 33 PA6 34 PA5 35 PA4 36 PA3 37 PA2 38 PA1 39 PA0 40 U1 ATM EGA16 C4 22PF VSS 1 VCC 2 VEE 3 RS 4 R/W 5 E 6 DB0 7 DB1 8 DB2 9 DB3 10 DB4 11 DB5 12 DB6 13 DB7 14 A 15 K 16 U3 LCD Y1 12MHZ C3 22PF VCC R2 10K C5 0.1UF D3 IN4007 SB0 RESET VCC VCC R3 10K VCC R4 10 VCC VEF VEF RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 RS R/W E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 图 9 显示电路 单片机的 PA0-PA7 为显示元件 LCD1602 的数据传输总线,PD5-PD7 为显示屏的 控制总线,R3 为屏幕亮度调节电阻。 3.4.供电电路的设计 本系统采用 6F22 碳性的 9V 电池供电,通过按键开关 K1 和二极管 D1,经滤波电 容 C1 输入 LM7805 三端正稳压集成电路的输入端口,经 LM7805 稳压后由其输出端口 输出,再经滤波电容 C2 滤波输出稳定的 5V 工作电源。其电路图如图 10 所示,其中 发光二极管 D2 作为输出电源的指示灯,电阻 R1 为 D2 的限流电阻,二极管 D4 的作 用是防止电流从输出口倒灌是烧毁 LM7805,对 LM7805 起保护作用。 13 Vin 1 GND 2 Vout 3 W1 LM7805 E 9V C1 0.33UF C2 0.1UF D1 IN4007 D2 LED K1 R1 4.7K VCC D4 IN4007 1 2 3 4 USB 图 10 系统供电电路图 3.5 系统总原理图 本次设计采用 555 定时器构成多谢振荡器,将电容的容量值转换成频率值,然后 送到 Atmega16 芯片将输入的频率值通过定时器 T1 的输入捕捉功能和溢出中断功能, 计算出频率值,再根据公式转换成电容值送到 LCD1602 显示器中显示出来。 系统电源由 9V 电池经过 LM7805 输出稳定的 5V 电压提供给各部件工作。 总电路图见附录 1。 4 软件设计 4.1 软件实现 本设计由555定时器构成的多谐振荡电路得到待测电容对应的频率值,利用单片机 定时器/计数器T1的输入捕捉功能和定时器/计数器T1的溢出中断把频率值转换成数字量, 再利用软件比较、切换量程然后计算出相应的电容值,在液晶显示模块上正确显示出 来,并能保持稳定。 主程序不仅担负着量程的识别与转换,而且还负责数据的修正和传输。主控制器的 工作状态直接决定整个测量系统能否正常工作。 4.2.主程序流程图 首先,初始化系统,定义相应的变量并赋予初值;其次,初始化显示子程序的数 据端口和控制端口,进行一段时间演唱,然后调用显示子程序显示 z=1 时的值,即开 机显示和其他状况时的显示,均显示“1”和“Welcome to Test”; 最后,初始化定时器/计数器 1 的控制寄存器 TCCR1A 和 TCCR1B,设置好中断屏 蔽寄存器相关位,开启总中断,等待定时器/计数器 T1 的输入捕捉第 2 次中断到来之 后,结束循环等待,关闭总中断进行数据处理和档位选择,将处理好的数据送显示字 程序显示,延迟段时间后返回定时器/计数器 T1 初始化处进行无限循环。 14 开始 开始 系统初始化 系统初始化 显示子程序 初始化 显示子程序 初始化 调用显示子程序 (开机显示) 调用显示子程序 (开机显示) 定时器/计数器T1 初始化 定时器/计数器T1 初始化 中断初始化 中断初始化 T1捕捉中断第2次相应? (K=2?) T1捕捉中断第2次相应? (K=2?) 关中断 关中断 调用数据处理程序 调用数据处理程序 调用显示子程序 调用显示子程序 调用延迟子程序 调用延迟子程序 清零相关参数 清零相关参数 N Y 图 11 主流程图 4.3 LCD1602 显示子程序 LCD1602 液晶显示器的初始化主要步骤是:显示模式设置;显示关闭;显示清屏; 显示光标移动设置;数据指针设置;写数据;延迟一段时间。显示初始化设置完之后 重复写数据和调用延迟时间程序,将要显示的数据写完为止。 15 LCD1602显示子程 序 LCD1602显示子程 序 显示模式设置 显示模式设置 显示关闭 显示关闭 显示清屏 显示清屏 显示光标移动设 置 显示光标移动设 置 数据指针设置 数据指针设置 写数据 写数据 调用延迟子程序 调用延迟子程序 图 12 LCD 显示子程序 4.4 中断程序 定时器/计数器 T1 的溢出中断程序流程图: T1溢出中断 T1溢出中断 统计中断次数(h=h+1) 统计中断次数(h=h+1) 中断返回 中断返回 图 13 T1 溢出中断程序流程图 定时器/计数器 T1 的输入捕捉中断程序流程图: 16 T1输入捕捉中断程序 T1输入捕捉中断程序 记录当前捕捉的计数值(储存 在数组xk中) 记录当前捕捉的计数值(储存 在数组xk中) K+ K+ 开启T1的溢出中断屏蔽寄存位 开启T1的溢出中断屏蔽寄存位 K=2? K=2? 关闭中断 关闭中断 停止计数 停止计数 Y 中断返回 中断返回 N 图 14 T1 输入捕捉中断流程图 4.5 数据处理程序分析 定时器/计数器 T1 的输入捕捉和溢出中断测出输入的频率值,计数脉冲个数为 式 4-1hxxN655360 1 (h 为 T1 溢出中断次数)则输入频率为 式 4-2NfNTf clkCLK /)/(1 为系统时钟频率 12MHZ,T/C1 的时钟选择设为 001(TCCR1B 相应时钟选择 clk f 设置位),设无预分频,其时钟频率为系统外部晶振频率,由于数据储存区最大 10 进 制为 216=65536,如果 N65536(N 为测量时间间隔脉冲个数)则数据会产生溢出, 影响数据的准确。 而电容 C 的值由两部分组成,一是两次捕捉标志计数脉冲值之差,一是技术溢出 中断的电容值,我们用 C 代表电容的容值,C1 代表电容的两次捕捉标记的计数脉冲值 之差,C2 代表计数溢出的电容值。 由 得 :RCf43 . 1 式 4-3)*(43 . 1 fRC)*(*43 . 1 clk fRNC 17 可由,C21 CCC 式 4-4)*()0 1 (*43 . 1 1 clk fRxxC 式 4-5)*()65536*(*43 . 1 2 clk fRhC 已知,所以 KohmR102 式 4-6(nF)h *76.566(F) 10-9*76.566hC2 由式 4-4 得: 式 4-7(PF)-x(x. (F)-x(x. C - 0116811001168306511 12 设 C1,C2 皆为 4 字节,即数据长度为 16 为二进制数,最大的能够储存的 10 进制 数为 65536。 当时,65536C2 855.941h 所以当 h855 时(h 为整数),C2 数据会产生溢出。本次设计电容 C 最大为 10UF,所以 h 不会产生溢出错误。 同理,当 C1=65536 时,56109.5x0-x1 所以,当 时,C1 数据会产生溢出错误。56109.5x0-x1 为了计算方便,将 C1 拆分为整数部分 C11 和小数部分 C12 分开计算,之后 C12 取整与 C11 相加赋给 C1。 式 4-8-xxC0111 式 4-9)-x*(x.C01168012 所以 式 4-10112111/CCC 当时,为防止 C1 数据溢出,所以将其拆分为两部分计算,大5610901-xx 于 56094 的用代替原 C1, 另一部分相当于增加了 65.536nF,所以在溢655361211-CC 出计算公式的整数部分 C2 加 上 65nF,在其小数部分加上 566PF。 式 4-11 5662323 6522 CC CC 其值就不会因溢出而产生错误。 当 T1 有溢出中断时,有式 4-6 知,每溢出一次电容容值 C 要加上 76.566nF,即每 溢出一次 C2 要加上 76.566nF,即 式 4-12 156622 7621 CC hC 对于溢出部分的数据处理,由式 4-6 知,C2 可以看成两部分组成,一是整数部分 C21=76h,一是小数部分 C22=0.566h。 如果 C22 大于 1,则 18 式 4-131222121/CCC C22 小于 1 的部分,则化为 PF 级别的整数储存,即 式 4-1310001222223)/-C(CC 档位调整,上叙只是单纯从数据储存角度分析,实际上电容值大于 1000pF 且小 于 1000nF 时,就要切换到 nF 档显示,大于 1000nF 就要切换到 UF 档显示。 PF 档:电容值在小于 1000pF 时,电容显示在 pF 档,此时有几种情况: 当定时器/计数器 T1 没有溢出(h=0)时,由式 4-6 知,C2=0 所以 C=C1,根据式 4-7 得: 式 4-141648561681100001-xx 当定时器/计数器 T1 有溢出(h=1)时,但是第二次标记的值小于第一次标记的值 (x113 时,显示 uF 档。 19 取出数组x中的值 取出数组x中的值 X0x1? X0x1? C11=65536-x0+x1 C11=65536-x0+x1 C12=0.168*C11 C12=0.168*C11 C12取整 C12取整 C11=x1-x0 C11=x1-x0 Y Y C1156109? C1156109? C1=C11+C12 C1=C11+C12 C1=C11+C12-65536 C1=C11+C12-65536 C2=C2+65,C23=C23+566 C2=C2+65,C23=C23+566 hx1,所以 C11 一定不会溢出 C2=C2-76;/减去一次溢出 C23=C23-566; else C11=x1-x0;/C1 的整数部分 C12=0.168*C11;/小数部分是否有进位 C12=C12/1; if(C1156109)/C1 溢出部分之后的处理 C11=C11+C12-56109; C2=C2+76; C23=C23+566; else C1=C11+C12; /C1 算出的数据都是 PF。 /*档位选择 z 为 1 时测量值超出范围,0 时为 uf 档,2 时为 nf 档,4 时为 p

温馨提示

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

评论

0/150

提交评论