自动选档数字电压表的设计_第1页
自动选档数字电压表的设计_第2页
自动选档数字电压表的设计_第3页
自动选档数字电压表的设计_第4页
自动选档数字电压表的设计_第5页
已阅读5页,还剩51页未读, 继续免费阅读

下载本文档

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

文档简介

北京化工大学北方学院毕业设计(论文)整体设计第1.1节设计指标设计一个具有自动选档功能的数字电压表,其设计指标基本如下:1.电压测量范围:0-220V。2.保持测量精度小数点后三位。3.输出数据用LCD液晶显示。4.用TLC1549实现数字量的转换。5.核心控制部件采用单片机控制,充分利用单片机资源。第1.2节设计方案的论证1.2.1单片机控制系统的论证现代数字电压表的设计多采用单片机来作为设计系统的中央处理器。因为单片微理器的优异性,其集成度高,系统结构简单,应用灵活,处理功能强,运算速度快,这一系列优点,使单片机为数字电压表设计基础的控制系统容易实现体积小,性能好,设计灵活性高,价格便宜,易于产品化等多方面指标。目前的单片机种类繁多,有8位机的IntelMCS-51系列,PIC系列等,而16位单片机有IntelMCS-96系列等。在本次设计中,8位单片机就能满足电压表系统的设计需求。由STC公司推出的C51、C52两个系列单片机功能强大,在多种电子仪表设计中广泛得到应用。其中的STC89系列8位Flash单片机,与8051系列单片机相兼容,特别是STC公司推出的89C52低功耗高性能的8位COMS单片机。它内部集成了8k的flash程序存储器,这种flash存储器可以反复擦除1000次之多,使程序调试非常方便。同时STC89C52具有256字节内部RAM,32位输出/输入口线,3个16位定时器/计数器,6个中断源2级中断处理能力,具有低功耗空闲和掉电两种节电模式。从软硬件系统设计的各方面考虑,选用STC89C52单片机作为电压表系统的中央处理器,完全能够满足整个系统的设计需要。1.2.2A/D转换电路的论证现在市场上的A/D转换芯片种类繁多。按转换位数分有8位,10位,12位,16位。按A/D转换基本原理的特点,A/D转换芯片分为积分型,逐次逼近型,并行比较型/串并行型,Σ-Δ调制型,电容阵列逐次比较型以及压频变换型。积分型AD工作原理是将输入电压转换成时间(脉冲宽度信号)或频率(脉冲频率),然后由定时器/计数器获得数字值。其优点是用简单电路就能获得高分辨率,但缺点是由于转换精度依赖于积分时间,因此转换速率极低。逐次比较型AD是由一个比较器和DA转换器通过逐次比较逻辑构成,从MSB开始,顺序地对每一位将输入电压与内置DA转换器输出进行比较,经n次比较而输出数字值。其电路规模属于中等。其优点是速度较高、功耗低,在低分辨率(<12位)时价格便宜,但高精度(>12位)时价格很高。并行比较型AD采用多个比较器,仅作一次比较而实行转换,又称flash(快速)型。由于转换速率极高,n位的转换需要2n-1个比较器,因此电路规模也极大,价格也高,只适用于视频AD转换器等速度特别高的领域。串并行比较型AD结构上介于并行型和逐次比较型之间,最典型的是由2个n/2位的并行型AD转换器配合DA转换器组成,用两次比较实行转换,所以称为Halfflash(半快速)型。还有分成三步或多步实现AD转换的叫做分级(Multistep/Subrangling)型AD,而从转换时序角度又可称为流水线(Pipelined)型AD,现代的分级型AD中还加入了对多次转换结果作数字运算而修正特性等功能。这类AD速度比逐次比较型高,电路规模比并行型小。从设计指标来看,通过比较压频变换型、电容阵列逐次比较型、Σ-Δ型等集中典型AD转换器,来论证我们从转换精度的角度出发应采用电容逐次比较型的转换器。因此,我选用德州仪器制造的TLC1549芯片,由于TLC1549采用CMOS工艺,内部具有自动采样保持、可按比例量程校准转换范围、抗噪声干扰功能,而且开关电容设计使在满刻度时最大总误差仅为±1LSB(4.8mV),因此可广泛应用于模拟量和数字量的转换电路中。1.2.3LCD显示电路的论证在现代数字产品的研究与生产中,字符型液晶显示模块被广泛应用于智能仪表、通讯、办公自动化及军工等领域。在国际上已经规范化,但无论显示屏规格如何变化,其电特性和接口形式都是统一的。因此只要设计出一种型号的接口电路,在指令设置上稍加改动即可使用各种规格的字符型液晶显示模块。和数码管相比,字符型液晶显示模块的使用更加灵活,显示程序比较通用,可移植性强,读数视觉效果好,显示字符类型也多种多样,例如,在电压超过量程时,字符型液晶显示模块可以轻松的显示“Over”,而数码管实现起来却比较麻烦。因此,在本设计中显示电路采用LCD-1601液晶显示屏。LCD-1602晶显示屏是以若干个5×7/8或5×10/11点阵块组成的显示字符群,每个点阵块为一个字符位,字符间距和行距都为一个点的宽度。主控制驱动IC为HD44780及其他公司全兼容IC如:NT3881NOVATEKKS0066SAMSUNGSPLC78A01SUNPLUS。具有字符发生器ROM,可显示192种字符,160个5×7点阵字符和32个5×10点阵字符。具有64个字节的自定义字符RAM,可自定义8个5×8点阵字符或4个5×11点阵字符。具有80个字节的RAM。标准的接口特性,适配M6800系列MPU的操作时序。模块结构紧凑轻巧装配容易。单+5V电源供电,低功耗、长寿命、高可靠性。综上所述,选用LCD-1602显示模块可以完全满足数字电压表的数显需求。第1.3节系统总体设计STCSTC89C52显示电路A/D转换电路交直流输入电路稳压电源电路图1.1系统总体设计框图系统总体设计框图如图1.1所示,整个系统的工作原理:输入的电压经交直流输入电路,将采样电压发送到TLC1549,然后由TLC1549将模拟电压转换成数字量输出送至单片机处理。单片机通过软件控制对数据进行处理,进行信号的筛选及运算,完成选档过程,数据从P2口输出,送入显示电路显示。其中,被测电压由交直流输入电压转换成稳定模电信号,稳压电源电路为单片机,AD转换器,LCD等元器件提供+5V工作电源电压。第1.4节小结在电压表系统中,硬件电路设计和软件程序的设计中都采用了分模块设计,这种设计方法能清晰的显示出电路的功能与结构,为设计的过程和以后的调试维修提供了很大的方便。特别是在软件的设计中,这种方法提高了程序的可移植性,为以后的功能扩展提供了空间。而软件的设计相关将在第三章介绍。第2章系统的硬件结构第2.1节硬件系统的设计原则一个以单片机为处理器的系统中硬件电路的设计包含有两部分:一是系统扩展,即单片机内部的功能单元,如ROM、RAM、I/O口、定时/计数器、中断系统等容量不能满足应用系统的要求时,必须在片外进行系统扩展,选择合适的芯片并设计相应的电路。二是系统配置,即按照系统功能要求配置外围设备,如键盘、显示器、打印机、A/D、D/A转换器等,要设计相应的接口电路。在本系统中,STC89C52单片机内部的功能单元已经能够满足系统设计需要,不需要系统扩展。按系统功能需求,需要配置工作电源、LCD显示等。系统的扩展和配置设计遵循下列原则:1.尽量选择典型电路,采用符合单片机的常规用法。为整个系统硬件设计的标准化、模块化打下良好的基础。2.单片机的系统扩展与外围设备配置的水平应充分满足应用系统的功能要求来设计,并留有适当的余地,以便二次开发。在本系统中选用有32个I/O口线的STC89C52,当前设计中分别选用了其中的24个I/O口线,留有8个I/O口为以后系统扩展留有空间。3.硬件结构应结合软件设计方案结合考虑。硬件结构与软件方案会相互影响,为了使整个系统整合统一,需要考虑到:软件能实现的功能尽可能由软件实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,其相应时间要比直接用硬件实现来得长,而且占用CPU时间。因此,选用软件方案时要考虑这些因素。4.系统中的相关的原器件要尽可能做到性能的相互匹配。如在本系统中,选择CMOS芯片单片机构成低功耗系统时,系统中所有芯片都应该选择低功耗的产品。选用芯片必须是同一个系列,若是CMOS系列则尽量不选用TTL系列的芯片。5.可靠性及抗干扰设计是硬件系统设计中尤其注意的地方,它包括芯片、器件选择、印刷电路板布线等。6.该系统设计的有元器件必须满足5伏的工作电压,并且通过硬件的设计满足所有元器件的电源电压的需求。第2.2节单片机及外围电路设计2.2.1单片机系统单片机是整个数字电压表系统的核心。在考虑经济性和满足需求前提下,本系统选用STC公司生产的8位89C52单片机作为整个系统的控制中心。STC89C52的命令与MCS-51系列产品完全兼容且1.8K的FLASH存储器。1000次擦写周期。2.三级加密程序存储器。3.看门狗定时器。4.全静态操作:0Hz-33MHz。5.32个可编程I/O口线。6.3个16位定时器/计数器。7.8个中断源。8.低功耗空闲和掉电两种节电模式。9.全双工UART串行通道。10.掉电后中断可唤醒。11.双数据指针。12.掉电标识符。STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。低功耗空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM图2.1STC89C52STC89C52引脚图如图2.1,P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0不具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.1分别作定时器/计数器2的外部计数输入(P1.0/T2)和定时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能:P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p3输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。端口引脚第二功能:P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INTO(外中断0)P3.3INT1(外中断1)P3.4TO(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口还接收一些用于FLASH闪存编程和程序校验的控制信号。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将是单片机复位。ALE/PROG:当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对FLASH存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令才能将ALE激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89S52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次PSEN信号。EA/VPP:外部访问允许,欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器的指令。FLASH存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。2.2.2晶振电路的设计在单片机系统正常工作中晶振发挥着不可替代的作用,作为单片机运行的基础,它结合单片机内部电路产生单片机所需要的时钟频率,这为单片机系统提供了基本的时钟信号,而单片机晶振提供的时钟频率越高,单片机的运行速度越快,单片机一切指令的执行都是以单片机晶振提供的时钟频率为基础。Y1Y11C130pfC230pfXTAL1XTAL2图2.2晶振电路图晶振电路图的设计采用内部方式时钟电路方式,如图2.2,晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效的进行工作。2.2.3复位电路的设计复位电路在单片机系统中用于产生复位信号,主要是通过RST引脚送入单片机,进行复位操作。它的稳定直接影响单片机系统工作的可靠性,因此,复位电路的设计和研究非常重要。单片机的复位分为加电复位和手动复位两种方式。加电复位是指通过专用的复位电路产生复位信号。它是系统原始的复位方式,发生在开机加电时,是系统自动完成的。手动复位也是通过设计专用的复位电路来实现复位。在单片机系统中,手动复位是必须具有的功能,在调试或运行时,若遇到死机、死循环或程序“跑飞”等情况,手动复位是处理这种尴尬局面的常用方法。在本设计中采用按键电平复位电路,如图2.3复位电路STC89C52STC89C52图2.3复位电路原理图2.2.4A/D转换电路相关TLC1549是美国德州仪器公司生产的10位模数转换器。它采用CMOS工艺,具有内在的采样和保持,采用差分基准电压高阻输入,抗干扰性强,该芯片具有两个数字输入端和一个3态输出端,它们提供与微处理器串行端口的3线接口。本芯片具备自动采样保持功能,采取差分基准电压高阻输入,可按比例量程校准转换范围,可以实现低误差的转换,总不可调整误差为±1LSBMax(4.8mV)。(1)TLC1549的性能特点:10位分辨率A/D转换器;内在的采样和保持;总不可调整误差±1LSB MAX;片内系统时钟;CMOS工艺。(2)TLC1549的极限参数:电源电压范围:-0.5V至6.5V;输入电压范围:-0.3V至Vcc+0.3V;输出电压范围:-0.3V至Vcc+0.3V;正基准电压:Vcc+0.1V;负基准电压:-0.1V;峰值输入电流:±20mA;峰值总输入电流:±30mA。(3)TLC1549引脚其功能:图2.4TLC1549引脚图TLC1549引脚图如图2.4,其中CS位芯片选择段低电平有效;ANANLOGIN为模拟信号输入端,DATAOUT为转换结果输出端,在时钟信号的作用下,前次转换结果以串行方式依次由该引脚送出;I/OCLOCK为输入/输出时钟;REF+为基准电压的高端值(通常为Vcc)加至该引脚,最大输入电压范围由加至REF+和REF-的电压差决定;REF-为基准电压的低端值(通常为地)加至该引脚;Vcc为正电源电压。(4)工作原理:当芯片选择(CS)无效(高)时,I/OCLOCK跟先前一样禁止以及DATAOUT为高阻抗状态。当串行借口让CS有效(低)时,开始转换过程,I/OCLOCK使能,并使DATAOUT端脱离高阻抗状态。然后,串行接口向I/OCLOCK提供时钟序列,并从DATAOUT接收先前转换的结果。I/OCLOCK从主机串行接口上接收到一个10至16个时钟的序列。前10个时钟为采样模拟输入提供控制时序。图2.5TLC1549工作时序图在CS的下降沿,前次转换的MSB出现在DATAOUT端。10位数据通过DATAOUT被发送到主机串行接口。为了开始转换,最少需要10个时钟脉冲。如果I/OCLOCK传送大于10个时钟长度,那么在的10个时钟的下降沿,内部逻辑把DATAOUT拉至低电平以确保其余位的值为零。在正常进行的转换周期内,规定时间内CS端高电平至低电平的跳变可终止该周期,器件返回初始状态(输出数据寄存器的内容保持为前次转换结果)。由于可能破坏输出数据,所以在接近转换完成时要小心防止CS被拉至低电平。时序图如图2.5。对于连续逐次逼近型的模数转换器TLC1549。CMOS门限检测器通过检测一系列电容的充电电压决定A/D转换后的数字量的每一位,如图2.6所示。在转换过程的第一阶段,模拟输入量同时关闭SC和ST进行充电采样,这一过程使所有电容的充电电压之和达到模数转换器的输入电压。由图2.6中可知,转换过程的第二阶段打开所有SC和ST,CMOS门限检测器通过识别每一只电容的电压确定每一位。使其接近参考电压。在这个过程中,10只电容逐一检测,直到确定转换的十位数字量。其详细步骤为:门限检测器检测第一只电容(weight=512)的电压.该电容的节点512连接到REF+。梯型网络中其他电容的等效节点接到REF-。如果总节点的电压大于门限检测器的电压(大约Vcc的一半),“0”被送至输出寄存器,此时512-weight的电容连接到REF。经反相后为“1”,即为最高位MSB为1:如果总节点的电压小于门限检测器的电压(大约Vcc的一半),“1”被送至输出寄存器此时512-weight的电容连接到REF+,经反相后为“0”,存为最高位MSB为0对于256-weight的电容和128-weight的电容也要通过连续逐次逼近型的重复操作,直到确定从高位(MSB)到低位(LSB)所有数字量,即为初始的模拟电压数字量。整个转换过程调整VRF-和VRF+以便从数字0至1跳变的电压为0.0024V,满度跳变电压为4.908V,即1LSB=4.8mV。图2.6连续逐次逼近系统采样模式图STC89C52(5)TLC1549与单片机连接原理图:STC89C52图2.7TLC1549与单片机连接原理图2.2.5稳压电源电路稳压电源电路的实现,为电压表中各个需要+5V工作电源的元器件提供了稳定电源,保证了整个设计电路的正常工作,是设计中重要的组成部分。(1)稳压电源电路相关三端稳压器7805是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。图2.87805管脚图7805主要特点:输出电流可达1A。输出电压有:5V;6V;8V;9V;10V;12V;15V;18V;24V。过热保护。短路保护。输出晶体管SOA保护。(2)7805功能框图:图2.97805功能框图(3)稳压电源电路原理图:图2.10稳压电源电路原理图2.2.6声光提示电路声光提示电路工作原理:P37为低电平时,三极管Q1导通,蜂鸣器响,LED灯亮,其作用是在以后的扩展中供光电及声音提示。图2.11声光提示电路原理图2.2.7LCD显示电路LCD1602也叫1602字符型显示液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。每位之间有一个点距的间隔每行之间也有也有间隔起到了字符间距和行间距的作用,正因为如此所以它不能显示图形。(1)1602特性:+5V电压,对比度可调;内含复位电路;提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;有80字节显示数据存储器DDRAM;内建有160个5X7点阵的字型的字符发生器CGROM;8个可由用户自定义的5X7的字符发生器CGRAM。(2)1602引脚说明:表2.11602引脚说明引脚号引脚名电平输入/输出作用1Vss电源地2Vcc电源(+5V)3Vee对比调整电压4RS0/1输入0=输入指令1=输入数据5R/W0/1输入0=向LCD写入指令或数据1=从LCD读取信息6E1,1→0输入使能信号,1时读取信息,1→0(下降沿)执行命令7DB00/1输入/输出数据总线line0(最低位)8DB10/1输入/输出数据总线line9DB20/1输入/输出数据总线line10DB30/1输入/输出数据总线line11DB40/1输入/输出数据总线line12DB50/1输入/输出数据总线line13DB60/1输入/输出数据总线line14DB70/1输入/输出数据总线line15A+VccLCD背光电源正极16K接地LCD背光电源负极(3)1602与单片机连接原理图:STC89C52STC89C52图2.121602与单片机连接原理图HD44780内置了DDRAM(显示数据存储RAM)、CGROM(字符存储ROM)和CGRAM(用户自定义RAM)。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如表2.2:表2.2其地址和屏幕的对应关系显示位置1234567……40DDRAM地址第一行00H01H02H03H04H05H06H……27H第二行40H41H42H43H44H45H46H……67H也就是说想要在LCD1602屏幕的第一行第一列显示一个“A”字,就要向DDRAM的00H地址写入“A”的代码就行了。但具体的写入是要按LCD模块的指令格式来进行的,后面我会讲到的。一行有40个地址在1602中我们就用前16个就行了。第二行也一样用前16个地址。对应如下表:表2.3DDRAM地址与显示位置的对应关系00H01H02H03H04H05H06H07H08H09H0AH0BH0CH0DH0EH0FH40H41H42H43H44H45H46H47H48H49H4AH4BH4CH4DH4EH4FH(4)对DDRAM的内容和地址操作,HD44780的指令集及其设置说明,共有11条指令:1602基本操作时序:读状态

输入:RS=L,RW=H,E=H

输出:DB0~DB7=状态字写指令

输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码输出:无读数据输入:RS=H,RW=H,E=H输出:DB0~DB7=数据写数据

输入:RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据输出:无表2.4清屏指令指令功能指令编码执行时间/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0清屏00000000011.64功能:<1>清除液晶显示器,即将DDRAM的内容全部填入“空白”的字符码20H;<2>光标归位,即将光标撤回液晶显示屏的左上方;<3>将地址计数器(AC)的值设为0。表2.5光标归位指令指令功能指令编码执行时间/msRSR/WDB7DB6DB5DB4DB3DB2DB1DB0光标归位000000001X1.64功能:<1>把光标撤回到显示器的左上方;<2>把地址计数器(AC)的值设置为0;<3>保持DDRAM的内容不变。表2.6输入模式设置指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0进入模式设置00000001I/DS40功能:设定每次写入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示:位名

设置I/D

0=写入新数据后光标左移

1=写入新数据后光标右移S

0=写入新数据后显示屏不移动1=写入新数据后显示屏整体右移一个字表2.7显示开关控制指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0显示开关控制0000001DCB40功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下:位名

设置D

0=显示功能关

1=显示功能开C

0=无光标

1=有光标B

0=光标不闪烁

1=光标闪烁表2.8设定显示屏或光标移动方向指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定显示屏或光标移动000001S/CR/LXX40功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下:S/C

R/L

设定情况0

0

光标左移1格,且AC值减10

1

光标右移1格,且AC值加11

0

显示器上字符全部左移一格,但光标不动1

1

显示器上字符全部右移一格,但光标不动表2.9功能设定指令表(非常重要的指令)指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0功能设定00001DLNFXX40功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下:位名

设置DL

0=数据总线为4位1=数据总线为8位N

0=显示1行1=显示2行F

0=5×7点阵/每字符

1=5×10点阵/每字符表2.10设定CGRAM地址指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定CGRAM地址0001CGRAM的地址(6位)40功能:设定下一个要存入数据的CGRAM的地址。表2.11设定DDRAM地址指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0设定DDRAM地址001DDRAM的地址(7位)40功能:设定下一个要存入数据的CGRAM的地址。表2.12读取忙信号或AC地址指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0读取忙信号或AC地址指令01FBAC内容(7位)40功能:<1>读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令;当BF=0时,液晶显示器可以接收单片机送来的数据或指令;<2>读取地址计数器(AC)的内容。表2.13数据写入DDRAM或CGRAM指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0数据写入DDRAM或CGRAM指令10要写入的数据D7-D040功能:<1>将字符码写入DDRAM,以使液晶显示屏显示出相对应的字符;<2>将用户自己设计的图形存入CGRAM。表2.14从CGRAM或DDRAM读出数据的指令指令功能指令编码执行时间/usRSR/WDB7DB6DB5DB4DB3DB2DB1DB0从DDRAM或CGRAM读取数据11要读出的数据D7-D040功能:读取DDRAM或CGRAM中的内容。基本操作时序:读状态

输入:RS=L,RW=H,E=H

输出:DB0~DB7=状态字写指令

输入:RS=L,RW=L,E=下降沿脉冲,DB0~DB7=指令码输出:无读数据

输入:RS=H,RW=H,E=H

输出:DB0~DB7=数据写数据

输入:RS=H,RW=L,E=下降沿脉冲,DB0~DB7=数据输出:无2.2.8A交直流输入电路,即被测电压输入电路,整个电路以整流桥为主要结构,被测信号经由此电路变为稳定模电信号,送入TLC1549AD转换电路,其电路原理图如下:图2.13交直流输入电路其中J4测量交流电路电压值,J5测量直流电路电压值,而整流桥的功能是把交流电变为直流电。其结构上是把4个硅二极管接成桥式整流电路之后封装在一起用塑料包装起来,引出4个脚,其中2个脚接交流电源,用~~符号表示,2个脚是直流输出,用+

-表示。F1为保险丝,它保证了整个电路的安全。

第2.3节小结在本节中,详细介绍了数字式电压表主要硬件电路设计及工作原理,在满足设计要求的前提下,为保证电路焊接和维修的方便,在设计中尽可能的用电路制作中的常用元器件。另外除了上述器件外,其他的元件如电阻,电容的选择都是由一些典型电路设计,经测试调节确定电路构造更容易于理解和分析,这一点给最后的调试带来很大的方便。第3章软件程序设计第3.1节软件设计要求对于一个电子产品来说,软件是整个控制系统设计的核心,这要求程序的编写应具有充分的灵活性,可以根据系统的要求而变化。在硬件结构一定的情况下,只要改变软件的程序编写就能实现一些不同的功能。单片机所具有的智能功能要由软件来完成。在本设计中,软件结构采用模块化设计方法,分为主程序模块、LCD显示模块、延时模块、AD转换模块等。这样的设计有利于程序代码的优化,而且便于设计、调试和维护,还可以实现将遥控接收器所要完成的功能分别编写和调试。应用系统中的应用软件是根据系统功能要求设计的,应可靠实现系统的各种功能。在本设计中,软件程序的设计要力求做到以下几点:1.软件程序结构清晰,简捷,流程合理。2.各程序实现功能模块化,子程序化。既便于调试和链接,又便于移植和修改。3.程序存储区与数据存储区要合理规划,这样既能节约内存容量,又可以增强操作的便捷性。4.运行状态实现标志化管理。各个功能程序运行状态,运行结果以及运行要求都要设置状态标志以便查询,程序的转移、运行、控制都可通过状态标志条件来控制。5.经过调试修改后的程序应进行规范化,消除修改的痕迹,以便于交流和借鉴,也为以后的软件模块化、标准化打下基础。其中要注意的是在程序编写与设计上,要根据电路功能的要求和硬件电路原理图画出程序流图。然后再写出程序,但在程序的编译过程中很难避免会出现错误,这就需要编译器的提示和个人的耐心分析,检查出错误所在,并且修正到编译可以成功通过为止。所以为了尽可能减少错误的出现和检查的方便,在编写程序时,都按照规范的程序写法去写,并且加上详细的注释。第3.2节程序流程本设计的程序编写采用C语言,经调试可以使电压表系统完美运行,其流程图如下:系统初始化定时器初始化按键扫描主函数系统初始化定时器初始化按键扫描主函数电压值显示开始AD转换程序图3.1程序流程图第3.3节小结本章的介绍中,简单的阐述了软件编程的流程与工作原理,并在后期调试中发现和改正了软件中的错误与不足。在整个设计的后期制作中,软件程序的编写作为最后的关键步骤更加需要反复的查错与细心的修正,所以在本设计的收尾过程中,自己的程序编写的能力得到了提高与完善。第4章制作与调试第4.1节电路板的制作在本设计中电路板的研究与制作采用Protel公司推出的纯32位电路设计软件Protel99SE。本软件功能强大,人机界面操作便捷,可以很容易地设计出电路原理图,是业内首选的电路板设计工具。原理图完成后将其导入PCB界面,经手动布线画出PCB,然后按照PCB在铜板上打印,腐蚀,钻孔,进行元器件焊接等一系列操作过程,完成实物做出设计成品。第4.2节调试4.2.1软件调试本软件程序是用C语言进行编写的,采用MicrosoftVisualStudio2010Express软件进行编译,采用模块化编程方式,对各模块分别进行调试。在调试时首先检查出语法错误,如少一个短号,指令写错等。改正后重新编译,未出现问题,编译成功。再加上程序段说明等描述。4.2.2硬件调试检查过软件程序及实物的布线图、主要元器件的焊接都无误后,在调试过程中发现了以下问题:1.发现单片机无时钟信号输入,检查后发现分频器输出端与信号输入端是用跳线连接,原因为电路虚焊所致。连接好后,单片机能正常工作,用示波器检测各管脚信号正常。2.测试过程中液晶显示器上只显示第一行的字母“Voltage”,无法正常显示电压的数值,调试中LCD1549的转换输出有信号,由此判定是软件的问题,检查后发现程序中未将转换结果送出显示。3.调试时按动按键调整显示数值,显示结果不停跳变不稳定,检查后发现按键电路虚接,修复后结果能正常显示。4.实际转换精度和理论值之间差距较大,原因是基准电压不准确,调准好基准电压后,转换精确度提高。第5章数字电压表的抗干扰设计第5.1节硬件系统抗干扰设计硬件抑制干扰主要针对造成干扰的三个方面采取措施:(1)消除和抑制噪声源(2)破坏干扰通道(3)消弱接受电路对抗噪声干扰信号的敏感性对此采用的抗干扰措施可以采取以下几种做法:5.1.1电源系统的抗干扰措施任何电源及输入线路都存在内阻,正是这些内阻引进了电源的噪声干扰。如果无内阻存在,任何噪声都会被电源短路吸收,在线路中不会建立任何干扰电压。为保证电子线路正常工作,防止从电源引入干扰,采取以下措施:1.电器件采用交流稳压器供电用交流稳压器供电可保证电器件电源电压的稳定性,防止电源系统的过压与欠压,有利于提高整个系统的安全性与可靠性。2.电路中加装滤波器(1)低通滤波器:电源系统的干扰源大部分是高次谐波,因此采用低通滤波器滤去高次谐波,以改善电源波形。(2)退耦滤波器:一个直流电源同时对几个电路供电,为了避免通过电源内阻造成几个电路之间互相干扰,应在每个电路的直流电源进线处加装退耦滤波电容。5.1.2接地抗干扰接地是抑制干扰的重要方法,如能将接地和屏蔽正确结合起来,就可以解决大部分干扰问题。在电子电路中,地线有系统地、机壳地(屏蔽地)、数字地(逻辑地)和模拟地等。一个系统既有高速数字电路,又有模拟电路,为避免数字电路对模拟电路的工作造成干扰,两者的接地不要相混,而分别与电源端地线相连。5.1.3传输通道的抗干扰措施由研究可知,在电子电路信号的传输过程中会产生通道干扰。所以为了保证传输的可靠性,在本设计中采取尽可能减少连线距离和尽可能增大PCB布线宽度,这样可以使电磁波对信号的影响降到最小。第5.2节软件系统的抗干扰设计按照可靠性理论,程序设计最主要任务是确保应用程序按照给定的安排有秩序地运行。有序运行的基础是硬件的可靠性,可靠性高的硬件基础可以确保不出现硬件故障;但是在使用时,大量的干扰源虽然不会造成单片机硬件系统的破坏,却常常会破坏数字信号的时序,更改单片机寄存器内容,导致程序运行的不正常。因此,在提高硬件的基础上,必须在程序设计中采取措施,提高软件的可靠性,减少软件错误的发生保证系统的正常运行。软件的抗干扰设计的方法有很多,在本设计中只对软件本身的可靠性加以考虑,即可靠性程序设计:它是指程序可以不依靠附加的部分就可以完成规定的功能。为了做到程序设计的可靠性,程序设计中从以下几个方面做了考虑:1.尽量最大限度的减少程序错误和缺陷程序在编写和调试时对系统将来所处的环境不可能做到完全的模拟,因此,看似正确的程序,实际上还存在一定的缺陷。这些缺陷,有的是显性的,可以通过进一步的调试与仿真加以改进,还有是隐性的,如因为信号的延时而造成程序的判断错误。这就要求在编写程序时,需作综合、全面、动态的考虑。2.提供足够的时序裕度数字系统的协调、有序运行离不开正确的时序。系统在单片机的控制下,实现分时操作,程序运行完全依靠时序调度、切换控制。而在程序的编写过程中,为程序之间的衔接插入充足的时序。第5.3节小结总结来说,抗干扰的方法很多,以上介绍的只是本设计中所采用的几种。这些方法也是电路设计中最常用和最实用的,但是对于软件抗干扰就不是所有的电路所能做到的,它只能在含有微处理单元的电路中才可以去实现。并且可以通过软件的方法去补偿一些硬件不能达到的调节,或者通过拟合曲线去处理一些非线形的数据。当然本次设计不可能处处完美,在软硬件的各方面,都是尽我所能,力求完善。结论这次设计的具有自动选档功能的数字电压表,利用了STC89C52单片机,TCL1549AD转换器等芯片,由不同功能的多组电路支持构成,通过设计软件程序,充分利用单片机资源,实现了电压表的自动选档功能。本次的毕业设计是我对自己一次全面的实践过程。从查找资料、选定方案、设计电路、画原理图、PCB布线、制板、焊接、编程、调试、撰写毕设报告,当中遇到了很多的问题,幸好有老师和同学的帮助,还有自己努力的学习求证,让我克服了一道道设计上的难题。所以这次毕业设计给我提供了一个很好的学习机会,使我的实践操作技能得到了提升。同时这次毕业设计让我对四年来所学专业知识有了更深刻的认识和了解,使我培养了良好的思考习惯,锻炼了我的思维方式和解决问题的能力,提高和培养了我的创新能力,为我以后的工作奠定了良好的专业基础。通过这次的学习设计,不难发现现代数字电压表的设计与开发离不开多方位的技术支持,从软件到硬件多方面的知识之间的运用相互联系。以单片机技术为主导,信号的采集与显示、数模信号的转换、计算机接口技术、人工智能等各类电子信息技术的支持,才能完成一套科学合理的设计方案。并且随着信息技术的不断更新进步,包括数字电压表的各类电子信息产品都将会不断更新换代,在人们生活的方方面面带来更多的便利。附录一、电压表程序:#include<reg51.h>#include<stdio.h>#include<intrins.h>#include"Delay.h"#include"LCD1602.h"sbitBEEP=P3^7;//蜂鸣器控制sbitclk=P2^2;//ad_clksbitcs=P2^0;//ad_cssbitdout=P2^1;//ad_dout sbitKEY1=P1^0;sbitKEY2=P1^1;sbitKEY3=P1^2;sbitKEY4=P1^3;ucharTemp=0;uchari;ucharCnt,SET;uintresult=0;//theresultofadconvertuchararrDat[]={0,0,0,0,0,0,0,0};uintu1=0;bitAC_Flag=0;uintVolt=0;floatTempVolt;uchararrVolt[7]={0};uintxn=0;ucharxnarr[3]={0};ucharj=0;floatAverVolt=0;floatTotalVolt=0;/************TL1549AD转换子程序**************/uintadc(void){ uintu=0; uchari; cs=1; _nop_(); cs=0; for(i=0;i<10;i++)//readdata { clk=0; u=(u<<1)|dout; clk=1; _nop_(); } Delayus(2);//Delayus25uS cs=1; return(u);//returnaddata}/************定时器初始化子程序**************/voidInitTimer(){ TMOD=0X01; TH0=0X3C; TL0=0XB0; ET0=1; TR0=1; EA=1;}/*******************************************************************//*蜂鸣器响*//*******************************************************************/voidBeepON(){ BEEP=0; DelayMS(100); BEEP=1;}/************按键扫描子程序**************/voidKeyScan(){ if(KEY1==0) { DelayMS(10); if(KEY1==0) { AC_Flag=~AC_Flag; if(AC_Flag==1)//AC测量状态下 { GotoXY(2,1); Print("DC\0"); } else { GotoXY(2,1); Print("AC\0"); } BeepON(); while(KEY1==0); } } if(KEY2==0) { DelayMS(5); if(KEY2==0) { while(!KEY2); BeepON(); ISD_SetPLAY(0x00); DelayMS(1000); for(i=0;i<6;i++) { switch(arrVolt[i]) { case'0':ISD_SetPLAY(0x0c);break; case'1':ISD_SetPLAY(0x03);break; case'2':ISD_SetPLAY(0x04);break; case'3':ISD_SetPLAY(0x05);break; case'4':ISD_SetPLAY(0x06);break; case'5':ISD_SetPLAY(0x07);break; case'6':ISD_SetPLAY(0x08);break; case'7':ISD_SetPLAY(0x09);break; case'8':ISD_SetPLAY(0x0a);break; case'9':ISD_SetPLAY(0x0b);break; case'.':ISD_SetPLAY(0x0d);break; default:break; } DelayMS(1000); if((i==0)&&(TempVolt>=100)) { //ISD_SetPLAY(0x01);DelayMS(800);//百 } if((i==1)&&(TempVolt>=10)) { //ISD_SetPLAY(0x02);DelayMS(800);//十 } } ISD_SetPLAY(0x0e); DelayMS(1000); } } if(KEY3==0) { DelayMS(5); if(KEY3==0) { while(!KEY3); BeepON(); sprintf(xnarr,"%2u",xn); xnarr[2]='\0'; GotoXY(12,0); Print(xnarr); ISD_SetPLAY(xn); DelayMS(1000); xn++; } }}/************主函数**************/main(){ InitLcd(); DisplayString("--VOLTMETER--\0",0x00); DisplayString("DC:V\0",0X40); InitTimer(); AC_Flag=1; ISD_Init(); DelayMS(10); while(1){ KeyScan();//按键扫描}}/************定时器中断子程序¨°**************/voidISR_Timer0()interrupt1{ TH0=0X3C; TL0=0XB0; Cnt++; if(Cnt>10) { Cnt=0; Volt=adc();//进行转换 } if(AC_Flag==0)//AC测量状态下 { TempVolt=Volt/3; } else { TempVolt=Volt*0.0283; } if(TempVolt<2) { sprintf(arrVolt,"%06.4f",TempVolt); } if((TempVolt>=2)&&(TempVolt<20)) { sprintf(arrVolt,"%06.3f",TempVolt); } if((TempVolt>=20)&&(TempVolt<200)) { sprintf(arrVolt,"%06.2f",TempVolt); } if(TempVolt>=200) { sprintf(arrVolt,"%06.1f",TempVolt); } arrVolt[6]='\0'; GotoXY(8,1); Print(arrVolt); }二、元器件列表:表1元器件列表数量标称编号41KR2R4R5R6电阻11MRP3可调电阻15.1VZD1稳压管15KRP2电阻110KZP1电阻110KRP1电阻110UFCE3电容110kR1电阻110ufCE1电容111.0592MY1晶振230pfC1C2电容1100UFCE2电容2104C3C电容1470RR3电阻17805U3稳压IC18550Q1三极管1AT89S52U1单片机1BEEPLS1蜂鸣器3COM2J1J4J5接头1CON4J2接头1CON6J3接头1FUSE2F1保险丝2IN4148D3D4二极管1KGS5开关1LCD1602U2显示屏2LEDD1D2发光二极管4SWS1S2S3S4按键1SWKG1开关1TLC1549U4AD芯片1ZLQA1整流桥图1原理图图2PCB图参考文献[1]张永瑞.电子测量技术基础[M].西安电子科技大学出版社.2009.[2]王可怒.模拟集成电路原理与应用[M].电子工业出版社.2009.[3]李广弟.单片机基础[M].北京航空航天大学出版社.2007.[4]何立民.MCS-51系列单片机应用系统设计[M].北京航空航天大学出版社.2011.[5]宋凤君孙军李国忠.基于89C51单片机的数字电压表设计[J].制造业自动化.2007年02期.[6]胡卓敏王丽娟.基于ST89C51单片机的数字电压表设计[J].电子元器件应用.2009.[7]贾培军董军堂高延华.一种量程自动切换数字电压表的设计[J].山西电子技术.2007年第6期.[8]徐爱均.智能化测量控制仪表原理与设计[M].北京航空航天大学出版社.2003.[9]廖锯锋.7135在智能电压/电流表中的应用[J].中国仪器仪表.2004年第5期.[10]李川香.高精度双积分A/D转换器与单片机接口的新方法[J].自动化仪表.2002年第1期[11]孙正山.数字电压表的结构类型和工作原理[J].家电检修技术.2012年第20期.[12]张俊.简易数字电压表的设计[J].科协论坛.2012年第8期.[13]陈斯戴新宇.一种量程自动转换高精度数字电压表的设计[J].自动化与仪表.2012年第11期.[14]赵茂泰.智能仪器原理及应用[M].电子工业出版社.2009。[15]张虹.电子测量技术[M].北京航空航天大学出版社.2009.[16]李群芳.单片微型计算机与接口技术[M].电子工业出版社.2005[17]LiTing-gui.DesignofDigitalVoltmeterBasedonTLC549andAT89S52.自动化技术与应用.2012年第31期.[18]Jingying,LiXiaofeng,LiPingzhou.DesignofNewDigitalVoltmeterBasedonFPGA.电子工程师.2007年第33期.[19]Zhangli.DigitalVoltmeterBasedonTLC549[J].2011.致谢紧张、充实而又难忘的大学学习生涯即将结束,在大学四年和撰写论文期间得到了许多人的帮助,使我终身难以忘怀。轻风系不住流云,流云却带走了岁月,打开尘封的记忆,往事如风却又历历在目,大学的学习生活即将结束。在这里我首先要感谢这四年来为我授课的各位老师,真心地说一句:你们辛苦了!感谢王凌老师目录TOC\o"1-2"\h\z\u第一章总论 11.1项目概况 11.2可行性研究报告编制单位 41.3承办单位简介 41.4项目区概况 51.5可行性研究依据 91.6可行性研究的范围 10第二章项目建设背景及必要性 112.1项目建设背景 112.2项目建设必要性 14第三章项目建设地址及条件 173.1项目建设地址 173.2项目建设条件 17第四章工程建设方案 224.1项目设计依据与原则 224.2工程规划方案 234.3工程技术方案 254.4给排水工程 304.5供电工程 314.6采暖及通风 354.7燃气设计 37第五章环境保护 385.1环境保护标准 385.2环境影响初步分析 385.3施工期环境保护措施 395.4运营期间环境保护措施 415.5绿化 425.6环境影响评价 43第六章节能 446.1依据标准、法律、法规和规范 44HYPERLINK\l

温馨提示

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

评论

0/150

提交评论