基于单片机的数字电压表的设计与制作1

更新时间:2023-03-08 18:16:34 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

西安航空职业技术学院 毕业设计论文

基于单片机的数字电压表的设计与制作

【摘要】 随着我国现代化技术建设的发展,电子检测技术日新月异,本设计

基于STC89C52单片机的一种电压测量电路,该电路采用ADC0832A/D转换元件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单, 可以测量0~5V的电压值,并在四位LED数码管上显示电压值。所用的元件较少,成本低,调节工作可实现自动化。

关键词:数字电压表;ADC0832;STC89C52

Abstract: Along with the development of our country's modern technology, electronic measuring technology is changing with each passing day, this design is based on the STC89C52 microcontroller, a voltage measurement circuit, the circuit uses the ADC0832A/D conversion element, the hardware circuit and software design of digital voltage meter. The system of the digital voltmeter circuit is simple, can measure the voltage of 0 ~ 5V, and in four LED digital tube display voltage value. The components used are less, the cost is low, and the adjustment can be realized automatically Key words: digital voltmeter; ADC0832; STC89C52

西安航空职业技术学院 毕业设计论文

目 录

1 绪论 .................................................................................................................................................... 1 1.1 课题背景 ..................................................................................................................................... 1 1.2 发展方向 ..................................................................................................................................... 1 1.3 课题的目的和意义 ..................................................................................................................... 2 1.4 本设计完成的工作 ..................................................................................................................... 2 2 总体方案设计 .................................................................................................................................... 4 2.1 硬件设计 ..................................................................................................................................... 4

2.1.1 电源模块.............................................................................................................................. 4

2.1.2 主控制器模块 .................................................................................................................... 4 3 硬件实现及单元电路设计 ................................................................................................................ 5 3.1 主控制模块 ................................................................................................................................. 5 3.1.1 单片机的时钟电路与复位电路设计 ................................................................................ 5 3.1.2 单片机STC89C52及特点概述 .......................................................................................... 6 3.1.3 振荡器特性 ........................................................................................................................ 8 3.1.4 芯片擦除 .............................................................................................................................. 8 3.1.5 结构特点 ............................................................................................................................ 8 3.2 单片机管脚说明 ......................................................................................................................... 9 3.3 模数转换模块设计 ................................................................................................................... 10 3.3.1 ADC性能参数 ................................................................................................................... 11 3.3.2 ADC静态特性 ................................................................................................................... 11 3.3.3 ADC动态特性 ................................................................................................................... 11 3.3.4 ADC性能测试 ................................................................................................................... 12

3.3.5 常用

ADC芯片概述 ............................................................................................................ 12

3.3.6 ADC0832模数转换原理及主要技术指标 ....................................................................... 12 3.3.7 ADC0832与单片机的接口电路 ..................................................................................... 13 3.4 ADC0832元件说明 .................................................................................................................... 13 3.5 数码管显示电路设计 ............................................................................................................... 15 3.6 电源设计 ................................................................................................................................... 16 3.7 整机电路原理图 ....................................................................................................................... 16 4 系统软件设计方案 ........................................................................................................................... 18 4.1系统子程序设计 ......................................................................................................................... 18 5 系统的安装与调试 .......................................................................................................................... 20 结 束 语 ............................................................................................................................................ 20 谢 辞 .................................................................................................................................................... 22 参考文献 .............................................................................................................................................. 24

西安航空职业技术学院 毕业设计论文

1 绪论

1.1 课题背景

随着我国现代化建设的发展,电子检测产品日新月异,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命。

数字电压表则利用单片机技术结合A/D转换芯片,把连续的模拟量转换成不连续、离散的数字形式并加以显示仪表。目前,有各种单片机转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出了强大的生命力。

根据对出口、消费、投资等带动经济发展的“三驾马车”分析得出,我国电子信息产业总体面临一个较为有利的发展环境:

一是全球电子信息产品市场增长的势头仍将延续,国外产业转移呈现深化趋势,对外出口将保持快速增长。

二是明年数字奥运建设对电子信息产业的拉动效应将明显显现,特别是数字电视和新一代移动通信的启动,将创造巨大的国内电子信息产品市场。随着和谐社会的构建,中西部和农村地区的市场前景日益看好。

