1、III 摘 要所谓数字脉冲电源,就是采用微处理器等数字电路对脉冲电源中的直流斩波进行控完成制,并实现数字显示与数字调节的一种脉冲电源。它是当今最为先进的电镀电源,也是电镀电源发展的方向。本设计主要介绍可调节占空比及频率的脉冲电镀电源。本设计采用双CPU系统设计架构,主CPU系统以AT89C52芯片为核心,主要负责显示电路、按键电路、运行状态控制以及向从CPU系统发送脉冲参数等模块程序设计。而从CPU系统选用89C2051单片机,唯一的任务是产生斩波所需要的脉冲信号。同时为了减轻主CPU的负担,简化硬件设计,显示与按键电路通过8279专用接口芯片与单片机相连。再通过主从软件系统各模块之间的协调调
2、用来实现这一功能。关键词:脉冲,电镀,电源,单片机 Digital PulseElectroplatingPower Supply ControlProgramABSTRACTThe 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 regulation of a pulsed power sup
3、ply.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 core system, the main administratio
4、n 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 burden on the main CPU to simplify ha
5、rdware 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, SCM目 录摘 要IABSTRACTII1 绪论11.1课题意义11.2国内外发展状况11.
6、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主程序模块133.1.2串行通信程序设计173.1.3 T2定时中断程序设计193.1.4参数编辑模块223.2 从系统程序设计283.2.1从系统主程序283.2.2从系统串行通
7、信程序313.2.3 T2定时中断324程序仿真调试355总结37致谢38参考文献3937电镀数字脉冲电源控制程序设计1 绪论1.1课题意义随着科学技术与生产的发展,电子技术在生产生活中应用的越来越多,在社会生活中扮演日益重要的角色其中电镀产品就十分突出。但这些都是由于目前的电镀技术仍存在诸如加工时间长、镀层厚度均匀性差、镀层容易出现缺陷以及存在较大内应力等缺陷造成的,这些缺陷不仅影响到电镀制品的质量,同时还大大限制了电镀技术的应用与发展,不能适应当前的社会生产,尤其是精密制造的需要。因此,我们希望能改进电镀技术,从而提高电镀制品的质量。虽然当今比较成熟而稳定的电镀电源为开关电源,但我们通过查
8、阅相关资料,对电镀生产的最基本原理进行研究,考虑到各方面因素,决定从生产实际进行改革,通过采用先进的电镀电源,达到提高电镀生产的水平的目的,在提高电镀制品质量的同时,也加快了电镀生产的生产效率,并且消除电镀中的种种缺陷。于是,数字单脉冲电源便凭借自身优势,为当今各个方面争相研究、开发的对象。1.2国内外发展状况我国开关式电镀电源技术已有突破性发展,在中小型功率领域已进入推广应用的阶段。但在输出功率,通用品种,可靠性,批量生产能力,推广范围,特别是数字化智能控制等方面,同国外工业发达国家水平,尚有较大差距。为了适应我国制造业的迅速发展和成为世界制造中心的需求,进一步加强电镀电源的高频高效化,数字
9、化智能控制绿色可靠的工作并解决相关问题,对推动开关式电镀电源的持续发展是很有必要的。电镀电源经历了四个发展阶段:1)直流发电机阶段:这种电源耗能大、效率低、噪声大,已经被淘汰。2)硅整流阶段,是直流发电机的换代产品, 技术十分成熟,但效率低,体积大,控制不方便。目前,仍有许多企业使用这种电镀电源。3)可控硅整流阶段,是目前替代硅整流电源的主流电源,具有效率高、体积小、调控方便等特点。随着核心器件可控硅技术的成熟与发展, 该电源技术日趋成熟,已获得广泛应用。4)晶体管开关电源即脉冲电源阶段:脉冲电镀电源是当今最为先进的电镀电源,它的出现是电镀电源的一次革命。这种电源具有体积小、效率高、性能优越、
10、纹波系数稳定,而且不易受输出电流影响等特点。脉冲电镀电源是发展的方向,现已开始在企业中使用。由于电镀加工给产品带来装饰性与功能性,对金属而言是节约型工艺,随着高科技发展的需要,电镀加工越来越重要。加之世界制造业向我国转移,我国周边地区电镀加工向沿海转移,电镀行业已成为我国国民经济一个不可缺少、也是不可替代、还有上升趋势的发展行业。但他同时又是一个严重污染、耗水、好能、耗金属材料与化工材料的行业。因此,国家把电镀企业纳入强制性实施清洁生产审核企业。我国电镀行业面临严重的挑战,同时也迎来了新的发展机遇。我们必须走清洁生产之路,以科学发展观、创新的理念与时俱进,达到强我国电镀行业的目的。2007年国
11、际贵金属价格不断飙升,化工原材料价格上涨,给电镀行业带来较大的压力,行业协会组织和各个企业都必须认真面对。随着科技进步,电子、通信、信息等技术的不断发展,电镀数字脉冲电源的应用将会越来越广,合理使用脉冲电源必将对我国电镀行业的发展起到很大的作用。1.3本文主要研究工作本课题围绕单片机为核心,完成监控主程序和键盘输入、数码管显示、参数设置等子程序设计,为开发完整的具有成本低、运行稳定可靠、开发周期短等优点的高性能系统奠定基础。单片机使用AT89C52,按照需求将引脚分配给监控电路,按键电路,显示电路;监控电路使用MAX813L作为控制芯片,完成上电复位,自动复位,手动复位,和电源监控的功能;显示
12、电路使用12个数码管显示;从系统选用AT89C2051作为控制芯片,产生控制开关电源的脉冲。 2 电镀数字脉冲电源系统总方案设计2.1电镀的原理电镀,就是在生产过程中采用电化学的方法使金属离子还原为金属,并且在金属或非金属制品的表面形成符合要求的平滑的、致密的金属覆盖层。电镀后的镀层性能在很大程度上取代了原来基体的性质,起到装饰和防护的作用,使原先的制品更加美观、耐用。电流通过镀槽是电镀的必要条件,镀件上的金属镀层就是在电流流过电镀槽时引起电化学反应而形成的。在电镀中产生电流的装置,称之为电镀电源。在电镀的生产过程中,电源通过导线与阴、阳极棒相连。阳极棒直接插入镀槽中的电镀液中,阴极棒则先与镀
13、件相连接,然后放入电镀液中。阴、阳极之间通过镀槽中的电镀液,能够形成一个闭合的回路。当电源工作时,此闭合回路就会导通,此时将引起电化学反应,镀液中的金属离子会通过该电化学反应,在阴极附近还原为金属,并且覆盖到镀件表面,形成镀层,起到保护和装饰的作用。电镀的生产原理可用图2-1表示。电镀液 阴、阳极棒阳极阴极镀件电镀电源图2-1 电镀原理示意图2.2性能指标与设计要求 脉冲电镀实质上是一种通、断直流电镀。所不同的是脉冲电源拥有三个独立的参数 (脉冲电流密度J、电流导通时间ton及电流关断时间toff )可调;而一般直流电镀只有一个参数(电流或电压)可调。因此,采用脉冲电镀就为槽外控制镀层提供了强
14、有力的手段。大量的生产实践证明,脉冲电镀是一项既能提高镀层质量,又能提高沉积速率的经济效益很高的电镀新技术。图2-2为脉冲电源的直流波形。TtofftonOtIpJI图2-2 脉冲电源的直流波形图中所示:ton :脉冲电源导通时间;toff :脉冲电源断电时间;T=ton+toff :脉冲周期;J:电流密度;Ip:电流峰值。本数字单脉冲电源的性能与设计要求主要体现在以下一些指标:a) 供电电源:3相,50Hz,380V。b) 输出峰值电压:330V,连续可调。c) 脉冲频率:110KHz,可调。d) 脉冲占空比:0100%,可调。e) 脉冲电流导通时间ton:0.1999.9ms。f) 脉冲电
15、流断电时间toff :0.1999.9ms。g) 电流、电压波形:脉冲,键盘设定。h) 电镀时间可键盘设定,为09999s。2.3双CPU系统总方案设计在本次设计中,由于系统中关键的问题是定时:电镀工作时间的定时及驱动开关管的脉冲定时,而且后者的定时精度会直接影响到输出脉冲波形的频率精度。于是从技术、经济两方面着手,考虑到系统显示及按键处理的因素以及软件编程的难度,同时考虑到芯片的廉价性和PCB板大小两方面要求,确定了系统设计的总体方案。本次设计决定采用双CPU系统设计架构。电镀数字脉冲电源系统架构如图2-3表示。主CPU接口数码管显示键盘运行控制接口从CPU驱动斩波 图2-3 电镀数字脉冲电
16、源系统架构在决定了系统的设计架构后,需要根据选用的单片机初步确定资源分配,其中主系统采用89C52单片机,主要负责显示按键管理、电镀工作时间控制以及运行中的暂停等控制;从系统采用89C2051单片机,主要负责产生开关管的驱动脉冲。下面对系统所用的核心芯片AT89C52以及8279做一介绍。2.3.1 AT89C52结构及功能介绍主CPU系统主要管理显示电路、按键电路、运行控制及向从CPU系统发送脉冲参数等,核心是AT89C52单片机。其中的PKEY开关为暂停开关,通过P12与单片机接口,暂停时通过P11控制暂停指示等发光指示。“喂狗”信号由P10输出,其实质是一个负脉冲。主、从CPU系统的握手
17、信号为R/P,SCOMM。其中R/P用来由主CPU控制从CPU的运行与暂停;SCOMM信号是从CPU向主CPU指示通信状态的,成功结束有效;否则无效。考虑到主CPU系统对定时的要求不是很高,采用6MHz。 AT89C52如下图2-4所示。图2-4 AT89C522.3.2 8279结构及功能介绍8279是可编程的键盘、显示接口芯片。它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛。8279内部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64B RAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器。该芯片能自动消抖并具有双键锁定保护功能。显示RAM
18、容量为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:回复输入线,它们是键盘或传感器矩阵的信号输入线。 SHIFT:来自外
19、部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的状态,该位状态控制键盘上/下档功能。在传感器方式和选通方式中,该引脚无用。 CNTL/S:控制/选通输入线,高电平有效。键盘方式时,键盘数据最高位(D7)的信号输入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0-RL7的数据存入FIFO RAM中。 OUTA0-OUTA3:通常作为显示信号的高4位输出线。 OUTB0-OUTB3:通常作为显示信号的低4位输出线。 /BD:显示熄灭输出线,低电平有效。当/BD=0时将显示全熄灭。 图2-5为8279的引脚分布。图2-5 82792.3.3 AT89C2051
20、结构及功能介绍89C2051是由ATMEL公司推出的一种小型单片机。95年出现在中国市场。其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被中国广大用户接受,其程序的电可擦写特性,使得开发与试验比较容易。1)引脚89C2051共有20条引脚,详见图2-6。从图中可见,2051继承了8031最重要引脚:P1口共8脚,准双向端口。P3.0P3.6共7脚,准双向端口,并且保留了全部的P3的第二功能,如P3.0、P3.1的串行通讯功能,P3.2、P3.3的中断输入功能,P3.4、P3.5的定时器输入功能。在引脚的驱动能力上面,89C2051具有很强的下
21、拉能力,P1,P3口的下拉能力均可达到20mA.相比之下,89C51/87C51的端口下拉能力每脚最大为15mA。但是限定9脚电流之和小于71mA.这样,引脚的平均电流只9mA。89C2051驱动能力的增强,使得它可以直接驱动LED数码管。图2-6 89C2051管脚图为了增加对模拟量的输入功能,2051在内部构造了一个模拟信号比较器,其输入端连到P1.0和P1.1口,比较结果存入P3.6对应寄存器。对于一些不大复杂的控制电路我们就可以增加少量元件来实现,例如,对温度的控制,过压的控制等。2) 电源89C2051有很宽的工作电源电压,可为2.76V,当工作在3V时,电流相当于6V工作时的1/4
22、。89C2051工作于12Hz时,动态电流为5.5mA,空闲态为1mA,掉电态仅为20nA。这样小的功耗很适合于电池供电的小型控制系统。3) 存储器89C2051片内含有2k字节的Flash程序存储器,128字节的片内RAM,与80C31内部完全类似。由于2051内部设计全静态工作,所以允许工作的时钟为020MHz,也就是说,允许在低速工作时,不破坏RAM内容。相比之下,一般8031对最低工作时钟限制为3.5MHz,因为其内部的RAM是动态刷新的。89C2051不允许构造外部总线来扩充程序/数据存储器,所以它也不需要ALEPSEN、RD、WR一类的引脚。4) 内部I/O控制89C2051在内部
23、I/O控制上继承了MCS51的特性:5路2级优待中断,串等口,2路定时器/计数器。5) 程序保密89C2051设计有2个程序保密位,保密位1被编程之后,程序存储器不能再被编程除非做一次擦除,保密位2被编程之后,程序不能被读出。6) 软硬件的开发89C2051可以采用下面2种方法开发应用系统。1) 由于89C2051内部程序存贮器为Flash,所以修改它内部的程序十分方便快捷,只要配备一个可以编程89C2051的编程器即可。调试人员可以采用程序编辑-编译-固化-插到电路板中试验这样反复循环的方法,对于熟练的MCS-51程序员来说,这种调试方法并不十分困难。当做这种调试不能够了解片内RAM的内容和
24、程序的走向等有关信息。2) 将普通8031/80C31仿真器的仿真插头中P1.0P1.7和P3.0P3.6引出来仿真205T,这种方法可以运用单步、断点的调试方法,但是仿真不够真实,比如,2051的内部模拟比较器功能,P1口、P3口的增强下拉能力等。89C2051通过RXD、TXD与89C51交叉连接实现与主CPU的串行通信,且与主CPU共享复位信号,从89C2051的P1.6口输出一个脉冲信号,作为开关电源的脉冲。2.3.4 复位与看门狗电路按照系统的设计要求及长期连续运行、工作环境恶劣等实际情况,本系统的复位必须考虑以下 3 种情况:上电复位、手动复位及看门狗定时器溢出复位;因此,采用 M
25、AX813L 电源监视电路。主 CPU、从 CPU 系统共用复位信号,目的是当系统中的任何一个子系统运行失常时,必须共同复位,以回复待机状态,避免错误运行。虽然“喂狗”信号来自主CPU,表面上看,从系统的失常不致引起监视电路输出复位信号;但事实上,如果对从系统的软件进行适当处理,当从系统工作失常后,也能让主系统感知,然后强制电源监视电路复位,也可达到引起复位的目的。这里,比较好的做法是利用通信握手信号 SCOMM,即在从系统的非正常程序区全部写满设置SCOMM无效指令。这样,当从系统失常、程序“跑飞”时,落入非正常程序区的握手信号始终无效,此时主系统的串行查询程序反复查询,使得“喂狗”信号无法
26、及时送出,从而引起溢出复位。MAX813L本身具有上电复位、手动复位功能,同时利用自身的看门狗电路,保证系统能自动从死机状态恢复正常工作。本设计中用的是MAX813L芯片,MAX813L有双列直插和贴片两种封装形式,其双列直插如图2-7所示,引脚功能如下:第1脚为手动复位输入,低电平有效;第2、3脚分别为电源和地;第4脚为电源故障输入;第5脚为电源故障输出;第6脚为看门狗输入;第7脚为复位输出;第8脚为看门狗输出。图2-7 MAX813LMAX813L芯片具有以下主要性能特点:1)复位输出。系统上电、掉电以及供电电压降低时,第7脚产生复位输出,复位脉冲宽度的典型值为200ms,高电平有效,复位
27、门限的典型值为4.65V。2)看门狗电路输出。如果在 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
28、79的设计能力(物理上可管理16个数码管)。 数码管采用小型超高亮共阳数码管。为了有所区别,前2个参数的显示采用绿色,后1个参数的显示采用红色。ton,toff参数在运行中始终显示,而TT参数则以秒为单位倒计时显示,到0时结束运行。通过P15引脚向MAX813L发出RSTK1信号,使系统复位,也即停止从CPU的脉冲输出,结束电镀运行。显示电路中的数码管如图2-8。图2-8 数码管显示电路2.3.6 键盘电路模块设计键盘的设计主要是考虑参数的设定输出及运行方式的必要控制,因此设置了10个数字键0-9,3个参数(ton, toff及TT)设置键,与此配套的Enter,CLS,“”等键及运行控制键S
29、tart,共17个按键如表2-1所示。表2-1 按键设计0123456789STARTENTERCLSTonToffTT现对这些按键的功能分析说明如下:a) 数字键0-9 用来设置参数,在当前编辑位上输入数字,每按1个数字键,便覆盖原数字。b) 参数设置键ON,OFF,TT,3键用来选择设置何种参数。设置流程为:按3个中任1个,以选择参数项目;再通过数字键送入第1位(最高位),通过“”键切换到下一位;再送入数字,一直到4位数字全部送完,通过回车键Enter确认。前2个参数采用定点数,小数位为1位。在输入过程中,如出现错误,则按CLS键清除该项目,重新输入,当3个参数全部送完,则设置参数存在标志
30、,为运行做好准备;否则,不能运行。C) 运行控制键系统中控制运行的有2个按键:暂停键和开始运行键Start。前者为单独键,后者为矩阵按键。在所有参数齐备的情况下,按Start键,则开始运行,TT参数倒计时;如果参数不齐备,按此键无效,按键电路如图2-9所示。图2-9 按键电路3 电镀数字脉冲电源各模块程序设计本设计采用采用双CPU系统,2个主从CPU相互协调与通信,各司其职。主系统设置好参数后,将参数发给从系统,从系统输出脉冲。在本次设计中,我们根据系统的原理图以及硬件电路的要求,决定采用汇编语言,按照划分的不同模块进行编程,这样做的优势是编程难度降低,可以把错误控制在尽可能小的范围内,很容易
31、发现错误,解决错误。3.1主系统程序设计主系统主要由4大功能模块组成:1)主程序模块;2)串行通信模块;3)T2定时中断服务程序;4)参数编辑模块。各模块的功能分别是:1)主程序模块:系统初始化及其它模块的协调与调用;2)串行通信模块:主要是向从系统发送编辑好的ton,toff及TT等参数;3)T2定时中断服务程序:计量电镀时间,即对T参数倒计时处理;4)参数编辑模块:编辑输入脉冲所需的ton,toff及TT等参数。3.1.1 主程序模块该模块开始首先进行延时,以等待8279复位完成,然后系统初始化,相关标志位清零,数码管显示待机符号“P”,系统进入到按键状态,若有键读入,则转入参数编辑模块进
32、行参数设置,当三参数均已齐备后,将参数送往从系统,通信正常后,系统运行,产生脉冲。主系统主程序流程图如图3-1所示。 图3-1 主系统主程序流程图主程序关键代码如下: ORG 0000H SJMP MAIN ORG 002BH LJMP INT_T2 ORG 0030HMAIN: MOV SP, #60H ;堆栈指针初始化 MOV R6, #40H ;R6寄存器初始化 LCALL DELAY ;延时,以等待8279复位完成 LCALL INIT8279 ;8279初始化 CLR CSOK ;清除参数输入完成标志 CLR CSXS ;清参数项数单元 CLR CSON1 ;清各参数ON1项已编辑标
33、志 CLR CSOFF1 CLR 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 DIS
34、PLAY ;显示 LCALL 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 ;清参数项被编辑过标志 SETB DP ;要小数点 LCALL EDIT ;完成相应参数的编辑(回车键返回) JNC MAIN_0 ;C=0,说明此参数项
35、未被编辑 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 CLR ISOFF1 CLR CS
36、W1 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 ;运行键处理 ANL C, CSOFF1 ANL C, CSTT ;1*1*1=(否则为0) JC MAIN_4 ;3个参数均已被编辑过,说明参数已完成 LJMP MAIN_0 ;否则,说明还有参数未被输入,则继续等待
37、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所示。在系统软件设计过程中,我们采用如下方式,当串行通信程序开始运行后,发送参数0AAH,若PC应答0AAH,再
38、发送字节数;若PC无应答,则重新发送参数,直到应答为止。当PC应答后,系统会发送规定的字节数,PC会对接收到的字节数进行累加和的计算。若是结果正确,则应答00H,否则应答0FFH,若此时应答正确,则说明通信正常。主CPU系统采用6MHz的主频,其波特率为2400。图3-2 串行通信服务程序流程图 串行通信关键代码如下:FS_CPU3: 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, ALX: JBC TI, CONT SJMP LXCONT: MOV A, R0 LCALL DELAY1 MOV SBUF, ALX2: JBC TI, CONT SJMP LX2CONT1: INC R0 DJNZ