首页 基于protues的数字可调稳压电源【精品毕业论文(设计)】

基于protues的数字可调稳压电源【精品毕业论文(设计)】

举报
开通vip

基于protues的数字可调稳压电源【精品毕业论文(设计)】基于protues的数字可调稳压电源【精品毕业论文(设计)】 摘要 基于protues的数字式可调稳压电源由于原理简单、便于操作、稳定性好、精度高、成本低、易于实现等诸多优点而受到越来越广泛的重视。其性能比传统的可调直流稳压电源好,非常适合一般教学和科研使用。 本文通过对一个基于protues数控直流稳压电源的设计,将单片机数字控制技术、有机地融入直流稳压电源的设计中,设计出一款数字化通用直流稳压电源,详细介绍了AT89C52单片机应用中的键盘扫描原理、数码管动态显示原理、定时器中断原理,从而了解单片机相关指...

基于protues的数字可调稳压电源【精品毕业论文(设计)】
基于protues的数字可调稳压电源【精品毕业论文(设计)】 摘要 基于protues的数字式可调稳压电源由于原理简单、便于操作、稳定性好、精度高、成本低、易于实现等诸多优点而受到越来越广泛的重视。其性能比传统的可调直流稳压电源好,非常适合一般教学和科研使用。 本文通过对一个基于protues数控直流稳压电源的设计,将单片机数字控制技术、有机地融入直流稳压电源的设计中,设计出一款数字化通用直流稳压电源,详细介绍了AT89C52单片机应用中的键盘扫描原理、数码管动态显示原理、定时器中断原理,从而了解单片机相关指令在各方面的应用,同时还介绍了数模转换芯片DAC0832的工作原理。系统由模拟电源、控制电路、数模转换 -12V电压范围,步进值为0.1V电路、放大电路、显示电路等部分构成,输出0 的直流电源。 电源的数字化控制是人们追求的目标之一,人们对它的要求也越来越高,数控直流稳压电源能给人们带来很大的方便,为我们工作、科研、生活提供更好、更方便的服务。本题采用单片机和其他元件及外围电路,开发一个数字可调式稳压电源,能够设定输出电压值、电压输出显示等功能。 关键词:单片机、protues、直流、稳压、数模转换 Abstract Protues-based digital adjustable DC power supply as simple in principle, easy operation, good stability, high accuracy, low cost, easy to implement, and many other advantages of being more widely appreciated. Performance than the traditional adjustable DC power supply is good, very suitable for general teaching and research use. In this paper, a protues-based digital controlled power supply design, the single chip digital control technology, organic integration into the DC power supply design, digital design of a universal DC power supply, details of the AT89C52 microcontroller applications The keyboard scanning principle, the digital dynamic display principle, the timer interrupt principle, to understand instruction in all aspects of SCM-related applications, but also introduces the DAC0832 digital-analog converter chip works. System consists of analog power supply, control circuits, digital to analog conversion circuit, amplifier circuit, display circuit and other parts, output 0-12V voltage range, step value of 0.1V DC power supply. Digital control of power is one of the goals people pursue, people demand more and more of it, NC DC power supply can give them great convenience for our work, scientific research and to provide better and more convenient service. The problem with single chip and other components and peripheral circuits, the development of a number of adjustable power supply, can set the output voltage, the voltage output display. Keywords: microcontroller,protues ,DC, regulators, digital to analog conversion 目录 摘要 ......................................................................... I Abstract .................................................................... II 1 绪论 ....................................................................... 1 1.1研究目的及意义 ....................................................... 1 1.2国内外发展状况 ....................................................... 1 1.3论文构成及研究内容 ................................................... 3 2 数字式可调稳压电源原理介绍 ................................................. 4 2.1 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 选择及总体原理介绍 ............................................... 4 2.2单片机AT89C52原理及其介绍 ........................................... 4 2.3矩阵键盘扫描原理介绍 ................................................. 6 2.4数码管动态显示原理介绍 ............................................... 7 2.5数模转换电路原理介绍 ................................................. 8 3 数字式稳压电源硬件电路设计 ................................................ 12 3.1稳压电源数字部分设计 ................................................ 12 3.1.1单片机主体电路设计 ............................................ 12 3.1.2矩阵键盘部分电路设计 .......................................... 13 3.1.3数码管显示部分电路设计 ........................................ 13 3.1.4 DAC0832数模转换部分电路设计 .................................. 14 3.1.5晶振及复位电路设计 ............................................ 15 3.2稳压电源模拟部分设计 ................................................ 16 3.2.1电源部分电路 .................................................. 16 4 数字式可调稳压电源软件设计 ................................................ 19 4.1 系统软件流程图 ...................................................... 19 4.2 系统程序介绍 ........................................................ 20 4.2.1 初始化硬件程序 ................................................ 20 4.2.2 键盘扫描程序 .................................................. 21 4.2.3 键盘服务程序 .................................................. 23 4.2.4 数码显示程序 .................................................. 24 结论 ........................................................................ 26 参 考 文 献 ................................................................. 27 附录一 数字部分电路总图 ..................................................... 28 附录二 模拟部分电路图 ....................................................... 29 附录三 数字式可调稳压电源程序 ............................................... 30 致谢 ........................................................................ 39 1 绪论 1.1研究目的及意义 在当代科技与经济高速发展的过程中,电源技术尤其是数控电源技术是一门实践性很强的 工程 路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理 技术,服务于各行各业.电力电子技术是电能的最佳应用技术之一.当今电源技术融合了电气、电子、系统集成、控制理论、材料等诸多学科领域。随着计算机和通讯技术发展而来的现代信息技术革命,给电力电子技术提的现代信息技术革命,同时也给电源提出了更高的要求。随着数控电源在电子装置中的普遍使用,普通电源在工作时产生的误差,会影响整个系统的精确度。电源在使用时会造成很多不良后果,因此电源的数字化控制无疑是人们追求的目标之一,它所给人带来的方便也是不可否定的,其中数控直流稳压电源就是一个很好的典型例子,人们对它的要求也越来越高,要想为现代人工作、科研,在当代科技与经济高速发展的过程中,电源起到关键性的作用。随着计算机和通讯技术发展而为生活、提供更好的,更方便的设施就需要从数字电子技术入手,一切向数字化,智能化方向发展。 对我们学生而言,在大学的实验室里和课程设计里面,有一个稳定可调的直流电源是很有必要的。因传统的直流稳压电源输出电压是通过粗调波段开关及细调电位器来调节的,并由电压表指示电压值的大小。 这种直流稳压电源存在读数不直观、电位器易磨损、稳压精度不高、不易调准、电路构成复杂、 体积大等缺点,而基于单片机控制的数字式可调稳压电源能较好地解决了以上问题。 本题采用单片机和其它元器件及外围电路,开发一个数字式可调稳压电源。能够设定输出电压值、电压值输出显示、存储等功能。通过此系统的设计,让开发者更深刻的掌握单片机基本原理,并熟悉一些外围电路的扩展,以及进一步提高C语言的硬件编程能力。 1.2国内外发展状况 电力电子技术已发展成为一门完整的、自成体系的高科技技术,电源技术属于电力电子技术的范畴。电源技术主要是为信息产业服务的,信息技术的发 展又对电源技术提出了更高的要求,从而促进了电源技术的发展,两者相辅相成才有了现今蓬勃发展的信息产业和电源产业。迄今为止,电源已成为非常重要的基础科技和产业,并广泛应用于各行业,从日常生活到最尖端的科学都离不开电源技术的参与和支持,其发展趋势为高频、高效、高密度化,低压、大电流化和多元化。同时,封装结构、外形尺寸日趋接近国际 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 化,以适应全球一体化市场的要求。 当前在国内外电源产业中,占主导地位的产品有各种线性稳压电源、通讯用的AC/DC开关电源、DC/DC开关电源、交流变频调速电源、电解电镀电源、高频逆变式整流焊接电源、中频感应加热电源、电力操作电源、正弦波逆变电源、UPS、可靠高效低污染的光伏逆变电源、风光互补型电源等。而产品价格、性能指标、品牌效应及使用寿命一直是用户最关心的问题。这就促使国内外电源生产商朝着应用技术数字化、硬件结构模块化、产品性能绿色化智能化的方向发展。 数字化:在传统直流稳压电源中,控制部分是按模拟信号来设计和工作的。在六、七十年代,电力电子技术完全是建立在模拟电路基础上的。但是,现在数字式信号、数字电路显得越来越重要,数字信号处理技术日趋完善成熟,显示出越来越多的优点:便于计算机处理控制、避免模拟信号的畸变失真、减小杂散信号的干扰(提高抗干扰能力)、便于软件包调试和遥感遥测遥调,也便于自诊断、容错等技术的植入。 模块化:电源的模块化有两方面的含义,其一是指功率器件的模块化;其二是指电源单元的模块化。模块化的目的不仅在于使用方便,缩小整机体积,更重要的是取消传统连线,把寄生参数降到最小,从而把器件承受的电应力降至最低,提高系统的可靠性。大功率的电源,由于器件容量的限制和增加冗余提高可靠性方面的考虑,一般采用多个独立的模块单元并联工作,采用均流技术,所有模块共同分担负载电流,一旦其中某个模块失效,其它模块再平均分担负载电流。极大的提高系统可靠性,即使万一出现单模块故障,也不会影响系统的正常工作。 绿色化:电源系统的绿色化有两层含义:首先是显著节电,这意味着发电容量的节约,而发电是造成环境污染的重要原因,所以节电就可以减少对环境的污染;其次这些电源不能(或少)对电网产生污染,国际电工委员会(IEC 对此制定了一系列标准,如工EC555, IEC917,IECI000等。20世纪末,各种有源滤波器和有源补偿器的方案诞生,为21世纪批量生产各种绿色直流稳压电源产品奠定了基础。 1.3论文构成及研究内容 本系统研究的直流稳压电源主要是符合智能化、数字化以及模块化的特点。只能话主要是指系统有可编程模块可以对系统进行智能控制。数字化主要是指系统输出电压通过8段数码管显示,并且可以通过按键对输出电压进行连续步进数字化调节。模块化是指系统由各个相关模块组成,提高了系统的稳定性以及可靠性。 本文总体概括了单片机实现数字式可调稳压电源的原理、着重介绍了单片机实现数字式可调稳压电源的硬件电路设计和软件设计。在各章节中,突出讲述了各功能模块的设计思路,具体设计情况,以及模块之间的联系。 本系统主要研究数字式可调稳压电源如何实现数控、稳压和输出电压显示,其中包含一些必要的硬件设计和软件设计。 2 数字式可调稳压电源原理介绍 在实验室里通常所用到的直流电源都是用调节电位器来达到调节电压的目的,由于电位器的温漂较大,使得输出的电压会有所漂移,而且用电位器调节电压操作起来不是很方便。本文所介绍的数字式可调稳压电源与传统的稳压电源相比,具有操作方便,电压稳定度高的特点。它由单片机AT89S52、4×4键盘、数码管、数模转换芯片DAC0832、放大电路等部分构成,能实现输出电压显示、设定等功能,其原理包括键盘扫描原理、数码管动态显示原理、模数转换原理,在本章,主要介绍在设计过程中所涉及到的原理。 2.1方案选择及总体原理介绍 本系统采用最常用的AT89C52单片机为核心控制器件,利用4×4键盘输入数字量,经过控制单片处理后将数字量送入数码管显示部分和DAC0832输出模拟量,然后经过运算放大器转换成电压信号后进行隔离放大,控制输出功率管的基极,随着输出功率管基极电压的变化,间接地改变输出电压的大小。系统方案框图如图2.1所示。 LED显示模块 DA转换模块 矩阵键盘模块 AT89C52 稳压输出模块 电源模块 图2.1系统框图 2.2单片机AT89C52原理及其介绍 AT89C52是美国ATMEL公司生产的低电压、高性能COMS 8位单片机,片内 含8k bytes 的可反复擦写的只读程序存储器(PEROM)和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,与标准MCS-51指令系统及8052产品引脚兼容,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C52单片机适合于许多较为复杂控制应用场合。 AT89C52主要性能参数: ? 与MCS-51产品指令和引脚完全兼容 ? 8k字节可重擦写Flash闪速存储器 ? 1000次擦写周期 ? 全静态操作:0Hz-24MHz ? 三级加密程序存储器 ? 256*8字节内部RAM ? 32个可编程I/O口线 ? 3个16位定时/计数器 ? 8个中断源 ? 可编程串行LART通道 AT89C52提供以下标准功能:8k字节可重擦写Flash闪速存储器、256字节内部RAM、32个可编程I/O口线、3个16位定时/计数器、一个六向量两级中断结构、一个全双工串行通信口、片内振荡器及时钟电路。同时,AT89C52可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。AT89C52引脚如图2.2所示。 图2.2 AT89C52引脚图 AT89C52单片机引脚介绍: ? 主电源引脚和。电源输入端,(GND)公用接地端。 VVVVSSSSCCCC ? 时钟电路引脚XATL1和XATL2分别用作晶体振荡电路的反相器输入端和输出端。在使用外部振荡电路时,这两个端子用来外接石英晶体,这个部分给单片机提供工作节拍,可称为单片机的主频。 ? 控制信号引脚RSTV,,PSEN和。由于单片机的ALEPROGEAVPDPP 很多引脚的使用方法相同,所以常把引脚分为控制总线、地址总线和数据总线。总线是指一类在使用方法上功能相同的引脚。这里讲到得4条引脚可看成是单片机的控制总线。 ? 4个8位I/O端口:P0、P1、P2和P3。 P0口第一功能是一个8位漏极开路型的双向I/O口这时P0口可看成是用户数据总线,第二功能是在访问外部存储器时,分别提供低8位地址和8位双向数据总线。 P1口是一个内部带上拉电阻的8位准双向I/O口。 P2口第一功能是内部带上拉电阻的8位准双向I/O口(使用前有一个准备动作),第二功能是在访问外部存储器时,输出高8位地址。 P3口第一功能是一个内部带上拉电阻的8位准双向I/O口。在系统中,这8个引脚都有各自的第二功能。 2.3矩阵键盘扫描原理介绍 键盘是由若干按键所组成的开关矩阵,它是微型计算机最常用的输入设备,用户可以通过键盘向计算机输入指令,地址和数据。通常单片机系统采用非编码键盘。非编码键盘通过软件来识别键盘上的闭合键,它具有结构简单、使用灵活等特点,因此被广泛应用于单片机系统。 在系统中当按键数目较多时,若每一个按键都占用一条I/O口线,就要使用大量的I/O口线。为了减少键盘与单片机接口时所占用I/O口线数目,通常设置两组互相不连接的行线和列线,在行线与列线的交叉处设置一个按键开关。无键按下时,行线与列线不连接,有键按下时,行线与列线接通。 组成键盘的按键一般有接触式和非接触式两种,单片机中的按键一般由接触式按键构成。按键的读取容易引起误操作,抖动时间的长短由按键的机械特性决定,一般为5ms-10ms,为了使单片机能正确读出口线的状态,对于每一次按键只做一次响应,这就必须考虑如何去抖动,由于键盘的触点在闭合和断开时会产生抖动,这是触点的逻辑电平是不稳定的,必须采取妥善的处理,本设计中采用软件延时的方法来避开抖动,延时时间为10ms。 图2.3 矩阵键盘电路 本系统是所使用的是4×4矩阵键盘,其结构如图2.3所示,其扫描具体过程如下:为了判断键盘是否有按键按下,先将全部列置为低电平,全部行置为高电平,然后判断行线是否全为高电平,如果有一条行线为低电平,则说明该行可能有按键按下,经过延时去抖动然后如果结果仍然如此,则说明确实有按键按下,然后将全部行线置为低电平,全部列线置为高电平,判断列线电平状态,低电平的那一列就是有按键按下的那一列,这样就确定了按下的按键的行和列,就可以判断具体是哪一个按键被按下,然是执行相关按键程序。 2.4数码管动态显示原理介绍 发光二极管显示器(LED)一般由若干个发光数码管组成,数码管的每一个数码段就是一只发光二极管。当发光二极管导通时,相应的一个点或一个笔画发光,控制发光二极管发光组合,可以显示出所需字符。 数码管有共阳极和共阴极之分,其实无论是共阳极还是共阴极,其显示字符的基本原理都是一样的,本系统采用的是共阳极数码管,所以这里仅对共阳极数码管做介绍。 将一个数码管的若干只发光二极管的阳极连接在一起,通过阴极控制其显示,就构成了共阳极结构。八段LED数码管由八只发光二极管其中七只按8字形排列另外一只放右下角做为小数点而组成。这样,我们把八只发光二极管阳极接电源,阴极接高低电平,当阴极为低电平时相应的二极管就会发亮,这样就能显示不同的字符。 图2.4 共阳极数码管 所谓数码管动态显示,就是用扫描的方法逐位的点亮各位数码管。对于每一位数码管而言,每隔一段时间点亮一次。数码管的点亮既与点亮的导通电流有关,也与点亮时间和间隔时间比例有关,调整电流和时间参数,可实现亮度较高,较为稳定的显示,他那个是可减小工作电流。在本系统中,使用三位共阳数码管作为显示输出电压值,采用多路复用显示,就是指对于每个显示只驱动三分之一的时间。因为只要在20Hz-50Hz之间循环所有显示,由于人眼存在视觉残留,在这样的显示方式下,数码管看起来是同时点亮的。 2.5数模转换电路原理介绍 在设计D/A转换时,主要涉及到以下几个方面的参数,同时也是选用D/A转换器件时必须考虑的参数。 ? 分辨率。分辨率是指最小输出电压(对应于输入数字量最低位增1所 引起的输出电压增量)和最大输出电压(对应于输入数字量所有有效位全为1时的输出电压)之比, ? 转换精度。如果不考虑D/A转换的误差,DAC转换精度就是分辨率的大小,因此,要获得高精度的D/A转换结果,首先要选择有足够高分辨率的DAC。 ? D/A转换精度分为绝对和相对转换精度,一般是用误差大小表示。DAC的转换误差包括零点误差、漂移误差、增益误差、噪声和线性误差、微分线性误差等综合误差。 ? 绝对转换精度是指满刻度数字量输入时,模拟量输出接近理论值的程度。它和标准电源的精度、权电阻的精度有关。相对转换精度指在满刻度已经校准的前提下,整个刻度范围内,对应任一模拟量的输出与它的理论值之差。它反映了DAC的线性度。通常,相对转换精度比绝对转换精度更有实用性。 ? 相对转换精度一般用绝对转换精度相对于满量程输出的百分数来表示,有时也用最低位(LSB)的几分之几表示。例如,设V为满量程输出电压FS 5V,n位DAC的相对转换精度为?0.1%,则最大误差为?0.1%V=?5mV;若相FS n对转换精度为?1/2LSB,LSB=1/2,则最大相对误差为?1/2n+1V。 FS ? 非线性误差。D/A转换器的非线性误差定义为实际转换特性曲线与理想特性曲线之间的最大偏差,并以该偏差相对于满量程的百分数度量。转换器电路设计一般要求非线性误差不大于?1/2LSB。 ? 建立时间是D/A转换速率快慢的一个重要参数。很显然,建立时间越大,转换速率越低。不同型号DAC的建立时间一般从几个毫微秒到几个微秒不等。若输出形式是电流,DAC的建立时间是很短的;若输出形式是电压,DAC的建立时间主要是输出运算放大器所需要的响应时间。 本系统的数模转换部分采用通用芯片DAC0832。DAC0832的原理框图如下图所示。DAC0832主要由8位输入寄存器,8位DAC寄存器,8位D/A转换器以及输入控制电路四部分组成。8位输入寄存器用于存放主机送来的数字量,使输入数字量得到缓冲和锁存;8位DAC寄存器用于存放待转换的数字量;8位D/A转换器输出与数字量成正比的模拟电流;由与门、与非门组成的输入控制电路来控制两个寄存器的选通或锁存状态。 图2.5 DAC0832引脚及内部电路图 ? DAC0832的引脚功能如下: ? Vcc:芯片电源电压,+5V,+15V; ? Vref:参考电压,-10V,+10V ; ? Rfb:反馈电阻引出端, 此端可接运算放大器输出端; ? AGND/DGND:模拟信号地/数字信号地; ? DI7~ DI0:数字量输入信号; ? ILE:输入锁存允许信号, 高电平有效; ? CS:片选信号, 低电平有效; ? WR1:写信号1,低电平有效; ? WR2:写信号2,低电平有效; DAC0832属于电流输出型,两输出电流之和是常数。当要与输入数字成正比的电压,可把此两引脚输出的电流信号转换为电压形式,这可以通过一个高输入阻抗的线性运算放大器实现。运算放大器的反馈电阻可通过Rfb端引用片内固有电阻,也可外接。DAC0832逻辑输入满足TTL电平,可直接与TTL电路或微机电路连接。 DAC0832的工作方式有三种: DAC0832进行D/A转换,可以采用两种方法对数据进行锁存。 第一种方法是使输入寄存器工作在锁存状态,而DAC寄存器工作在直通状 WRXFER2态。具体地说,就是使和都为低电平,DAC寄存器的锁存选通端得不 CS到有效电平而直通;此外,使输入寄存器的控制信号ILE处于高电平、处于 WR1低电平,这样,当端来一个负脉冲时,就可以完成1次转换。 第二种方法是使输入寄存器工作在直通状态,而DAC寄存器工作在锁存状 WRCS1态。就是使和为低电平,ILE为高电平,这样,输入寄存器的锁存选通 WRXFER2信号处于无效状态而直通;当和端输入1个负脉冲时,使得DAC寄 存器工作在锁存状态,提供锁存数据进行转换。 根据上述对DAC0832的输入寄存器和DAC寄存器不同的控制方法,DAC0832有以下三种工作方式。 WRWRXFER12? 直通方式:直通方式是资料不经两级锁存器锁存,即,,,CS均接地,ILE接高电平。此方式适用于连续反馈控制线路,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。 ? 单缓冲方式:单缓冲方式是控制输入寄存器和DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用于只有一路模拟量输出或几路模拟量异步输出的情形。 ? 双缓冲方式:双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出将资料送到DAC寄存器,即分两次所存输入资料。此方式适用于多个D/A转换同步输出的情节。 在此设计中,考虑到所需转换的数据量不大,DAC0832采用直通方式的硬件接法。 3 数字式稳压电源硬件电路设计 本系统的硬件电路设计主要是围着AT89C52单片机作为整机的控制部分用PROTEUS设计软件进行设计仿真的,本系统将稳压电源分为数字部分和模拟部分,其中数字部分包括单片机以及控制、显示、转换等外围电路,模拟部分包括为数字部分提供工作电压的电源部分和模拟电压输出部分。 3.1稳压电源数字部分设计 稳压电源数字部分电路主要包括AT89C52单片机、LED数码显示、DAC0832数模转换电路、键盘接口电路、复位电路、晶振电路等。 3.1.1单片机主体电路设计 单片机部分接口电路如下图所示: 图3.1 单片机主体接口部分电路 为了避免画出的原理图繁杂,画图时统一使用网络标号,如图中所示:单片机的P0口即LEDA至LEDP作为LED数码管的显示输出端口,接数码管的八个段选端口,由于单片机的P0口内部没有上拉电阻,所以使用时需要在外部为其加上上拉电阻,P2.5至P2.7三个I/O口即LED3至LED1分别接三个数码管的位选 单片机的P3口接4×4矩阵键盘,用来对输出电压进行控制;单片机的P1端口; 口与DAC0832的八位数码输入端连接,用来输出数字量信号,XATL1和XATL2接晶振部分电路;RST位复位电路接口。 3.1.2矩阵键盘部分电路设计 在本系统中使用4×4矩阵键盘来实现输出电压值的设定其硬件电路及功能如图3.2所示。每个按键的名称图中也已经标明,在程序中对键盘进行扫描后会取出一个数值,根据取出的数值就可以判断被按下的是哪一个按键,然后跳入相应的键盘服务程序,每个按键的编码值在软件部分设计中会做详细介绍,这里近做硬件部分说明。 图3.2 4×4矩阵键盘硬件图 3.1.3数码管显示部分电路设计 本系统中数码显示部分采用三位共阳极八段数码管,5210PNP三极管作为驱动,如图3.3所示。三个数码管的段选端即数据输入端口公用单片机的P0口,采用动态显示,每次只显示一个数码管,具体过程为:先将十位数送到第一个数码管显示,延时一段时间后,将个位数送到第二个数码管显示,延时一段时间后,将十分位数送到第三个数码管显示,延时一段时间后重复执行此过程,只要设置好延时的时间,在一定范围内人眼是分辨不出三位数码管是循环显示的,人眼看 到的效果是三个数码管同时显示,这样就达到了动态显示的效果。这样做既可以节省单片机的I/O口,又可以节省掉静态显示时所用到得锁存器,使电路看起来更加简洁。 图3.3 数码显示部分电路 3.1.4 DAC0832数模转换部分电路设计 本系统中利用通用型数模转换芯片DAC0832将键盘输入经单片机处理的数字量转换成模拟量电流,以实现数控功能。DAC0832是一种电流型芯片,前面已经介绍过它的工作原理,在本数字式可调稳压电源的设计中,由于所处理的数字量较少,所以采用它的直通工作方式,即CS、WR1、IOUT2、AGND、WR2、XFER接地; VREF接,5V电源,它的数据输入口D0,D7分别与单片机的P1.0-P1.7相ILE、 连,从IOUT1引脚输出模拟量(电流)接同相比例放大电路。其电路连接如图3.4所示。 图3.4 DAC0832直通工作方式连接图 DAC0832有8个输入端(其中每个输入端是8位二进制数中的一位),有两个模拟输出端.输入可有256个不同的二进制组态,输出为256个电压之一,即输出电压不是整个电压范围内的任意值,而只能是256个可能值。 3.1.5晶振及复位电路设计 利用芯片内部的振荡器,然后再XTAL1和XTAL2两端跨接晶体振荡器(简称晶振),就构成了稳定的自激振荡器,发出的脉冲直接送入内部时钟电路。外界晶振时,C1和C2的值选为20pF。为了减小寄生电容,更好地保证振荡器稳定、可靠地工作,振荡器和电容应尽可能安装得与单片机引脚XATL1与XATL2靠近。晶振电路如图3.5所示。 图3.5 单片机晶振电路 单片机的外部复位电路上有上电自动复位和按键手动复位两种,本系统采用 上电加按键手动复位方式,其电路图如图3.6所示,当复位按键按下后,复位端通过小电阻与+5V电源接通,电容迅速放电,使RST引脚为高电平;当复位按键弹起后,+5V电源通过大电阻对电容重新充电,RST引脚端出现复位正脉冲,其持续时间取决于RC电路的时间常数。 图3.6 单片机复位电路 3.2稳压电源模拟部分设计 数字式可调稳压电源模拟部分主要包括为各器件提供工作电压的电源部分和电压输出控制单元电路。 3.2.1电源部分电路 在本系统中考虑到单片机及其他器件的工作供电问题,采用一个10:1变压器将220V交流电降压再经过整流桥,获得22V左右的直流电,然后经过一大一小两个电容的滤波得到比较平稳的电压。然后使用7805和7815得到+5V、+15V和-15V的电压,其中+5V是单片机的工作电压,+15V和-15V是运算放大器的工作电压。其电压转换流程图如图3.7所示。 220V 变压 整流 滤波 稳压 交流电 图3.7 电源部分电压转换流程 图中变压部分采用的是10:1TRAN-2P3S型变压器,变压器二次侧线圈中间引出一条输出线,这样经过整流就可以得到一正一负两种直流电。图3.8为变压器示意图。 图3.8 变压器示意图 整流模块可以用两种方法实现,包括半波整流和桥式整流,整流桥就是将桥式整流的四个二极管封装在一起,只引出四个引脚。应用到整流桥的二极管,应考虑它的最大工作电流和最大反向电压。图3.9为整流桥示意图,其中上下两个端口为交流电输入口,左右两个为直流电输出口。 图3.9 整流桥示意图 经过整流桥以后的是脉动直流,波动范围很大,通常需要加上滤波电路。滤波部分需采用一大一小两只电容,这里大电容选用3300uF,小电容选用10pF,大电容用来稳定输出,众所周知,电容两端的电压不能突变,因此可以使输出平滑,小电容是用来滤除高频干扰的,使输出电压纯净。电容越小,谐振频率越高,可滤除的干扰频率越高。 稳压部分采用集成稳压器进行稳压,常用的集成稳压器有多段可调式集成稳压器、三端固定式集成稳压器、三端可调式集成稳压器和跟踪集成稳压器集中。在本设计中只需要为各个期间提供工作电压即可,所以采用三端集成固定式稳压器。三端固定式集成稳压器由启动电路,基准电压电路,取样比较放大电路,调整电路和保护电路等几部分组成。三端固定式集成稳压器是一种串联调整式稳压 器,内部设有过热、过流和过压保护电路,它只有三个外引出端(输入端、输出端、公共地端)。图3.10为集成三端稳压器示意图。其中VI为输入端,VO为输出端,GND为公共地端。三端固定式稳压器具有固定的输出电压,它们型号的后 两位数字即表示输出电压,这类产品具有使用方便、性能稳定、价格低廉等优点,因此得到了广泛的使用。本设计中使用其7815和7915两种芯片。 图3.10 集成三端稳压器示意图 图3.11 电源部分总图 4 数字式可调稳压电源软件设计 本系统软件设计主要实现的功能是:键盘对单片机输入数据,单片机对得到的数据进行处理后送给LED数码显示部分,然后再送给DAC0832,以实现数字量对模拟量电压的控制。软件部分的主程序主要完成键盘的扫描、判断、处理和电压值的输出,而数码显示部分主要在中断处理程序中完成。 4.1 系统软件流程图 图4.1为主程序流程图,程序一开始对硬件进行初始化,包括对单片机端口的定义,开中断及对定时器0进行置初值,然后进入键盘判断程序,首先通过键盘扫描判断是否有按键按下,若有按键按下则进入键盘服务程序,若没有则继续多键盘进行扫描。 程序开始 初始化硬件 否 有按键, 是 键盘服务程序 图4.1 主程序流程图 另外,程序中还有中断程序,主要是用于隔一段时间执行一次数码显示程序,具体设计将在后面介绍。 跟据前面介绍,4×4矩阵键盘在软件设计中实现的功能如下: ? 按设置键开始设定电压,数码管不显示,依次对十位、个位、十分位进行设置,每输入一个有效按键数码管亮一位,输入错误按设置键可重新开始,超过0,12V视为无效操作,按下确认键后电压输出。 ? 在正常情况下即没有按下设置键时按数字键无效,但是可以直接按步进键对输出电压进行设置,设置完仍要按下确认键才能将设置的电压值输出。 4.2 系统程序介绍 本系统软件系统使用C语言编写。C语言的单片机的应用中,由于其逻辑性强,可读性好,比汇编语言灵活,目前越来越多的人从普遍使用汇编语言到逐渐使用C语言开发,市场上几种常见的单片机均有其C语言开发环境。因此,在本系统中,考虑到C语言的这些优点,采用了C语言作为软件的设计语言。 在本文前几章介绍了数字式可调稳压电源的原理图及硬件设计的基础上,进行软件部分的设计。本程序包含初始化程序、主程序、键盘扫描判断程序、键盘服务程序、数字电压送数模转换器程序、数码管显示程序、中断服务程序。下面就如何通过C语言编程实现数控可调作简要说明。 4.2.1 初始化硬件程序 初始化硬件包括对单片机端口的定义,对P1口作为数字电压输出端口的定义:#define DA P1;对设置标志位的定义:static unsigned char shezhi=0;在没有按下设置键时,标志位shezhi为0,按下设置键后shezhi=1。另外还有其他全局变量的定义、子函数的声明、数码管字符显示表格的定义等。在主程序中,初始化程序如下: TMOD=0x11; //初始化定时器 TH0=(65536-5000)/256; //对定时器0置初值 TL0=(65536-5000)%256; EA=1; //开总中断 ET0=1; //开T0中断 TR0=1; //启动T0 shuchu(); //输出初始电压 定时器0中断主要用于向数码显示部分送数据,由于单片机一直工作于键盘扫描程序,故无法在主程序中不断地将数据送到数码管,根据数码管动态显示原理, 当数码管在20Hz-50Hz之间显示时,人眼分辨不出,会认为数码管一直显示,所以可以采用中断的方式,每进入一次中断,对数码管进行动态输出一次,合理的调整时间参数,就会使人眼分辨不出,认为数码管常亮,定时器0中断服务程序如下: void disp(void) interrupt 1 { TH0=(65536-25000)/256; //对定时器0重新置初值 TL0=(65536-25000)%256; led(); //执行数码显示程序 } 4.2.2 键盘扫描程序 键盘扫描的具体过程为:先将十六进制数0x0f送到P3口,然后判断P3口是否等于0x0f,若相等则说明没有按键按下,返回继续扫描,若不相等进入延时,延时10ms后再次进行判断,若相等则说明这是一次误判断或者干扰,返回重新扫描,如果仍然判断为不相等则说明确实有按键按下。然后将十六进制数0xf0送到P3口,然后读取P3口电平,将两次读取的电平相或,就可以得出具体按下的是哪个按键,然后执行相关键盘服务程序,执行完后再次进入键盘扫描状态,并不断重复这些操作。以下是键盘扫描程序: unsigned char X,Y,Z; while(Y==key_point); //判断按键是否松开 key_point=0x0f; //对P3置数,行扫描 if(key_point!=0x0f) //判断是否有按键按下 { delay10ms(); //延时,去抖动 if(key_point!=0x0f) //确认有按键按下 { X=key_point; //保存行扫描数值 key_point=0xf0; //对P3置数,列扫描 Y=key_point; //保存列扫描数值 Z=X|Y; //取键盘扫描值 } } else Z=0; //无按键时对键盘扫描值置0 键盘扫描子程序 P3=0x0f,对P3置数,行扫描 P3=0x0f? 否 是否有键按下 是 去抖,延时10ms 否 P3=0x0f? 确认有键按下 X=P3,取出行扫描值 P3=0xf0,对P3置数,列扫描 Y=P3,取出列扫描值 Z=X|Y,求出键盘扫描值 进入键盘服务程序 图4.2 键盘扫描流程图 4.2.3 键盘服务程序 键盘服务程序包括:数字键程序、步进加1程序、步进减1程序、步进加0.1程序、步进减0.1程序、设置键处理程序、确认输出程序。 由于数码管需要分别显示十位、个位、十分位三个数,而送到DA转换模块的是一个数,所以就必须做数值转换,即把十位、个位、十分位三个独立的数合为一个可以送到DA模块输出的数值。程序上具体的实现方法为:定义num1、num2、num3三个数分别为十位、个位、十分位,定义一个num作为输出数字电压,这样就可以将num1、num2、num3三个数分别显示在三位数码管上,将num作为数字电压输出到P1口,转换公式为:num=100*num1+10*num2+num3。 在数字键服务程序中设置一个标志位,当判断按下数字键是用此标志位来判断现在输入的是哪一位。在输入数字时直接将所输入的数字赋予当前位,由于本系统输出电压范围为0V-12V,所以当输入数值当超出范围时不执行,即按键无效,例如在十位输入大于二的数时按键无效。 当判断按下的是步进加减的程序时,如果是加减1则对num2进行加减1,如果是加减0.1,则对num3进行加减1,当然这是在不超出范围的条件下,这就需要在执行加减前作一下判断,这里不过多介绍,在程序中会有详细说明。表4.1为4×4键盘功能及编码表。 表4.1 4×4矩阵键盘功能及编码表 键盘号 功能 编码 键盘号 功能 编码 S1 1 0x7e S9 3 0xde S2 4 0x7d S10 6 0xdd S3 7 0x7b S11 9 0xdb S4 设置 0x77 S12 确定 0xd7 S5 2 0xbe S13 +1 0xee S6 5 0xbd S14 -1 0xed S7 8 0xbb S15 +0.1 0xeb S8 0 0xb7 S16 -0.1 0xe7 4.2.4 数码显示程序 数码管显示程序 P2.7=1,P2.6=0,P2.5=0 十位数编码送P0口 延时10ms P2.7=0,P2.6=1,P2.5=0 个位数编码送P0口 延时10ms P2.7=0,P2.6=0,P2.5=1 十分位数编码送P0口 延时10ms 图4.3 数码显示流程图 数码管显示采用动态扫描的方式,每进入一次中断,扫描显示一次。具体显 示过程为:当进入中断程序并执行显示程序时,先将P2.7口置1,P2.6和P2.5 置0,然后将十位数据即num1的字符编码送到P0口,延时10ms;再将P2.6口 置1,其他两个端口置0,然后将个位数即num2的字符编码送到P0口,延时10ms; 接下来将P2.5口置1,其他两个端口置0,然后将十分位数即nmu3的字符编码 送到P0口。这里的字符编码是要数码管显示某个数时需要送到数码管数据输入 端的八位二进制数。在程序中将这些编码制成表,要输出时只需查表就可以了, 由于个位上要显示小数点,十位和十分位不显示小数点,所以个位单独使用一个 表,十位和十分位共用一个表。数字字符编码为 led_0[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; led_1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; led_1为不带小数点的字符编码,led_1为带小数点的字符编码。 数码显示流程图如图4.3所示。 结论 此次毕业设计,从一开始接到任务 关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf 到最后完成整个系统的设计,总体上按要求完成了毕业设计的工作。尽管设计的过程是十分繁琐、枯燥的,但当领悟到一个个知识点,将问题一一解决时,有无比的成就感,让自己更加有信心坚持下去。在这方面,我认识到要想做成一件事是不容易的,当中必定有很多的阻力,但是一定要有恒心,细心地认真地找出问题的所在,再一点一点去解决它,这样,到达成功的彼岸也就仅仅是时间的问题了。 这次设计的题目是基于protues的可调数显稳压电源,在参考了很多书籍的情况下,尝试增加了一些功能,尽管没有达到所期望的最完善的目的,但也有了一定的突破。数字式可调稳压电源所牵涉的范围可以是很大的,它不仅仅具备准确的电压输出、显示功能,读数直观、、稳压精度高、、电路构成简单、 体积小等优点,能够设定输出电压值、电压值输出显示等功能。通过此系统的设计,让我更深刻的掌握单片机基本原理,并熟悉一些外围电路的扩展,以及进一步提高C语言的硬件编程能力。只要我们勤于思考,刻苦钻研,就会得到更多的收获与创新。 本系统的不足之处就是不能对输出电压进行实时采样,为了能够使系统具备检测实际输出电压值的大小,系统可通过加入模数转换模块(ADC0809芯片)进行模数转换,间接用单片机实时对电压进行采样,然后进行数据处理及显示。这样一来使系统输出误差更小,效果更好,这也是系统将来的一种功能扩展。 我想,通过这次设计,特别是通过对硬件的制作而不单单是对原理的论述,我学到的不仅仅是电子方面的知识,更重要的是,我学到了作为一名电子设计者所必需的心理素质,那就是——决心加上耐心。 参 考 文 献 [1]张友德等.单片微型机原理、应用与实验[M]. 上海:复旦大学出版社,2006( [2]童诗白,华成英.模拟电子技术基础[M]. 北京:高等教育出版社,2001. [3]尹建华,张惠群.微型计算机原理与接口技术[M]. 北京:高等教育出版社,2003. [4]谭浩强,张基温,唐永炎.C语言程序设计教程[M]. 北京:高等教育出版 社,1992. [5]赵文博,刘文涛.单片机程序设计[M]. 北京:人民邮电出版社,2005. [6]刘文涛,单片机语言典型应用设计[M]. 北京:人民邮电出版社,2005. ,魏永明.新编线性直流稳压电源[M]. 北京:电子工业出版社,2004. [7]王增福 [8]Keith H.Billings,C.Eng.,M.I.E.E.,SWITCHMODE POWER SUPPLY HANDBOOK[M],HammondManufacturing Company,Ltd,2005. [9] 范立南. 单片微型计算机控制系统设计[M] . 北京:人民邮电出版社,2004. [10]蔡明生. 电子设计[M] . 北京:高等教育教育出版社,2004. [11]Intel.MCS-51 Family of Single Chip Microcomputers[M].New York: EnglewoodCliffs,1990. [12]Intel.8-bit Embedded Microcontrollers[M]. New York: Englewood Cliffs,1995. [13]胡桂阳.用单片机制作直流稳压可调电源[J].电子世界,2005. [14]肖金球.单片机原理与接口技术[M].北京:清华大学出版社,2004. [15]毛敏.MCS-51系列单片机系统及应用实践教程[M].北京:高等教育出版社,2006. 附录一 数字部分电路总图 附录二 模拟部分电路图 附录三 数字式可调稳压电源程序 #include "AT89x52.h" #define key_point P3 #define disp_point P0 #define DA P1 #define l1 P2_7 #define l2 P2_6 #define l3 P2_5 void delay10ms(void); void num_key(unsigned char shuma) ; void key(void); void add1(void); void dec1(void); void add01(void); void dec01(void); void select(void); void shuchu(void); static unsigned char bit_shuma=0; static unsigned char num1=0; static unsigned char num2=5; static unsigned char num3=0; unsigned char shezhi=0; unsigned char led_0[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsigned char led_1[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10}; //主程序// void main(void) { TMOD=0x11; TH0=(65536-5000)/256; TL0=(65536-5000)%25 EA=1; ET0=1; TR0=1; shuchu(); while(1) { key(); } } //键盘扫描程序// void key(void) { unsigned char X,Y,Z; while(Y==key_point); key_point=0xff; key_point=0x0f; if(key_point!=0x0f) { delay10ms(); if(key_point!=0x0f) { X=key_point; key_point=0xf0; Y=key_point; Z=X|Y; } } else Z=0; switch(Z) { case 0x00:break; case 0xb7:num_key(0);break; //数字键 case 0x7e:num_key(1);break; case 0xbe:num_key(2);break; case 0xde:num_key(3);break; case 0x7d:num_key(4);break; case 0xbd:num_key(5);break; case 0xdd:num_key(6);break; case 0x7b:num_key(7);break; case 0xbb:num_key(8);break; case 0xdb:num_key(9);break; case 0x77:select();break; //设置键 case 0xd7:shuchu();break; //确认键 case 0xee:add1();break; //步进加1 case 0xed:dec1();break; //步进减1 case 0xeb:add01();break; //步进加0.1 case 0xe7:dec01();break; //步进减0.1 } } //数字键处理程序// void num_key(unsigned char shuma) { if(shezhi==1) {if(++bit_shuma>=4) bit_shuma=1; switch(bit_shuma) { case 1:if(shuma<2) num1=shuma; else bit_shuma--;break; case 2:if(num1==0|(num1==1&&shuma<3)) num2=shuma; else bit_shuma--;break; case 3:if(!(num1==1&&num2==2)|shuma==0) num3=shuma; else bit_shuma--;break; } } } //步进加1子程序// void add1(void) { if(num1==0) { if(num2<9) num2++; else if(num2==9) { num1++; num2=0; } } else if(num1==1) { if(num2<1) num2++; else if(num2==1&num3==0) num2++; } } //步进减1子程序// void dec1(void) { if(num2>0) num2--; else if(num2==0&&num1==1) { num2=9; num1=0; } } //步进加0.1子程序// void add01(void) { if(num3<9&&!(num1==1&&num2==2)) num3++; else if(num3==9) { if((num1==1&&num2<2)| (num1==0&&num2<9)) { num2++; num3=0; } else if(num1==0&&num2==9) { num1++; num2=0; num3=0; } } } //步进减0.1子程序// void dec01(void) { if(num3>0) num3--; else if(num3==0&&num2>0) { num2--; num3=9; } else if(num3==0&&num2==0&&num1>0) { num1--; num2=9; num3=9; } } //设置键程序// void select(void) { shezhi=1; bit_shuma=0; } //确认输出子程序// void shuchu(void) { unsigned char temp,dianya; temp=num1*100+num2*10+num3; dianya=temp*2; DA=dianya; shezhi=0; } //延时10ms子程序// void delay10ms(void) { unsigned char i,j; for(i=10;i>0;i--) for(j=248;j>0;j--); } //数码管显示子程序// void led(void) { if(shezhi==0) { l1=1; l2=0; l3=0; disp_point=led_0[num1]; delay10ms(); l1=0; l2=1; l3=0; disp_point=led_1[num2]; delay10ms(); l1=0; l2=0; l3=1; disp_point=led_0[num3]; delay10ms(); } else { switch(bit_shuma) { case 0:l1=l2=l3=0;break; case 1:l1=1; l2=0; l3=0; disp_point=led_0[num1]; delay10ms(); break; case 2:l1=1; l2=0; l3=0; disp_point=led_0[num1]; delay10ms(); l1=0; l2=1; l3=0; disp_point=led_1[num2]; delay10ms(); break; case 3: l1=1; l2=0; l3=0; disp_point=led_0[num1]; delay10ms(); l1=0; l2=1; l3=0; disp_point=led_1[num2]; delay10ms(); l1=0; l2=0; l3=1; disp_point=led_0[num3]; delay10ms(); break; } } } void disp(void) interrupt 1 { TH0=(65536-25000)/256; TL0=(65536-25000)%256; led(); } 致谢 毕业设计,是大学生涯的一堂结业课,而我有幸能够选择陈英老师作为指导老师,本毕业设计是在陈老师的悉心指导下完成的,从论文的选题到材料的收集,从设计思路的把握到设计的进展,每一步都倾注着陈老师的心血,在此,学生表示最诚挚的谢意。 整个毕业设计阶段,由于理论知识不够扎实,更加缺乏实践,导致做毕业设计过程中,常常遇到各种各样的问题,当然除了自己看书,查资料解决问题外,也常常求助陈老师老师,陈老师总能够耐心解答,同时,认真阅读我们的毕业设计日记,及时发现我们在设计中的问题并给予指导帮助。平时,在毕业设计过程中和设计日记的记录上,陈老师都严格要求,正是在这种思想指导下,我们能够及时很好的完成毕业设计。 除此之外,还有很多同学在我设计过程中给我提供好的建议和解决问题的好办法,对于这些同学也表达深刻的谢意~
本文档为【基于protues的数字可调稳压电源【精品毕业论文(设计)】】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_036899
暂无简介~
格式:doc
大小:418KB
软件:Word
页数:45
分类:
上传时间:2018-03-19
浏览量:24