三是今年电子信息产业投资势头迅猛,多个超过10亿元的元器件大项目陆续投产,将在明年推动产业新一轮的规模扩张。因此从总体上判断,明年电子信息产业将保持平稳发展,特别在下半年可能出现增长高峰,呈现出“低开高走”的态势。

中国数字电压表产业发展研究报告阐述了世界数字电压表产业的发展历程,分析了中国数字电压表产业发展现状与差距,开创性地提出了“新型数字电压表产业” 及替代品产业概念,在此基础上,从四个维度即“以人为本”、“科技创新”、“环境友好”和“面向未来”准确地界定了“新型数字电压表产业” 及替代产品的内涵。根据“新型数字电压表产业” 及替代品的评价体系和量化指标体系,从全新的角度对中国数字电压表产业发展进行了推演和精准预测,在此基础上,对中国的行政区划和四大都市圈的数字电压表产业发展进行了全面的研究。

1.2 发展方向

新型数字仪表的发展主要方向:

1)广泛采用新技术,不断开发新产品,向模块化发展 2)显示清晰直观,读数准确

传统的模拟式仪表必须借助于指针和刻度盘进行读数,在读数过程中不可避免的会引入人为的测量误差。数字电压表则采用先进的数显技术,使测量结果一目了然,只要仪表不发生跳读现象,测量结果是唯一的。

1

西安航空职业技术学院 毕业设计论文

3) 扩展能力强,测量速度快,抗干扰能力强

数字电压表,还可扩展成各种通用及专用数字仪表、数字多用表(DMM)和智能仪表,以满足不同的需要;数字电压表在每秒钟内对被测电压的测量次数,叫测量速率,单位是“次/S”。它主要取决于A/D转换器的转换速率,其倒数是测量周期;5 位以下的DVM大多采用双积分式A/D转换器,其串模抑制比、共模抑制比各别可达100dB、80~120dB。高档DVM还采用数字滤波、浮地保护等先进技术,进一步提高了抗干扰能力,共模抑制比可达180dB

4) 分辨率高,测量范围宽

数字电压表在最低电压量程上末位1个字所代表的电压值,称为仪表的分辨力,它反映仪表灵敏度的高低。分辨力随显示位数的增加而提高。分辨率是指所能显示的最小数字(零除外)与最大数字的百分比。多量程DVM一般可测量0~1000V直流电压,配上高压探头还可测上万伏的高压。

5) 输入阻抗高 ,集成度高,微功耗

数字电压表具有很高的输入阻抗,通常为10MΩ~10000MΩ,最高可达1TΩ。 并且新型数字电压表普遍采用CMOS大规模集成电路,整机功耗很低。

1.3 课题的目的和意义

1) 研究的目的:

随着我国现代化建设的发展,电子检测产品日新月异,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命。数字电压表则利用单片机技术结合A/D转换芯片,把连续的模拟量转换成不连续、离散的数字形式并加以显示仪表。目前,有各种单片机转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出了强大的生命力。

2) 研究的意义:

基于在对单片机研究的基础上,本文提出了一种以STC89C52为核心构成数字电压表的看法STC89C52是鸿金公司生产的低电压、高性能8位单片机,片内含2KB的可反复擦写的只读程序存储器128 bytes的随机存储数据存储器(RAM),器件采用高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用中央处理器和flash存储单元。因此,在此基础上进行了数字电压表的工作,给出数字电表的软件和硬件的设计。考虑到存在的各种干扰对系统的影响,从软件和硬件设计方面进行分析,采用相应的措施以增强系统的抗干扰能力。

1.4 本设计完成的工作

1)熟悉51单片机集成开发环境,运用C语言编写工程文件;

2)熟练应用所选用单片机的内部结构、资源,以及软硬件调试设备的基本方法;

2

西安航空职业技术学院 毕业设计论文

3)自行构建基于单片机的最小系统,完成相关硬件电路的设计实现; 4)实现0-5V电压测量。

3

西安航空职业技术学院 毕业设计论文

2 总体方案设计

它是以STC89C52单片机为核心,ADC0832采集电压,系统总体方框图

