数控直流稳压电源设计.pdf
金陵科技学院学士学位论文 目录 I 目 录 摘 要.II Abstract.III 1 绪 论.1 1.1 数控稳压直流电源的研究背景.1 1.2 数控稳压直流电源发展现状及趋势.2 2 系统硬件电路设计.4 2.1 系统总体方案设计.4 2.2 主控器件单片机基本设计.4 2.3 D/A 转换部分.8 2.4 数码显示部分.10 2.5 电源电路部分.11 2.6 晶振、按键部分.12 2.7 系统总体电路图.13 3 系统软件设计.15 3.1 程序设计.15 3.2 系统主程序流程图.16 4 系统调试与仿真.18 4.1 系统调试.18 4.2 proteus 仿真.21 总结.25 参考文献.26 附录一.27 附录二.31 致谢.33 金陵科技学院学士学位论文 摘要 II 数控直流稳压电源设计 摘 要 本实验设计了一个以型号 AT89C51 单片机为基本控制核心的简易数控直流电源。该设计包括直流电源输入及输出两部分,可完成 0-9.9V 之间各不同幅值的电压的输出,其中电压输出部分,既可手动的每按“+”“-”键一下进行每 0.1V 大小的上下调整。单片机编程部分是基于 keil2 软件上设计,并在 proteus 进行仿真。该系统具有抗干扰性能好,可靠性高,及最终输出电压值与真实显示值精度较高等优点。在电压输出处还增加了扩流电路,使得电流可达 500ma 左右。本系统由单片机程控输出数字信号,经过 D/A 转换器输出模拟量,最后利用 DAC0832 显示。关键词:单片机;直流电源;数控步进;D/A 转换 金陵科技学院学士学位论文 Abstract III NC DC regulated power supply Abstract The experimental design of a type of AT89C51 single chip microcomputer as the control core of the simple numerical control DC power supply.The design includes DC power input and output of the two part,the output voltage of 09.9V can be completed between different amplitude,which part of the output voltage,which can be manually by each+and-button for about every 0.1V size of the next adjustment.Microcontroller programming part is designed based on the KEIL2 software,and the simulation is done in proteus.The system has good anti-jamming performance,high reliability,and finally output voltage value and real value displayed high precision.In the voltage output by a current amplifying circuit,the current can reach about 500ma.This system consists of microcontroller program output digital signal,through D/A converter output analog,finally by the DAC0832 display.Key words:Single chip microcomputer;DC power supply;CNC stepper;D/A conversion 金陵科技学院学士学位论文 第一章 绪论 1 1 绪 论 几乎所有的电子设备都需要稳定的直流电源,因此直流稳压电源的应用非常的广泛。直流稳压电源的电路形式有很多种,有串联型、开关型、集成电路、稳压管直流稳压电源等等。在电子设备中,直流稳压电源的故障率是最高的(长期工作在大电流和大电压下,电子元器件很容易损坏)但在直流稳压电源中,通过整流、滤波电路所获得的直流电源的电压往往是不稳定的。输出电压在电网电压波动或负载电流变化时也会随之有所改变。电子设备电源电压不稳定,将会引的起很多问题。设计出质量优良的直流稳压电源,才能满足各种电子线路的要求。因此直流稳压电源的研究就颇为重要。目前产生直流稳压电源的方法大致分为两种:一种是模拟方法,另一种是数字方法。前者的电路均采用模拟电路控制,而后者则是通过数字电路进行自动控制。直流稳压电源朝着数字化方向发展。因此对于数控恒压源的研究是必要的。随着科学技术飞速发展,对电源可靠性、输出精度和稳定性要求越来越高,利用 D/A 转换器的高分辨率和单片机的自动检测技术设计程控电源就显示出其优越性。程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,而且可以任意设定输出电压或电流,所有功能由面板上的键盘控制单片机实现,给电路实验带来极大的方便,提高了工作效率。1.1 数控稳压直流电源的研究背景 电源技术尤其是数控电源技术1是一门槛性很强的工程技术,服务于各行各业。众所周知,许多科学实验都离不开电源,并且在这些实验中经常会对通电时间、电压高低、电流大小以及动态指标有着特殊的要求,因此,如果实验电源不仅具有良好的输出质量而且还具有多功能以及一定的智能化,那么就省去了许多不精确的人为操作2,取而代之的是精确的微机控制,而我们所要做的就是显示输出电压、电流,预置输出电压值等功能。就是在实验开始前对一些参数进行预设。这将会给各个领域中的实验研究带来不同程度的便捷与高效。因此,直流稳压电源3今后的发展目标之一就是不仅要在性能上做到效率高、噪声低、高次谐波低、既节能又不干扰环境,还要在功能上力求实现数控化、多功能化与智能化。直流稳压电源是电子技术常用的设备之一,广泛的应用于教学、科研等领域。传统的多功能直流稳压电源功能简单、比较难于控制、可靠性低、干扰大、精度低且体积大、复杂度高。普通直流稳压电源品种很多,但均存在以下二个问题:1)输出电压是通过粗调(波段开关)及细调(电位器)来调节。这样,当输出电压需要精确输出或需要在一个小范围内改变时(如 1.05 1.07V),困难就较大。另外,随着使用时间的增加,波段开关及电位器难免接触不良,对输出会有影响。2)稳压方式均是采用串联型稳压电路,对过载进行限流或截流型保护,电路构成复杂,稳压精度也不高。金陵科技学院学士学位论文 第一章 绪论 2 在家用电器和其他各类电子设备中,通常都需要电压稳定的直流电源供电。但在实际生活中,都是由 220V 的交流电网供电。这就需要通过变压、整流、滤波、稳压电路将交流电转换成稳定的直流电4。滤波器用于滤去整流输出电压中的纹波,一般传统电路由滤波扼流圈和电容器组成,若由晶体管滤波器来替代,则可缩小直流电源的体积,减轻其重量,且晶体管滤波直流电源不需直流稳压器就能用作家用电器的电源,这既降低了家用电器的成本,又缩小了其体积,使家用电器小型化。及电压转换模块的出现为精确数控电源的发展提供了有利的条件5。新的变换技术和控制理论的不断发展,各种类型专用集成电路、数字信号处理器件的研制应用,到 90 年代,己出现了数控精度达到 0.05V 的数控电源,功率密度达到每立方英寸 50W 的数控电源。从组成上,数控电源可分成器件、主电路与控制等三部分。目前在电力电子器件方面,几乎都为旋纽开关调节电压,调节精度不高,而且经常跳变,使用麻烦。在一些测试设备中需要数控直流稳压电源,以便在测试过程中按测试要求随时改变输出电压。在普通可调直流稳压电源中,通过调节电位器去改变取样电压值,从而获得不同的输出电压。1.2 数控稳压直流电源发展现状及趋势 1.2.1 国内发展趋势 以电力电子学为核心技术的电源产业,从二十世纪 60 年代中期开始形成,到了 90 年代以来,随着对系统更高效率和更低功耗的要求,电信与数据通信设备的技术更新推动电源行业中直流/直流转换器向更高灵活性和智能化的发展方向,电源产业进入快速发展期。一方面,电源产业规模的发展在加快;另一方面,在国家自然科学基金的资助下或创新意识指导下,我国电力电子技术的研究从吸收消化和一般跟踪发展到前沿跟踪和基础创新,电源产业涌现了一些技术难度较大,具有国际先进水平的产品而且还生产了一大批具有代表性的研究成 果和产品。目前国内还开展了跟踪国际多方面前沿性课题的研究或基础创新研究。但是我国电源产业与发达国家相比,存在着很大的差距和不足:在电源产品的质 量、可靠性、开发投入、生产规模、工艺水平、先进检测设备、智能化、网络化、持续创新能力等方面的差距为 1015 年,尤其在实现直流恒流的智能化、网络化方面的研究不是很多。目前国内在这两方面研究比较多的是成都电子科技大学和广州华南理工大学,主要是利用单片机和可编程系统器件(PSD)来控制开关直流 稳压电源或数字化电压单元达到数控的目的,但和国外的比较起来,效果不是很理想,还存在很大的差距和不足。1.2.2 国外发展趋势 金陵科技学院学士学位论文 第一章 绪论 3 20 世纪 50 年代,美国宇航局以小型化、重量轻为目标,为搭载火箭开发了开关电源。在近半个世纪的发展过程中,开关电源因具有体积小、重量轻、效率高、发热量低、性能稳定等优点而逐步取代传统技术制造的连续工作电源,并广泛应用于电子整机与设备中。20 世纪 80 年代,计算机全面实现了开关电源化,率先完成计算机的电源换代。20 世纪 90年代,开关电源在电子、电器设备、家用领域得到了广泛的应用,开关电源技术进入快速发展期。到 21 世纪小型电子设备的发展更加迅速和更加普及,但是现在很多的小型电子设备都是依靠电池来供电的,所以开发一种新型的开关电源应用于小型电子设备中就显得非常重要了。金陵科技学院学士学位论文 第二章 系统硬件电路设计 4 2 系统硬件电路设计 2.1 系统总体方案设计 系统以直流电压源为核心,AT89C51 单片机为主控制器,通过键盘来设置直流电源的输出电压,设置步进等级可达 0.1V,输出电压范围为 09.9V,最大电流为 500mA,并可由液晶屏显示实际输出电压值。本系统由单片机程控输出数字信号,经过 D/A 转换器输出模拟量。利用 D/A 转换器的高分辨率和单片机的自动检测技术设计程控电源就显示出其优越性。程控电源既能方便输入和选择预设电压值又具有较高精度和稳定性,而且可以任意设定输出电压或电流,所有功能由面板上的键盘控制单片机实现。此系统比较灵活,采用软件方法来解决数据的预置以及电压的步进控制,使系统硬件更加简洁,各类功能易于实现。系统总体方案框图如图2.1 所示。图 2.1 系统总体方案框图 2.2 主控器件单片机基本设计 2.2.1 AT89C51 单片机的介绍 AT89C51 是一种带 4K 字节闪烁可编程可擦除只读存储器。FPEROMFalsh Programmable and Erasable Read Only Memory 的低电压高性能CMOS8 位微处理器俗称:单片机。该元器件采用 ATMEL 高密度非易失存储器制造技术制造与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器同时为很多嵌入式控制系统提供了一种灵活性高而且性价比高的方案。单片机 AT89C51 电压显示 按键 D/A 转换 扩流电路 电源 射极输出 电源 电压输出 金陵科技学院学士学位论文 第二章 系统硬件电路设计 5 2.2.2 AT89C51 单片机的特性(1)能够与 MCS-51 兼容;(2)寿命:1000 写/擦循环;(3)具有 4K 字节可编程闪烁存储器;(4)全静态工作时频率范围:0Hz-24Hz;(5)数据保留时间:10 年;(6)拥有 128*8 位内部 RAM;(7)拥有三级程序存储器锁定;(8)拥有两个 16 位定时器/计数器;(9)拥有 32 可编程 I/O 线;(10)具备可编程串行通道;(11)拥有 5 个中断源;(12)含有片内振荡器和时钟电路;(13)具备低功耗的闲置和掉电模式。2.2.3 AT89C51 单片机管脚说明 p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78RST/VPD9RXD/P3.010TXD/P3.111INT0/P3.212INT1/P3.313T0/P3.414T1/P3.515WR/P3.616RD/P3.717XTAL218XTAL119GND20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC40 图 2.2 AT89C51 单片机管脚图 如图 2.2。VCC(40):供电电压;GND(20):接地;金陵科技学院学士学位论文 第二章 系统硬件电路设计 6 P0 口(3239):P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入口当 FIASH 进行校验时 P0 输出原码此时 P0 外部必须被拉高;P1 口(18):P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口 P1 口缓冲器能接收输出 4TTL 门电流。P1 口管脚写入 1 后被内部上拉为高可用作输入 P1 口被外部下拉为低电平时将输出电流这是由于内部上拉的缘故。在FLASH 编程和校验时,P1 口作为第八位地址接收;P2 口(2128):P2 口为一个内部上拉电阻的 8 位双向 I/O 口 P2 口缓冲器可接收输出4 个 TTL 门电流当 P2 口被写“1”时其管脚被内部上拉电阻拉高且作为输入。并因此作为输入时 P2 口的管脚被外部拉低将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时P2 口输出地址的高八位。在给出地址“1”时它利用内部上拉优势当对外部八位地址数据存储器进行读写时 P2 口输出其特殊功能寄存器的内容。P2 口在 FLAS 和校验时接收高八位地址信号和控制信号;P3 口(1017):P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后它们被内部上拉为高电平并用作输入。作为输入由于外部下拉为低电平 P3 口将输出电流 ILL 这是由于上拉的缘故。P3 口也可作为 AT89C51 的一些特殊功能口,如下所示:P3.0 RXD(10):串行输入口;P3.1 TXD(11):串行输出口;P3.2/INT0:外部中断 0;P3.3/INT1:外部中断 1;P3.4 T0:记时器 0 外部输入;P3.5 T1:记时器 1 外部输入;P3.6/WR:外部数据存储器写选通;P3.7/RD:外部数据存储器读选通;P3 口同时为闪烁编程和编程校验接收一些控制信号。RST(9):复位输入。当振荡器复位器件时,要保持 RST 脚两个机器周期的高电平时间;ALE/PROG(30):当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时 ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是,每当用作外部数据存储器时,将跳过一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时 ALE 只有在执行 MOVX,MOVC 指令是ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态 ALE 禁止,置金陵科技学院学士学位论文 第二章 系统硬件电路设计 7 位无效;/PSEN(29):外部程序存储器的选通信号。在由外部程序存储器取指期间每个机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出现;/EA/VPP(31):当/EA 保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁定为 RESET,当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引脚也用于施加 12V 编程电源(VPP);XTAL1(19):反向振荡放大器的输入及内部时钟工作电路的输入;XTAL2(18):来自反向振荡器的输出。2.2.4 AT89C51 外接晶体引脚 采用内部方式时:利用片内震荡,XTAL1 接单片机片内部震荡电路的输入端,XTAL2接输出端,接入 12MHz 的晶振。同时在晶振的两端要连接非极性电容(帮助晶振起振)。振荡电容的选择范围:10pf-30pf,本设计方案选用了 20pf 的电容。如图 2.3 所示。图 2.3 外接晶体引脚内部方式 系统单片机控制部分如图 2.4 所示。金陵科技学院学士学位论文 第二章 系统硬件电路设计 8 图 2.4 单片机控制部分 控制部分是系统整机协调工作和智能化管理的核心部分,采用 AT89C51 单片机实现控制功能是其关键,采用单片机不但方便监控,并且大大减少硬件设计。2.3 D/A 转换部分 系统设置 D/A 转换接口,采用 8 位模数转换器 DAC0832。DAC0832 是 8 分辨率的 D/A 转换集成芯片。与微处理器完全兼容。这个 DA 芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由 8 位输入锁存器、8 位 DAC 寄存器、8 位 D/A 转换电路及转换控制电路构成。金陵科技学院学士学位论文 第二章 系统硬件电路设计 9 图 2.5 DAC0832 封装图*D0D7:8 位数据输入线,TTL 电平,有效时间应大于 90ns(否则锁存器的数据会出错);*ILE:数据锁存允许控制信号输入线,高电平有效;*CS:片选信号输入线(选通数据锁存器),低电平有效;*WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于 500ns)有效。由 ILE、CS、WR1 的逻辑组合产生 LE1,当 LE1 为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;*XFER:数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于 500ns)有效;*WR2:DAC 寄存器选通输入线,负脉冲(脉宽应大于 500ns)有效。由 WR2、XFER的逻辑组合产生 LE2,当 LE2 为高电平时,DAC 寄存器的输出随寄存器的输入而变化,LE2 的负跳变时将数据锁存器的内容打入 DAC 寄存器并开始 D/A 转换。*IOUT1:电流输出端 1,其值随 DAC 寄存器的内容线性变化;*IOUT2:电流输出端 2,其值与 IOUT1 值之和为一常数;*Rfb:反馈信号输入线,改变 Rfb 端外接电阻值可调整转换满量程精度;*Vcc:电源输入端,Vcc 的范围为+5V+15V;*VREF:基准电压输入线,VREF 的范围为-10V+10V;*AGND:模拟信号地*DGND:数字信号地 其电路如图 2.6 所示。金陵科技学院学士学位论文 第二章 系统硬件电路设计 1 0 图 2.6 D/A 转换部分 D/A 转换部分的输出电压作为稳压输出电路的参考电压。稳压输出电路的输出与参考电压成比例。8 位字长的 D/A 转换器具有 256 种状态。当电压控制字从 0,1,2,到256 时,电源输出电压为 0.0,0.06,15.0。2.4 数码显示部分 led 数码管实际上是由七个发光管组成 8 字形构成的,加上小数点就是 8 个。这些段分别由字母 a,b,c,d,e,f,g,dp 来表示。当数码管特定的段加上电压后,这些特定的段就会发亮,以形成我们眼睛看到的字样了。如:显示一个“2”字,那么应当是 a 亮 b 亮 g 亮 e 亮 d亮 f 不亮 c 不亮 dp 不亮。LED 数码管有一般亮和超亮等不同之分,也有 0.5 寸、1 寸等不同的尺寸。小尺寸数码管的显示笔画常用一个发光二极管组成,而大尺寸的数码管由二个或多个发光二极管组成,一般情况下,单个发光二极管的管压降为 1.8V 左右,电流不超过30mA。发光二极管的阳极连接到一起连接到电源正极的称为共阳数码管,发光二极管的阴极连接到一起连接到电源负极的称为共阴数码管。常用 LED 数码管显示的数字和字符是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F。led 数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。led 数码管常用段数一般为 7 段有的另加一个小数点,还有一种是类似于 3 位“+1”型。位数有半位,1,2,3,4,5,6,8,10 位等等.,led 数码管根据 LED 的接法不同分为共阴和共阳两类,了解 LED 的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图 2 是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源性不同而已。颜色有红,绿,蓝,黄等几种。led 数码管广泛用金陵科技学院学士学位论文 第二章 系统硬件电路设计 1 1 于仪表,时钟车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。在图 2.7 中,显示部分比较简单,主要是由数码管和若干电阻组成,数码管分别显示电压的个位和十分位,该部分是由单片机完成的,数码管的各端口以依次连到 AT89C51的 P0_0、P0_1、P0_2、P0_3、P0_4、P0_5、P0_6、P0_7 口,完成对电压的显示功能。图 2.7 数码显示部分 2.5 电源电路部分 电源电路部分如图 2.8 所示。金陵科技学院学士学位论文 第二章 系统硬件电路设计 1 2 图 2.8 电源电路部分 电源电路中包括电源接口、下载程序接口、5V 电源插座、滤波电容。其中包括还有一个肖特基二极管,起保护作用。肖特基(Schottky)二极管,又称肖特基势垒二极管(简称 SBD),它属一种低功耗、超高速半导体器件。最显著的特点为反向恢复时间极短(可以小到几纳秒),正向导通压降仅 0.4V 左右。其多用作高频、低压、大电流整流二极管、续流二极管、保护二极管,也有用在微波通信等电路中作整流二极管、小信号检波二极管使用。在通信电源、变频器等中比较常见。一个典型的应用,是在双极型晶体管 BJT 的开关电路里面,通过在 BJT 上连接 Shockley 二极管来箝位,使得晶体管在导通状态时其实处于很接近截止状态,从而提高晶体管的开关速度。这种方法是 74LS,74ALS,74AS 等典型数字 IC 的 TTL 内部电路中使用的技术。肖特基(Schottky)二极管的最大特点是正向压降 VF 比较小。在同样电流的情况下,它的正向压降要小许多。另外它的恢复时间短。2.6 晶振、按键部分 晶振、按键部分如图 2.9 所示。金陵科技学院学士学位论文 第二章 系统硬件电路设计 1 3 图 2.9 晶振、按键部分 晶振部分是芯片 AT89C51 外部的自带的。按键 K1 是用来增大调节所需 0-9.9V 范围内的电压,K2 是用来减小调节电压的。这样就会很方便的控制你所要求的电压具体的数值。2.7 系统总体电路图 系统总体电路图如图 2.10 所示。金陵科技学院学士学位论文 第二章 系统硬件电路设计 1 4 图 2.10 系统总体电路图 金陵科技学院学士学位论文 第三章 系统软件设计 15 3 系统软件设计 3.1 程序设计 C 语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的 D.M.Ritchie 于 1972 年推出,1978 年后,C 语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到 C 语言,适于编写系统软件,三维,二维图形和动画,具体应用比如单片机以及嵌入式系统开发。C语言是1972年由美国的Dennis Ritchie设计发明的,并首次在UNIX操作系统的DEC PDP-11 计算机上使用。它由早期的编程语言 BCPL(Basic Combined Programming Language)发展演变而来,在 1970 年,AT&T 贝尔实验室的 Ken Thompson 根据 BCPL 语言设计出较先进的并取名为 B 的语言,最后导致了 C 语言的问世。而 B 语言之前还有 A 语言,取名自世界上第一位女程序员 Ada(艾达)。随着微型计算机的日益普及,出现了许多 C 语言版本。由于没有统一的标准,使得这些C 语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为 C语言制定了一套 ANSI 标准,成为现行的 C 语言标准。注:国际标准化组织 ISO 也制定的 C 语言的标准,目前被很多编译器所采用,如:GCC 等。C 语言是世界上最流行、使用最广泛的高级程序设计语言之一。在操作系统和系统使用程序以及需要对硬件进行操作的场合,用 C 语言明显优于其它高级语言,许多大型应用软件都是用 C 语言编写的。C 语言绘图能力强,具有可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。常用的编译软件有 Microsoft Visual C+,Borland C+,gcc(linux 系统下最常用的编译器),Watcom C+,Borland C+,Borland C+Builder,Borland C+3.1 for DOS,Watcom C+11.0 for DOS,GNU DJGPP C+,Lccwin32 C Compiler 3.1,Microsoft C,High C 等。综上所述,使用 C 语言进行单片机程序设计是单片机开发与应用的必然趋势,因此本设计我们选择 C 语言,来达到减少资源的占用,提高程序执行效率,增加软件的可读性的目的。详见附录一。金陵科技学院学士学位论文 第三章 系统软件设计 16 3.2 系统主程序流程图 软件主程序流程图如图 3.1 所示。图 3.1 总电路实现流程图 当电源打开的时候,MCU 进行复位,寄存器清零,输出电压为0 V,并在数码管上显示(这里为 0)。这时候程序循环检测是否有按键信号,如果 KEY1 按下,则输出电压增加 0.1 V;如果 KEY2 按下,则输出电压减省 0.1 V。若用户按KEY3,则复位清零,单片机返回初始状态,输出电压为 0 V,并等待下一次按键。本电路采用 51 系列单片机作为整机的控制单元,通过改变输入数字量来改变输出电压值,从而使输出功率管的基极电压发生改变,间接地改变输出电压的大仙。为了能够是系统具备检测实际电压值的大小,可以经过 ADC0809 进行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理及显示。采用软件方法来解决数据的预置以及电流的步进控制,使系统硬件更加简洁,各类功能易于实现本系统以直流电源为核心,利用 51系列单片机为主控制器,通过键盘来设置直流电源的输出电流,设置步进等级可达0.1V,并可由数码管显示实际输出电压值和电压设定值。利用单片机程控输出数字信号,经过 D/A转换器输出模拟量,再经过运算放大器隔离放大,控制输出功率管的基极,随着功率管基极电流的变化而输出不同的电压。单片机系统还兼顾对恒电源进行实时监控,输出电压经金陵科技学院学士学位论文 第三章 系统软件设计 17 过转变后,通过 A/D 转换芯片,实时把模拟量转化为数据量,经单片机分析处理,通过数据形式的反馈环节,使电压更加稳定,构成稳定的压控电压源。金陵科技学院学士学位论文 第四章 系统调试与仿真 18 4 系统调试与仿真 4.1 系统调试 程序采用汇 C 语言,直接在单片机开发系统上模拟运行。测试使用 Keil uVision3 仿真器。Keil C51 是美国 Keil Software 公司出品的 51 系列兼容单片机 C 语言软件开发系统,与汇编相比,C 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil 提供了包括 C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil 软件需要 WIN98、NT、WIN2000、WINXP 等操作系统。如果你使用 C 语言编程,那么Keil 几乎就是你的不二之选,即使不使用 C 语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。具体的步骤如下:1.点击 Project(工程)菜单,选择 New Project(新工程),在文件名中输入您的第一个程序项目名称,假定我们用TEST.保存后的文件扩展名为 uv2 这是 KEIL uVision2 项目文件扩展名,以可以直接点后我们击此文件以打开先前做的项目.这时会弹出让你选择单片机型号的对话框,我们选择ATMEL-AT89C51。如图 4.1,图 4.2 所示。图 4.1 新建工程 金陵科技学院学士学位论文 第四章 系统调试与仿真 19 图 4.2 选择芯片 2.汇编源文件的建立:点击 FILE(文件)菜单中的 NEW.(新文件)命令新建一个文本编辑窗口,在里面输入一个程序范例如流水灯程序,然后点击 FILE(文件)菜单中的 SAVE(保存)命令保存文件,注意必须输入文件的后缀名.asm,例如保存为 d:/prog/001.asm。如图4.3 所示。(注意不要有中文目录,文件名不超过 8 个字符,否则编译不通过!如果您是第一次使用,那么我建议您直接保存在 c 盘的根目录,文件名同样取 001.ASM,不要试图把他保存在桌面/我的文档等等!)金陵科技学院学士学位论文 第四章 系统调试与仿真 20 图 4.3 文件保存 3.点击 Target 1(目标 1)前面的”+”,出现 Source GROUP 1,(源程序组 1)选中右键点选”Add files GROUP Source GROUP 1”(增加文件到源程序组1)这时选择文件类型为Asm,再选中 001.asm 文件,再按 Add 添加,在随后的提示框中按”确定”。然后保存,运行。Keil uVision3 仿真器达到控制要求,如图 4.4 所示。图 4.4 keil 仿真程序图 金陵科技学院学士学位论文 第四章 系统调试与仿真 21 4.2 proteus 仿真 4.2.1 PROTUES ISIS 软件介绍 Protues 软件是英国 Labcenter electronics 公司出版的 EDA 工具软件。它不仅具有其它 EDA 工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。Proteus 是世界上著名的 EDA 工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到 PCB 设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB 设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持 8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等,2010 年即将增加 Cortex和 DSP 系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持 IAR、Keil和 MPLAB 等多种编译。该软件的特点是:(1)实现了单片机仿真和 SPICE 电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232 动态仿真、I2C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(2)支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(LPC21xx)、8051/52系列、AVR 系列、PIC10/12/16/18 系列、HC11 系列以及多种外围芯片。(3)提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如 Keil C51 uVision2、MPLAB 等软件。(4)具有强大的原理图绘制功能。总之,该软件是一款集单片机和 SPICE 分析于一身的仿真软件,功能极其强大 其功能特点如下:(1)原理布图(2)PCB 自动或人工布线(3)SPICE 电路仿真 具有 3 大功能模块:(1)个易用而又功能强大的 ISIS 原理布图工具;(2)PROSPICE 混合模型 SPICE 仿真;(3)ARES PCB 设计.随着科技的发展,“计算机仿真技术”已成为许多设计部门重要的前期设计手段。它具有设计灵活,结果、过程的统一的特点。可使设计时间大为缩短、耗资大为减少,也可金陵科技学院学士学位论文 第四章 系统调试与仿真 22 降低工程制造的风险。相信在单片机开发应用中 PROTEUS 也能茯得愈来愈广泛的应用。Protues ISIS 的工作界面是一种标准的 Windows 界面,包括:标题栏、主菜单、工具箱、工具栏、状态栏、对象选择按钮、对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器、编辑窗口。1.编辑窗口 编辑窗口主要完成电路设计图的绘制和编辑。为了作图方便,在编辑窗口内设置有点状栅格,若想除去栅格可以由 View 菜单的 Grid 菜单项切换。在编辑窗口内放置编辑对象时,被编辑对象所能移动的最小距离称作 Snap,亦可由 View 菜单进行设置。2.预览窗口 预览窗口可以显示编辑窗口的全部原理图,也可以显示从对象选择器中选中的对象。当预览窗口显示全部原理图时,在预览窗口有两个框,篮框表示当前页的边界,绿框表示当前编辑窗口显示的区域。在预览窗口上单击,Protues ISIS 将以单击位置为中心刷新编辑窗口。当从对象选择器选中对象时,预览窗口将预览选中的对象;此时,如果在编辑窗口内单击,预览窗口内的对象将被放置到编辑窗口,这称为 Protues ISIS 的放置预览特性。3.对象选择器 在程序设计中,经常用到对象这一概念。所谓对象,是一种将状态(数据)和行为(操作)合成到一起的软件构造,用来描述真实世界的一个物理实体或概念性的实体。在Protues ISIS 中,元器件、终端、引脚、图形符号、标注、图表、虚拟仪器和发生器都赋予了物理属性和操作方法,它们就是一个软件对象。4.2.2 绘制的方法与步骤 1.创建新的设计文件 首先进入 Protues ISIS 编辑环境。选择 File|New Design 菜单项,在弹出的模板对话框中选择 DEFAULT 模板,并将新建的设计文件设置好保存路径和文件名。Protues ISIS 的设计文件的扩展名为“.dsn”。2.设置图纸类型 选择 System|Set Sheet Sizes 菜单项,弹出 Sheet Size Con