基于单片机的电压表设计Word文档下载推荐.docx
《基于单片机的电压表设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《基于单片机的电压表设计Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。
2.1STC12LE5A60S2单片机及最小系统4
2.1.1STC12LE5A60S2单片机特点4
2.1.2STC12LE5A60S2单片机最小系统6
2.2电源模块6
2.3AD7705转换芯片及硬件电路7
2.3.1AD7705结构及工作原理7
2.3.2AD7705各引脚及功能7
2.3.3AD7705的寄存器8
2.3.4AD7705的基准源9
2.3.5AD7705的电压采集电路10
2.4DS18B20的介绍及温度采集模块电路10
2.4.1DS18B20的性能介绍10
2.4.2温度采集模块电路11
2.51.8寸TFT液晶显示模块12
2.5.1TFT液晶模块的结构及性能介绍12
2.5.2TFT液晶模块和几种常用液晶模块的对比12
2.5.3TFT液晶模块引脚功能与结构13
2.6电源电压监控13
3系统软件设计15
3.1AD7705电压采集子程序15
3.2计算温度子程序16
3.3按键子程序17
结束语18
参考文献19
附录一系统总体电路图和作品实物图20
1设计方案
在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流或交流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、灵敏度高和分辨率高、测量速度快等特点而倍受青睐。
本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理,并且分析了程序如何驱动单片机进而使系统运行起来的原理及方法。
本设计主要分为两部分:
硬件电路及软件程序。
而硬件电路又大体可分为A/D转换电路、液晶显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;
程序的设计使用C语言编程,详细的设计算法将会在程序设计部分详细介绍。
1.1主控芯片选择
方案一:
传统的AT89C51有一个8位的CPU,128个字节的数据存储器和4KB的程序存储器,5个中断源,两个定时器32个通用IO,一个全双工串行I/O口UART(通用异步接收、发送器)。
采用单一的+5V电源供电,一个机器周期包括12个时钟周期。
方案二:
采用STC公司新推出STC12LE5A60S2系列1T单片机,该系列单片机一个时钟周期就是一个机器周期,相比传统8051单片机运行速度是原来的8-12倍,供电电压为3.6V-2.1V,内部有1280字节数据存储器和60KB程序存储器,1KB的EEPROM,36个通用IO,4个定时器,2个全双工串口,8通道10位ADC,2路PWM波输出。
因为该设计中采用4.2V的手机电池供电采用1.8寸TFT彩色液晶屏作为显示模块,在液晶显示部分的程序较为复杂,且函数众多所以所需的程序存储空间大,要完成采集电压到显示在液晶屏上对单片机的运行速度要求很高,综合各方面考虑选择STC公司的STC12LE5A60S2单片机为主控芯片。
1.2电源部分
由于该系统采用的单片机为低压单片机供电范围为3.6V-2.1V,彩屏的供电电压为3.3V,AD芯片的供电电压为3.3V,且功率都不大,采用4.2V的手机锂离子电池为最佳选择。
1.3AD转换芯片选择
采用单片机内部AD。
STC12LE5A60S2单片机内部8通道10位ADC,作为一般设计无需外围电路,8个通道可分时测量,对测量较低的电压精确度足够。
采用AD7705芯片作为AD转换芯片。
该器件可以接受直接来自传感器的低电平的输入信号,然后产生串行的数字输出。
利用Σ-∆转换技术实现了16位无丢失代码性能。
选定的输入信号被送到一个基于模拟调制器的增益可编程专用前端。
片内数字滤波器处理调制器的输出信号。
通过片内控制寄存器可调节滤波器的截止点和输出更新速率,从而对数字滤波器的第一个陷波进行编程。
AD7705只需3.3V~5.25V单电源。
当电源电压为5V、基准电压为2.5V时,可将输入信号范围从0~+20mV到0~+2.5V的信号进行处理。
还可处理±
20mV~±
2.5V的双极性输入信号,对于AD7705是以AIN(-)输入端为参考点AD7705是用于智能系统、微控制器系统和基于DSP系统的理想产品。
其串行接口可配置为三线接口。
增益值、信号极性以及更新速率的选择可用串行输入口由软件来配置。
该器件还包括自校准和系统校准选项,以消除器件本身或系统的增益和偏移误差。
CMOS结构确保器件具有极低功耗,掉电模式减少等待时的功耗至20μW。
由于该系统中只需一个测量端,所需测量范围广,有时对前端电压衰减有时又需要对信号进行放大,单片机内部无法完成信号的放大,而AD7705内部自带8种增益方式,可通过程序控制器增益倍数。
而且AD7705比单片机内部精度更高,综合考虑后选择AD7705为AD转换芯片。
1.4温度测量
采用一线制数字温度传感器DS18B20来作为本课题的温度传感器。
传感器输出信号进4.7K的上拉电阻直接接到单片机的引脚上。
DS18B20温度传感器是美国达拉斯(DALLAS)半导体公司推出的应用单总线技术的数字温度传感器。
该器件将半导体温敏器件、A/D转换器、存储器等做在一个很小的集成电路芯片上。
应用广泛,所以将测温作为本系统的一个附加功能。
1.5显示模块
本系统显示模块采用1.8寸TFT彩色液晶屏,彩色液晶屏相比起传统的数码管、1602液晶屏和12864液晶屏有很多优点。
数码管只能显示数字和简单的字符,1602液晶屏能显示所有的数字和字符,而不能显示汉字。
12864液晶屏满屏能显示32个汉字,或是64个字符,且显示位置不能根据用户要求而随意改变,只能显示简单的单色图片。
而现在较为流行的TFT彩色液晶屏不仅能显示数字、字符、汉字、还可以显示彩色图片。
本系统使用的1.8寸TFT彩色液晶屏共有128*160个像素点,能够显示的信息量很大,但相比12864和1602液晶屏操控起来也相对复杂很多。
1.6总体方案
根据各模块方案的选择,该系统CPU选择为STC12LE5A60S2单片机,选择4.2V手机锂离子电池为系统供电电源,AD转换芯片为AD7705芯片,温度测量采用DS18B20温度传感器,显示模块为1.8寸TFT彩色液晶屏。
2硬件电路设计
硬件电路的设计主要包括单片机系统、AD转换模块、LCD显示电路、温度采集电路、按键控制和报警电路三部分。
单片机采用STC12LE5A60S2单片机,采用11.0592MHz高精度的晶振,以获得较稳定时钟频率,减小测量误差;
温度采集利用温度传感器DS18B20,利用单总线占用单片机的IO口少,便于控制与调试;
显示电路采用1.8寸TFT彩色液晶屏,采用SPI串行传输,占用的单片机IO端口少;
按键采用独立式按键,可以减少程序的编写,并且可以减少干扰,更好地控制;
报警电路与传统的一样,可以更好地实现人机互动。
总体结构图如图2.1所示。
图2.1总体结构图
2.1STC12LE5A60S2单片机及最小系统
2.1.1STC12LE5A60S2单片机特点
STC12LE5A60S2系列单片机是宏晶科技科技生产的单时钟/机器周期(1T)的单片机,是高速/低功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。
内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S,即25万次/秒),针对电机控制,强干扰场合。
1.增强型8051CPU,1T单时钟/机器周期,指令代码完全兼容传统8051
2.工作电压:
STC12LE5A60S2系列单片机:
3.6V-2.2V(3V单片机)
3.工作频率范围:
0-35MHz,相当于普通8051的0-420MHz
4.用户应用程序空间60KB字节
5.片上集成1280字节RAM
6.通用I/O口(36个),复位后为:
准双向/若上拉(普通8051传统I/O口)可设置成四种模式:
准双向/若上拉,强推挽/强上拉,仅为输入/高阻,开漏每个I/O口驱动能力均可达到20mA,但整个芯片最大电流不要超过120mA
7.ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片
8.内部看门狗
9.内部集成MAX810专用复位电路(外部晶振12M以下时,复位脚可直接接1K电阻到地)
10.时钟源:
外部高精度晶体/时钟,内部R/C振荡器(温漂为±
5%到±
10%以内)用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟常温下内部R/C振荡器频率为:
8MHz-12MHz精度要求不高时可选择使用内部时钟
11.共4个16位定时器,两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器做串口通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器
12.3个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟,独立波特率发生器可在P1.0口输出时钟
13.外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,powerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)
14.PWM(2路)/PCA(可编程计数器阵列2路)也可用来当2路D/A使用,也可用来在实现2个定时器,也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)
15.A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)
16.通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口
17.STC12LE5A60S2系列有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)
18.工作温度范围:
-40℃-85℃(工业级)/0℃-75℃(商业级)
19.封装:
LQFP-48,LQFP-44,PDIP-40,PICC-44,QFN-40.I/O口不够时,可用2到3根普通I/O口外接74HC164/165/595(均可级联)来扩展I/O口,还可以用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。
2.1.2STC12LE5A60S2单片机最小系统
51单片机的最小系统包括:
时钟振荡电路、复位电路、电源电路。
时钟振荡电路必须在X1和X2之间跨接晶体振荡器和微调电容,晶体振荡器常用11.0592M,电容用22pF;
复位电路采用按键复位,采用40引脚双列直插封装(DIP)形式。
单片机最小系统电路图如图2.2所示。
图2.2单片机最小系统
2.2电源模块
电源模块选用手机锂离子电池作为系统电源,手机锂离子电池体积小、容量大、供电电压在3.7V-4.2V之间,电压相对较稳定,还可以充电多次利用。
本系统设计的电压表要求使用便捷,采用手机电池为电源非常合适。
由于单片机、液晶屏、AD转换芯片的工作电压都为3.3V而手机电池充满电时电压为4.2V,放点过后电压为3.7V直接供给芯片电压稍微过高。
1N4007二极管的导通压降为0.5V-0.6V,设计时在电池输出加上一个二极管则输出电压为3.2V-3.6V,基本满足各芯片稳定工作要求。
2.3AD7705转换芯片及硬件电路
2.3.1AD7705结构及工作原理
AD7705是AD公司新推出的16位Σ-∆A/D转换器。
器件包括由缓冲器和增益可编程放大器(PGA)组成的前段模拟调节电路,Σ-∆调制器,可编程数字滤波器等部件。
能够直接将传感器测量到的多路微小信号进行A/D转换。
这种器件还具有很高分辨率、宽动态范围、自校准、优良的抗噪声性能以及低电压低功耗等特点,非常适合仪表测量、工业控制等领域的应用。
它采用三线串行接口,有两个全差分输入通道,能达到0.003%非线性的16位无误码数据输出,其增益和数据输出更新率均可编程设定,还可选择输入模拟缓冲器,以及自校准和系统校准方式。
工作电压3V或5V。
3V电压时,最大功耗为1mW,等待模式下电源电流仅为8uA。
2.3.2AD7705各引脚及功能
AD7705引脚图如图2.3所示。
图2.3AD7705引脚图
AD7705各引脚功能如表2.1所示。
表2.1AD7705各引脚功能
编号
名称
功能
1
SCLK
串行时钟,施密特逻辑输入。
将一个外部的串行时钟加于这一输入端口,以访问AD7705的串行数据。
该串行时钟可以是连续时钟以连续的脉冲串传送所有数据。
反之,它也可以是非连续时钟,将信息以小批型数据发送给AD7705
2
MCLKIN
为转换器提供主时钟信号。
能以晶体/谐振器或外部时钟的形式提供。
晶体/谐振器可以接在MCLKIN和MCLKOUT二引脚之间。
此外,MCLKIN也可用CMOS兼容的时钟驱动,而MCLKOUT不连接。
时钟频率的范围为500kHz~5MHz
3
3
MCLKOUT
当主时钟为晶体/谐振器时,晶体/谐振器被接在MCLKIN和MCLKOUT之间。
如果在MCLKIN引脚处接上一个外部时钟,MCLKOUT将提供一个反相时钟信号。
这个时钟可以用来为外部电路提供时钟源,且可以驱动一个CMOS负载。
如果用户不需要,MCLKOUT可以通过时钟寄存器中的CLKDIS位关掉。
这样,器件不会在MCLKOUT脚上驱动电容负载而消耗不必要的功率
4
CS
片选,低电平有效的逻辑输入,选择AD7705。
将该引脚接为低电平,AD7705能以三线接口模式运行(以SCLK、DIN和DOUT与器件接口)。
在串行总线上带有多个器件的系统中,可由CS对这些器件作出选择,或在与AD7705通信时,CS可用作帧同步信号
5
RESET
复位输入。
低电平有效的输入,将器件的控制逻辑、接口逻辑、校准系数、数字滤波器和模拟调制器复位至上电状态
6
AIN2(+)
差分模拟输入通道2的正输入端
7
AIN1(+)
差分模拟输入通道1的正输入端
8
AIN1(-)
差分模拟输入通道1的负输入端
9
REFIN(+)
基准输入端。
AD7705差分基准输入的正输入端。
基准输入是差分的,并规定REFIN(+)必须大于REFIN(-)。
REFIN(+)可以取VDD和GND之间的任何值
10
REFIN(-)
AD7705差分基准输入的负输入端。
REFIN(-)可以取VDD和GND之间的任何值,且满足REFIN(+)大于REFIN(-)
11
AIN2(-)
差分模拟输入通道2的负输入端
12
DRDY
逻辑输出。
这个输出端上的逻辑低电平表示可从AD7705的数据寄存器获取新的输出字。
完成对一个完全的输出字的读操作后,DRDY引脚立即回到高电平。
如果在两次输出更新之间,不发生数据读出,DRDY将在下一次输出更新前500×
tCLKIN时间返回高电平。
当DRDY处于高电平时,不能进行读操作,以免数据寄存器中的数据正在被更新时进行读操作。
当数据被更新后,DRDY又将返回低电平。
DRDY也用来指示何时AD7705/7706已经完成片内的校准序列
13
DOUT
串行数据输出端。
从片内的输出移位寄存器读出的串行数据由此端输出。
根据通讯寄存器中的寄存器选择位,移位寄存器可容纳来自通讯寄存器、时钟寄存器或数据寄存器的信息
14
DIN
串行数据输入端。
向片内的输入移位寄存器写入的串行数据由此输入。
根据通讯寄存器中的寄存器选择位,输入移位寄存器中的数据被传送到设置寄存器、时钟寄存器或通讯寄存器
15
VDD
电源电压,+2.7V~+5.25V
16
GND
内部电路的地电位基准点
2.3.3AD7705的寄存器
AD7705片内包括8个寄存器,这些寄存器通过器件的串行口访问。
第一个是通信寄存器,它管理通道选择,决定下一个操作是读操作还是写操作,以及下一次读或写哪一个寄存器。
所有与器件的通信必须从写入通信寄存器开始。
上电或复位后,器件等待在通信寄存器上进行一次写操作。
这一写到通信寄存器的数据决定下一次操作是读还是写,同时决定这次读操作或写操作在哪个寄存器上发生。
所以,写任何其它寄存器首先要写通信寄存器,然后才能写选定的寄存器。
所有的寄存器(包括通信寄存器本身和输出数据寄存器)进行读操作之前,必须先写通信寄存器,然后才能读选定的寄存器。
此外,通信寄存器还控制等待模式和通道选择,此外DRDY状态也可以从通信寄存器上读出。
2.3.4AD7705的基准源
大家都知道在电池使用过程中随着电池电量的降低,电池的输出电压也随之降低这对整个系统有一定影响,特别是对电压进行测量时影响就更大了。
要想精确地测量某个电压,在整个系统电压变化时必须有一个电压保持不变,我们将这个不变的电压叫做基准电压。
TL431是一个有良好的热稳定性能的三端可调分流基准电压源。
它的输出电压用两个电阻就可以任意地设置到从VREF(2.5V)到36V范围内的任何值。
该器件的典型动态阻抗为0.2Ω,在很多应用中可以用它代替齐纳二极管,例如,数字电压表,运放电路、可调压电源,开关电源等等。
特点:
•可编程输出电压为36V
•电压参考误差:
±
0.4%,典型值25℃(TL431B)
•低动态输出阻抗,典型0.22Ω
•负载电流能力1.0mAto100mA
•等效全范围温度系数50ppm/℃典型
•温度补偿操作全额定工作温度范围
•低输出噪声电压
当输入电压在3V到30V之间变化时输出基准始终是2.5V。
如图2.4为proteus仿真图。
图2.4当输入电压从3V-30V变化时TL431的输出电压
由此可见选用TL431作为该系统的基准源是最为理想的器件。
2.3.5AD7705的电压采集电路
AD7705使用SPI串行总线与CPU进行通信,只需四条线与CPU连接,分别是SCLK、DIN、DOUT、DRDY。
系统选用2MHz外接晶振为转换器提供主时钟信号,因为系统设计时能测得最高电压为直流400V所以要对输入的高压进行衰减,选用397.5K电阻和2.5K电阻进行分压,当测量低电压时可以用AD7705内部程控增益对电压进行放大已获得较高的精确度。
电源选用10uF和0.01uF电容为电源滤波,选用TL431为基准源。
AD7705模块的整体电路图如图2.5所示。
图2.5AD7705电压采集电路
2.4DS18B20的介绍及温度采集模块电路
2.4.1DS18B20的性能介绍
DS18B20温度传感器是美国达拉斯(DALLAS