如2-1所示。

电源模块 ADC0832模块 按键电路

图2-1 系统总体方框图

STC89C52主控模块 显示电路 2.1 硬件设计

2.1.1 电源模块

由于本系统采用电池供电,我们考虑了如下方案:采用3节1.5 V干电池共4.5V做电源,经过7805的电压变换后为单片机,传感器供电。经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。

2.1.2 主控制器模块

采用STC89C52单片机作为整个系统的核心,用处理ADC0832采集的数据,以实现其既定的性能指标。充分分析我们的系统,其关键在于处理ADC0832采集的电压,而在这一点上,单片机就显现出来它的优势——控制简单、方便、快捷。这样一来,单片机就可以充分发挥其资源丰富、有较为强大的控制功能及可位寻址操作功能、价格低廉等优点。STC89C52单片机具有功能强大的位操作指令,I/O口均可按位寻址,程序空间多达8K,对于本设计也绰绰有余,更可贵的是STC89C52单片机价格非常低廉。

4

西安航空职业技术学院 毕业设计论文

3 硬件实现及单元电路设计

3.1 主控制模块

单片主控电路图如图3-1所示;

图3-1主控电路图

3.1.1 单片机的时钟电路与复位电路设计

本系统采用STC系统列单片机,相比其他系列单片机具有很多优点。一般STC单片机资源比其他单片机要多,而且执行速度快;STC系列单片机使用串口对单片机进行烧写,下载程序较为方便;STC51单片机内部集成了看门狗电路;且具有很强抗干扰能力。本系统采用内部方式的时钟电路和加电自复位的复位电路,如图3-2,图3-3所示:

5

西安航空职业技术学院 毕业设计论文

图3-2 时钟电路

图3-3 复位电路

由于单片机P0口内部不含上拉电阻,为高阻态,不能正常地输出高/低电平,因而该组I/O口在使用时必须外接上拉电阻。

3.1.2 单片机STC89C52及特点概述

STC89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机,如图2-1所示。STC89C52是一种带4K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,STC89C52是一种高效微控制器,STC89C52单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案 。 1)主要特性

与MCS-51兼容,8K字节可编程闪烁存储器,寿命:100000写/擦循环 ,数据保留时间:10年,全静态工作:0Hz-24Hz 三级程序存储器锁定,28*8位内部RAM,32可编程I/O线 两个16位定时器/计数器,5个中断源,可编程串行通道 低功耗的闲置和掉电模式,片内振荡器和时钟电路。 2)管脚说明

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储

6

西安航空职业技术学院 毕业设计论文

器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为STC89C52的一些特殊功能口,如下所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE

7

西安航空职业技术学院 毕业设计论文

只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

3.1.3 振荡器特性

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。

3.1.4 芯片擦除

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持

ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

此外,STC89C52设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止 。

3.1.5 结构特点

8位CPU,片内振荡器和时钟电路,32根I/O线,外部存贮器寻址范围ROM、RAM64K,2个16位的定时器/计数器5个中断源,两个中断优先级全双工串行口,布尔处理器。

STC89C52的结构图如图3-4所示

8

西安航空职业技术学院 毕业设计论文

图3-4 STC89C52单片机结构图

3.2 单片机管脚说明

VCC(40):供电电压,其工作电压为5V。 GND(20):接地。

P0端口(P0.0-P0.7):P0口为一个8位漏极开路双向I/O口,每个引脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口,用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利

9

西安航空职业技术学院 毕业设计论文

用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。

P3口同时为闪烁编程和编程校验接收一些控制信号。

复位RST(9):复位输入。在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个引脚保持高电平,51芯片便循环复位。复位后P3.0-P3.7口均置1,引脚表现为高电平,程序计数器和特殊功能寄存器SFR全部清零。当复位脚由高电平变为低电平时,芯片为

ALEPROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如果想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,则置位无效。

PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指令期

ROM的00H处开始运行程序。复位操作不会对内部RAM有所影响。

间,每个机器周期两次PSEN有效。但在访问外部数据存储器时,这两次有效的PSEN信号将不出现。 ____EAEA/VPP(31):当EA保持低电平时,则在此期间外部程序存储器__部锁定为RESET;当EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V的编程电源(VPP)。

