基于单片机的直流电压检测系统设计_课程设计说明书.docx
-
资源ID:26559707
资源大小:18.26KB
全文页数:13页
- 资源格式: DOCX
下载积分:30金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于单片机的直流电压检测系统设计_课程设计说明书.docx
基于单片机的直流电压检测系统设计_课程设计说明书 山东建筑大学 课程设计说明书 题目:基于单片机的直流电压检测系统设计课程:单片机原理及应用B课程设计 院(部):信息与电气工程学院 专业:通信工程 班级:通信111 姓名:张安珍 学号:2022081342 指导教师:张君捧 完成日期:2022年1月 目录 摘要. I I 正文. (1) 1 设计目的和要求 (1) 3 设计内容和步骤 (2) 3.1单片机电压测量系统的原理 (2) 3.2 单片机电压测量系统的总体设计 (3) 3.2.1 硬件选择 (4) 3.2.2 软件选择 (4) 3.3 硬件电路的设计 (4) 3.3.1 输入电路模块设计 (4) 3.3.2 LM7805稳压电源电路介绍 (5) 3.3.3 显示模块电路设计 (5) 3.3.4 A/D转换设计 (7) 3.3.5 单片机模块的简介 (9) 3.4系统软件的设计 (12) 3.4.1主程序的设计 (12) 3.4.2 各子程序的设计 (14) 总结与致谢 (16) 参考文献 (17) 附录一系统整体电路图 (18) 附录二 A/D转换电路的程序 (19) 附录三 1602LCD显示模块的程序 (21) 摘要 随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段。对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。本设计在查阅了大量前人设计的数字电压表的基础上,利用单片机技术结合A/D转换芯片ADC0832构建了一个直流数字电压表。本文首先简要介绍了单片机系统的优势,然后详细介绍了直流数字电压表的设计流程,以及硬件系统和软件系统的设计。 本文介绍了基于89S51单片机的电压测量系统设计,介绍1602LCD液晶的功能和ADC0832的转换原理。该电路设计简单,方便。该设计可以测量05V的电压值,并在1602LCD液晶上显示出来。 本系统主要包括三大模块:主程序模块、显示模块、A/D转换模块,绘制点哭原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路,在软件编程上,采用了c语言进行编程,开发了显示模块程序,A/D转换程序。 关键词:89S51单片机;1602LCD液晶;ADC0832 正文 1 设计目的和要求 设计目的: 电压是属于电子测量中的一个重要组成部分。了解,测出各种电压的值,有助于让我们更加安全、方便的使用电压。因为研究电压的测量值具有重要价值。 传统的指针式电压表功能单一、精度低,已经满足不了现在时代的需求,而采用单片机的数字电压表,精度高、抗干扰能力强,可扩张性强、集成方便,还可与PC实行实时通信,目前,由各种单片机和A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域。 基于单片机的电压检测系统设计,控制系统采用89S51单片机,A/D转换器采用ADC0832为主要硬件,实现数字电压表的硬件电路与软件设计。数字电压表可以测量05V的输入电压值,并在1602LCD液晶模块上显示。 要求: 1根据已知参数对输入信号特征进行分析、需求分析,选择确定单片机型号、各种外围芯片型号,完成系统硬件设计。 2基本教学要求:每人一台计算机,计算机安装Keil、Protel等软件。 3. (利用单片机设计并制作简易的直流数字电压表,能够测出05V的直流电压,电路组成框图如图所示。 (1)测量精度0.02V。 (2)利用数码管或者液晶显示器显示电压值。 (3)测量范围05V。 3 设计内容和步骤 3.1单片机电压测量系统的原理 运算放大器是一种直流耦合差模(差动模式)输入、通常为单端输出的高增益(gain)电压放大器,因为刚开始主要用于加法,乘法等运算电路中,因而得名。一个理想的运算放大器必须具备下列特性:无限大的输入阻抗、等于零的输出阻抗、无限大的开回路增益、无限大的共模排斥比的部分、无限大的频宽。最基本的运算放大器如图1-1。一个运算放大器模组一般包括一个正输入端(OP_P)、一个负输入端(OP_N)和一个输出端(OP_O)。 数模转换器数字量是用代码按数位组合起来表示的,对于有权码,每位代码都有一定的位权。为了将数字量转换成模拟量,必须将每1位的代码按其位权的大小转换成相应的模拟量,然后将这些模拟量相加,即可得到与数字量成正比的总模拟量,从而实现了数字模拟转换。这就是组成D/A转换器的基本指导思想。 D/A转换器由数码寄存器、模拟电子开关电路、解码网络、求和电路及基准电压几部分组成。数字量以串行或并行方式输入、存储于数码寄存器中,数字寄存器输出的各位数码,分别控制对应位的模拟电子开关,使数码为1的位在位权网络上产生与其权值成正比的电流值,再由求和电路将各种权值相加,即得到数字量对应的模拟量。 单片机硬件特性: 1、主流单片机包括CPU、4KB容量的ROM、128 B容量的RAM、 2个16位定时/计数器、4个8位并行口、全双工串口行口、ADC/DAC、SPI、I2C、ISP、IAP。 2、系统结构简单,使用方便,实现模块化; 3、单片机可靠性高,可工作到106 107小时无故障; 4、处理功能强,速度快。 5、低电压,低功耗,便于生产便携式产品 6、控制功能强 7、环境适应能力强。 3.2 单片机电压测量系统的总体设计 本设计从各个角度分析了由单片机组成的数字电压表的设计过程及各部分电路的组成及其原理。框图如下: 本设计主要分为两部分:硬件电路及软件程序。而硬件电路又大体可分为单片机小系统电路、A/D转换电路、液晶显示电路,各部分电路的设计及原理将会在硬件电路设计部分详细介绍;程序的设计使用C语言编程。 电压是检测中最基本的测量值,主要过程是模拟信号经过输入电路调理,在经过放大电路,变换成合适范围的信号幅度,接着该信号,经过A/D转换电路转化成数字信号,数字信号既可以直接经过单片机的处理、保存,再由液晶显示器显示出来。 总体设计的内容:被测电压经过运算放大电路,可以被AD接收的电压范围,然后该信号经过ADC0832芯片A/D转换电路转化成数字信号,再经过89S51单片机的处理、保存,由1602LCD液晶模块显示出来。 该电压表可达到如下程度: (1) 电压表量程范围0V5V; (2) 能用液晶显示电压值; (3) 测量精度可达到0.02mV。 3.2.1 硬件选择 选择89S51作为单片机芯片,选用1602LCD液晶屏来实现电压显示,由于ADC0832的基准电压由它内部本身提供,所以为了方便,我就利用ADC0832作为数模转换芯片,利用P0至P4的各个串口来进行不同设备间的连接,计算机进行汇编,H51/L仿真器,单片机多功能实验箱。 3.2.2 软件选择 本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。在单片机的应用系统程序设计时,常用的是汇编语言和C语言。汇编语言的特点是占用内存单元少,执行效率高。执行速度快。但它依赖于计算机硬件,程序可读性和可移植性比较差。而C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。 由于现在单片机的发展已经达到了很高的水平,内部的各种资源相当的丰富,CPU的处理速度非常的快。用C语言来控制单片机无疑是一个理想的选择。所以在本设计中采用C语言编写软件程序。 3.3 硬件电路的设计 3.3.1 输入电路模块设计 电压测量原理如图所示,电压输入到LM358的正相端。最高输入电压可到5V ,使输入电压处于AD量程范围。LM358 构成一个电压跟随器,起到隔离前后通道的作用,其较低的输出电阻还可以提高带负载能力,输出端接入ADC。 由于该设计精度要达到0.01mV左右,所以我们加入了LM358的放大器,来放大较小的被测电压,输入到AD转换器中,再经过单片机处理从液晶上显示出来。 如图所示,是由LM358放大器组成的,LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运算放大器的场合。 电容C5是阻容滤波,为了使得信号更稳定。 3.3.2 LM7805稳压电源电路介绍 用lm78/lm79系列三端稳压IC来组成稳压电源所需的外围元件很少,电路内部有过流、过热和调整管的保护电路,使用方便、可靠,而且价格低廉。该系列集成稳压IC型号中的lm78或lm79后面的数字代表此三端集成稳压电路的输出电压。因为三端固定集成稳压电路的使用方便,电子制作中经常采用。 这是一个输出正5V直流电压的稳压电源电路。IC采集成稳压器lm7805,C4为输出端滤波电容,D1为输入反向保护。 3.3.3 显示模块电路设计 显示模块的选择关系到整个系统设计的功能多少,我们只需要显示最后电压的数字值和电压的单位,根据各种显示器件的特点:数码管只能显示数字,不能显示单位字符,不符合本设计的要求。而点阵显示器件驱动显示软件程序编写麻烦,占用的引脚相对也较多。也不是理想的显示器件。所以在本设计中,我们考虑用液晶显示器件,虽然12864液晶比1602液晶的功能强,不过在价格方面却贵了好多。而1602液晶也足够满足本设计的需要。因此,在本设计实验 我们选择1602液晶显示器件。 1602LCD分为带背光和不带背光两种,带背光的比不带背光的厚,是否带背光在应用中并无差别,1602液晶模块内部的字符发生存储器有存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号等,每一个字符都有一个固定的代码,比如大写的阿拉伯数字“8”的代码是00111000B(38H),显示时模块把地址38H中的点阵字符图形显示出来,我们就能看到数字“8”。1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。LCD1602与单片机接口如图所示。 GND为电源地,VCC接5V电源正极,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时则会产生“鬼影”,使用时则可以通过一个10K的电位器调整对比度)。 通过RW的高电平时读取输入电压的数字信号,再经过RW的低电平进行写操作,在LCD上显示出来。 RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。E(或EN)端为使能(enable)端。D0D7与单片机的P0端口相接。 3.3.4 A/D转换设计 3.3. 4.1 A/D电路的介绍和选择 在该设计中,模数(A/D)转换模块是一个非常重要的模块,它关系到最后数字电压表电压值的精确度。所以,A/D芯片的选择是设计过程中一个很重要的环节。 模数转换器即A/D转换器,或简称ADC,通常是指一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入模拟电压信号转换为一个输出的数字信号。模数转换器最重要的参数是转换的精度,通常用输出的数字信号的位数的多少表示。转换器能够准确输出的数字信号的位数越多,表示转换器能够分辨输入信号的能力越强,转换器的性能也就越好。A/D转换一般要经过采样,保持,量化及编码4个过程。在实际电路中,有些过程是合并进行的,如采样和保持,量化和编码在转换过程中是同时实现的。 ADC0832是8脚双列直插式双通道A/D转换器,能分别对两路模拟信号实现模数转换,可以用在单端输入方式和差分方式下工作。ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。8位的分辨率(最高分辨可达256级),可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。ADC0832是8位精度,在本设计中,为了减少数字电压表的误差率,在同类比的AD转换器中,ADC0832性价比较高,于是我就选择了ADC0832作为这次设计的AD转换器。 3.3. 4.2 ADC0832与单片机的接口电路 CH0、CH1,是ADC0832的两个通道,在ADC0832的工作时,被测的电压进行通道选择进入CH0或者CH1通道,ADC0832采用串行通信方式,通过DI 数据输入端进行通道选择、数据采集及数据传送。CS,CLK,DI,DO四个是与单片机P3接口相连,只有在使能端CS为低电平时,ADC0832才开始工作,此时处理器向AD传送时钟信号,而根据DI和DO来选择需要通道的信号,传入单片机处理和保存。 在第一个时钟脉冲的下降之前DI端必须是高电平,表示开始信号。在第二、三个脉冲下将之前DI端应输入两个数据用于选择通道功能。 通道地址通道 工作方式说明 SGL/DIF ODD/SIGN 0 1 0 0 + - 差分方式 0 1 - + 1 0 + 单端输入方式 1 1 + 当此两个数据为“1”、“0”时,只对CH0 进行单通道转换。当两个数据为“1”、“1”时,只对CH1进行单通道转换。当两个数据为“0”、“0”时,将CH0作为正输入端IN+,CH1作为负输入端IN-进行输入。当两位数据为“0”、“1”时,将CH0作为负输入端IN-,CH1 作为正输入端IN+进行输入。到第三个脉冲的下降之后DI端的输入电平就失去输入作用,此后DO/DI端则开始利用数据输出DO进行转换数据的读取。从第4个脉冲下降沿开始由DO端输出转换数据最高位Data7,随后每一个脉冲的下降沿DO端输出下一个数据。直到第11个脉冲时发出最低位数据Data0,一个字节的数据输出就完成了。也正是从此位开始输出下一个相反字节的数据,即从第11个字节的下降沿输出Data0。随后输出8位数据,到第19 个脉冲时数据输出完成,也标志着一次A/D转换的结束。最后将CS置高电平停用芯片,直接将转换后的数据进行处理就可以了。 作为单通道模拟信号输入时ADC0832的输入电压是05V且8位分辨率时的电压精度为19.53mV,即(5/256)V。如果作为由IN+与IN-输入的输入时,可是将电压值设定在某一个较大范围之内,从而提高转换的宽度。但值得注意的是,在进行IN+与IN-的输入时,如果IN-的电压大于IN+的电压则转换后的数据结果始终为00H。