欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载
     

    简易数控直流电源设计.doc

    • 资源ID:4299635       资源大小:471.50KB        全文页数:32页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    简易数控直流电源设计.doc

    重庆工业职业技术学院毕业设计课 题 名 称: 简易数控直流电源设计 专 业 班 级: 应用电子技术(10电子302) 学 生 姓 名: 指 导 教 师: 二O一 三 年 三 月 六 日 摘 要 本次简易数控电源的设计采用AT89C51作为系统的控制单元,通过键盘按键对D/A输出的电压进行如初值设置、单加单减、连加连减等简易数控,再经功率放大电路模块实现输出电流为500mA,将最终的输出电压衰减后输给A/D转换,最后再将键盘输入的电压初值与输出实际电压值处理后显示在LCD1602上。本系统具有输出精度高、液晶显示直观等特点,并实现了输出电压范围为0-9.9V,步进为0.1V,纹波不大于10mV的可预置电压的数控电源。关键词:AT89C51 DAC0832 ADC0809 数控 lcd1602目录一、设计任务与要求41.1. 基本功能41.2扩展与创新5二、系统整体方案设计及分析53.1.4 数控稳压输出部分94.1单片机概述104.2单片机概述104.3单片机的主要特点有11五、芯片简介115.1 MSC51芯片简介115.1.1 MSC51单片机内部结构115.1.2 MCS-51的引脚说明:135.2 8255芯片简介155.2.1 8255可编程并行接口芯片简介:155.2.2 8255可编程并行接口芯片方式控制字格式说明:165.2.3 8255可编程并行接口芯片工作方式说明:17六、软件设计流程图177.3系统误差分析20八、总结21参考文献21 引言随着人们生活水平的不断提高,数字化控制无疑是人们追求的目标之一,它所给人们带来的方便是不可否定的,其中数控直流稳压电源就是一个很好的典型例子,但人们对他的要求也越来越高,要为现代人工作,科研,生活提供更好的,更方便的设施就需要从数字电子技术入手,一切向数字化,智能化方向发展。因此,在这里做一个数控直流电源的设计。该数控电源采用步进调整方式,调整范围为0.0V9.9V,调整手段采用按键进行调整,当需要改变电压值时,启动数控系统,输入想要得到的电压值,再按下确定键,即可输出相应的电压。该系统采用单片机作主控器件,结合软件和硬件设计方法,使该系统的结构较简单,可控性强,使用也很方便。 一、设计任务与要求1.1. 基本功能根据设计要求和使用需要,设计的简易数控电源具有以下功能:(1) 电源输出电压范围0.0-9.9V,步进0.1V,纹波小于10mV,输出电压值由LCD1602显示,额定输出电流500mA。(2) 用户对数控电源的控制,通过键盘进行键盘设计。01234567连-连+89单-单+.OK(3)整机由自制稳压电源供电,输入交流220V,输出直流±15V和+5V。(4)由于是简易电源,在设计时充分注意成本因素,是电源具有较高的性价比。设计出有一定输出电压范围和功能的数控电源。其原理示意图如下: 1.2扩展与创新(1)输出电压可预置在 09.9V 之间的任意一个值; (2)用自动扫描代替人工按键,实现输出电压变化(步进 0.1V 不变); (3)扩展输出电压种类(比如三角波等)。二、系统整体方案设计及分析2.1系统方案 2.1.1总体设计方案方案一:方案一如图2-1-1所示,采用单片机+数字电位器方案。此方案就是把常用的电位器调节电源中的机械式电位器用数字电位器代替。数字电位器是没有机械抽头,具有较小的震动公差和较高的机械可靠性,且其可编能力允许可重复可靠地返回同一抽头位置,因此此方案线路较为简单、可靠。但现有的数字电位器分辨率有限,常见的有32抽头、64抽头,构成的分压电路精度有限,无法满足设计要求。 图 2-1-1 方案一方案二:方案二如图2-1-2所示,此电路包括电源模块、控制电路、键盘电路、显示电路、D/A转换电路以及电压放大电路。显示电路控制电路键盘电路D/A转换电路放大电路+5V±15V电源 图2-1-2 方案二 综合以上两种方案,我所采用的是第二种。方案二,是我们常常接触到的,它可以更直观的表达出此电路的意思,让它变得更加的简单明了。使人们一眼就能明白本电路要完成的东西是什么?让不明白电子的人,也能更加清楚的知道它的流程与走向。 三、 系统硬件设计 3.1直流稳压电源稳压电源是能为负载提供稳定交流电源或直流电源的电子装置。对一个理想的直稳压电源来说,应具有下述特点:(l)在直流和所有频率下,输出阻抗为零;(2)在交流电源电压很宽的范围内,并在供电电路所要求的负载电流范围内,调整率为零;(直流电压输出恒定)(3)功耗为零;(4)电网电压和负载电流变化时,输出电压能立即恢复稳定;(5)当过载电流消除时,过载保护装置能自动恢复到正常工作状态。为了给元器件提供稳定的电流输出,我自制了一个直流稳压电源,电路图如下:图3-13.1.1 电压放大和电流放大要想实现Vout最大值到9.9V,还需要经过运放的电压放大,放大倍数为9.9/3.882=2.55倍。设计要求电流负载能力为500mA,故采用TIP122功率管,其放大倍数为1000倍,将运放电压驱动电流降为0.5mA。如图3-1-1所示,Vout=(R1+R2)/(R2*0.525)Vin=2.55Vin。而保护电路由R4和Q1构成,当电源输出电流I增加到一定大小时,R4上的压降使得Q1管导通,分掉了功放管的基极电流,使得I不再增加。设Imax=600mA,Q1的导通电压为0.6V,则R4=0.6V/600mA=1.0。图3-1-1电压电流放大3.1.2 键盘显示电路 此次的显示部分由键盘显示板来完成,它由2个8位LED数码显示器和2片SN74HC164CN芯片加上8个按键组成,具体电路图如下图3-1-2。 图3-1-23.1.3 ADC0809 将输出的模拟电压转换为数字量经单片机输出到LCD,并显示其值。由于基准电压为5V,因此还需要将输出的电压在硬件上衰减2.5倍,然后在单片机上处理时在放大2.5倍。3.1.4 数控稳压输出部分这两部分的核心是一个AT89C51最小应用系统,包括一片AT89C51芯片,虽然理论上这两部分需要的接口较多,单片机无法满足,但由于在软件上采用了对P0口分时复用的方法(即每次对一个扩展芯片进行数据交换后均对P0口复位),因此并不需要外加一片8255扩展I/O口,节约了成本。其总的系统框图如图3-1-4所示。图3-1-4数控电源系统框图3.1.5 主电路的工作原理及参数计算电压输出范围09.9V,步进0.1V,共有100种状态,8为字长的D/A转换器具有256种状态,能满足要求,设计中用两个电压控制字代表0.1V,当电压控制字从0,2,4,,198时,电源输出电压为0.0V,0.1V, ,9.9V。电路选用的D/A转换芯片是DAC0832,该芯片价廉且精度较高。DAC0832属于电流输出型D/A,输出的电流随输入的电压控制字线性变化。为了得到电压,还需外接一片运放来实现电流到电压的转换。该运放输入端的输入电流对转换精度影响打,DAC0832输出地电流有几十微安的变化,若运放输入端的输入电流为0.1uA,如uA741的输入电流约为此值,且有一定变化,则会引入相当于12个电压控制字的误差,因此应选用高输入阻抗的运放,如JFET输入的运放LF356,他的输入电流可以忽略。DAC0832需要外接基准电压,此基准电压的性能决定了输出电压的性能,要求基准电压具有高稳定度和低纹波,故选用LM336-5作为基准源,当DAC0832采用5V基准电压时,D/A转换电路的满幅输出为5.0V(电压控制字为255时),由于实际最大用到电压控制字198,因此D/A部分最大输出电压U(imax)=(198/255)*5.0=3.882V。D/A转换部分输出电压Ui作为电源功放机的输入电压。其输出电压U0=(1+(Rpi+R3)/R2)Ui3.1.6扩展输出负电源输出负电压只要在D/A转换端再介入一级反相加法器,其输出电压U0与输入电压Ui的关系为 U0 = -2Ui + 3.882 (V)这样一来输出电压的变化范围为 3.882 3.882 V,从而扩展了负电路四、背景4.1单片机概述第一代:七十年代后期, 4 位逻辑控制器件发展到 8 位。使用 NMOS 工艺(速度低,功耗大、集成度低)。代表产品: MC6800 、 Intel 8048 。 第二代:八十年代初,采用 CMOS 工艺,并逐渐被高速低功耗的 HMOS 工艺代替。代表产品: MC146805 、 Intel 8051 。 第三代:近十年来, MCU 的发展出现了许多新特点: ( 1 )在技术上,由可扩展总线型向纯单片型发展,即只能工作在单片方式。 ( 2 ) MCU 的扩展方式从并行总线型发展出各种串行总线。 ( 3 )将多个 CPU 集成到一个 MCU 中。 ( 4 )在降低功耗,提高可靠性方面, MCU 工作电压已降至 3.3V 。 第四代: FLASH 的使用使 MCU 技术进入了第四代。4.2单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。4.3单片机的主要特点有(1) 具有优异的性价比。(2) 集成度高、体积小、可靠性高。(3) 控制功能强。(4) 低电压,的功能。五、芯片简介5.1 MSC51芯片简介5.1.1 MSC51单片机内部结构8051是MSC-51系列单片机的典型产品,它包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编成的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。图 1程序存储器(ROM):8051共有4096个8位掩模ROM,用于存放用户程序,原始数据或表格。定时/计数器:8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断供能,有两个外中断、两个定时/计数器和一个串行中断,可满足不同的控制要求,并且有2级的优先级别选择。时钟电路:8051内设最高频率达12MHZ的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外设震荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器和数据存储器合二为一的结构,即普林斯顿(Princeton)机构。INTEL和MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MSC-51系列单片机的内部结构示意图二:MCS-51系列单片机的内部结构示意图图 25.1.2 MCS-51的引脚说明:MSC-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,下图(图三)是它们的引脚分配,40个引脚中,正电源和底线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:图 3Pin9:RESET/V(pd)复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。8051的复位方式可以是自动复位,也可以是手动复位,见下图4。此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。 Pin30:ALE/当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。如果单片机是EPROM,在编程其间,将用于输入编程脉冲。Pin29:当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。Pin31:EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。显然,对内部无程序存储器的8031,EA端必须接地。在编程时,EA/Vpp脚还需加上21V的编程电压。5.2 8255芯片简介5.2.1 8255可编程并行接口芯片简介:8255可编程并行接口芯片有三个输入输出端口,即A口、B口和C口,对应于引脚PA7PA0、PB7PB0和PC7PC0。其内部还有一个控制寄存器,即控制口。通常A口、B口作为输入输出的数据端口。C口作为控制或状态信息的端口,它在方式字的控制下,可以分成4位的端口,每个端口包含一个4位锁存器。它们分别与端口A配合使用,可以用作控制信号输出或作为状态信号输入。8255芯片引脚图:图 4与CPU相连的各个引脚说明如下:(1) CS:芯片选择信号。来自地址译码器,低电平有效。(2) RD:芯片读出信号。来自系统总线,低电平有效。(3) WR:芯片写入信号。来自系统总线,低电平有效。(4) RESET :复位信号。但它为高电平时,清除所有内部寄存器的内容,并将3个数据端口PA、PB、PC置为输入方式。(5) A1、A0:端口地址选择信号。用于选择8255A的3个数据端口和一个控制端口。当A1A0为00、01、10时,分别选择数据端口PA、PB、PC;当A1A0为11时,选择控制口。(6) Vcc、GND:电源和地线。5.2.2 8255可编程并行接口芯片方式控制字格式说明:8255有两种控制命令字;一个是方式选择控制字;另一个是C口按位置位复位控制字。其中C口按位置位复位控制字方式使用较为繁难,说明也较冗长,故在此不作叙述,需要时用户可自行查找有关资料。方式控制字格式说明如表一: D7D6D5D4D3D2D1D0表 2D7:设定工作方式标志,1有效。D6、D5:A口方式选择 0 0 方式 0 0 1 方式1 1 ×方式2D4:A口功能 (1=输入,0=输出)D3:C口高4位功能 (1=输入,0=输出)D2:B口方式选择 (0=方式0,1=方式1)D1:B口功能 (1=输入,0=输出)D0:C口低4位功能 (1=输入,0=输出)5.2.3 8255可编程并行接口芯片工作方式说明:方式0:基本输入输出方式。适用于三个端口中的任何一个。每一个端口都可以用作输入或输出。输出可被锁存,输入不能锁存。 方式1:选通输入输出方式。这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。 方式2 :双向总线方式。只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。六、软件设计流程图程序的设计采用了模块化的思想,有一个主控程序、五个模块应用程序和一个中断程序。主控程序首先进行系统初始化及置预置值,再对液晶进行初始化并输出预定字符串,然后进行键值扫描、键值处理、送液晶显示初始值电压值、D/A转换及A/D转换,最后把A/D转换的值送给液晶显示。需要注意的是:由于采用分时对P0口复用的方法,因此需要在每次完成一个模块功能后对P0复位,以防止数据冲突。五个模块程序即分别为键值扫描程序,键值处理程序,液晶显示程序,D/A转换和A/D转换程序。中断程序主要实现对A/D送CLOCK的功能。程序的具体流程如图6-1所示。键值处理程序是否为AUTO键开始自动扫描是否为加键已按下启动键数据达最大值是否为减键数据加0.1已按下启动键数据达最小值数据减0.1是否为确定键已按下启动键输入数据已按下启动键清除当前数据已按下启动键存储数据是否为清除键是否为数据键返 回图6-1、软件流程图七、测试结果及结果分析7.1 系统功能测试(1) 直流稳压电源调试此模块的输入电压为16V的交流变压器,经LM7805 LM7905 LM7815 LM7915芯片和一些电容及电感滤波后输出正负5V,正负15V的直流电压,稳度精度可以达到要求。(2) DAC测试:调整Iout1/Iout2的基准电压使输入255时输出电压7.5V。用软件测试输出。(3) 放大器调试:经DAC0832输出后输入OP07,经调试后可行。7.2系统指标测试(1) 输出端接空载测量仪器: 万用表及示波器。 记录数据如下表5.1 数据记录(室温下)表5.11234567891011预置电压/V(数码显示)0.01.02.03.04.05.06.07.08.09.09.9输出电压/V(数码显示)0.001.002.013.014.025.026.037.038.039.049.94实测电压/V(1905a测量)0.0001.0052.0103.0164.0205.0256.0317.0328.0369.0429.947(2)输出0.5A时测量仪器:万用表及示波器。 记录数据如下表5.2 数据记录(室温下)表5.21234567891011预置电压/V(数码显示)0.01.02.03.04.05.06.07.08.09.09.9输出电压/V(数码显示)0.000971.982.993.995.006.017.018.019.029.92实测电压/V(1905a测量)0.0000.9851.9852.9954.0005.0056.0117.0128.0169.0229.9267.3系统误差分析从电路的原理框图可以看出,系统的主要误差来源于:(1)DAC0832的量化误差DAC0832为8位D/A转换器,满量程为10V的量化误差为+/-(1/2)Lmbs+/-20mV按满度归一化的相对误差为+/-0.2%。(2)运放零点漂移由运算放大器的零点漂移,温度漂移等带来的误差,可以通过温度补偿措施来解决此误差。(3)A/D,D/A转换误差受AD转换器精度及基准源稳定程度的限制,不可避免地带来一定的误差,为了更精确的输出恒流电源,必须选用更多位数的AD、DA芯片。(4)因外界突发干扰或仪表显示值等引起的随机误差或粗大误差。(5)基准电压温漂引入的误差 LM336在040范围内漂移不大于4mV,故相对误差=+/-2mV/5mV=+/-0.04%八、总结 在本次设计中,让我知道我们学的知识是远远不够的,因此在做这次毕业设计的时候总是不知从何做起走,特别是在单片机这块上是远远不够的,连基本的运用都不会,还有就是整个电路图的仿真与调试,也是这次论文的一个难题,往往只有那么一点小错误,但是就是自己检查不出来,从而导致写论文的速度。总之,对于我来说单片机就是一个很大的难题。参考文献1 张 义 例说51单片机(C语言版)(第3版),人民邮电出版社 ,2010.62 余锡存 曹国华 单片机原理及接口技术【M】陕西:西安电子科技大学出版社,2000.73 付家才 单片机控制工程实践技术【M】 人民邮电出版社,1999.94 何立民 单片机应用技术选编9 北京航空航天大学出版社,2004.35 谢自美 电子线路设计·实验·测试【M】 华中理工大学出版社,20016 陆 伸 电子设计技术1 电子科技大学出版社,1997 附录A#include<reg51.h>#define uint unsigned int /无符号字符8位#define uchar unsigned char /无符号整数16位sbit dula=P26; /锁存器段选 数码管sbit wela=P27; /锁存器位选sbit lcdrs=P31; /1602数据命令选择sbit lcden=P30; /1602使能信号端sbit key1=P23; /+键sbit key2=P22; /-键sbit key3=P21; /波产生键sbit key0=P20; /功能键sbit wr_da=P25; /DAC选键uchar num,num0,num1,zsys,xsys,bxsz;uchar code table_x=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /编码表 无点数码管显示uchar code table_z=0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef; /编码表 带点数码管显示uchar code table1="Welcome to"uchar code table2=" NC Power!"uchar code table3=" Voltage Step"uchar code table4="Step width:0.01V"uchar code table5="Preset voltage"uchar code table6="Range:0-9.9V"uchar code table7="Waveform chooses"uchar code table8="Output waveform"uchar code table9=":triangle wave"uchar code table10="trapezoidal wave"uchar code table11=":sawtooth wave"uchar code table12=":square wave"void delay(uint z); /延时程序void display_bjys(uchar zsys,uchar xsys);void display_bxsz(uchar bxsz);void trigle();void trap();void saw();void square();void keycan_bjys();void keycan_bxsz();void write_com(uchar com);void write_date(uchar date);void init_kjhm();void init_bjhm();void init_yshm();void init_bxxzhm();void init_trigle();void init_trap();void init_saw();void init_square();void init();void main() init_kjhm(); init(); /初始化子程序 while(1) dula=1; P1=0x3f; dula=0; wela=1; P1=0xf0; wela=0; if(key1=0|key2=0) if(key0=0) init_bjhm(); if(key0!=0) init_yshm();while(1) keycan_bjys(); if(key3=0) dula=1; P1=0xff; dula=0; wela=1; P1=0xff; wela=0; if(key3=0)break; if(key3=0) init_bxxzhm(); while(1) keycan_bxsz(); if(key1=0|key2=0) dula=1; P1=0xff;dula=0;wela=1;P1=0xff;wela=0; if(key1=0|key2=0) break; void delay(uint z) /延时程序 uint x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void dispaly_bjys(uchar zsys,uchar xsys) /预设&步进 数码管扫描子函数 dula=1; P1=table_zzsys; dula=0; P1=0xff; wela=1; P1=0xfe; wela=0; delay(1); dula=1; P1=table_xxsys; dula=0; P1=0xff; wela=1; P1=0xfd; wela=0; delay(1);void dispaly_bxsz(uchar bxsz) /波形设置 数码管扫描子函数 dula=1; P1=table_xbxsz; dula=0; P1=0xff; wela=1; P1=0xf0; wela=0; delay(1);void trigle() /三角波 num=0; for(num=0;num<121;num+) P0=num; wr_da=0; for(num=121;num>0;num-) P0=num; wr_da=0; void trap() /梯形波 num=0; for(num=0;num<121;num+) P0=num; wr_da=0; delay(5); for(num=121;num>0;num-) P0=num; wr_da=0; void saw() /锯齿波 num=0; for(num=0;num<121;num+) P0=num; wr_da=0;void square() /方波 P0=0x65; wr_da=0; delay(5); P0=0; wr_da=0; delay(5);void keycan_bjys() /预设&步进 按键扫描 if(key1=0) /按key1键加数 delay(5); if(key1=0) num+; if(num=100) num=0; while(!key1); delay(5); while(!key1); if(key2=0) /按key2键减数 delay(5); if(key2=0) num-; if(num=-1) num=99; while(!key2); delay(5); while(!key2); zsys=num/10; xsys=num%10; dispaly_bjys(zsys,xsys); if(key0=0) /预设功能 P0=num; wr_da=0; delay(1); void keycan_bxsz() /波形 按键扫描 if(key3=0) delay(5); if(key3=0) num1+; /num1 自加 选择波形 if(num1=5) num1=1; bxsz=num1; dispaly_bxsz(bxsz); while(!key3); delay(5); while(!key3); if(key0=0) /功能按键下 确定波形输出 if(num1=1) init_trigle(); while(1) trigle(); if(key0!=0)break; if(num1=2) init_trap(); while(1) trap(); if(key0!=0)break; if(num1=3) init_saw(); while(1) saw();

    注意事项

    本文(简易数控直流电源设计.doc)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开