XTAL1(19):来自反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2(18):来自反向振荡器的输出。

__(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,EA将内

3.3 模数转换模块设计

10

西安航空职业技术学院 毕业设计论文

3.3.1 ADC性能参数

目前的实时信号处理机要求ADC尽量靠近视频、中频甚至射频,以获取尽可能多的目标信息。因而,ADC的性能好坏直接影响整个系统指标的高低和性能好坏,从而使得ADC的性能测试变得十分重要,表征ADC性能的参数,由于尚无统一的标准,各主要器件生产厂家在其产品参数特性表中给出的也不完全一致。一般来说,可以分为静态特性和动态特性参数。

3.3.2 ADC静态特性

ADC的静态特性是指其与时间特性无关的特性,主要包括以下几类: (1) 分辨率;ADC的分辨率定位为二进制末位变化1所需的最小输入电压与参考电压的比值,即ADC能够分辨的最小的模拟量的变化。

(2) 量化误差;量化电平定义为满量程电压(或满度信号值)UFSR与2的N次幂的比值,其中N位被数字化的数字信号的二进制位数。量化电平一般用Q表示。

(3) 全输入范围和动态范围;全输入范围是指允许输入模拟信号的最大值与最小值之差;动态范围是指全输入范围与ADC最小可分辨的量值之比。 (4) 偏置误差和增益误差;ADC的偏置误差定义为使最低位被置成“1”状态时ADC的输入电压与理论上使最低位被置成“1”状态时的输入电压之差。当偏置误差高速为零之后,输出为全1时对应的实际输入电压与理想输入电压之差。

3.3.3 ADC动态特性

高速ADC的动态特性是指输入为交变简谐信号时的性能技术指标,它是与ADC的操作速度有关的特性。其主要技术指标如下:

(1) 转换时间、采集时间;转换时间是指从信号开始转换到可获得完整的信号输出所用的时间,它是高速ADC的一项重要指标。

采集时间是指采样保持电路在采样模式下能够保证其在随之到来的保持模式输出在采样保持转换时,相对该时刻存在的输入电平之间的误差将会限制在一定的误差范围内所需的时间。

(2) 频率响应;它是冲击响应的傅立叶变换,其最佳表达方式是幅频与相频曲线,从系统辨识的角度看这是在频域对ADC动态线性特性的非参数模型描述。

(3) 动态积分非线性误差和动态微分非线性误差;动态积分非线性误差(INL)定义为在动态情况下(一般输入信号为正弦信号),ADC实际转换特性曲线之间的最大偏差。每个数码的偏差都是由那个数码的中心值来度量的。

11

西安航空职业技术学院 毕业设计论文

动态微分非线性误差(DNL)定义为在动态情况下(一般输入信号为正弦信号),ADC实际转换特性的码宽(1LSB)与理想代码宽度之间的最大偏差,单位为LSB。为了保证ADC不失码,通常规定在25oC时最大DNL为 1/2LSB。

(4) 信噪比、信噪失真比和有效位数;信噪比(SNR)是信号电平的有效值与各种噪声(包括量化噪声、热噪声、白噪声等)有效值之比的分贝数。其中信号是指基波分量的有效值,噪声指奈奎斯特频率以下的全部非基波分量的有效值(除谐波分量和直流分量外)。

(5) 小信号带宽和全功率带宽;ADC的模拟带宽是指输入扫描频率基波在ADC输出端用FFT分析得到的基波频谱下降到3dB处的带宽(不考虑谐波失真和噪声影响)。根据输入信号幅值不同,模拟带宽又可以分为小信号带宽(SSBW,一般指1/10满量程)和全功率带宽(FPBW,指满量程)。

3.3.4 ADC性能测试

ADC测试方法主要有两种:模拟方法和数字方法。前者是将A/D采集的数字信号经D/A转换位模拟信号再用传统的测试方法对其进行测试,优点是易于理解,缺点是许多A/D采集卡本身不带D/A,即或有,D/A的性能也将影响A/D指标的测试;

3.3.5 常用ADC芯片概述

A/D转换器是用来通过一定的电路将模拟量转变为数字量。模拟量可以是电压、电流等电信号,也可以是压力、温度、湿度、位移、声音等非电信号。但在A/D转换前,输入到A/D转换器的输入信号必须经各种传感器把各种物理量转换成电压信号。

3.3.6 ADC0832模数转换原理及主要技术指标

ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换 芯片。由于它体积小,兼容性强,性价比高而深受单片机爱好者及企业欢迎, 其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器 的原理,有助于我们单片机技术水平的提高。 ADC0832 具有以下特点:

8位分辨率; 双通道A/D转换;

输入输出电平与TTL/CMOS相兼容; 5V电源供电时输入电压在0~5V之间;

12

西安航空职业技术学院 毕业设计论文

工作频率为250KHZ,转换时间为32μS; 一般功耗仅为15mW;

8P、14P—DIP(双列直插)、PICC 多种封装;

商用级芯片温宽为0°C to +70°C,工业级芯片温宽为?40°C to +85°C;

3.3.7 ADC0832与单片机的接口电路

ADC0832模数转换器与STC89C52单片机的接口电路如图3-5所示

图3-5ADC0832与STC89C52单片机接口电路

3.4 ADC0832元件说明

ADC0832 为 8 位分辨率 A/D 转换芯片,其最高分辨可达 256 级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟 电压输入在 0~5V 之间。芯片转换时间仅为 32μS,据有双数据输出可作为数据 校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使 多器件挂接和处理器控制变的更加方便。通过 DI 数据输入端,可以轻易的实现 通道功能的选择。

芯片接口说明:

GND 芯片参考 0 电位(地)。 DI 数据信号输入,选择通道控制。 DO 数据信号输出,转换数据输出。 CLK 芯片时钟输入。

CS 片选使能,低电平芯片使能。

CH0 模拟输入通道 0,或作为 IN+/-使用。

13

西安航空职业技术学院 毕业设计论文

CH1 模拟输入通道 1,或作为 IN+/-使用。 2)ADC0832 与单片机的接口电路

