基于单片机多功能调试助手的论文可以没有调试过程吗?

毕业论文:基于单片机的双容水箱液位控制器设计_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
毕业论文:基于单片机的双容水箱液位控制器设计
测​控​技​术​与​仪​器​专​业​
​这​个​设​计​我​的​了​良​哦
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢摘要电子负载的原理是控制内功率 MOSFET 或晶体管的导通量,靠功率管的耗散功率 消耗电能的设备,它的基本工作方式有恒压、恒流、恒阻、恒功率这几种。 本设计从直流电子负载系统方案分析入手, 详细讨论了整个系统的硬件电路和软 件实现,并给出较为合理的解决方案。为便于控制的实现和功能的扩展,采用了 STC89C52 单片机作为核心控制
器,设计了 DA 输出控制电路、AD 电压电流检测电路、 键盘电路、显示电路和驱动电路,通过软、硬件的协调配合,实现了整个设计。通过 运放、 调节器及负反馈控制环路来控制 MOSFET 的栅极电压, PI 从而达到其内阻变化。 这个控制环路是整个电路的核心实质,MOS 管在这里既作为电流的控制器件同时也作 为被测电源的负载。控制 MOS 管的导通量,其内阻发生相应的变化,从而达到流过该 电子负载的电流恒定,实现恒流工作模式。 本设计能实现电子负载的恒流控制:能够检测被测电源的电流、电压及功率并由 液晶显示。在额定使用环境下,恒流方式时不论输入电压如何变化(在一定范围内) , 电子负载将根据设定值来吸收电流,流过该电子负载的电流恒定。 关键词:电子负载; 恒流模式; PI 调节器; AD 转换; DA 转换 毕业论文(论文)ABSTRACTABSTRACTThe principle of electronic load is control of transistors inside power MOSFET or the guide flux of power tube, it is a consumption power equipment which depends on the dissipation power of tube, there are four basic working ways that persistence pressure, constant current, the constant resistance, constant power . This design start with the analysis of DC electric load system solutions, it discussed the realization of the whole system hardware circuit and software in detail, and give a reasonable solution. In order to realize the control and the expansion of function conveniently, we adopted the STC89C52 microcontroller as the core controller, and designed the DA output control circuit, AD voltage current detection circuit, keyboard circuit, display circuit and drive circuit, through the coordination between hardware and software, finally, we realized the whole design. PI adjuster and negative feedback control loop of the circuit which control the grid voltage of MOSFET, so as to change its resistance. The core essences are the op-amp, MOS tube here both as a control device and as a power load tested. Controlling the guide flux of the MOS tube, the resistance of the MOS tube will change accordingly, thus the current which flows the electronic load current will constant, At last, we realized constant current work pattern. This design can realize the Constant-current control of the electronic load: it can measured the current, voltage and power of Measured power and the LCD display. If it use situations in rated, no matter how the input voltage change in the constant-current mode (within a certain range), the electronic load will be based on setting to absorb the current, the current which flows the electronic load will constant. Key words: constant- PI AD DA conversion 东华理工大学毕业设计(论文)目 录目录绪 论 ................................................................. 1 第一章 1.1 1.2 1.3 1.4 第二章 电子负载系统设计方案 ........................................... 2 电子负载工作原理 ................................................ 2 系统设计要求 .................................................... 3 系统总体设计方案论证 ............................................ 3 系统具体设计方案 ................................................ 5 电子负载硬件系统设计 ........................................... 62.1 核心处理器的设计 ................................................. 6 2.2 显示模块的设计 ................................................... 7 2.3 键盘模块 ......................................................... 8 2.4 D/A 转换模块的选择 .............................................. 10 2.5 采样电路模块 .................................................... 11 2.5.1 电压采样电路 ................................................ 12 2.5.2 电流采样电路 ................................................ 12 2.5.3 输入的模拟量采样 ............................................ 13 2.6 电流取样 PI 控制器等组成的负反馈控制模块 ......................... 14 2.7 PI 调节器 ....................................................... 15 2.8 功率电路模块 .................................................... 17 2.8.1 电子模拟负载方式的选择 ...................................... 17 2.8.2 功率耗散 MOS 管的选型 ........................................ 17 2.9 电源电路的设计 .................................................. 18 第三章 3.1 3.2 3.3 3.4 第四章 电子负载软件系统设计 .......................................... 21 电压电流 A/D 采样程序设计 ........................................ 22 液晶显示子程序 .................................................. 22 D/A 转化程序 .................................................... 23 键盘识别处理程序设计 ............................................ 24 系统调试 ...................................................... 254.1 硬件调试 ........................................................ 25 4.2 软件调试 ....................................................... 26 4.3 软硬件综合调试 .................................................. 26 第五章 结论 .......................................................... 27致 谢 ................................................................ 28 参考文献 .............................................................. 29 附录一 整体电路原理图 ................................................. 30 附录二 电子负载设计程序 ............................................... 31 东华理工大学毕业设计(论文)绪 论绪论在人们生活的多个领域都要用到负载测试, 如充电电源试验、蓄电池放电试验以 及购买电池、电源时等都需要负载测试。当前,国内外对上述产品的试验一般都采用 传统的静态负载(如电阻、电阻箱、滑线变阻器等)能耗放电的办法进行。 随着电力电子技术的、计算机技术和自动控制技术的迅速发展,为电源检测技术 带来了革命性的变化。由于铁道电气化供电、电气牵引、信号控制 、无线通信、计 算机指挥调度中心及家庭日常生活等应用领域都在大量应用各种各样的电源, 因此人 们对电子负载的需求越来越多, 对其性能要求也越来越高。而传统的电源检测技术面 临着极大的挑战。 为准确检测电源的可靠性和带载能力,因此把电力电子技术和微机 控制技术有机地结合起来,实现电源的可靠检测。 从电源类型来看, 电子负载可分为直流电子负载和交流电子负载两种。直流电子 负载比起交流电子负载,应用的历史较长,范围更广。最初在实验室,利用电力电子 器件的特性,通过分析等值电路,用电力电子元件搭建电子电路来模拟负载,可以实 现定电阻、定电压等特性。随后又有工作人员将单片机技术应用到电子负载中,逐步 可实现定电流模式和可编程斜率模式。 单片机技术与变换器电路的密切结合还使得电 子负载可以工作在其它多种模式下:定功率模式、动态电阻模式、短路模式等。 随着功率场效应晶体管 (MOSFET),绝缘栅双极型晶体管(IGBT)和场效应晶闸管 (McT)等主要开关器件的出现以及电力电子变换器拓扑的发展,由于变换器能更好的 将一种电能变为另一种或多种形式的电能,交流电子负载也得到了实现。交流电子负 载是可以模拟传统真实阻抗负载的电力电子装置,它能模拟一个固定或变化的负载, 甚至将试验的电能反馈回电网, 其设计初衷是交流电源出厂试验。交流电源出厂试验 通常采用电阻箱耗能的办法,它存在调节不便、自动化程度低、耗电量大等缺点,而 采用交流电子负载进行试验可有效克服这些缺点,它可使试验更加简单、灵活,且大 大降低试验的成本。 电子负载可以模拟真实环境中的负载(用电器) 。它有恒流、恒阻、恒压和恒功 率功能,以及短路,过流,动态等等,应该说所有的电源厂家都会有用,而且也必须 有。电子负载分为直流电子负载和交流电子负载,由于电子负载的应用方面问题,直 流电子负载应用比较广泛,本文主要介绍直流电子负载。 电子负载与传统的模拟电阻性负载相比具有节能、体积小、重量轻、成本低、效 率高等优点, 由于电子负载所具有的性能特点和优点,电子负载被越来越多地应用到 各种试验场合。因此,电子负载的研究具有广阔的市场和广泛的应用前景。1 东华理工大学毕业设计(论文)第一章 电子负载系统设计方案第一章1.1 电子负载工作原理电子负载系统设计方案电子负载用于测试直流稳压电源、蓄电池等电源的性能。电子负载的原理是控制 内功率 MOSFET 或晶体管的导通量(占空比) ,靠功率管的耗散功率消耗电能的设备, 它能够准确检测出负载电压,精确调整负载电流,同时可以实现模拟负载短路,模拟负 载是感性阻性和容性,容性负载电流上升时间。它的基本工作方式有恒压、恒流、恒 阻、恒功率这几种。 (1)恒定电流方式 在定电流模式中,在额定使用环境下, 不论输入电压大小如何变化, 电子负载将 根据设定值来吸收电流。 若被测电压在5~10V变化,设定电流为100mA,则当调节被测电压值时,负载上 的电流值应维持在100mA不变, 而此时负载值是可变的。定电流模式能用于测试电压 源及AD/ DC电源的负载调整率。负载调整率是电源在负载变动情况下能够提供稳定的 输出电压的能力, 是电源输出电压偏差率的百分比。 (2)恒定电阻方式 此种状态下,负载如纯电阻,吸收与电压成线性正比的电流。此方式适用于测试 电压源,电流源的启动与限流特性。 在定电阻模式中, 电子负载将吸收与输入电压成线性的负载电流。 若负载设定为 1 kΩ , 当输入电压在1~10 V 变化时, 电流变化则为10~100 mA 。 (3)恒定电压方式 在定电压方式下电子负载将吸收足够的电流来控制电压达到设计值。 定电压模式 能被使用于测试电源的限流特性。 另外, 负载可以模拟电池的端电压, 故也可以使用 于测试电池充电器。 (4)恒定功率方式 在定功率工作模式时,电子负载所流入的负载电流依据所设定的功率大小而定,2 东华理工大学毕业论文(论文)第一章 电子负载系统设计方案此时负载电流与输入电压的乘积等于负载功率设定值,即负载功率保持设定值不变。 本电子负载机实现了在恒流模式下一定范围内的正常工作,PI 调节器的基准电压 由单片机 D/A 转换输出。 A/D 转换器与单片机连接把电路中电压电流的模拟信号转 用 换为数字信号,然后用液晶显示方式显示出即时的电压电流。1.2 系统设计要求根据电子负载的原理,设计出实现恒流模式下的电子负载:能够检测被测电压型 电源的电流、电压及功率并由液晶显示。在额定使用环境下,恒流方式为不论输入电 压如何变化(在一定范围内) ,电子负载将根据设定值来吸收电流,流过该电子负载 的电流恒定。 设计出最大功率为 100W,电流 O 一 20A,电压 O 一 50V 的直流电子负载。1.3系统总体设计方案论证根据系统的设计要求,得出以下三种方案: 方案一:如图 1-1 所示,运用传统的电子负载设计方式,通过比较器的比较结果及反馈来控制 MOSFET 的栅极电压,从而达到其内阻变化的目的。 方案二:如图 1-2 所示,采用了单片机作为核心控制器,设计了 AD 电压电流检 测电路、键盘电路、液晶显示电路和驱动电路,ATmegal6 单片机为核心处理器。键 盘、串口通讯和 LCD 实现人机交互,MOS 管电路为电子负载主电路。单片机输出一定 占空比的 PWM 控制信号, 控制功率电路 MOS 管的导通和关断时间,来获得实际所需的 工作电流、电压。电路中的检测电路为电压、电流负反馈回路,通过 A/D 采集到单片 机,与预置值进行比较,作为单片机进一步调节 PWM 占空比的依据。图 1-1 传统的电子负载设计3 东华理工大学毕业论文(论文)第一章 电子负载系统设计方案显 示At me gA/D 转 换电流检测 电压检测按键输入PWM 控制功率控制图 1-2 方案二系统设计模块方案三:为便于控制的实现和功能的扩展,如图 1-3 所示为新型电子负载设计 系统模块框图。采用了 STC89C52 单片机作为核心控制器,设计了 DA 输出控制电路、 AD 电压电流检测电路、键盘电路、液晶显示电路和驱动电路,通过软、硬件的协调 配合,实现了整个设计。通过运放、PI 调节器及负反馈控制环路,是整个电路的核 心实质,来控制 MOSFET 的栅极电压,从而达到其内阻变化。MOS 管在这里既作为电 流的控制器件同时也作为被测电源的负载,通过 PI 调节器控制 MOS 管的导通量,从 而达到流过该电子负载的电流恒定,实现恒流工作模式。VerfLCD显示D/A转化PI调节器UfMOS管R被测 电源STC89C52 单 片 机RR键 盘A/D转化 电流检测A/D转化电压检测图 1-3 方案三系统模块框图4 东华理工大学毕业论文(论文)第一章 电子负载系统设计方案经过比较,传统的设计方案主要靠硬件实现,成本较高。而且采用运放进行比较 控制 MOS 管只有通和断两种情况, 不能实现逐渐改变 MOS 管导通角的变化, 不易控制。 方案二通过单片机输出一定占空比的 PWM 控制信号,控制 MOS 管的导通和关断时间, 来获得实际所需的工作电流、电压。这对于占空比的细调节不易控制,误差较大。方 案三采用通过软、硬件的协调配合,实现了整个设计。通过运放、PI 调节器及负反 馈控制环路,能够较精确的控制 MOS 管的导通量,实现无静差的调节。故整个设计采 用方案三。1.4 系统具体设计方案电子负载系统由软、硬件共同组成。考虑到价格、工作速度、开发成本和可靠性 等因素,合理地分配了硬件和软件资源,对于某些既可用硬件实现,又可用软件实现 的功能,在进行设计时,充分考虑了硬件和软件的特点,高效地分配其资源,协调其 功能。 电子负载系统的硬件部分包括以下部分: (1) 单片机的选择与 I/O 的分配 (2) 液晶显示模块 (3) 键盘模块 (4) D/A 转换模块 (5) A/D 转换电压电流采样模块 (6) 电流取样 PI 控制器等组成的负反馈控制模块 (7) 电源电路模块 电子负载系统的控制程序,包括以下部分: (l)人一机联系程序。包括按键信息输入程序和液晶显示输出程序等。 (2)数据采集和处理程序。主要是 D/A 转换程序、A/D 转换程序、电压电流采样 程序。 本制作的电子负载, 主要实现其恒流工作模式,如图 1-3 所示为方案三系统模块 框图。电路的核心实质是一个电流取样 PI 控制器负反馈控制环路,MOS 管在这里既 作为电流的控制器件同时也作为被测电源的负载。PI 控制器控制 MOS 管的导通量变 化与截止,从而达到保持电流恒定的目的。控制部分采用 STC89C52 单片机来完成, 设定值通过键盘输入送往单片机, 再通过 DA 输出电路产生基准电压送往 PI 控制器与 实际电压相比较,基准电压与实际电压相比较的偏差控制 MOS 管的导通量变化与截 止, 从而达到保持电流恒定的目的。用 A/D 转换器把电路中的电压电流的模拟信号转 换为数字信号,通过单片机来控制转化,然后用液晶显示显示出即时的电压电流。5 东华理工大学毕业设计(论文)第二章 电子负载硬件系统设计第二章2.1 核心处理器的设计电子负载硬件系统设计核心处理器负责控制与协调其他各个模块工作,并进行简单的数字信号处理。在 整个电子负载系统中, 主控器是系统的控制中心,其工作效率的高低关系到系统效率 的高低以及系统运行的稳定性。设计过程中用单片机作为主控制器。 方案一:采用 ATMEL 公司的 AT89C51,51 单片机价格便宜,应用广泛,实现较为 复杂。但烧程序就不方便。 方案二:STC89C51 与 AT89C51 基本性能相同,但 STC89C51 RMB 较多,8K flash, 串口可以直接烧程序,可以和 Keil 直连。 本设计采用 Keil 软件实现其软件部分的设计,故选择方案二。U1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 VCC P1.6 P1.7 1 2 3 4 5 6 7 8 P1.0(T2) P1.1(T2EX) P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P3.3(INT1) P3.2(INT0) P3.5(T1) P3.4(T0) EA/VPP XTAL1 XTAL2 RST P3.7(RD) P3.6(WR) (AD0)P0.0 (AD1)P0.1 (AD2)P0.2 (AD3)P0.3 (AD4)P0.4 (AD5)P0.5 (AD6)P0.6 (AD7)P0.7 (A8)P2.0 (A9)P2.1 (A10)P2.2 (A11)P2.3 (A12)P2.4 (A13)P2.5 (A14)P2.6 (A15)P2.7 VCC GND (RXD)P3.0 (TXD)P3.1 ALE/PROG PSEN 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 JP2 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 VCC VCC GND 1 2 3 4 5 6 7 8S17 R10 1KR9 10KC110uFRSTP3.3 13 P3.2 12 P3.5 15 P3.4 14C32VCC 31 19 18 Y1 RST 9130P C430PP3.7 17 P3.6 1640 VCC 20 GND 10 11 30 29图 2-1 STC89C52 单片机与液晶显示模块连接电路表 2-1 单片机 I/O 口分配 I/O 口 P0.0--P0.7 P1.0―P1.3 P1.0―P1.4 应用 4×4 矩阵键盘输入 D/A 转换输出 液晶显示模块 I/O 口 P2.2―P2.7 XTAL1--XTAL2 RESET 应用 A/D 采样输入 时钟输入 单片机复位信号6液晶 显示插座 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计单片机总控制电路如图 2-1 所示:STC89C52 单片机在系统中主要实现以下功能: 设定值通过 D/A 转换输出基准电压;实际工作电压、电流 A/D 采样;LCD 显示;键盘 输入等。表 2-1 为电子负载系统中 STC89C52 的 I/O 口分配连接情况。2.2 显示模块的设计方案一:采用数码管显示。数码管具有接线简单、成本低廉、配置简单灵活、编 程容易、对外界环境要求较低、易于维护等特点。电压和电流的显示可以用数码管, 但数码管显示的信息量有限,只能显示简单的数字,其电路复杂,占用的系统 I/O 资源较多,显示信息少,不宜显示大量信息。 方案二:考虑到本系统中显示的内容以及系统的实用性,采用液晶显示(LCD) 。 液晶显示具有功耗低、体积小、质量轻、无辐射危害、平面直角显示以及影响稳定不 闪烁、 画面效果好、 分辨率高、 抗干扰能力强等优点。 点阵式 LCD 不仅可以显示字符、 数字,还可以显示各种图形、曲线及汉字,并且可以实现屏幕上下左右滚动、动画、 闪烁、文本特征显示等功能。 本次设计中要测量实际的电压电流值,采用的是 Nokia 5110 液晶显示模块可以 显示出电压电流等汉字,一面了然、外观比较好看。而且液晶显示功耗低、体积小、 质量轻、无辐射危害,与单片机连接较简单。故经过比较选择方案二 Nokia 5110 液晶显示特点: (1) 性价比高,可以显示 15 个汉字、30 个字符,价格相对便宜; (2) 接口简单,仅四根 I/O 线即可驱动; (3) 速度快,是 LCD12864 的 20 倍,是 LCD1602 的 40 倍; (4) Nokia5110 工作电压 2.3V,正常显示时工作电流 200uA 以下,具有掉电模式, 适合电池供电的便携式移动设备。MOSI LCD液晶显示 STC89C52MOSISPI时钟生成器图 2-2 单片机与 LCD 通信如图 2-1 所示为 STC89C52 单片机与液晶显示模块连接电路。如图 2-2 所示为单片7 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计机与 LCD 通信过程。 液晶的主要工作原理 (1)SPI 接口时序写数据/命令 Nokia5110(PCD8544)的通信协议是一个没有 MISO 只有 MOSI 的 SPI 协议:图 2-3 串行总线协议DDD传送 1 个字节(2)Nokia5110 的初始化 接通电源后,内部寄存器和 RAM 的内容是不确定的,这需要一个 RES 低电平脉 冲复位一下。图 2-4 Nokia 5110 复位时(3)显示英文字符 英文字符占用 6*8 个点阵,通过建立一个 ASCII 的数组 font6x8[][6]来寻址。 (4)显示汉字 显示汉字可以采用两种点阵方式,一种是 12*12 点阵,一种是 16*16 点阵。2.3键盘模块方案一: 非矩阵式键盘结构比较简单, 使用方便, 适合于较少开关量的输入场合。 每个按键需占用一根I/O 口线, 在按键数量较多时,I/O 口浪费大, 电路结构显得复 杂。并且此键盘是用于按键较少或操作速度较高的场合。 方案二:矩阵式键盘则适合于输入命令或者数据较多、功能复杂的系统。采用矩 阵式键盘结构可以最大限度地使用单片机的引脚资源, 矩阵式键盘适用于按键数量较 多的场合, 由行线和列线组成, 按键位于行列的交叉点上,节省I/O 口,因此其应用 十分广泛。8 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计在系统设计中需要通过键盘中输入设定值,通过D/A转化输出实际值。所以需要 有0-9的数字键、小数点等等按键,按键较多,所以键盘模块采用方案二。VCCR1 1 0K S1 P0.0 S5 P0.1 S9 P0.2 S13 P0.3P0. 7 P0. 6R2 1 0K S2 S3R3 1 0K S4R4 1 0KR5 S6 S7 S8 1 0K R6 1 0K R7 S14 S15 S16 1 0K R8P0. 5 P0. 4S10S11S121 0K图 2-5 4×4 矩阵键盘电路图如图 2-5 所示:本系统通过矩阵电路进行按键输入,采用的是 4x4 矩阵键盘, 电子负载系统中按键需要实现的功能有: (l) 0-9 数字键:本设计中采用专用的数字输入按键,每次按下数字键一次,送往 单片机,按位输入的数据提取出来,转换为十进制数据。 (2) 小数点键:本设计中精度要求较高,输入的设定值会有需要带小数点。在第一 位按键扫描后, 每次按下小数点键,在按下确认键后与数字键一样通过液晶显示显示 出来。 (3)自动调节启动停止按键:该按键把电子负载功能划分为设置和调节两部分, 没有 按下该按键时,默认为功能设置,此时单片机只预置数据输入、按键查询、预置数据 LCD 显示等功能;而当按下该按键 1 次后,单片机将转为执行负载调节、A/D 采集、 实际数据 LCD 显示等功能。 (4)预置数据确定按键:按下该按键后,将取消其他键的功能,并把按输入的数据送 往提取出来,送往单片机,之后转换为十进制数据,通过液晶显示显示出来。 (5)复位清零键:当输入有误时,按下该键可以清除显示屏。 按键采用逐行扫描法进行识别,单片机逐行扫描各键,先让每行输出低电平,检 测各列是否有低电平产生,如果检测到列有低电平输出,说明有键按下,接着让每行 分别依次输出低电平,其余行行输出高电平,在检测每一列的低电平情况,两次低电 平的交叉处便是键按下的地方。9 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计2.4 D/A 转换模块的选择方案一 DAC0832 是 8 分辨率的 D/A 转换集成芯片。这个 DA 芯片以其接口简单、 转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A 转换器由 8 位输入 锁存器、8 位 DAC 寄存器、8 位 D/A 转换电路及转换控制电路构成。 方案二:TLC5615 D/A采用的是串行数模转换器。TLC5615是一个串行1O位DAC芯 片,性能比早期电流型输出的要好。只需要通过3根串行总线就可以完成1O位数据的 串行输入, 易于和工业标准的微处理器或微控制器(单片机)接口,适用于电池供电的 测试仪表,是具有串行接口的数模转换器。 本设计需要测出电压值、电流值,对设定值的精确度要求更高。所以采用 1O 位 DAC 芯片,分辨率较高。同时模拟数字转换器 TLC5615 采用接口简单的,使得硬件电 路大为简化,线路板面积缩小,成本降低,故选择方案二。 如图 2-6 所示为 D/A 转换输出电路原理图。D/A 变换输出采用 TLC5615 与单片机 连接设定值通过键盘输入送往单片机, 再通过 DA 输出电路产生基准电压送往 PI 控制 器与实际电压相比较。U1 P1. 0 P1. 1 P1. 2 P1. 3 VCC P1. 4 VREF P1. 5 +2. 5 V 6 P1. GND P1. 7 1 2 3 4 5 6 7 8 P1. 0 (T 2) P1. 1 (T 2E X) P1. 2 P1. 3 P1. 4 P1. 5 P1. 6 P1. 7 P3. 3 (INT 1) P3. 2 (INT 0) P3. 5 (T 1) P3. 4 (T 0) E A/ VPP XT AL 1 XT AL 2 RST P3. 7 (RD) P3. 6 (W R) (AD0 )P0 . 0 (AD1 )P0 . 1 (AD2 )P0 . 2 (AD3 )P0 . 3 (AD4 )P0 . 4 (AD5 )P0 . 5 (AD6 )P0 . 6 (AD7 )P0 . 7 (A8 )P2 . 0 (A9 )P2 . 1 (A1 0)P2. 2 (A1 1)P2. 3 (A1 2)P2. 4 (A1 3)P2. 5 (A1 4)P2. 6 (A1 5)P2. 7 VCC GND (RXD)P3. 0 (T XD)P3. 1 AL E / PROG PSE N 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 P0. 0 P0. 1 P0. 2 P0. 3 P0. 4 P0. 5 P0. 6 P0. 7 P2. 0 P2. 1 P2. 2 P2. 3 P2. 4 P2. 5U3 P1. 0 P1. 1 P1. 2 P1. 3 1 2 3 4 8 7 6 5T L C5 61 5P3. 31 3 P3. 21 2 P3. 51 5 P3. 41 4 C3 VCC3 123 0P Y1 C419 18 RST 93 0PP3.7 17 P3.6 164 0 VCC 2 0 GND 10 11 30 29在电路设计中 VREF = 2Vrefin×N/1024;其中,Verfin 为 TLC5615 的参考电 压,取 1.5V,N 为输入设定值的二进制数。VREF 为到 PI 调节器与实际值相比较的基 准电压。如图 2-7 所示为 TLC5615 与反相器的连接图,见式(2-1)为 D/A 变换输出 通过一个反相器送到 PI 调节器的基准电压与输入给定电压的关系。 VREF = 5N/1024 (N 为输入设定值的二进制数)101图 2-6 D/A 转换输出电路原理图(2-1) 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计如图 2-8 TLC5615 的时序图可以看出,当片选 CS 为低电平时,输入数据 DIN 由 时钟 SCLK 同步输入或输出,而且最高有效位在前,低有效位在后。输入时 SCLK 的上 升沿把串行输入数据 DIN 移入内部的 16 位移位寄存器,SCLK 的下降沿输出串行数据 DOUT,片选 CS 的上升沿把数据传送至 DAC 寄存器。 R24 U3P1.0 1 P1.1 2 P1.2 3 P1.3 4 8 7 6 5 VCCVREF1K R23 1K OP37 -12V R14 12V -VREFTLC5615+2.5V GND图 2-7 TLC5615 与反相器连接图图 2-8 TLC5615 时序图2.5 采样电路模块方案一采用 8 位 A/D 转换器 ADC0809 是一种 8 路模拟输入的 8 位逐次逼近式 A/D 转换器,为 CMOS 型单芯片器件。其作用可根据地址译码信号来选择 8 路模拟输入而 共用一个 A/D 转换器。但其占用端口多,转换频率低于 1M。 方案二采用 10 位 A/D 转换器 TLC1549 系列具有串行控制、连续逐次逼近型的模 数转换器, 它采用两个差分基准电压高阻输入和一个三态输出构成三线接口。 TLC1549 采用 CMOS 工艺。内部具有自动采样保持、可按比例量程校准转换范围、抗噪声干扰 功能,而且在设计时使在满刻度时总误差最大仅为 3.8 mV,因此可广泛应用于模拟 量和数字量的转换电路。 两者相比,TLC1549 系列器件性能优良、速度快、功耗低、精度高、可靠性好、 接口简便,实用价值高,同时与 10 位的 TLC5615 DA 输出基准电压精度相同,不会导 致电路精度降低,故选择方案二。 采样电路是检测和测量环节的重要技术手段,为了让负载准确工作在恒流方式 下,设计中对被测电源的输出电压和 MOS 管的电流进行实时采样。采样 A/D 选用 10 位精度的 TLC1549、精度较高。 采样电路包括电压采样电路和电流采样电路, 如图 2-9 所示为电压电流采样电路 原理图。 从功率电路采集实际工作电压和电流, 反馈到单片机, 再通过液晶显示出来, 实现自动循环的调节。11 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计2.5.1电压采样电路电压采样电路中,由于电子负载的输入电压范围比较宽,实际工作电压较高,采 样前首先进行了分压设计。 如图 2-9 所示采用 1/11 的分压, 输出送往 A/D 采样 TLC1549 添加一个电压跟随器,没有放大作用,输出电压与输入电压相同,提高了输入阻抗, 对电路进行缓冲, 起到承上启下的作用。 同时取到隔离作用, 减小了电磁干扰的影响, 减小了强电流功率电路对控制电路的损害。 如图 2-9 所示,被试电源两端的电压 U 与电压采样点电压 Ub 的关系为 Ub=R19/( R19+ R18)U=10K/(10K+100K)U=1/11U 所以 U=11UbR1 3 6 0K -VRE F R1 1 4 0K 1 2V 0 . 75 uF Q2 IRFP4 60 R1 8 1 00 K C5 R+(2-2) (2-3)U f R1 24 0K OP37 -1 2V R1 4 1 2V R1 5 1K OP37 U5 VCC 1 Ua 1 2 3 GND 4 8 VCC 7 P3. 4 6 P3. 3 5 P3. 2 R1 6 1K VCC 1 Ub 1 2 3 GND 4 U4 -1 2VUb UaR1 9 1 0K R1 7o .2 5R1 2V R2 0 1K OP37 8 VCC 7 P3. 7 6 P3. 6 5 P3. 5 -1 2V R2 1 1KT L C1 54 9T L C1 54 9图 2-9 电压电流采样电路原理图2.5.2电流采样电路电流采样电路中, 首先借助采样电阻 R17 将电流信号转换为电压信号,输出送往 A/D 采样 TLC1549 添加一个电压跟随器,不取到放大作用。如图 2-9 所示,提高电路 带负载能力,取到缓冲、隔离作用。 如图 2-9 所示负载电流 I 与电流采样点电压 Ua 的关系为 I=Ua/R17=Ua/0.25 (2-4) 采样电阻 R17 的电阻为 0.25 欧姆,为锰铜采样电阻,阻值较小,但可以承受大 功率,采样电阻分流对整个电路影响较小。采样电阻 R17 电流-电压转换元件(I/V12 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计converter),落在 R17 上的电压降通过 PI 调节器与基准电压(VERF)比较,控制 MOS 管的导通量变化与截止, 从而达到保持电流恒定的目的。这种电阻适用于高功率及高 电流的电源供应器,电路板的电路侦测,具有稳定性佳,低温度系数,散热性好的特 性。 2.5.3 输入的模拟量采样U5 VCC 1 Ua 1 2 3 GND 4 8 VCC 7 P3.4 6 P3.3 5 P3.2T L C1549图 2-10tlc1549 引脚图图 2-11tlc1549 时序图(1)TLC1549 工作原理 TLC1549 具有 6 种串行接口时序模式, 这些模式是由 I/O CLOCK 周期和 CS 定义。 根据 TLC1549 的功能结构和工作时序,其工作过程可分为 3 个阶段:模拟量采样、模 拟量转换和数字量传输。如图 2-11 所示为 TLC1549 的时序图。 (2)输入模拟量采样 在第 3 个 I/O CLOCK 下降沿,输入模拟量开始采样,采样持续 7 个 I/O CLOCK 周期,采样值在第 10 个 I/O CLOCK 下降沿锁存。 (3)数字量得传输 当片选 CS 由低电平变为高时,I/O CLOCK 禁止且 A/D 转换结果的三态串行输 出 DATA OUT 处于高阻状态;当串行接口将 CS 拉至有效时,即 CS 由高变为低时,CS 复位内部时钟, 控制并使能 DA-TA OUT 和 I/O CLOCK, 允许 I/O CLOCK 工作并使 DATA13 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计OUT 脱离高阻状态。串行接口把输入/输出时钟序列供给 I/O CLOCK 并接收上一次 转换结果。首先移出上一次转换结果数字量对应的最高位,下一个 I/O CLOCK 的下 降沿驱动。DATA OUT 输出上一次转换结果数字量对应的次高位,第 9 个 I/OCLOCK 的下降沿将按次序驱动 DATA OUT 输出上一次转换结果数字量的最低位,第 10 个 I/ OCLOCK 的下降沿,DATA OUT 输出一个低电平,以便串行接口传输超过 10 个时钟;I /O CLOCK 从主机串行接口接收长度在 10~16 个时钟的输入序列。CS 的下降沿,上 一次转换的 MSB 出现在 DATA OUT 端。10 位数字量通过 DATA OUT 发送到主机串行接 口。为了开始传输,最少需要 10 个时钟脉冲,如果 I/OCLOCK 传送大于 10 个时钟, 那么在第 10 个时钟的下降沿,内部逻辑把 DATA OUT 拉至低电平以确保其余位清零。 在正常转换周期内, 即规定的时间内 CS 端由高电平至低电平的跳变可以终止该周期, 器件返回初始状态(输出数据寄存器的内容保持为上一次转换结果)。 由于可能破坏输 出数据,所以在接近转换完成时要小心防止 CS 拉至低电平。2.6 电流取样 PI 控制器等组成的负反馈控制模块电子负载的核心实质是一个电流取样 PI 控制器组成的负反馈控制环路,也是电 子负载的功率控制电路。MOS 管在这里既作为电流的控制器件同时也作为被测电源的 负载。采样电阻 R17 电流-电压转换元件(I/V converter),落在 R17 上的电压降通 过 PI 调节器与基准电压(VERF)比较,控制 MOS 管的导通量变化与截止,从而达到 保持电流恒定的目的。R1 3 6 0K -VRE F R1 1 4 0K 1 2V 0 . 75 uF Q2 IRFP4 60 R1 8 1 00 K C5 R+U f R1 24 0K OP37 -1 2V R1 4 1 2V R1 5 1K OP37 U5 VCC 1 Ua 1 2 3 GND 4 8 VCC 7 P3. 4 6 P3. 3 5 P3. 2 R1 6 1K VCC 1 Ub 1 2 3 GND 4 U4 -1 2VUb UaR1 9 1 0K R1 7o .2 5R1 2V R2 0 1K OP37 8 VCC 7 P3. 7 6 P3. 6 5 P3. 5 -1 2V R2 1 1KT L C1 54 9T L C1 54 9图 2-12 电流取样 PI 控制器等组成的负反馈控制电路14 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计如图 2-12 所示为电流取样 PI 控制器等组成的负反馈控制电路。这个电路中,设 定值与实际值相比较。当 R17 上的电压降 Uf 即实际值大于设定值 VERF 时,通过 PI 调节器的调节,减小 MOS 管的导通角,减小 MOS 管的导通量,使 MOS 管的内阻增大, 流过电阻 R17 的电流减小,则电压降 Uf 慢慢减小并等于设定值,从而实现电子负载 的恒流工作模式;当 R17 上的电压降 Uf 即实际值小于设定值 VERF 时。通过 PI 调节 器的调节,增大 MOS 管的导通角,增大 MOS 管的导通量,使 MOS 管的内阻减小,流过 电阻 R17 的电流增大,则电压降 Uf 慢慢增大并等于设定值,从而实现电子负载的恒 流工作模式,这是一个 PI 调节器调节过程。2.7 PI 调节器对于电子负载的设计需要较高的精确度, 同时控制 MOS 管的导通量的变换也需要 一个不停的变化调节过程, 而不是传统的采用运放比较器组成的反馈电路来实现。传 统的仅靠比较器来比较设置值与实测值,比较后的输出作用于 MOS 管。这样组成的反 馈系统误差很大、精度低,只能控制 MOS 管的通或断,就只有全导通或全关闭两种极 值情况, 很难准确的消除误差实现其恒流模式的控制。所以需要一个更加精确的调节 器来控制 MOS 管的导通量,使其导通角能够在可承受电压范围内,按照偏差的大小, 对实测值与给定值的偏差分别进行比例和积分运算, 取其和构成连续信号以控制调节 导通角的增大或缩小达到设定值等于实际值。R13 60K -VREF R11 40KC5Uin Uex12V 0.75uFUexUexmU f R1240K OP37 -12V R14KpiUin0t图 2-13 PI 调节器2-14 PI 调节器的输出特性如图 2-13 所示为 PI 调节器,PI 调节器的输出电压 Uex 由比例和积分两个部分 组成, 在零初始状态和阶跃输入信号作用下, 其输出电压的时间特性如图 2-14 所示, 由图可以看出比例积分作用的物理意义。当突加输入电压 Uin 时,由于开始瞬间电容15 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计C 相当于短路,反馈回路只有电阻 R1,使输出电压 Uex 突跳到 KPIUin。此后,随着电 容 C 被充电,开始体现积分作用,Uex 不断线性增长,直到达到输出限幅值或运算放 大器饱和。这样,当单闭环调速系统采用比例积分调节器后,在突加输入偏差信号△ Un 的动态过程中,在输出端 Uct 立即呈现 Uct=KPI△Un,实现快速控制,发挥了比例 控制的长处;在稳态时,又和积分调节器一样,又能发挥积分控制的作用,△Un=0, Uct 保持在一个恒定值上,实现稳态无静差。 因此, 比例积分控制综合了比例控制和积分控制两种规律的优点,又克服了各自 的缺点,扬长避短,互相补充。比例部分能够迅速响应控制作用,积分控制则最终消 除稳态偏差。 作为控制器, 比例积分调节器兼顾了快速响应和消除静差两方面的要求。 故 PI 调节器应用在电子负载的设计中,实现对 MOS 导通角的有效控制,具有积分作 用的调节器, 只要被调量即电子负载电路中的实测值与设定值之间有偏差,其输出就 会不停的变化。反复调节,消除稳态误差,实现无静差的调节。 PI 调节器是一种线性控制器,它根据给定值 r(t)与实际输出值 c(t)构成控制偏 差 e(t)= r(t)―c(t) 控制规律为u(t) ? K p [ e ( t ) ? 1 TI(2-5)将偏差的比例(P)和积分(I)通过线性组合构成控制量,对被控对象进行控制,其?te ( t ) dt ](2-6)0其中 u(t)为 PI 控制器的输出,e(t)为 PI 调节器的输入,Kp 为比例系数,TI 为积分 时间常数。 1.比例环节即时成比例的反映控制系统的偏差信号 e(t),偏差一旦产生,控制 器立即产生控制作用,以减少偏差。通常随着 Kp 值的加大,闭环系统的超调量加大, 系统响应速度加快,但是当 Kp 增加到一定程度,系统会变得不稳定。 2.积分环节主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积 分常数 TI,TI 越大,积分作用越弱,反之越强。通常在 Kp 不变的情况下,TI 越大, 即积分作用越弱,闭环系统的超调量越小,系统的响应速度变慢。 本次电子负载设计,为了较快且更加精确的消除误差。对于 PI 调节器,如图 2-14 所示的 PI 调节器,取 R11、R12=40K,R13=60K ,C=0.75uF Kp=R13/R11=1.5 TI= RC=0.03S 所以本设计的 PI 调节器的 Kp 取 1.5,TI 取 0.03S。 (2-6) (2-6)16 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计2.8 功率电路模块2.8.1 电子模拟负载方式的选择 方案一:晶体管式电子模拟负载:晶体管是通过一定的工艺,将两个 PN 结结合 在一起的器件。 通过基极电流可以控制集电极电流,从而可以达到控制晶体管作为一 个可变负载的目的。 大功率晶体管构成的功率恒流源充当负载,通过吸收电源提供的 大电流,从而模拟复杂的负载形式。即通过将恒压、恒流、恒阻误差信号经过放大, 再送入逻辑或控制电路, 用选中的误差信号来调整晶体管的内阻,以达到模拟变化负 载的目的。由于晶体管属于电流控制性器件,在控制变化速度上较慢,因此适合模拟 一些电流恒定或是变化缓慢的实际负载。其次,晶体管还存在温度系数为负的问题, 所以在使用过程中还需要考虑温度补偿的问题。 方案二:场效应管式电子模拟负载:场效应晶体管(MOSFET)工作在不饱和区时, 漏极与源极之间的伏安特性可以看作是一个受栅一源电压控制的可变电阻。用 MOSFET 作可变电阻具有工作速度快,可靠性控制灵敏等优点,而且既无机械触点, 也无运动部件,噪声低、寿命长。MOSFET 的通态电阻较大,且负载电流较小。所以 MOSFET 适合模拟一些变化速度较快,但电流不大的实际负载。 综合电子负载的特性,故选择方案二场效应管式电子模拟负载。 2.8.2 功率耗散 MOS 管的选型方案一:采用 MTY25N60E MOS 管,它常用于电力领域的应用。专为高电压、高速 开关芯片,可以应用于电力供应、电机控制、PWM 变流器等领域。 方案二:采用 IRFP460 芯片,TIP122 芯片效率比方案低,总功耗相对较高。其通 用参数为: (1)漏极-源极击穿电压 Vdss=500V (2)静态导通电阻 Rds(on)=0.25 ? (3)漏源连续导通电流 Id=22A (4)功 (5)极 率:Ptot=278W 性:NPN鉴于 MOS 管的良好开关特性,在此次设计中,对被测电源功率的控制,也就是对 电流的控制,故选用方案二。 场效应管是一种单极型晶体管,它只有一个 P-N 结,在零偏压的状态下,它是导 通的, 如果在其栅极(G)和源极(S)之间加上一个反向偏压(称栅极偏压),在反向电场 作用下,P-N 变厚(称耗尽区),沟道变窄,漏极电流变小。当反向偏压达到一定时,17 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计耗尽区将完全沟道“夹断” ,此时场效应管进入截止状态。 MOS 型晶体管的特点是特别适合于开关状态工作,因为它正向导通时的电阻极 小,而且开关速度快,所以是一种理想的开关元件。 (1)栅极控制功率小。和双极型晶体管相比,MOS 管栅极是绝缘的、在高频工作 时虽然有栅极电流存在。但其值甚小,所以栅极的输入功率也很小。 (2)由于 MOS 管是电压控制器件,它不像双极型晶体管那样,在基区有可能积存 大量少数载流子,从而影响高速开关。所以同样功率的管子,MOS 型的开关速度要比 双极型管子快得多。 (3)MOS 管子的耐压比双极型管于低、常很少超过 1000V、双极型管子可以做到 1600V 以下。 (4)MOS 管子不像双极型管子那样存在明显的二次击穿现象,所以在中、低压情 况下,其工作的可靠性要高―些,过电压保护的设计也可以简单一些。如图 2-15 所 示为 N 沟道增强型 MOS 管的转移特性曲线,如图 2-16 所示为 N 沟道增强型 MOS 管的 输出特性曲线。iD IDOiD IDO可变电 阻区预夹断轨迹恒流区UGS=2UGS(th)UGS2OUGS(th) 2UGS(th) UGS夹断区OUGS=UGS(th) UD图 2-15 N 沟道增强型 MOS 管的转移特性曲线图 2-16 N 沟道增强型 MOS 管的输出特性d gQ2 IR FP4 60s图 2-17 N 沟道增强型 MOS 管电子负载的恒流控制,它的功率控制电路主要包括场效应管(MOSFET)、电流取18 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计样 PI 控制器、运放等组成负反馈控制环路。这是整个系统设计的核心,也是电子负 载的核心部分。 如图 2-17 所示为 N 沟道增强型 MOS 管, 管不仅作为电流控制器, MOS 而且作为被测电源的负载,IRFP460 为 N 沟道增强型 MOS 管,所以整个设计的技术指 标是根据 IRFP460MOS 管的参数进行选定的。 IRFP460MOS 管的饱和漏源电流 Id=22A 由 取整个电子负载设计的电流范围为 0-20A,根据锰铜采样电阻的阻值 0.25 欧姆,可 算出功率的最大值为 100W,故整个设计的功率范围为 0-100W。考虑到有时候被测电 源电压较大, 在漏极-源极击穿电压 Vdss=500V 的基础上,整个设计的电压范围设为 0-50V。2.9 电源电路的设计单片机电源设计包含 3 个方面的内容:一是电源功耗,二是电源电压,三是电源 管理。 电源电压的设计主要针对系统需求的不同电压进行的电源分配,在电子负载系 统中, 单片机的工作电压是 1.7-4.5V;运放和其它元器件也可以工作在 0-24V 电压下, A/D、D/A 转换芯片可以工作在 5V 电压下。本电路设计中利用 HCPL-78XX 、79XX 系 列的 3 端正稳压电路和具有良好热稳定性能的三端可调分流基准电压源 TL431 实现 整个电源电路的设计。利用 TL431 输出 2.5V 电压作为输入基准源供 TLC5615 进行 DA 转换。 HCPL- 78XX 系列为 3 端正稳压电路内含过流、过热和过载保护电路。带散热 片时,输出电流可达 1A。具有过热保护;短路保护;输出晶体管 SOA 保护。虽然是固 定稳压电路,但使用外接元件,可获得不同的电压和电流。负 极 考 8参 端In p u t R2 2 250112 .5 VC1 4 8 T L 4 31 0 . 33 uF图 2-186正 极T L 431TL431 符号图 2-19 TL431 输出 2.5V 电压连接图TL431 是一个有良好的热稳定性能的三端可调分流基准电压源。它的输出电压用 两个电阻就可以任意地设置到从 Vref(2.5V)到 36V 范围内的任何值。该器件的典 型动态阻抗为 0.2Ω ,在很多应用中可以用它代替齐纳二极管,例如,数字电压表、 运放电路、 可调压电源, 开关电源等等。 如图 2-18 所示为 TL431 符号, 2-19 为 TL431 图 输出 2.5V 电压连接图。将 Cathode(负极)与 Reference(参考端)连接起来,会得196 东华理工大学毕业论文(论文)第二章 电子负载硬件系统设计到 VKA = Vref =2.5V,2.5V 作为输入基准源供 TLC5615DA 进行转换。+12V VCC 78121R222.5V17805C10 0.1uF C11 0.33uF C12 0.1uF250C13 0.33uF C14 8 0.33uFT1 ~220V 4D 2 C6 470uFC8 0.33uFTL431 C7 0.33uF C9 0.1uF63-12V 7912图 2-20 电源电路原理图如图 2-20 所示为电源电路原理图。 电源电路利用 78XX 系列集成稳压器的典型应 用电路,利用串联输出不同的电压,供电路各个部分工作。经过 220V 交流电降压后 通过整流桥的作用,之后通过 7812 输出+12V 和通过 7912 输出-12V 的直流电压供给 运放工作,再通过 7805 输出+5V 的直流电压供给单片机 A/D、D/A 芯片工作。最后通 过串联具有良好热稳定性能的三端可调分流基准电压源 TL431 产生 2.5V 的直流电压, 作为 D/A 转换的输入基准电压。C6、C13、C14 为滤波电容,C7、C8、C9、C10、C11、 C12 为分别输入端和输出端滤波电容。20 东华理工大学毕业设计(论文)第三章 电子负载软件系统设计第三章电子负载软件系统设计本系统程序设计都是采用 Keil 开发软件, 语言程序。 语言较方便, C C 通俗易懂。 而且本系统采用的是模块化编程思路,使得程序更具有移植性和可读性。 Keil IDE μ Vision2 集成开发环境是 Keil Software 开发的基于 80C51 内核的 微型处理器软件开发平台, 内嵌多种符合当前工业标准的开发工具。可以完成从工程 建立、管理、编译和链接,目标代码的生成,软件仿真,硬件仿真等完整的开发流程。 尤其 C 编译工具在产生代码的准确性和效率方面达到了较高的水平, 而且可以附加灵 活的控制选项,在开发大型项目时非常理想。 Keil 软件开发的流程: ⑴建立工程。 ⑵为工程选择目标器件。 ⑶设置工程的配置参数。 ⑷打开/建立程序文件。 ⑸编译和链接工程。 ⑹纠正程序中的书写和语法错误并重新编译连接。 ⑺对程序中某些纯软件的部分使用软件仿真验证。 ⑻使用 TKS 硬件仿真器对应用程序进行硬件仿真。电压电流采样 子程序入口 初始化初始化A/D转 换通通开始 系统初始化按键扫描处理程序启动A/D转换D/A转换产生基准电压NA/D转化是否完成电压电流采样A/D转化Y液晶显示程序N数据处理检测电源是否完成? Y汉字数据显示子程序结束返回图 3-1 软件主程序流程图 21图 3-2 电压电流采样流程图 东华理工大学毕业论文(论文)第三章 电子负载软件系统设计主程序软件流程如图 3-1 所示, 在图 3-1 中软件首先进行 DA、 LCD 液晶显示、 AD、 控制变量初始化, 再调用键盘扫描处理程序,在没有按下没有按下自动调节启动停止 按键时,默认为功能设置,此时单片机只预置数据输入、按键查询、预置数据 LCD 显示等功能;而当按下该按键 1 次后,单片机将转为执行负载调节、A/D 采集、实际 数据 LCD 显示等功能。3.1 电压电流 A/D 采样程序设计如图 3-2 所示为电压电流采样流程图,先复位时序成功后,启动 A/D 转换口,再 送十个时钟信号进行串行采样, 当第十个时钟信号下降沿到来时,判断 A/D 转化是否 完成,若采样完成,将模拟输入量转化为数字量,送往显示,测出电压值、实际电流 值和功率值。 TLC1549 是串行转化, 同样对时序有严格要求, 复位时序成功后, 即可进入采样, 采样后在经过处理。对于电流的检测将电流转化为电压进行检测,然后在 TLC1549AD 转换过程中转化回电流,最后送往液晶显示出来。检流电阻选用的是 100W 0.25 欧姆 的功率电阻。3.2 液晶显示子程序如图 3-3 所示为液晶显示子程序流程图,液晶显示采用的是 Nokia 液晶屏,体 积不大, 当对其初始化及复位成功后就可调用相应的显示子程序对要显示的内容进行 显示。显示的内容可以采用取模软件取出数组,将对应的点显示出,最终组合显示出 需要的字体或数字。 LCD 控制程序遵循 SPI 传输协议。SPI 是一个全双工同步串行数据 3 线同步字节 传输总线接口,加上片选共 4 线,是基于主/从工作模式的总线协议,有写冲突保护 和总线竞争保护,由 Motorofa 在其 MC68HCXX 系列中定义的标准接口。SPI 中 4 线的 功能如下: SCK 信号线:由 SPI 总线上的主设备产生。它可以调整数据比特流,设备可在不 同的波特率下传输数据。SCK 根据传输的每一位来循环。 MOSI 信号线:数据从 SPI 总线的主设备输出,然后从 SPI 的从设备输入。 MISO 信号线:数据从 SPI 总线的从设备输出,然后从 SPI 的主设备输入。只有一 个被选择的从设备能驱动从 MOSO 输出。 CS 线号线:此信号通过硬件控制选择一个特殊的从设备,没有被选中的从设备不 予 SPI 总线交互通信。 SPI 主机和从机之间,主机通过将待通信的从机的 CS 引脚拉低,实现与从机的22 东华理工大学毕业论文(论文)第三章 电子负载软件系统设计同步, 主机启动一次 SPI 通讯。 主机和从机将需要发送的数据放入相应的移位寄存器。 主机在 SCK 引脚上产生时钟脉冲以交换数据。主机的数据从主机的 MOSI 移出,从从 机的 MOSI 移入;从机的数据从从机的 MISO 移出,从主机的呱 50 移入。如图 2-2 所 示为单片机与 LCD 通信。3.3 D/A 转化程序由于 TLC5615 是串行输出的,且其输出采用的是 SPI 总线模式,所以现对 SPI 时序做初始化,初始化完后即可调用将数字量转化为模拟输出。 如图 3-4 为 D/A 转化子程序流程图。当键盘按下确认后,设定值送往单片机数据 处理转化为二进制数后送 TLC5615 进行 D/A 转化,有数送入时 scs=0;sclk=0 即对 SPI 时序做初始化,开始产生上升沿,数据被锁存,形成 DA 输出。在前 10 个时钟内 输入的是 10 位 DA 数据,后两个时钟周期为填充字节 scs = 1;sclk = 0,scs 的上 升沿和下降沿只有在 sclk 为低的时候才有效,D/A 转化完成产生基准电压,转换输 出至 PI 调节器控制 MOS 管工作 LCD显示 入口初始化片选D/A芯片 scs=0TLC5615D/A转 化子程序入口复位成功 调用汉字或数字显 示子程序N sclk=0产生上升 沿设置显示坐标 写入字库数据 显示数据 返回12个时钟周期是 否完成 Y scs=1,sclk=0完 成转化返回图 3-3 显示子程序流程图图 3-4 D/A 转化子程序流程图23 东华理工大学毕业论文(论文)第三章 电子负载软件系统设计3.4键盘识别处理程序设计进入按键处 理子程序键盘扫描子 程序 有按键 否? Y 按键处理子 程序 N键盘扫描子程序Flag++P0口前四位逐行送低电平是否数字 键、小数点 NY显示子程序N 是否确认键读取列值 Y 有键按下? N 扫描下一位 返回 读取键码值Y 调用D/A转 化子程序 调用A/D转 化子程序 显示电压电 流功率是否清除 键 Y 清除LCD 显示屏 flag=oNN Flag=6?Y返回图 3-5 键盘扫描子程序流程图图 3-6 按键处理子程序流程图如图 3-5 所示为按键扫描子程序流程图。键盘识别采用逐行扫描方式,对每一行 进行扫描,当扫到某列有点平变化是则读取键值并处理。无按键是则返回 NOKEY。 如图 3-6 所示为按键处理子程序流程图。按键处理子程序包括按键的输入,按键 识别及处理,按键识别有开始键、数字 0―9 键,小数点键,清零复位键及数据输入 确认键。允许输入的键盘查询流程范围为 0DD99.99,超出的数在确认时能自动清 零重新输入,说明输入数据无效。数据确认输入后送 D/A 转换输出至比较器控制 MOS 管工作。 先按下键盘的开始键,单片机只执行按键查询、LCD 显示等功能。输入设定的电 压电流预置值,主要完成负载设置,再经过 D/A 转化产生基准电压,通过 PI 调节器 及反馈来控制 MOSFET 的栅极电压, 主要完成负载调节, 在恒流的工作模式下进行 A/D 电压电流检测,测出电子负载的实际电压电流值,并通过液晶显示屏显示出来24 东华理工大学毕业设计(论文)第四章 系统调试第四章系统调试调试是整个设计任务中一个不可缺少, 非常重要的一个环节。 为了达到设计要求, 先后进行了以下三个阶段的调试工作:硬件调试、软件调试、软硬件联合调试。4.1 硬件调试我在整个电子负载设计过程中,硬件方面的设计主要是硬件电路的设计。在画电 路原理图过程中是分模块设计的,根据各个模块的设计思路,合理选取芯片的参数。 由于电子负载是测试仪,要根据被测电源的电压电流进行选择芯片,在选取芯片时出 现了一点问题,特别是 MOS 管的选择。MOS 管在这里既作为电流的控制器件同时也作 为被测电源的负载。整个设计的参数也要根据 MOS 管的耗散功率、额定电压、额定电 流来选取。同时采样电阻的选择时也出现了一点问题,对于找的一些资料,看到采样 电阻的选取都很小,小到毫欧。我觉得这个电阻要是普通电阻的话,当有大电流通过 时,就相当于导线,设这个电阻就没意义了。后来经过老师和上网查找资料,终于明 白这种电阻是一种锰铜电阻,专门运用于电流采样电路中,能够承受较大功率,并且 其电阻较小,对于电流的分流作用影响较小,从而对电路的影响较小。 控制 MOS 管的导通量的电路模块,是整电子负载电路的核心部分。同时也是电子 负载实现恒流方式的关键部分。 刚开始我一直运用传统的电子负载设计方式,用传统 的比较器来比较给定值和实际值。利用比较的结果作用在 MOS 管栅极上,从而达到其 内阻变化的目的,形成一个反馈的电路。刚开始我一直认为这种方法是正确的,认为 当比较器比较后有输出,作用在 MOS 管上,就能控制 MOS 管的通断,也就能改变它的 导通量了。但后来经过老师的讲解,才发现自己犯了严重的错误。终于明白用比较器 比较给定值和实际值, 比较的结果作用的 MOS 管上就只有通和断两种情况,不能实现 逐渐改变 MOS 管导通角的变化,没有调节过程,不易控制。后来将比较器改为了 PI 调节器及负反馈控制环路,能够较精确的控制 MOS 管的导通量,实现无静差的调节。 同时在整个负载参数确定后, 根据计算的结果确定运算放大器的放大倍数和确定 电阻的阻值。根据设定好的参数的基础上,再进行分块调试。这个过程中有的需要逐 渐扩大调试范围,最后实现整机调试。将电路分成控制电路、键盘输入部分、显示电 路、主电路和检测电路。主要检查的是单片机是否能够成功和微机通讯、键盘能否正 确输入数值并正确显示在 LCD 上,看电路原理图所是否符合设计的要求等。 整个硬件调试过程是为了验证各功能模块的设计和制作的正确性, 是否能够正常 工作,基本的数据传输是否有错误。但是由于时间比较仓促,在整个设计过程中硬件 电路具体调试都没很好的完成,最后未将实物做出来。25 东华理工大学毕业论文(论文)第四章 系统调试4.2软件调试软件的错误只有在运行中才会完全暴露出来, 因此各个模块的软件程序分段进行调试。先进行单片机 I/O 的分配,再根据各个芯片的特性写程序。编好程序后先分个 个模块进行调试。在写程序过程中出现很多小问题。比如说,一些参数未定设定等小 问题导致整个程序编译不通过。 用 keil 运行模拟仿真时我发现一个问题,就是我在全速运行程序时,显示的时 间是不变的,直到我暂停运行,然后仿真时间才变化。还有就是我检测变量值,比如 我写了一个程序,一秒钟变量 i 加一,我在 keil 的 watch widow 中监测 i 的变化, 按说全速运行时 i 的值应该在监测窗口中可以看出来是一直变化的, 但是现在还是和 我说的仿真时间一样, 全速运行时根本不变化, 直到我暂停全速运行, 值才看出变化。 这样就不好进行检测仿真结果,一直在找原因,后来才发现我的变量设的过快,产生 了溢出,后来改变变量的设计就解决了这个问题。 将控制程序各功能模块,包括显示模块、键盘输入模块、D/A 模块、A/D 模块等 分别载入运行,将发现的问题立即找出程序中所对应的错误或不妥之处,反复进行修 改完善,直到可以完成所要求的功能。不过单纯的软件调试只能检查程序的基本正确 性,而整个方案所有程序是否能够编译正确与实现只有通过与硬件共同调试才能完 成。4.3 软硬件综合调试根据单片机分配好的 I/O 口,将所有的硬件电路和程序连起来检查,将整个程序 载入,观察整个系统的各项功能是否都能达到设计要求,及时发现问题,修改出错、 不合适的程序或者更改元件型号或者重新设计局部电路。 在调试过程中主要发现了以 下问题并作了相应的改进: (l)在电流采样电路中,输出信号将超出 A/D 的采集范围,因此把原设计中的运算 放大器改为电压跟随器。 (2)按键程序开始设计时,实现方法为查询按键按下后开始调用响应程序。调试时, 发现按键响应结果不确定,表现为按下数字键按键一次时,结果显示一个或两个相同 值,与按下时间长短相关。为了解决该问题,把实现方法由查询按键按下改为“查询 按键释放” ,即可准确实现按键功能。26 东华理工大学毕业设计(论文)第五章 结论第五章结论通过本系统的设计单路直流电子负载有以下特点: (1)采用单片机控制,可以实现智能控制,即不改变硬件的情况下,可以通过在 程序里调用不同的控制策略来模拟电源测试时的各种工作需要。 (2)能够实现恒流模式的的正常工作。 (3)易于控制加载和去载,便于负载调节。 (4)能够直接检测被测电源的电流、电压及功率值,各个参数都能直观的在液晶 上显示。 (5)用 10 位串行 D/A 产生基准电压。 (6)用 10 位串行 A/D 电压电流检测。 测量范围:电压范围:0v――50V 电流范围:0A――20A 电压精度:0.05V 电流精度:0.02A本设计能实现电子负载的恒流控制:能够检测被测电源的电流、电压及功率并由 液晶显示。在额定使用环境下,恒流方式时不论输入电压如何变化(在一定范围内) , 电子负载将根据设定值来吸收电流,流过该电子负载的电流恒定。 虽然此电子负载能很好的替代传统的测试方法中一般采用的电阻,更简单、更快 捷、更可靠地对电源、变压器等电子设备进行输出特性的测试。但是,本设计还存在 着很多不足, 由于时间的仓促以及自身能力所限,本文只是对电子负载一些较浅的研 究, 通过运放 PI 调节器组成的负反馈来控制 MOSFET 的栅极电压,从而达到其内阻变 化的目的,改变 MOS 管的导通量。自己还有很多可以进一步改善,比如可以采用更高 精度取样电阻和 PWM 控制方式、 更高精度的 D/A、A/D 装换芯片来提高测量精度等等。 同时整个设计也只研究电子负载的恒流工作模式,还可以进一步改进和设计,增加其 他工作模式,比如恒压、恒阻和恒功率模式,提高电子负载的实用性。27 东华理工大学毕业设计(论文)致 谢致 谢本次毕业设计我有幸选择钱敏老师作为我的指导老师,钱老师作为我们自动化系的系主任, 本身有繁重教学任务和工作任务,但他利用教学之余和工作之余的时间督促教导我们完成毕业设 计。经常下班时间到了,他还耐心的为我讲解问题,在整个设计过程中钱老师给予了我耐心细致 的指导。钱老师渊博的专业知识和严谨的治学态度给我留下了深刻的印象。 不仅如此,钱老师还在工作精神和为人处世上给予我们谆谆教诲,使我们明白和懂得了作为 一个电子专业的毕业生所应保有的心态和品质。在此对钱老师的细心教导和帮助表示深深的感 谢。 此外,还要感谢赵永科老师,当钱老师去开会或者上课时,看到赵永科老师在实验室,我去 问他问题。我知道他很忙,但他还是很耐心的帮我解决问题,从原理到具体的小电路,都耐心的 为我讲解分析。真的要感谢赵老师,在整个毕业设计过程中给我的启发和帮助。 同时我也要感谢夏洪老师,感谢夏老师帮助我修改论文,在我论文修改过程中给我提出了很 多建议和意见, 夏老师一丝不苟和认真的态度让我对他心生佩服, 在此对夏老师表达深深的谢意。 我也要感谢我寝室的段慧同学对本次设计的软件部分给予了关心和帮助,当我碰到问题,她 细心的帮我,寻找错误的地方,修改电路,分析电路,修改程序等等,这些对我做本次设计提供 了很多方便之处,在此对段慧表达深深的谢意。还有本班的各位同学在设计学习中给予的意见和 大力支持也一并表示感谢。 最后,我要再一次感谢钱老师,没有他一路上耐心的指导,和他为我们上的自动控制系统课 程。我是很难完成这次毕业设计的。28 东华理工大学毕业设计(论文)参考文献参考文献[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14]张毅刚?单片机原理与应用?北京?高等教育出版社,2009.7 童诗白等著?模拟电子技术基础?北京?高等教育出版社,2006.5 朱金刚?智能电子负载的设计?实验技术与管理?)?26-29 杨振吉? 付永杰?电子负载的设计?计量技术?-25 张汉屏?自制电子负载仪?电子制作?2010?VOL.06?28-29 丁锐霞?新型电子负载的研究?北方工业大学?2008?16 王利军?TLC1549 串口传输与单片机的 AD 设计?国外电子元器件?2007.10 黄志瑛等?功率 MOSFET 在电子负载中的应用?科技资讯?2008 沈宏 吕强?浅谈直流电子负载?企业标准化?2008? 09 期 通用集成电路速查手册 .CN 芯片查询网站
芯片查询网站 MOTOROLA 公司 Simiconductor Technical Data. 1998C L Chu, J F Chen. Self-load Bank for UPS Testing by Cireulating Current Method. Proc. IEE Elect. Power Applieant.):191 一 196.[15]Ayres C A, Barbi1.A. Family of Converters for Power Recycling during UPS’s Burn―in Test[A ] .Proc.fIEEE 26th Annual Meeting of Power ElectronicsConferenee,ESC[C]’94.~49229 东华理工大学毕业设计(论文)附录一整体电路原理图附录一整体电路原理图+1 2 V V CC 78121R2 2VCC2 .5 V17805C1 0 0 . 1u F C1 1 0 . 33 uF C1 2 0 . 1u F250C1 3 0 . 33 uF 8 C1 4 0 . 33 uF S1 P0. 0 S5 P0. 1 S9 S10 S11 S12 1 0K R7 S13 P0. 3GND P0. 6 P0. 5 P0. 4T1 ~22 0V 4D 2 C6 4 70 uFC8 0 . 33 uFR1 1 0K S2R2 1 0K S3R3 1 0K S4R4 1 0KT L 4 316C7 0 . 33 uF3C9 0 . 1u FR5 S6 S7 S8 1 0K R6-1 2 V 7912U1 P1. 0 P1. 1 P1. 2 P1. 3 P1. 4 P1. 5 VCC P1. 6 P1. 7 1 2 3 4 5 6 7 8 P1. 0 (T 2) P1. 1 (T 2E X) P1. 2 P1. 3 P1. 4 P1. 5 P1. 6 P1. 7 P3. 3 (INT 1) P3. 2 (INT 0) P3. 5 (T 1) P3. 4 (T 0) E A/VPP XT AL 1 XT AL 2 RST P3. 7 (RD) P3. 6 (W R) (AD0 )P0 . 0 (AD1 )P0 . 1 (AD2 )P0 . 2 (AD3 )P0 . 3 (AD4 )P0 . 4 (AD5 )P0 . 5 (AD6 )P0 . 6 (AD7 )P0 . 7 (A8 )P2 . 0 (A9 )P2 . 1 (A1 0)P2. 2 (A1 1)P2. 3 (A1 2)P2. 4 (A1 3)P2. 5 (A1 4)P2. 6 (A1 5)P2. 7 VCC GND (RXD)P3. 0 (T XD)P3. 1 AL E /PROG PSE N 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 P0. 0 P0. 1 P0. 2 P0. 3 P0. 4 P0. 5 P0. 6 P0. 7 JP2 P2. 0 P2. 1 P2. 2 P2. 3 P2. 4 P2. 5 VCC VCC GND 1 2 3 4 5 6 7 8P0. 2 S14 S15 S161 0K R8 1 0KS17 R1 0 1K液晶 显示插座R9 1 0KC1U3 P1. 0 P1. 1 P1. 2 P1. 3 1 2 3 4 8 7 6 5 VCCVREFR2 4 1K R2 3 1K OP37 -1 2V R1 4 1 2V -VRE F1 0u FRSTP3. 31 3 P3. 21 2 P3. 51 5 P3. 41 4T L C5 61 5+2. 5 V GNDC32VCC3 1 19 18 Y1 RST 913 0P C43 0PP3.7 1 P3.6 14 0 VCC 2 0 GND 10 11 30 29R1 3 6 0K -VRE F R1 1 4 0KC5 R+ 1 2V 0 . 75 uF Q2 IRFP4 60 R1 8 1 00 KU f R1 24 0K OP37 -1 2V R1 4 1 2V R1 5 1K OP37 U5 VCC 1 Ua 1 2 3 GND 4 8 VCC 7 P3. 4 6 P3. 3 5 P3. 2 R1 6 1K VCC 1 Ub 1 2 3 GND 4 U4 -1 2VUb UaR1 9 1 0K R1 7o .2 5R1 2V R2 0 1K OP37 8 VCC 7 P3. 7 6 P3. 6 5 P3. 5 -1 2V R2 1 1KT L C1 54 9T L C1 54 930 东华理工大学毕业设计(论文)附录二电子负载程序设计附录二电子负载程序设计**************************************** *主程序 * ***************************************** #include &tlc5614.h& #include &keys.h& #include &max1223.h& #include &nokia.h& #include &main.h& main() { rst=0; delay(1); rst=1; init(); clear(); writehanzi(0,0,0); writehanzi(2,0,2); writehanzi(4,0,3); writehanzi(6,0,4); keychu(); } **************************************** *键盘处理子程序 * ***************************************** #include &main.h& void keychu() { uint value,value1; //DA 输出变量值 float x=0,out=0,dianl=0; uchar readkey,flag=0,readkey1,readkey2,readkey3,readkey4,readkey5,zan,readkey6; //存储键值变量 bit flag2=0,flag1=0,flag0=0; //小数点及切换标志位//液晶初始化31 东华理工大学毕业论文(论文)附录二 电子负载程序设计while( 1 ) { if(flag==0) { readkey=keyscan(); zan= if(readkey==12) {// 第一位扫描if(readkey!=NOKEY&&readkey!=10&&readkey!=11&&readkey!=15&&readkey!=14) { flag=1; //输入第二位 writeshuzi(0,2,readkey); //显示第一位 } else //无按键显示 0 { flag=0; writeshuzi(0,2,0); } } } } if(flag==1) //第二位扫描 { readkey1=keyscan(); if(readkey1!=15) //未确认扫描 { if(readkey1!=11) //清除键 { if(readkey1!=zan) //防止连输入 { zan=readkey1; if(zan==10) //检测是否小数点,是则置第二位标志位,否 则显示输入值 { flag1=1; flag2=1; } if(readkey1!=NOKEY&&readkey1!=14) //有键值且非模式切换键, 则显示数值 { flag=2; //第三位输入 writeshuzi(1,2,readkey1); } }}32 东华理工大学毕业论文(论文)附录二 电子负载程序设计else { flag=0; flag1=0; writeshuzi(0,2,0); }//清除键清零,重新输入//清除小数点标志} else //确认输入 { //赋值输出 x= //锁定按键 flag=6; flag3=1; //显示测得电压电流 writehanzi(0,0,5); //显示测得电压电流 writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; value1=1024*dianl/4.0; //恒流基准电压输出 tlc5615(value1); adzh(); //电压显示 adzh_1(); power(); //电流、功率显示 }} if(flag==2) //扫描第三位 { readkey2=keyscan(); if(readkey2!=15) //未确认 { if(readkey2!=11) //未清零 { if(flag1) //第二位有小数点,则不允许再输入小数点 { if(readkey2!=zan&&readkey2!=10) { zan=readkey2; if(readkey2!=NOKEY&&readkey2!=14) //非小数点,非切换,显示数值 { flag=3; //第四位输入 writeshuzi(2,2,readkey2); } }33 东华理工大学毕业论文(论文)附录二 电子负载程序设计else //小数点无效 { flag=2; }} else { if(readkey2!=zan) { zan=readkey2; if(zan==10) flag1=1; //第二位无小数点, 第三 位输入小数点,置第三位小数标志位 if(readkey2!=NOKEY&&readkey2!=14) { flag=3; writeshuzi(2,2,readkey2); } } }} else { flag=0; flag1=0; flag2=0; writeshuzi(0,2,0); writeshuzi(1,2,11); } } else { if(flag1&&flag2) //第二位小数 { x= flag=6; flag3=1; writehanzi(0,0,5); //显示测得电压电流 writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; value1=1024*dianl/4.0; //恒流基准电压输出 tlc5615(value1);34 东华理工大学毕业论文(论文)附录二 电子负载程序设计tlc5615_1(value); adzh(); adzh_1(); power(); } else { x=readkey*10+readkey1; flag=6; flag3=1; writehanzi(0,0,5); writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; tlc5615(value1); adzh(); adzh_1(); power(); }//电压显示 //电流显示 //无小数 输出//显示测得电压电流//恒流基准电压输出 //电压显示 //电流显示}} if(flag==3) // 扫描第四位 { readkey3=keyscan(); if(readkey3!=15) //未确认 { if(readkey3!=11) //未清零 { if(flag1) //前两位有小数输入 ,不允许输入小数 { if(readkey3!=zan&&readkey3!=10) { zan=readkey3; if(readkey3!=NOKEY&&readkey3!=14) //无切换 { flag=4; //第五位输入 writeshuzi(3,2,readkey3); } } else {35 东华理工大学毕业论文(论文)附录二 电子负载程序设计flag=3; }} else //无小数,则正常输出 { if(readkey3!=zan) { zan=readkey3; if(readkey3!=NOKEY&&readkey3!=14) { flag=4; writeshuzi(3,2,readkey3); } } } } else //清零,重新输入 { flag=0; flag1=0; flag2=0; writeshuzi(0,2,0); writeshuzi(1,2,11); writeshuzi(2,2,11); } } //确认输入 else { //第二位小数输入是赋值 if(flag2) { x=readkey+readkey2*0.1; flag=6; flag3=1; writehanzi(0,0,5); //显示测得电压电流 writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; tlc5615(value1); //恒流基准电压输出 adzh(); //电压显示 adzh_1(); //电流显示 power();36 东华理工大学毕业论文(论文)附录二 电子负载程序设计} else { if(flag1!=1) //不是小数,三位数无效,重新输入 { flag=0; writeshuzi(0,2,0); writeshuzi(1,2,11); writeshuzi(2,2,11); } else //第三位输入小数点,则按下面公式赋值 { x=readkey*10+readkey1; flag=6; flag3=1; writehanzi(0,0,5); //显示测得电压电流 writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; value1=1024*dianl/4.0; //恒流基准电压输出 tlc5615(value1); adzh(); //电压显示 adzh_1(); //电流显示 power(); } } }} if(flag==4) //扫描第五位数 { readkey4=keyscan(); if(readkey4!=15) //未确认 { if(readkey4!=11) //未清零 { if(readkey4!=zan&&readkey4!=10&&flag2!=1) //输入小数点无效 { zan=NOKEY; if(readkey4!=NOKEY&&readkey4!=14) { flag=5; //第六位输入37 东华理工大学毕业论文(论文)附录二 电子负载程序设计writeshuzi(4,2,readkey4); } } } else { flag=0; flag1=0; flag2=0; writeshuzi(0,2,0); writeshuzi(1,2,11); writeshuzi(2,2,11); writeshuzi(3,2,11); writeshuzi(4,2,11); } //清零,重新输入} else //输入确认 { if(flag2) //第二位小数输入,则精确到 0.01 { x=readkey+readkey2*0.1+readkey3*0.01; flag=6; flag3=1; writehanzi(0,0,5); //显示测得电压电流 writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; value1=1024*dianl/4.0; //恒流基准电压输出 tlc5615(value1); adzh(); //电压显示 adzh_1(); //电流显示 power(); } else { if(flag1) //第三位输入小数 { x=readkey*10+readkey2+readkey3*0.1; flag=6;38 东华理工大学毕业论文(论文)附录二 电子负载程序设计flag3=1; writehanzi(0,0,5); writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; value1=1024*dianl/4.0; tlc5615(value1); tlc5615_1(value); adzh(); adzh_1(); power(); } else { flag=0; flag1=0; flag2=0; writeshuzi(0,2,0); writeshuzi(1,2,11); writeshuzi(2,2,11); writeshuzi(3,2,11); writeshuzi(4,2,11); } } }} if(flag==5) { readkey5=keyscan(); if(readkey5!=15) { if(readkey5==11) { flag=0; flag1=0; flag2=0; writeshuzi(0,2,0); writeshuzi(1,2,11); writeshuzi(2,2,11); writeshuzi(3,2,11);39//显示测得电压电流//恒流基准电压输出//电压显示 //电流显示//非小数无效,重新输入//扫描第六位输入//未确认 //清零,重新输入 东华理工大学毕业论文(论文)附录二 电子负载程序设计writeshuzi(4,2,11); }} else //确认输入 { if(flag1&&flag2!=1) //第三位小数输入 { x=readkey*10+readkey2+readkey3*0.1+readkey4*0.01; flag=6; flag3=1; writehanzi(0,0,5); //显示测得电压电流 writehanzi(2,0,2); writehanzi(0,2,5); writehanzi(2,2,1); writehanzi(0,4,6); writehanzi(2,4,7); out=x*0.25; value=1024*out/4.0; dianl=x/11.0; tlc5615(value1); //恒流基准电压输出 adzh(); //电压显示 adzh_1(); //电流显示 power(); } else //非小数输入无效,重新输入 { flag=0; flag1=0; writeshuzi(0,2,0); writeshuzi(1,2,11); writeshuzi(2,2,11); writeshuzi(3,2,11); writeshuzi(4,2,11); } } } if(flag==6) { readkey6=keyscan(); if(readkey6==11) { flag=0; flag1=0; flag2=0; flag3=0;40//确认输入后的处理 //重新再次输入 东华理工大学毕业论文(论文)附录二 电子负载程序设计x=0; writeshuzi(0,2,0); writeshuzi(1,2,11); writeshuzi(2,2,11); writeshuzi(3,2,11); writeshuzi(4,2,11); writeshuzi(0,4,11); writeshuzi(1,4,11); writeshuzi(2,4,11); writeshuzi(3,4,11); writeshuzi(4,4,11); writeshuzi(5,2,11); writeshuzi(5,4,11); } } adzh(); adzh_1(); power(); } } **************************************** *扫描法判键子程序 * **************************************** #include &keys.h& uchar keycode() { uchar scancode=0, delay(120); scancode=P0; switch(scancode) { case 0x7e: keyvalue=3; case 0xbe: keyvalue=2; case 0xee: keyvalue=0; case 0xde: keyvalue=1; case 0x7d: keyvalue=7; case 0xbd: keyvalue=6; case 0xed: keyvalue=4; case 0xdd: keyvalue=5;41// DA 输出清零 //清零后显示//电压显示 //电流显示//延时去抖 //扫描法查键值 东华理工大学毕业论文(论文)附录二 电子负载程序设计case 0x7b: case 0xbb: case 0xeb: case 0xdb: case 0xd7: case 0xb7: case 0x77: default:keyvalue=11; keyvalue=10; keyvalue=8; keyvalue=9; keyvalue=12; keyvalue=14; keyvalue=15; return NOKEY;} } uchar keyscan() { P0=0 keyval=keycode(); if(keyval==NOKEY) { P0=0 keyval=keycode(); if(keyval==NOKEY) { P0=0 keyval=keycode(); if(keyval==NOKEY) { P0=0xf7; keyval=keycode(); if(keyval==NOKEY) { return NOKEY; } } } }}42 东华理工大学毕业论文(论文)附录二 电子负载程序设计**************************************** *D/A 转换子程序 * ***************************************** #include &tlc5614.h& #include &spi.h& void tlc5615(uint da) { da&&=2; scs=0; spiwrite(da&&8); spiwrite(da); scs=1; } **************************************** *spi 串行口通信子程序* ***************************************** #include &spi.h& #include &comm.h& #include &reg51.h& #define trytime 200 #define DELAY_TIME 20 sbit sdi=P1^0; sbit sclkP1^1; sbit scs=P1^2; sbit sdo=P1^3; void spiwrite(uchar x) { for(i=0;i&8;i++) { sdi=(x&&i)&0x80; sclk=0; delay(DELAY_TIME); sclk=1; delay(DELAY_TIME); } }43//10 位 DA 扫描子程序//调用 spi 串行通信//TLC 5615DA 转换与单片机接口 东华理工大学毕业论文(论文)附录二 电子负载程序设计**************************************** *A/D 转换子程序* ***************************************** #include &tlc1549.h& #include &intrins.h& bit flag3=0; ulong int temp_1, #include &comm.h& #include &reg51.h& #include &nokia.h& sbit ccs=P3^2; sbit ioclk=P3^4; sbit dout=P3^3; sbit ccs_1=P3^5; sbit ioclk_1=P3^7; sbit dout_1=P3^6; extern bit flag3 ; uint tlc1549() { uint temp = 0; ccs=1; _nop_(); ccs = 0; for(i=0;i&10;i++) { ioclk = 0; temp=(temp&&1)| ioclk = 1; _nop_(); } ccs = 1; return (temp); } void adzh() { uchar ge,shi,x1,x2; temp=tlc1549(); temp/=1.0;44//TLC1549 与单片机连接接口//AD 转换//电流检测测出电流实际值 东华理工大学毕业论文(论文)附录二 电子负载程序设计temp/=0.25; shi=temp/1000; ge=(temp/100)%10; x1=(temp/10)%10; x2=temp%10; if(flag3) { writeshuzi(4,0,shi); writeshuzi(5,0,ge); writeshuzi(6,0,10); writeshuzi(7,0,x1); writeshuzi(8,0,x2); writeshuzi(9,0,13); } } uint tlc1549_1() { uint temp = 0; ccs_1=1; _nop_(); ccs_1 = 0; for(i=0;i&10;i++) { ioclk_1 = 0; temp=(temp&&1)|dout_1; ioclk_1 = 1; _nop_(); } ccs_1 = 1; return (temp); } void adzh_1() { uchar ge,shi,x1,x2; temp_1=tlc1549_1(); temp_1/=1.0; temp_1=temp_1*11.0; shi=temp_1/1000; ge=(temp_1/100)%10; x1=(temp_1/10)%10; x2=temp_1%10; if(flag3) {45//输出 AD 转换后的电流值//显示电流值//AD 转换//电压检测测出电压实际值//输出 AD 转换后的电压 东华理工大学毕业论文(论文)附录二 电子负载程序设计writeshuzi(4,2,shi); writeshuzi(5,2,ge); writeshuzi(6,2,10); writeshuzi(7,2,x1); writeshuzi(8,2,x2); writeshuzi(9,2,12); } } void power() { uchar ge,shi,x1,x2; power=temp*temp_1; shi=power/100000; ge=(power/10000)%10; x1=(power/1000)%10; x2=(power/100)%10; if(flag3) { writeshuzi(4,4,shi); writeshuzi(5,4,ge); writeshuzi(6,4,10); writeshuzi(7,4,x1); writeshuzi(8,4,x2); writeshuzi(9,4,14); } } **************************************** *诺基亚液晶显示子程序 *//显示实测电压值//测出功率//显示功率*****************************************#include &nokia.h& #include &comm.h& #include &reg52.h& sbit rst =P2^0; sbit ce =P2^1; sbit dc =P2^2; sbit sdin=P2^3; sbit sclk=P2^4; char code hz[][24]={46 东华理工大学毕业论文(论文)附录二 电子负载程序设计//恒 {0x18,0xFF,0x08,0x02,0xFA,0x2A,0x2A,0x2A,0x2A,0xFB,0x02,0x00,0x00,0x0 7,0x00,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x04,0x00}, //压 {0x00,0xFF,0x01,0x21,0x21,0xFD,0x21,0x61,0xA1,0x21,0x01,0x00,0x06,0x0 1,0x04,0x04,0x04,0x07,0x04,0x04,0x04,0x05,0x04,0x00}, //流 {0x11,0xA6,0x70,0x02,0xD2,0x1A,0xD7,0x12,0xDA,0x32,0x02,0x00,0x01,0x0 7,0x04,0x02,0x01,0x00,0x07,0x00,0x07,0x04,0x07,0x00}, //模 {0xC4,0x34,0xFF,0x24,0x01,0x7D,0x57,0xD5,0x57,0x7D,0x01,0x00,0x00,0x0 0,0x07,0x00,0x05,0x05,0x03,0x01,0x03,0x05,0x05,0x00}, //式 {0x24,0x24,0x24,0xE4,0x24,0x24,0x7F,0x84,0x05,0x06,0x04,0x00,0x04,0x0 4,0x04,0x03,0x02,0x02,0x00,0x01,0x02,0x04,0x07,0x00}, //电 {0x00,0xFC,0x94,0x94,0x94,0xFF,0x94,0x94,0x94,0xFE,0x04,0x00,0x00,0x0 1,0x00,0x00,0x00,0x03,0x04,0x04,0x04,0x04,0x06,0x00}, //功 {0x02,0x02,0xFE,0x82,0x82,0x08,0x88,0x7F,0x08,0x08,0xF8,0x00,0x01,0x0 1,0x00,0x04,0x04,0x02,0x01,0x04,0x04,0x04,0x03,0x00}, //率 {0x42,0x46,0x2A,0x52,0x6A,0xD7,0x6A,0x52,0x2A,0x46,0x02,0x00,0x01,0x0 1,0x01,0x01,0x01,0x07,0x01,0x01,0x01,0x01,0x01,0x00}, //空 {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00}, }; char code sz[][16]={ /*-- 文字: 0 --*/ {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x 0F,0x00}, /*-- 文字: 1 --*/ {0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x 00,0x00}, /*-- 文字: 2 --*/ {0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x 30,0x00}, /*-- 文字: 3 --*/47 东华理工大学毕业论文(论文)附录二 电子负载程序设计{0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x 0E,0x00}, /*-- 文字: 4 --*/ {0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x 24,0x00}, /*-- 文字: 5 --*/ {0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x 0E,0x00}, /*-- 文字: 6 --*/ {0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x 0E,0x00}, /*-- 文字: 7 --*/ {0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x 00,0x00}, /*-- 文字: 8 --*/ {0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x 1C,0x00}, /*-- 文字: 9 --*/ {0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x 0F,0x00}, /*-- 文字: . --*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x0 0,0x00,0x00}, /*-- 文字: --*/ {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00}, /*-- 文字: V --*/ {0x08,0x78,0x88,0x00,0x00,0xC8,0x38,0x08,0x00,0x00,0x07,0x38,0x0E,0x01,0x 00,0x00}, /*-- 文字: A --*/ {0x00,0x00,0xC0,0x38,0xE0,0x00,0x00,0x00,0x20,0x3C,0x23,0x02,0x02,0x27,0x 38,0x20}, /*-- 文字: W --*/ {0xF8,0x08,0x00,0xF8,0x00,0x08,0xF8,0x00,0x03,0x3C,0x07,0x00,0x07,0x3C,0x48 东华理工大学毕业论文(论文)附录二 电子负载程序设计03,0x00}, }; write_byte(uchar dat,uchar command) { ce=0; if(command==0) { dc=0; } else dc=1; for(i=0;i&8;i++) { if(dat&0x80) sdin=1; else sdin=0; sclk=0; dat=dat&&1; sclk=1; } ce=1; return 0; } setxy(uchar x,uchar y) { write_byte(0x40|y,0); write_byte(0x80|x,0); return 0; } clear() { uchar t,k; setxy(0,0); for(t=0;t&6;t++) { for(k=0;k&84;k++) write_byte(0x00,1); } return 0; } init() { rst=0; delay(1);49 东华理工大学毕业论文(论文)附录二 电子负载程序设计rst=1; ce=0; delay(1); ce=1; delay(1); write_byte(0x21,0); write_byte(0xc8,0); write_byte(0x06,0); write_byte(0x13,0); write_byte(0x20,0); clear(); write_byte(0x0c,0); ce=0; return 0; } writehanzi(uchar row,uchar l,uchar c) { setxy(row*8,l); for(i=0;i&12;i++) { write_byte(hz[c][i],1); } setxy(row*8,l+1); for(i=12;i&24;i++) { write_byte(hz[c][i],1); } return 0; } writeshuzi(uchar row,uchar l,uchar c) { setxy(row*8,l); for(i=0;i&8;i++) { write_byte(sz[c][i],1); } setxy(row*8,l+1); for(i=8;i&16;i++) { write_byte(sz[c][i],1); } return 0;50 东华理工大学毕业论文(论文)附录二 电子负载程序设计}*****************************************延时子程序* ***************************************** #include &comm.h& #define uchar unsigned char #define uint unsigned int #define ulong unsigned long void delay(uchar x) { uchar i,j; for(i=0;i&x;i++) for(j=0;j&120;j++); }//延时子程序//延时 120 秒51
基于单片机的电子负载毕业论文(含原理图+程序)―汇集和整理大量word文档,专业文献,应用文书,考试资料,教学教材,办公文档,教程攻略,文档搜索下载下载,拥有海量中文文档库,关注高价值的实用信息,我们一直在努力,争取提供更多下载资源。

我要回帖

更多关于 单片机调试 的文章

 

随机推荐