电镀数字脉冲电源控制程序设计

上传人:仙*** 文档编号:28797609 上传时间:2021-09-13 格式:DOC 页数:44 大小:1.08MB
收藏 版权申诉 举报 下载
电镀数字脉冲电源控制程序设计_第1页
第1页 / 共44页
电镀数字脉冲电源控制程序设计_第2页
第2页 / 共44页
电镀数字脉冲电源控制程序设计_第3页
第3页 / 共44页
资源描述:

《电镀数字脉冲电源控制程序设计》由会员分享,可在线阅读,更多相关《电镀数字脉冲电源控制程序设计(44页珍藏版)》请在装配图网上搜索。

1、电镀数字脉冲电源控制程序设计摘 要所谓数字脉冲电源,就是采用微处理器等数字电路对脉冲电源中的直流斩波进行控完成制,并实现数字显示与数字调节的一种脉冲电源。它是当今最为先进的电镀电源,也是电镀电源发展的方向。本设计主要介绍可调节占空比及频率的脉冲电镀电源。本设计采用双 CPU 系统设计架构,主 CPU 系统以 AT89C52 芯片为核心,主要负责显示电路、按键电路、运行状态控制以及向从 CPU 系统发送脉冲参数等模块程序设计。而从 CPU 系统选用 89C2051 单片机,唯一的任务是产生斩波所需要的脉冲信号。同时为了减轻主 CPU 的负担,简化硬件设计,显示与按键电路通过 8279 专用接口芯

2、片与单片机相连。再通过主从软件系统各模块之间的协调调用来实现这一功能。关键词:脉冲,电镀,电源,单片机 IDigital Pulse Electroplating Power Supply Control ProgramABSTRACTThe so-called digital pulse power supply, is the use of microprocessors and other digital circuits on the pulse of the DC chopper for power control and digital display and digital re

3、gulation of a pulsed power supply. It is the power of todays most advanced plating ,which is electroplating power development. This design introduces an adjustable duty cycle and frequency pulse plating power supply. The design uses a dual-CPU system architecture, the main CPU AT89C52 chip as the co

4、re system, the main administration includes displaying circuit, key circuit, operating state control, and sending a pulse from the CPU system parameters. 89C2051 CPU system selected from the microcontroller, the only task is to produce the required pulse chopper. Meanwhile, in order to reduce the bu

5、rden on the main CPU to simplify hardware design, display and keypad circuit through the 8279 special interface chip is connected with the microcontroller. Realized this function through hosts from software system various modules coordinated transfer.KEY WORDS: pulse, electroplate, power, SCMII目目 录录

6、摘 要 .IABSTRACT .II1 绪论 .11.1 课题意义 .11.2 国内外发展状况 .11.3 本文主要研究工作 .22 电镀数字脉冲电源系统总方案设计 .32.1 电镀的原理 .32.2 性能指标与设计要求 .32.3 双 CPU 系统总方案设计 .42.3.1 AT89C52 结构及功能介绍 .52.3.2 8279 结构及功能介绍 .62.3.3 AT89C2051 结构及功能介绍 .72.3.4 复位与看门狗电路.92.3.5 数码管显示部分设计.102.3.6 键盘电路模块设计.113 电镀数字脉冲电源各模块程序设计.133.1 主系统程序设计 .133.1.1 主程序模

7、块 .133.1.2 串行通信程序设计 .173.1.3 T2 定时中断程序设计 .193.1.4 参数编辑模块 .223.2 从系统程序设计.283.2.1 从系统主程序 .283.2.2 从系统串行通信程序 .313.2.3 T2 定时中断 .324 程序仿真调试 .355 总结 .37致谢 .38参考文献 .39陕西科技大学毕业论文(设计说明书)01 绪论1.1 课题意义随着科学技术与生产的发展,电子技术在生产生活中应用的越来越多,在社会生活中扮演日益重要的角色其中电镀产品就十分突出。但这些都是由于目前的电镀技术仍存在诸如加工时间长、镀层厚度均匀性差、镀层容易出现缺陷以及存在较大内应力等

8、缺陷造成的,这些缺陷不仅影响到电镀制品的质量,同时还大大限制了电镀技术的应用与发展,不能适应当前的社会生产,尤其是精密制造的需要。因此,我们希望能改进电镀技术,从而提高电镀制品的质量。虽然当今比较成熟而稳定的电镀电源为开关电源,但我们通过查阅相关资料,对电镀生产的最基本原理进行研究,考虑到各方面因素,决定从生产实际进行改革,通过采用先进的电镀电源,达到提高电镀生产的水平的目的,在提高电镀制品质量的同时,也加快了电镀生产的生产效率,并且消除电镀中的种种缺陷。于是,数字单脉冲电源便凭借自身优势,为当今各个方面争相研究、开发的对象。1.2 国内外发展状况我国开关式电镀电源技术已有突破性发展,在中小型

9、功率领域已进入推广应用的阶段。但在输出功率,通用品种,可靠性,批量生产能力,推广范围,特别是数字化智能控制等方面,同国外工业发达国家水平,尚有较大差距。为了适应我国制造业的迅速发展和成为世界制造中心的需求,进一步加强电镀电源的高频高效化,数字化智能控制绿色可靠的工作并解决相关问题,对推动开关式电镀电源的持续发展是很有必要的。电镀电源经历了四个发展阶段:1)直流发电机阶段:这种电源耗能大、效率低、噪声大,已经被淘汰。2)硅整流阶段,是直流发电机的换代产品, 技术十分成熟,但效率低,体积大,控制不方便。目前,仍有许多企业使用这种电镀电源。3)可控硅整流阶段,是目前替代硅整流电源的主流电源,具有效率