ADC0832与单片机的接口电路如图3-6所示

图3-6接口电路图

3)单片机对 ADC0832 的控制原理

正常情况下 ADC0832 与单片机的接口应为 4 条数据线,分别是 CS、CLK、 DO、DI。但由于 DO 端与 DI 端在通信时并未同时有效并与单片机的接口是双 向的,所以电路设计时可以将 DO 和 DI 并联在一根数据线上使用。(见图 3.7)

当ADC0832未工作时其CS输入端应为高电平此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端 CLK 输入时钟脉冲,DO/DI 端则使用 DI 端输入通道功能选择的 数据信号。在第1个时钟脉冲的下沉之前 DI 端必须是高电平,表示启始信号。在第 2、3个脉冲下沉之前 DI 端应输入 2 位数据用于选择通道功能,其功能项见表3-1。

3-1 ADC0832 单端 MUX 模式

Mux 地址 Sgl/dif Odd/sign 14

频道 0 1 西安航空职业技术学院 毕业设计论文

1 1 Mux地址 Sgl/dif 0 0

0 1 + 频道 0 + - + 表3-2 ADC0832 多端 MUX 模式 Odd/sign 0 1 1 - + 如表3-1,表3-2所示,当此 2 位数据为“1”、“0”时,只对 CH0 进行单通道转换。当 2 位数据为“1”、“1”时,只对CH1进行单通道转换。当2位数据为“0”、“0”时,将CH0作为正输入端 IN+,CH1 作为负输入端 IN-进行输入。 当 2 位 数据为“0”、“1”时,将 CH0 作为负输入端 IN-,CH1 作为正输入端 IN+进行 输入。到第3个脉冲的下沉之后 DI 端的输入电平就失去输入作用。

此后 DO/DI 端则开始利用数据输出 DO 进行转换数据的读取。从第4个脉冲下沉开始由 DO 端输出转换数据最高位 DATA7,随后每一个脉冲下沉 DO端输出下一位数据。直到第 11个脉冲时发出最低位数据 DATA0,一个字节的数据输出完成。也正是 从此位开始输出下一个相反字节的数据,即从第11个字节的下沉输出 DATD0。随后输出 8 位数据,到第19个脉冲时数据输出完成也标志着一次 A/D 转换的结束。最后将 CS 置高电平禁用芯片,直接将转换后的数据进行处理就可以了。更详细的时序说明请见图3-6。