10、高、体积小、调控方便等特点。随着核心器件可控硅技术的成熟与发展, 该电源技术日趋成熟,已获得广泛应用。4)晶体管开关电源即脉冲电源阶段:脉冲电镀电源是当今最为先进的电镀电源,它的出现是电镀电源的一次革命。这种电源具有体积小、效率高、性能优越、纹波系数稳定,而且不易受输出电流影响等特点。脉冲电镀电源是发展的方向,现已开始在企业中使用。电镀数字脉冲电源控制程序设计1由于电镀加工给产品带来装饰性与功能性,对金属而言是节约型工艺,随着高科技发展的需要,电镀加工越来越重要。加之世界制造业向我国转移,我国周边地区电镀加工向沿海转移,电镀行业已成为我国国民经济一个不可缺少、也是不可替代、还有上升趋势的发展行

11、业。但他同时又是一个严重污染、耗水、好能、耗金属材料与化工材料的行业。因此,国家把电镀企业纳入强制性实施清洁生产审核企业。我国电镀行业面临严重的挑战,同时也迎来了新的发展机遇。我们必须走清洁生产之路,以科学发展观、创新的理念与时俱进,达到强我国电镀行业的目的。2007 年国际贵金属价格不断飙升,化工原材料价格上涨,给电镀行业带来较大的压力,行业协会组织和各个企业都必须认真面对。随着科技进步,电子、通信、信息等技术的不断发展,电镀数字脉冲电源的应用将会越来越广,合理使用脉冲电源必将对我国电镀行业的发展起到很大的作用。1.3 本文主要研究工作本课题围绕单片机为核心,完成监控主程序和键盘输入、数码管

12、显示、参数设置等子程序设计,为开发完整的具有成本低、运行稳定可靠、开发周期短等优点的高性能系统奠定基础。单片机使用 AT89C52,按照需求将引脚分配给监控电路,按键电路,显示电路;监控电路使用 MAX813L 作为控制芯片,完成上电复位,自动复位,手动复位,和电源监控的功能;显示电路使用 12 个数码管显示;从系统选用 AT89C2051作为控制芯片,产生控制开关电源的脉冲。 陕西科技大学毕业论文(设计说明书)2电镀数字脉冲电源控制程序设计32 电镀数字脉冲电源系统总方案设计2.1 电镀的原理电镀,就是在生产过程中采用电化学的方法使金属离子还原为金属,并且在金属或非金属制品的表面形成符合要求

13、的平滑的、致密的金属覆盖层。电镀后的镀层性能在很大程度上取代了原来基体的性质,起到装饰和防护的作用,使原先的制品更加美观、耐用。电流通过镀槽是电镀的必要条件,镀件上的金属镀层就是在电流流过电镀槽时引起电化学反应而形成的。在电镀中产生电流的装置,称之为电镀电源。在电镀的生产过程中,电源通过导线与阴、阳极棒相连。阳极棒直接插入镀槽中的电镀液中,阴极棒则先与镀件相连接,然后放入电镀液中。阴、阳极之间通过镀槽中的电镀液,能够形成一个闭合的回路。当电源工作时,此闭合回路就会导通,此时将引起电化学反应,镀液中的金属离子会通过该电化学反应,在阴极附近还原为金属,并且覆盖到镀件表面,形成镀层,起到保护和装饰的

14、作用。电镀的生产原理可用图 2-1 表示。电镀液 阴、阳极棒阳极阴极镀件电镀电源图 2-1 电镀原理示意图2.2 性能指标与设计要求 脉冲电镀实质上是一种通、断直流电镀。所不同的是脉冲电源拥有三个独立的参数 (脉冲电流密度 J、电流导通时间 ton及电流关断时间 toff )可调;而一般直流电镀只有一个参数(电流或电压)可调。因此,采用脉冲电镀就为槽外控制镀层提供了强有力的手段。大量的生产实践证明,脉冲电镀是一项既能提高镀层质量,又能提高沉积速率的经济效益很高的电镀新技术。图 2-2 为脉冲电源的直流波形。陕西科技大学毕业论文(设计说明书)4TtofftonOtIpJI图 2-2 脉冲电源的直

15、流波形图中所示:ton :脉冲电源导通时间;toff :脉冲电源断电时间;T=ton+toff :脉冲周期;J:电流密度;Ip:电流峰值。本数字单脉冲电源的性能与设计要求主要体现在以下一些指标:a) 供电电源:3 相,50Hz,380V。b) 输出峰值电压:330V,连续可调。c) 脉冲频率:110KHz,可调。d) 脉冲占空比:0100%,可调。e) 脉冲电流导通时间 ton:0.1999.9ms。f) 脉冲电流断电时间 toff :0.1999.9ms。g) 电流、电压波形:脉冲,键盘设定。h) 电镀时间可键盘设定,为 09999s。2.3 双 CPU 系统总方案设计在本次设计中,由于系统

16、中关键的问题是定时:电镀工作时间的定时及驱动开关管的脉冲定时,而且后者的定时精度会直接影响到输出脉冲波形的频率精度。于是从技术、经济两方面着手,考虑到系统显示及按键处理的因素以及软件编程的难度,同时考虑到芯片的廉价性和 PCB 板大小两方面要求,确定了系统设计的总体方案。本次设计决定采用双 CPU 系统设计架构。电镀数字脉冲电源系统架构如图 2-3 表示。电镀数字脉冲电源控制程序设计5主CPU接口数码管显示键盘运行控制接口从CPU驱动斩波 图 2-3 电镀数字脉冲电源系统架构在决定了系统的设计架构后,需要根据选用的单片机初步确定资源分配,其中主系统采用 89C52 单片机,主要负责显示按键管理

17、、电镀工作时间控制以及运行中的暂停等控制;从系统采用 89C2051 单片机,主要负责产生开关管的驱动脉冲。下面对系统所用的核心芯片 AT89C52 以及 8279 做一介绍。2.3.1 AT89C52 结构及功能介绍主 CPU 系统主要管理显示电路、按键电路、运行控制及向从 CPU 系统发送脉冲参数等,核心是 AT89C52 单片机。其中的 PKEY 开关为暂停开关,通过 P12 与单片机接口,暂停时通过 P11 控制暂停指示等发光指示。 “喂狗”信号由 P10 输出,其实质是一个负脉冲。主、从 CPU 系统的握手信号为 R/P,SCOMM。其中 R/P 用来由主 CPU 控制从 CPU的运

18、行与暂停;SCOMM 信号是从 CPU 向主 CPU 指示通信状态的,成功结束有效;否则无效。考虑到主 CPU 系统对定时的要求不是很高,采用 6MHz。 AT89C52 如下图 2-4 所示。陕西科技大学毕业论文(设计说明书)6图 2-4 AT89C522.3.2 8279 结构及功能介绍8279 是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279 内部有键盘 FIFO(先进先出堆栈)/传感器,双重功能的 8*8=64B RAM,键盘控制部分可控制 8*8=64 个按键或 8*8 阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能

19、。显示 RAM 容量为 16*8,即显示器最大配置可达 16 位 LED 数码显示。 (1)数据线 DB0DB7 是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU 和 8279 之间的数据和命令。 (2)地址线 /CS=0 选中 8279,当 A0=1 时,为命令字及状态字地址;当 A0=0 时,为片内数据地址,故 8279 芯片占用 2 个端口地址。 (3)控制线 CLK:8279 的时钟输入线。 IRQ:中断请求输出线,高电平有效。 /RD、/WR:读、写输入控制线。 SL0-SL3:扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线。 RL0-RL7:回复输入线,

20、它们是键盘或传感器矩阵的信号输入线。 电镀数字脉冲电源控制程序设计7SHIFT:来自外部键盘或传感器矩阵的输入信号,它是 8279 键盘数据的次高位即D6 位的状态,该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。 CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把 RL0-RL7 的数据存入 FIFO RAM 中。 OUTA0-OUTA3:通常作为显示信号的高 4 位输出线。 OUTB0-OUTB3:通常作为显示信号的低 4 位输出线。 /BD:显示熄灭输出线,低电平有效。

21、当/BD=0 时将显示全熄灭。 图 2-5 为 8279 的引脚分布。图 2-5 82792.3.3 AT89C2051 结构及功能介绍89C2051 是由 ATMEL 公司推出的一种小型单片机。95 年出现在中国市场。其主要特点为采用 Flash 存贮器技术,降低了制造成本,其软件、硬件与 MCS-51 完全兼容,可以很快被中国广大用户接受,其程序的电可擦写特性,使得开发与试验比较容易。陕西科技大学毕业论文(设计说明书)81)引脚89C2051 共有 20 条引脚,详见图 2-6。从图中可见,2051 继承了 8031 最重要引脚:P1 口共 8 脚,准双向端口。P3.0P3.6 共 7 脚

22、,准双向端口,并且保留了全部的 P3 的第二功能,如P3.0、P3.1 的串行通讯功能,P3.2、P3.3 的中断输入功能,P3.4、P3.5 的定时器输入功能。在引脚的驱动能力上面,89C2051 具有很强的下拉能力,P1,P3 口的下拉能力均可达到20mA.相比之下,89C51/87C51 的端口下拉能力每脚最大为 15mA。但是限定 9 脚电流之和小于 71mA.这样,引脚的平均电流只 9mA。89C2051 驱动能力的增强,使得它可以直接驱动 LED 数码管。图 2-6 89C2051 管脚图为了增加对模拟量的输入功能,2051 在内部构造了一个模拟信号比较器,其输入端连到 P1.0

23、和 P1.1 口,比较结果存入 P3.6 对应寄存器。对于一些不大复杂的控制电路我们就可以增加少量元件来实现,例如,对温度的控制,过压的控制等。2) 电源89C2051 有很宽的工作电源电压,可为 2.76V,当工作在 3V 时,电流相当于 6V工作时的 1/4。89C2051 工作于 12Hz 时,动态电流为 5.5mA,空闲态为 1mA,掉电态仅为 20nA。这样小的功耗很适合于电池供电的小型控制系统。3) 存储器89C2051 片内含有 2k 字节的 Flash 程序存储器,128 字节的片内 RAM,与 80C31 内部完全类似。由于 2051 内部设计全静态工作,所以允许工作的时钟为

24、 020MHz,也就是说,允许在低速工作时,不破坏 RAM 内容。相比之下,一般 8031 对最低工作时钟限制为 3.5MHz,因为其内部的 RAM 是动态刷新的。89C2051 不允许构造外部总线来扩充程序/数据存储器,所以它也不需要 ALEPSEN、RD、WR 一类的引脚。4) 内部 I/O 控制电镀数字脉冲电源控制程序设计989C2051 在内部 I/O 控制上继承了 MCS51 的特性:5 路 2 级优待中断,串等口,2 路定时器/计数器。5) 程序保密89C2051 设计有 2 个程序保密位,保密位 1 被编程之后,程序存储器不能再被编程除非做一次擦除,保密位 2 被编程之后,程序不

25、能被读出。6) 软硬件的开发89C2051 可以采用下面 2 种方法开发应用系统。1) 由于 89C2051 内部程序存贮器为 Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程 89C2051 的编程器即可。调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的 MCS-51 程序员来说,这种调试方法并不十分困难。当做这种调试不能够了解片内 RAM 的内容和程序的走向等有关信息。2) 将普通 8031/80C31 仿真器的仿真插头中 P1.0P1.7 和 P3.0P3.6 引出来仿真 205T,这种方法可以运用单步、断点的调试方法,但是仿真不够真