作为单通道模拟信号输入时 ADC0832 的输入电压是 0~5V 且 8 位分辨率时的电压精度为 19.53mV。如果作为由 IN+与 IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行 IN+与 IN-的输入时如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。

3.5 数码管显示电路设计

本设计采用数码管进行显示,具体连接方式如图3-7所示。

15

西安航空职业技术学院 毕业设计论文

图3-7 数码管显示电路

3.6 电源设计

电源设计电路如图3-6所示

图3-6电源设计电路图

3.7 整机电路原理图

整机电路原理图如图3-7所示

16

西安航空职业技术学院 毕业设计论文

图3-7整机电路原理图

17

西安航空职业技术学院 毕业设计论文

4 系统软件设计方案

系统软件的总体框架,主程序采用死循环结构,在其中调用了三个子程序,为初始化程序,AD转换子程序,动态显示子程序,首先,单片机片选A/D转换器,然后发出信号启动A/D转换。若有,即启动信号采集,对A/D转换器的数据输出口送来的数值进行存储,数据处理完之后,将电压数值送显示器显示出来。程序总体流程图如图4-1所示

图4-1总体流程图

4.1系统子程序设计

初始化程序

所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等。 A/D转换子程序

18

西安航空职业技术学院 毕业设计论文

A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图4-2所示。

图4-2 转换流程图

19

西安航空职业技术学院 毕业设计论文

5 系统的安装与调试

(1) 检查元件的好坏

按电路图买好元件后首先检查买回元件的好坏,按各元件的检测方法分别进行检测,一定要仔细认真。而且要认真核对原理图是否一致,在检查好后才可上件、焊件,防止出现错误焊件后不便改正。

(2) 放置、焊接各元件

按原理图的位置放置各元件,在放置过程中要先放置、焊接较低的元件,后焊较高的和要求较高的元件。特别是容易损坏的元件要后焊,在焊集成芯片时连续焊接时间不要超过10s,注意芯片的安装方向。

结 束 语

20

西安航空职业技术学院 毕业设计论文

通过这次比较完整的设计,使我们摆脱了单纯的理论知识学习状态,达到了理论与实践的结合锻炼了我的综合运用所学的专业基础知识,解决实际设计问题的能力,同时,也提高了我们查阅文献资料、设计手册、设计规范以及电脑制图等专业能力水平,而且通过整体的掌握对布局的取舍以及对细节的斟酌处理,都使我们能力得到了锻炼、经验得到了丰富,抗压能力以及耐力在不同程度上得到了提高,这是我们都想看到的也是我们进行毕业设计的目的所在。虽然这次毕业设计内容繁多、过程繁琐但我们收获很多,在这次设计过程中我们不仅对A/D转换芯片ADC0832有了进一步熟悉,随着设计的不断深入对它的工作原理、启动设置、转换结束判断及输出等都基本掌握,在和老师的沟通交流的过程中我们对设计有了新的认识,并且对实物的连接与布局有了新的看法,对我们的专业有了进一步的认识,希望在以后的实验中吸取更多地经验学会更多的实践知识。

21

西安航空职业技术学院 毕业设计论文

谢 辞

在毕业设计完成时,我不由的想起大学最后这一学期的学习生活。在这里,作者首先要感谢的是导师党智乾老师这个月来给予的关心与指导,是他们一丝不苟的科研态度、高度的事业心和责任感时刻感染着作者;老师不仅教授给作者知识,更教给作者做人的道理、做学问的态度,这些都将使作者终生受益,恩师的教导将永不忘记,再一次忠心的感谢老师苦心培育之恩。同时也忠心感谢在做毕业设计的过程中给予作者帮助和关心的老师、同学和朋友们。这里向他们表示深深的谢意,感谢你们这些年来为作者所付出的艰辛和无私的奉献。在此,忠心的向在百忙之中审阅作者论文的各位老师表示最诚挚的感谢。

22

西安航空职业技术学院 毕业设计论文

参考文献