26、实,比如,2051的内部模拟比较器功能,P1 口、P3 口的增强下拉能力等。89C2051 通过 RXD、TXD 与 89C51 交叉连接实现与主 CPU 的串行通信,且与主 CPU共享复位信号,从 89C2051 的 P1.6 口输出一个脉冲信号,作为开关电源的脉冲。2.3.4 复位与看门狗电路按照系统的设计要求及长期连续运行、工作环境恶劣等实际情况,本系统的复位必须考虑以下 3 种情况:上电复位、手动复位及看门狗定时器溢出复位;因此,采用 MAX813L 电源监视电路。主 CPU、从 CPU 系统共用复位信号,目的是当系统中的任何一个子系统运行失常时,必须共同复位,以回复待机状态,避免错误

27、运行。虽然“喂狗”信号来自主 CPU,表面上看,从系统的失常不致引起监视电路输出复位信号;但事实上,如果对从系统的软件进行适当处理,当从系统工作失常后,也能让主系统感知,然后强制电源监视电路复位,也可达到引起复位的目的。这里,比较好的做法是利用通信握手信号 SCOMM,即在从系统的非正常程序区全部写满设置 SCOMM 无效指令。这样,当从系统失常、程序“跑飞”时,落入非正常程序区的握手信号始终无效,此时主系统的串行查询程序反复查询,使得“喂狗”信号无法及时送出,从而引起溢出复位。MAX813L 本身具有上电复位、手动复位功能,同时利用自身的看门狗电路,保证系统能自动从死机状态恢复正常工作。本设

28、计中用的是 MAX813L 芯片,MAX813L 有双列直插和贴片两种封装形式,其双列直插如图 2-7 所示,引脚功能如下:第 1 脚为手动复位输入,低电平有效;第 2、3 脚分别为电源和地;陕西科技大学毕业论文(设计说明书)10第 4 脚为电源故障输入;第 5 脚为电源故障输出;第 6 脚为看门狗输入;第 7 脚为复位输出;第 8 脚为看门狗输出。图 2-7 MAX813LMAX813L 芯片具有以下主要性能特点:1)复位输出。系统上电、掉电以及供电电压降低时,第 7 脚产生复位输出,复位脉冲宽度的典型值为 200ms,高电平有效,复位门限的典型值为 4.65V。2)看门狗电路输出。如果在

29、1.6s 内没有触发该电路(即第 6 步无脉冲输入) ,则第 8 脚输出一个低电平信号。3)手动复位输入,低电平有效,即第 1 脚输入一个低电平,则第 7 脚产生复位输出。4)当第 4 脚输入电压低于 1.25V 时,第 5 脚输出一个低电平信号。2.3.5 数码管显示部分设计考虑到电镀的产生实际,显示采用数码管;同时为了减轻主 CPU 的负担,简化硬件设计,显示/键盘电路通过 8279 专用接口芯片与单片机接口。由于系统设置ton,toff,T 等参数的要求,以及运行中电镀时间的倒计时的需要,一共用了 3 组数码管,每组 4 个数码管。前 2 个参数范围为 0.1-999.9ms,符合 82

30、79 的设计能力(物理上可管理 16 个数码管) 。 数码管采用小型超高亮共阳数码管。为了有所区别,前 2 个参数的显示采用绿色,后 1 个参数的显示采用红色。ton,toff 参数在运行中始终显示,而 TT 参数则以秒为单位倒计时显示,到 0 时结束运行。通过 P15 引脚向 MAX813L 发出 RSTK1 信号,使系统复位,也即停止从 CPU 的脉冲输出,结束电镀运行。显示电路中的数码管如图 2-8。电镀数字脉冲电源控制程序设计11图 2-8 数码管显示电路2.3.6 键盘电路模块设计键盘的设计主要是考虑参数的设定输出及运行方式的必要控制,因此设置了 10 个数字键 0-9,3 个参数(

31、ton, toff 及 TT)设置键,与此配套的 Enter,CLS, “”等键及运行控制键 Start,共 17 个按键如表 2-1 所示。表 2-1 按键设计0123456789STARTENTERCLSTonToffTT现对这些按键的功能分析说明如下:a) 数字键 0-9 用来设置参数,在当前编辑位上输入数字,每按 1 个数字键,便覆盖原数字。b) 参数设置键ON,OFF,TT,3 键用来选择设置何种参数。设置流程为:按 3 个中任 1 个,以选择参数项目;再通过数字键送入第 1 位(最高位) ,通过“”键切换到下一位;再送陕西科技大学毕业论文(设计说明书)12入数字,一直到 4 位数字

32、全部送完,通过回车键 Enter 确认。前 2 个参数采用定点数,小数位为 1 位。在输入过程中,如出现错误,则按 CLS 键清除该项目,重新输入,当3 个参数全部送完,则设置参数存在标志,为运行做好准备;否则,不能运行。C) 运行控制键系统中控制运行的有 2 个按键:暂停键和开始运行键 Start。前者为单独键,后者为矩阵按键。在所有参数齐备的情况下,按 Start 键,则开始运行,TT 参数倒计时;如果参数不齐备,按此键无效,按键电路如图 2-9 所示。图 2-9 按键电路电镀数字脉冲电源控制程序设计133 电镀数字脉冲电源各模块程序设计本设计采用采用双 CPU 系统,2 个主从 CPU

33、相互协调与通信,各司其职。主系统设置好参数后,将参数发给从系统,从系统输出脉冲。在本次设计中,我们根据系统的原理图以及硬件电路的要求,决定采用汇编语言,按照划分的不同模块进行编程,这样做的优势是编程难度降低,可以把错误控制在尽可能小的范围内,很容易发现错误,解决错误。3.1 主系统程序设计主系统主要由 4 大功能模块组成:1)主程序模块;2)串行通信模块;3)T2 定时中断服务程序;4)参数编辑模块。各模块的功能分别是:1)主程序模块:系统初始化及其它模块的协调与调用;2)串行通信模块:主要是向从系统发送编辑好的 ton,toff及 TT 等参数;3)T2 定时中断服务程序:计量电镀时间,即对

34、 T 参数倒计时处理;4)参数编辑模块:编辑输入脉冲所需的 ton,toff及 TT 等参数。3.1.1 主程序模块该模块开始首先进行延时,以等待 8279 复位完成,然后系统初始化,相关标志位清零,数码管显示待机符号“P” ,系统进入到按键状态,若有键读入,则转入参数编辑模块进行参数设置,当三参数均已齐备后,将参数送往从系统,通信正常后,系统运行,产生脉冲。主系统主程序流程图如图 3-1 所示。陕西科技大学毕业论文(设计说明书)14开始延时,等待8279复位系统初始化显示待机提示符号“P”等待按键并判断是start键否调用EDIT,编辑三参数设置相应标志参数齐备将参数发给从CPU运行输出脉冲

35、运行完毕YesNONOYesYesNo 图 3-1 主系统主程序流程图主程序关键代码如下: ORG 0000H SJMP MAIN ORG 002BH LJMP INT_T2 ORG 0030H电镀数字脉冲电源控制程序设计15MAIN: MOV SP, #60H ;堆栈指针初始化 MOV R6, #40H ;R6 寄存器初始化 LCALL DELAY ;延时,以等待 8279 复位完成 LCALL INIT8279 ;8279 初始化 CLR CSOK ;清除参数输入完成标志 CLR CSXS ;清参数项数单元 CLR CSON1 ;清各参数 ON1 项已编辑标志 CLR CSOFF1 CLR

36、 CSTT CLR CSW1 ;当前参数项内各数位标志被清除 CLR CSW2 CLR CSW3 CLR CSW4 CLR TTFLAG ;清除工作时间已设定过标志 MOV R0, #DISPBUF ;P代码写入首位,以显示开机符P MOV A, #0AH ;P的代码 , MOV R0, A MOV A, #0CH ;熄灭的代码 INC R0 ;显缓的余下部分清 0(即熄灭) MOV R6, #0FH ;还共 15 个(实际只要 11 个)MAIN_00: MOV R0, A INC R0 DJNZ R6, MAIN_00 ;减一条件转移MAIN_0: LCALL DISPLAY ;显示 LC

37、ALL READKEY ;等待按键并读键 MOV KEYBUF,A ;将键值暂存 CJNE A, #ON1,MAIN_1 ;判是否是 ON1 键 SETB ISON1 ;YES,则设置参数项标志后,转参数编辑模块 CLR ISOFF1 ;此时,余下 2 参数项标志被清除 CLR ISTT CLR CSW1 ;如果此参数还未完成,则清参数 4 位 CLR CSW2 ;未编辑标志 CLR CSW3 CLR CSW4 CLR CSON1 ;清参数项被编辑过标志陕西科技大学毕业论文(设计说明书)16 SETB DP ;要小数点 LCALL EDIT ;完成相应参数的编辑(回车键返回) JNC MAIN

38、_0 ;C=0,说明此参数项未被编辑 SETB CSON1 ;C=1,说明参数项被编辑过,设置标志 SJMP MAIN_0MAIN_1: CJNE A, #OFF1,MAIN_2 ;NO,则继续判是否是 OFF1 键 SETB ISOFF1 CLR ISON1 CLR ISTT CLR CSW1 CLR CSW2 CLR CSW3 CLR CSW4 CLR CSOFF1 SETB DP ;要小数点MAIN_10: LCALL EDIT JNC MAIN_0 SETB CSOFF1 SJMP MAIN_0MAIN_2: CJNE A, #TT,MAIN_3 SETB ISTT CLR ON1 C

39、LR ISOFF1 CLR CSW1 CLR CSW2 CLR CSW3 CLR CSW4 CLR CSTT CLR DP ;不要小数点MAIN_20: LCALL EDIT JNC MAIN_0 ;C=0,则不设置 CSTT SETB CSTT ;C=1,则设置 CSTT 标志 SJMP MAIN_0MAIN_3: CJNE A, #START,MAIN_0 ;其他键忽略MAIN_30: MOV C, CSON1 ;运行键处理电镀数字脉冲电源控制程序设计17 ANL C, CSOFF1 ANL C, CSTT ;1*1*1=(否则为 0) JC MAIN_4 ;3 个参数均已被编辑过,说明参

40、数已完成 LJMP MAIN_0 ;否则,说明还有参数未被输入,则继续等待MAIN_4: LCALL INVERT ;参数转换并存相应单元及备份单元 LCALL FS_CPU3 ;参数 ON,OFF 发送 JNC MAIN_40 ;通信不正常,则等待再次按开始键发送 LCALL RUN ;正常,则运行(开始计时)MAIN_40: LJMP MAIN_0 ;运行完成等待下次运行(参数保留)*软复位3.1.2 串行通信程序设计由于本次设计采用双 CPU 系统,因此主、从 CPU 系统之间的通信也是本次设计的关键,下面就结合主系统串行通信程序流程图进行说明,其流程图如图 3-2 所示。在系统软件设计

41、过程中,我们采用如下方式,当串行通信程序开始运行后,发送参数0AAH,若 PC 应答 0AAH,再发送字节数;若 PC 无应答,则重新发送参数,直到应答为止。当 PC 应答后,系统会发送规定的字节数,PC 会对接收到的字节数进行累加和的计算。若是结果正确,则应答 00H,否则应答 0FFH,若此时应答正确,则说明通信正常。主 CPU 系统采用 6MHz 的主频,其波特率为 2400。陕西科技大学毕业论文(设计说明书)18发送规定的字节数开始发送参数,PC是否应答接收累加和,判是否正确应 答通讯正常结束NoYesNoYes图 3-2 串行通信服务程序流程图 串行通信关键代码如下:FS_CPU3:

42、 CLR EA ;点通信指示灯 MOV TMOD, #20H ;设置 T1 为方式 2 定时器工作 MOV TH1, #0F3H ;送时间常数的高 8 位,BAUD 为 2400 MOV TL1 #0F3H ;低 SETB TR1 ;开定时器 MOV R0, #OFF ;发送参数首址 MOV R2, #04H ;个数:0AAHXXXXXXXX0BBH MOV SCON, #50H ;串口方式 3 接收 MOV PCON, #80H ;设置 SMOD=1LOOP: MOV A, #0AAH LCALL DELAY1 MOV SBUF, A电镀数字脉冲电源控制程序设计19LX: JBC TI, C

43、ONT SJMP LXCONT: MOV A, R0 LCALL DELAY1 MOV SBUF, ALX2: JBC TI, CONT SJMP LX2CONT1: INC R0 DJNZ R2, CONTLOOP1: MOV A, #0BBH LCALL DELAY1 MOV SBUF, ALX3: JBC TI, CONT2 SJMP LX3CONT2: JNB SCOMM, CONT3 CLR C RETCONT3: SETB C RET END3.1.3 T2 定时中断程序设计主系统定时中断程序是为电镀电源定时所编辑的,在系统初始化后,我们会设定电镀电源运行的总时间。系统开始运行后,

44、工作时间会进行倒计时运算,时间量会在数码管上进行显示,当系统暂停运行时,倒计时也随之停止;系统恢复运行,倒计时继续运行。当倒计时剩余时间为 0 时,表示运行时间结束,则主系统复位。主系统定时中断程序流程图如图 3-3 所示。陕西科技大学毕业论文(设计说明书)20NoYesNoYes清累计单元定时器中断判中断 100 次否?进行二字节 BCD 减法减法剩余时间是否为 0关定时器 T0,T1禁止 T0,T1 溢出中断关总中断开 始结 束 图 3-3 主系统 T2 定时中断程序流程图T2 定时终端服务程序主要代码如下:INT_T2: CLR EA PUSH PSW PUSH ACC ;保护现场,A

45、PUSH 00H ;R0电镀数字脉冲电源控制程序设计21 PUSH 01H ;R1 PUSH 02H ;R2 PUSH 03H ;R3 PUSH 04H ;R4 PUSH 05H ;R5 PUSH 06H ;R6 PUSH 07H ;R7 CLR 0CFH ;清定时器溢出标志 INC T0_COUNT MOV A, T0_COUNT CJNE A, #64H, INT_T2_11 ;判中断 100 次否?NO 则直接返回 MOV T0_COUNT, #00H ;清累计单元 MOV R7, #02H ;YES,则 2B BCD 减法 MOV R1, #BCDJJ ;件数为 0001 MOV R1

46、, #00H INC R1 MOV R1, #01H MOV R0, #WTBF MOV R1, #BCDJJ LCALL BCDBN ;BCD 减法 MOV A, R0 JNZ INI_T2_1 ;判剩余时间为 0? CLR 0CAH ;关 T2 CLR TR0 ;YES,则关定时器 T0,T1 CLR TR1 CLR ET0 ;禁止 T0,T1 溢出中断 CLR ET1 CLR EA ;关总中断 SETB ISOVER ;设置工作结束标志 CLR ISENDINT_T2_1: MOV R0, #WTBF ;将新的剩余时间转换成显示代码送显缓 MOV R1, #DISPBUF+8 MOV A

47、, R0 MOV B, A ;第一字节暂存 ANL A, #0F0H ;取工作时间的千位陕西科技大学毕业论文(设计说明书)22 SWAP A MOV R1, A ;送存显缓 INC R1 MOV A, B ANL A, #0FH ;百位 MOV R1, A ;送存显缓 INC R0 INC R1 MOV A, R0 MOV B, A ANL A, #0F0H ;十位送存 SWAP A MOV R1, A INC R1 MOV A, B ANL A, #0FH ;个位 MOV R1, A JB ISOVER, INT_T2_12INT_T2_11: CLR ISOVER, ;工作还未结束INT_

48、T2_12: POP 07H ;恢复现场 POP 06H POP 04H POP 03H POP 02H POP 01H POP 00H POP ACC POP PSW JB ISOVER, INT_T2_13 SETB EAINT_T2_13: RETI3.1.4 参数编辑模块考虑到电镀生产的实际,为了减轻主 CPU 的负担,显示/键盘电路通过 8279 专用接口芯片与单片机接口,考虑到 3 个相对独立的参数(Ton、Toff、TT)的编辑,我们电镀数字脉冲电源控制程序设计23对参数编辑和数字键的处理进行了编程,在编程过程中考虑到数字键入的方便快捷,按先后顺序键入 3 个不同的参数项,采用逐

49、位键入参数,最终输入整列参数的方式。首先,我们选择相应的参数项(Ton、Toff、TT) ,选择正确后,系统会将该参数备份到参数备份缓冲区,接着我们编辑输入参数,此时该参数对应的数码管会显示闪动的光标,等待键入参数。接着我们输入参数项的首位,输入一位数字,通过“”键将光标切换下一位,再键入该位的数字,切换与键入往复循环,系统设置键入参数大小的范围为(0.1999.9ms 或 09999S) 。如若参数键入正确,则按“Enter”输入该参数;反之,参数输入错误,则按“CLS”清除该参数,重新键入正确值。当编辑完一个参数项后,我们通过按键选择下一个参数项,并键入该选项的数值。依次完成 3 个不同参

50、数项的编辑,当 3 个参数项都编辑完成后,系统开始运行。参数编辑与数字键处理模块是本系统控制的重要组成部分,通过键入不同的参数值,可以精确控制电镀电源的运行。根据生产实际,在系统刚刚开始工作时,由于存在较大的电流密度,可以设定较小的关段时间 Toff;随着电镀生产的进行,镀液中金属离子浓度差增大,这时就需要较大的关段时间 Toff。因此,要根据生产实际,随时改变电镀电源的参数,保证电镀的质量。当工作时间需要延长时,也可以改变参数项 TT,延长工作时间,本系统的设计特点在此方面将得到最大的体现。系统编辑流程图如下 3-4 所示。陕西科技大学毕业论文(设计说明书)24开始参数编辑输入EDIT参数项