【1】张友德:单片微型机原理、应用和实验、电子工业出版社。 【2】吴经国:单片机应用技术,中国电力出版社。

【3】李群芳:单片机微型计算机与接口技术,电工业出版社。 【4】王吉鹏等:微机原理与接口技术,高等教育出版社。 【5】张晔等:单片机应用技术,高等教育出版社。

【6】李建忠:单片机原理及应用.西安电子科技大学出版社。

【7】谢自美.电子线路设计·实验·测试(第二版).武汉:华中理工出版社。

23

西安航空职业技术学院 毕业设计论文

附录 部分源程序

#include

#define uchar unsigned char #define uint unsigned int #include

//数码管段选定义 0 1 2 3 4 5 6 7 8 9

uchar

smg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,

0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff}; //断码

//数码管位选定义

uchar code smg_we[]={0xef,0xdf,0xbf,0x7f};

uchar dis_smg[8] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8}; uchar smg_i = 3; //显示数码管的个位数

sbit SCL=P2^0; sbit DO=P2^1; sbit CS=P2^2;

sbit key1 = P2^3; sbit key2 = P2^4;

uchar nw_can ; // 内外电压的选择

/***********************1ms延时函数*****************************/ void delay_1ms(uint q) {

uint i,j; for(i=0;i

24

code

//SCL定义为P1口的第3位脚,连接ADC0832SCL脚

//DO定义为P1口的第4位脚,连接ADC0832DO脚 //CS定义为P1口的第4位脚,连接ADC0832CS脚

for(j=0;j<120;j++);

西安航空职业技术学院 毕业设计论文

/***********************小延时函数*****************************/ void delay_uint(uint q) {

while(q--); }

// 1 1 0 通道

// 1 1 1 通道

{

unsigned char i=0,value=0,value1=0;

SCL=0; DO=1; CS=0; SCL=1; SCL=0; DO=SGL;

SCL=1; //第二个上升沿 SCL=0; DO=ODD;

SCL=1; //第三个上升沿 SCL=0; //第三个下降沿 DO=1;

for(i=0;i<8;i++) { }

for(i=0;i<8;i++) {

//接收校验数据

value1>>=1; SCL=1;

SCL=0; //开始从第四个下降沿接收数据 value<<=1; if(DO)

value++;

//开始 //第一个上升沿

unsigned char ad0832read(bit SGL,bit ODD)

25

西安航空职业技术学院 毕业设计论文

}

}

if(DO)

value1+=0x80; SCL=1; SCL=0;

CS=1; SCL=1;

if(value==value1)

return value;

//与校验数据比较,正确就返回数

据,否则返回0

return 0;

/****************************************************/

void display() {

uchar i;

for(i=0;i

P1 = 0xff;

数码显示函数

//消隐

//段选

P3 = smg_we[i]; P1 = dis_smg[i]; delay_1ms(1);

//位选

}

/******************按键*********************/ void key() {

if(key1 == 0) {

if(key1 == 0) {

26

西安航空职业技术学院 毕业设计论文

}

}

nw_can = 0; //板子上可调电阻电压

if(key2 == 0) { } }

void main() {

uchar i; uint temp; while(1) {

dis_smg[1]=smg_du[temp/10]; //十位

temp = temp * 100 / 255 * 4.5; dis_smg[2]=smg_du[temp/100] & 0x7f;

//得到百位

else

temp = ad0832read(1,1); //循环255个周期读取一次

key(); //按键程序 display(); {

if(nw_can == 0)

temp = ad0832read(1,0); //循环255个周期读取一次

//数码管显示函数

if(i % 30 == 0) //循环30次 if(key2 == 0) { }

nw_can = 1; //板子上可调电阻电压

0832,因CPU运行比较快,没必要每次循环都去读取,选择通过CH0输入

0832,因CPU运行比较快,没必要每次循环都去读取,选择通过CH0输入

27

西安航空职业技术学院 毕业设计论文

} }

}

dis_smg[0]=smg_du[temp]; //个位 ADC0832为8位

ADC,数值为0~255,我们将其分开放入l_tmpdate数组中显示

i++;

28

本文来源:https://www.bwwdw.com/article/hk46.html

Top