51、是否编辑参数备份到备份缓冲区判断标志位是否正确等待键入相应参数显示当前光标位置当前参数位是否输入数字判参数输入是否完成按Enter输入参数通过键移动光标YesYesYes结束NoNoNoNoYes 图 3-4 编辑模块流程图 以下为编辑模块的主要代码:EDIT: JNB ISON1,EDIT_1 ;要编辑的是 ON 参数项?NO,则转电镀数字脉冲电源控制程序设计25 MOV R0, #DISPBUF ;YES,则 ON1 参数对应显示缓冲单元首址 MOV FIRST, #DISPBUF ;首地址送存 FIRST 单元备份 SJMP EDIT_4EDIT_1: JNB ISOFF1,EDIT_2

52、 ;编辑 OFF 参数项? NO,则转 MOV R0, #DISPBUF+4 ;YES,OFF1 对应显示缓冲单元首址 MOV FIRST, #DISPBUF+4 SJMP EDIT_4EDIT_2: JNB ISTT, EDIT_3 ;编辑 TT 参数项? NO,则转 MOV R0, #DISPBUF+8 ;YES,TT 参数对应显示缓冲单元首址 MOV FIRST, #DISPBUF+8 SJMP EDIT_4,#EDIT_4EDIT_3: CLR C ;清标志 C RET ;标志不对,直接返回(不设置参数完成标志)EDIT_4: MOV CURSOR,#00H ;光标在第 1 位(原始位

53、置) MOV A, #14H ;_的代码 MOV R0, A ;把累加器 A 中的内容送入以 R0 为地址指针的片内 RAM 单元中 INC R0 ;第 2 位为灭 CLR AEDIT_41: MOV R0, A INC R0 MOV R0, A ;第 3 位灭 INC R0 ;第 4 位为灭 MOV R0, AENIT_42: LCALL DISPLAY ;显示 LCALL READKEY ;等待按键 CJNE A, #NUM0,EDIT_43 LCALL NUMKEY0 ;如为数字键 0,则调用数字键处理 SJMP EDIT_42EDIT_43: CJNE A, #NUM1,EDIT_44

54、 LCALL NUMKEY1 SJMP EDIT_42EDIT_44: CJNE A, #NUM2,EDIT_45 LCALL NUMKEY2 SJMP EDIT_42EDIT_45: CJNE A, #NUM3,EDIT_46陕西科技大学毕业论文(设计说明书)26 LCALL NUKEY3 SJMP EDIT_42EDIT_46: CJNE A, #NUM4,EDIT_47 LCALL NUKEY4 SJMP EDIT_42EDIT_47: CJNE A, #NUM5,EDIT_48 LCALL NUKEY5 SJMP EDIT_42EDIT_48: CJNE A, #NUM6,EDIT_4

55、9 LCALL NUKEY6 SJMP EDIT_42EDIT_49: CJNE A, #NUM7,EDIT_4A LCALL NUKEY7 SJMP EDIT_42EDIT_4A: CJNE A, #NUM8,EDIT_4B LCALL NUKEY8 SJMP EDIT_42EDIT_4B: CJNE A, #NUM9,EDIT_4C LCALL NUKEY9 SJMP EDIT_42EDIT_4C: CJNE A, #NUM4,EDIT_4D MOV A, CURSOR ;光标左移键处理 CJNE A, #00H,EDIT_4C1 ;判当前光标是否在第 1 位 JNB CSW1, EDIT

56、_42 ;YES,判参数位 1 是否已输入数字,NO,不理睬 MOV CURSOR,#01H MOV A, FIRST ;首页 ADD A, CURSOR ;加新光标位置序号=新光标显示缓冲单元 MOV R0, A MOV A, #14H ;_光标字符代码 MOV R0, A ;送存相应显示缓冲单元 LJMP EDIT_42 ;继续相应判键EDIT_4C1: CJNE A, #01H,EDIT_4C2 JNB CSW2, EDIT_42 ;YES,判参数位 2 是否已输入数字,NO,则不理睬 MOV CURSOR,#02H MOV A, FIRST ;首址电镀数字脉冲电源控制程序设计27 AD

57、D A, CURSOR ;加新光标位置序号=新光标显示缓冲单元 MOV R0, A MOV A, #14H ;_光标字符代码 MOV R0, A ;送存相应显示缓冲单元 LJMP EDIT_42 ;继续显示判键EDIT_4C2: CJNE A, #02H,EDIT_4C3 JNB CSW3,EDIT_4C23 ;YES,判参数位 3 是否已输入数字,NO,则不理睬 SJMP EDIT_4C20EDIT_4C23:LJMP EDIT_42EDIT_4C20:MOV CURSOR,#03H MOV A, FIRST ;首址 ADD A, CURSOR ;加新光标位置序号=新光标显缓冲单元 MOV

58、R0, AEDIT_4C21:MOV A, #14H ;送_的代码EDIT_4C22:MOV R0, A ;送存相应显示缓冲单元 LJMP EDIT_42 ;继续显示判键EDIT_4C3: LJMP EDIT_42 ;光标已在第 4 位,左移键忽略EDIT_4D: CJNE A, #CLS,EDIT_4E MOV CURSOR,#00H ;清除键处理 MOV A, FIRST MOV R0, A MOV A, #14H ;第 1 位显示_ MOV R0, A MOV R0, FIRST INC R0 ;第 2 位灭 MOV A, #0CHEDIT_4D1: MOV R0, A INC R0ED

59、IT_4D12:MOV R0, A ;第 3 位灭 INC R0 ;第 4 位灭 MOV 0, A CLR CSW1 ;各参数位已输入数字标志清除 CLR CSW2 CLR CSW3 CLR CSW4陕西科技大学毕业论文(设计说明书)28 LJMP EDIT_42 ;继续显示并判键EDIT_4E: CJNE A, #ENTER,EDIT_4G MOV C, CSW1 ;回车键处理 ANL C, CSW2 ;判 4 位是否已全输入数字 ANL C, CSW3 ANL C, CSW4 JC EDIT_4E1 ;YES,则继续 LJMP EDIT_42 ;NO,说明参数未编辑完,回车键忽略EDIT_

60、4E1: SETB C ;设置已完成标志 RETEDIT_4G: LJMP EDIT_42 ;其他键忽略主系统除了以上模块外,还包括一些小的模块,下面分别对其进行描述:1)运行子程序:负责从显示缓冲单元取出相应的参数,存入参数单元,参数最终转换为延时子程序。该模块还负责系统暂停与在继续运行的控制。2)显示子程序:负责在 ON、OFF 参数项中的各自第 3 位固定显示小数点。3)判按键否子程序与读键值子程序:前者负责设定按键标志,后者负责读键值。4) 8279 初始化子程序:负责专用接口芯片的初始化。3.2 从系统程序设计前面提到过,从 CPU 系统是基于 89C2051 单片机的单芯片系统,惟

61、一的任务是产生斩波所需的脉冲信号。从系统的软件主要有 3 大模块:1)主程序模块;2)串行通信模块;3)T1 定时中断服务程序。其中 T1 定时中断服务程序是核心,主要生成脉冲波形。三个模块的功能分别是:1)主程序模块:系统初始化及其它模块的协调与调用;2)串行通信模块:负责接收主系统发送编辑好的 ton,toff 及 TT 等参数;3)T1 定时中断服务程序:每 0.1ms 中断,并重置时间常数。3.2.1 从系统主程序 该模块开始先进行系统初始化,系统等待主系统发送参数,收到后将参数备份到备份缓冲区,处于待运行状态,当系统开始运行时,进行 T1 参数设置,其它处于初始化状态,允许 T1 中

62、断,输出脉冲,若暂停键按下,则关脉冲。从系统主程序框图如图 3-5 所示。电镀数字脉冲电源控制程序设计29开始等待主系统发送参数参数备份到备份缓冲区T1参数设置,其他初始化允许T1中断暂停输出脉冲关脉冲YesNo图 3-5 从系统主程序流程图 从系统主程序代码如下:ORG 0000H SJMP MAIN ORG 001BH LJMP INT_T1 ;T1 中断入口(每中断一次,参数-1) ORG 0030HMAIN: MOV SP, #60H ;堆栈指针初始化 MOV IE, #00H ;关闭所有中断 CLR PULSE ;复位后脉冲必须关断 CLR ON_RUN ;关运行指示 LCALL R

63、S_232 ;调用串行通信 JNC MAIN ;通信错误,则软复位 MOV R0, #OFF ;将串行接收到的参数送存备份单元 MOV R2, #04H陕西科技大学毕业论文(设计说明书)30 MOV R1, #OFFBFMAIN_A: MOV A, R0 MOV R1, A INC R0 INC R1 DJNZ R2, MAIN_A JNB CANWORK,MAIN_C ;有参数否? SJMP MAIN_B MAIN_C: CLR BEEPING ;NO,报警指示 SJMP $ ;死机MAIN_B: JNB RP, MAIN_D ;YES,则判运行/暂停 SJMP MAIN_B ;暂停,则不运

64、行MAIN_D: MOV TCON, #10H ;T1 为方式 1,T0 为方式 0 MOV TL1, #6AH ;9CH;T1 0.1ms 的时间常数 MOV TH1, #0FFH CLR PAUSE_FLAG ;清暂停标志 CLR ON_RUN ;指示正在运行中 SETB TR1 ;启动 T1 SETB ET1 SETB EA ;开放总中断 SETB PULSE ;首先导通 SETB CSX ;首先为 NO(标志)MAIN_F: JNB RP, MAIN_G ;NO,运行,则继续 CLR TR1 ;否则,关 T1 暂停 CLR PULSE ;关脉冲 SJMP MAIN_F ;否则,等待MA

65、IN_G: SETB TR1 ;运行,则必须开 T1 定时器 SJMP MAIN_F3.2.2 从系统串行通信程序串行通信程序采用高级优先的方式,通信完毕时,设置 CANWORK 标志,程序能开放 T0 中断输出脉冲,从 CPU 系统主频为 12MHz,波特率为 2400。从系统串行通信程序流程图如图 3-6 所示。电镀数字脉冲电源控制程序设计31图 3-6 从系统串行通信程序流程图 从系统串行通信程序关键代码:RS_232: CLR EA MOV TMOD, #20H ;设置 T1 为方式 2 定时器工作 MOV TH1, #0F3H ;送时间常数的高 8 位,BAUD 为 2400 MOV

66、 TL1, #0F3H ;低 SETB TR1 ;开定时器 MOV R0, #OFF-1 MOV R2, #06H ;共接收 6B MOV SCON, #50H ;串口方式 1 接收 MOV PCON, #00H ;设置 SMOD=0RS_232_00: JBC RI, RS_232_2 ;等待接收应答陕西科技大学毕业论文(设计说明书)32 SJMP RS_232_00RS_232_2: MOV A, SBUFRIGHT: MOV R0, A INC R0 DJNZ R2, RS_232_00 MOV R0, #OFF-1 MOV A, R0 XRL A, #0AAH ;判首字节是否为 0AHH JNZ RS_232_4 SETB C ;YES,则通信正常标志 SETB CANWORK CLR SCOMM ;设置通信正常状态 RETRS_232_4: SETB SCOMM ;NO,则通信不正常 CLR C CLR CANWORK RET END3.2.3 T2 定时中断INT_T1: MOV TL1,#6ah ;#9CH;低 8 位 1M MOV TH1,#0FFH ;高 8 位 1M

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!