毕业设计(论文)-大功率铝氧化脉冲电源设计.doc_第1页
毕业设计(论文)-大功率铝氧化脉冲电源设计.doc_第2页
毕业设计(论文)-大功率铝氧化脉冲电源设计.doc_第3页
毕业设计(论文)-大功率铝氧化脉冲电源设计.doc_第4页
毕业设计(论文)-大功率铝氧化脉冲电源设计.doc_第5页
已阅读5页,还剩86页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

i 摘要 在铝阳极氧化过程中,采用叠加直流成分的脉冲电源工艺,能使铝的表面生成坚硬的 氧化膜,氧化膜有较好的抗腐蚀和抗磨损的能力,且裂纹少。由于在性能上的明显优点, 叠加直流脉冲电源已经广泛用于铝氧化的生产工艺。工业生产中,首先要求电源要达到足 够的输出功率,能长期稳定可靠地运行,并能对电压电流进行调节,脉冲的频率、通断比 能调节修改,运行时间能方便地设定。在满足技术指标的情况下,操作尽可能简单方便, 避免复杂的键盘操作。 本设计包括主电路和控制电路两部分。主电路包括三相全控整流电路、滤波电路、斩 波电路。控制电路采用凌阳 16 位单片机作为控制核心,调节占空比,频率,脉宽来调节 输出电压。开关功率元件选用 igbt。 关键词关键词:脉冲电源;三相整流;斩波 ii abstract in the aluminum anodic oxidation process, uses the superimposition direct component the pulse power source craft, can enable the aluminum the surface production hard oxide film, the oxide film to have a better corrosion resistance and the anti- attrition ability, also the crack are few. because in the performance obvious merit, the superimposition direct current pulse power source already widely used in the alumina production craft. in the industrial production, first requests the power source to have to achieve the enough output, can long-term stably reliably move, and can carry on the adjustment to the voltage electric current, the pulse frequency, passes breaks the ratio to be able to adjust revises, the running time can conveniently establish. in satisfies the technical specification in the situation, the operation simple is as far as possible convenient, avoids the complex keyboard holding this design includes main circuit and control circuit two parts. the main circuit including three-phase all controls the leveling circuit, the filter circuit, cuts the wave electric circuit. the control circuit uses insults the positive 16 monolithic integrated circuits to take the control core, the adjustment occupies the spatial ratio, the frequency, and the pulse width adjusts the output voltage. the switch power part selects igbt. key word: pulsepulse powerpower sourcsourc; three-phasethree-phase rectificationrectification; choppingchopping iii 目 录 第 1 章 绪论 .1 第 2 章 主电路设计 .3 2.1 整流电路 .4 2.2 晶闸管的选择 .6 2.2.1 闸管额定电压 v.6 ked 2.2.2 晶闸管额定电流 i7 t 2.3 中间滤波器设计 .8 2.4 斩波电路的设计 .9 2.4.1 直流斩波电路 .9 2.5 脉冲变压器: 10 2.5.1 作用: 10 2.5.2 特性: 10 2.6 igbt 的保护 .10 2.6.1 过电压保护 10 2.7 吸收电路参数计算 13 2.7.1 缓冲电容 cs .13 2.7.2 缓冲电阻 rs .14 2.7.3 缓冲二极 14 2.8 脉冲变压器的选择 14 第 3 章 控制电路 15 3.1 igbt 驱动 .15 3.1.1 scale 功能介绍 15 3.1.2 的特点 16 3.1.3 的主要功能 16 3.1.3 驱动块的保护功能 17 3.2 的主要工作模式 17 3.2.1 直接模式 17 3.2.2 半桥模式 18 3.3 引脚功能 18 3.3.1 输入部分引脚功能 18 3.3.2 输出部分引脚功能 19 3.4 小结 19 3.5 tl494 的特点与功能 19 3.5.1 tl494 的特点与功能 19 3.6 晶闸管驱动 20 3.6.1 晶闸管驱动信号要求 20 3.6.2 驱动电路设计 20 iv 3.6.3 防止误触发的措施 21 3.7 光电耦合器在电源技术中的应用 21 3.8 过电流保护 22 3.8.1 施密特触发器 22 3.8.2 霍耳电流传感器 25 3.9 过零点检测 26 3.10 直流稳压电源 .28 第 4 章 软件设计 29 4.1 主程序流设计 30 4.2 外部中断程序 30 4.3 ad 转换程序 .30 4.4 电压采样程序 31 4.5 晶闸管触发程序的设计 31 4.6 定时器中断程序流程图的设计 32 4.7 pid 控制程序的设计32 4.7.1 pid 控制 32 4.8 程序流程图 37 总结 .42 参考文献 .43 英文原文 .44 译文 .59 致谢 .72 附录 .73 附录 1 元件清单73 附录 2 程序清单78 1 第第1 1章章 绪论绪论 大功率铝氧化脉冲电源的要求,在铝阳极氧化过程中,采用叠加直流成分的脉冲电源 工艺,能使铝的表面生成坚硬的氧化膜,氧化膜有较好的抗腐蚀和抗磨损的能力,且裂纹 少。由于在性能上的明显优点,叠加直流脉冲电源已经广泛用于铝氧化的生产工艺。直流 电源的电压值,可改变负载电流中脉冲成分与直流成分的比例。下图是脉冲电压峰值为 40v,脉冲电源和直流电源各通过二极管向负载供电,如图所示。调节脉冲电压的峰值或 直流电源电压为 20v 时的负载电压波形。因是阻性负载,其电流与电压波形形状是一致的。 脉冲电源与直流电源为两台独立的电源。 图 1-1 输出波形 技术要求 输入参数 电压:3ac 380v50hz 输出参数 脉冲电流频率:100200hz 脉冲电流幅值: 0200a 连续可调 脉宽:14ms 脉冲部分输出电压:050v 连续可调 2 直流部分输出电压:020v 连续可调 频率误差:0.5% 脉宽误差:1% 幅值误差:0.3% 3 第2章 主电路设计 工业生产中,首先要求电源要达到足够的输出功率,能长期稳定可靠地运行,并能对电 压电流进行调节,脉冲的频率、通断比能调节修改,运行时间能方便地设定。在满足技术 指标的情况下,操作尽可能简单方便,避免复杂的键盘操作。 系统原理图如下 : 3ac 380v 电源 脉冲输出 三相 整流 滤波 电路 斩波 电路 触发角控 制 tl494 电压反馈控制 单元 触发角给 定 图2-1 系统原理图 本设计需要两台独立的脉冲电源与直流电源构成,且两整流电路均采用三相全控整流 电路实现对脉冲部分输出电压和直流部分输出电压的闭环控制。脉冲部分输出电压: 040v连续可调;直流部分输出电压020v连续可调。两部分叠加输出2040v的脉冲电压。 调节脉冲电压的峰值或直流电源的电压值,可改变负载电流中脉冲成分与直流成分的比例。 主电路包括整流电路,滤波电路,斩波电路。如下图所示 4 负 载 r28 r27vd16 g8 k8 2/g8 2/g8 g12 k12 2/a7 2/a7 g10 k10 2/i8 2/i8 g11 k11 2/j8 2/j8 g9 k9 2/h8 2/h8 g7 k7 2/f8 2/f8 g2 k2 2/b8 2/b8 g6 k6 2/e8 2/e8 g4 k4 2/d8 2/d8 g5 k5 2/e8 2/e8 g3 k3 2/c8 2/c8 2/d2 2/f2 -15v +15v ht- ht+ ht+ ht- +15v -15v 2/a8 vt1 v v 2/d12 2/b12 f6 f5 f4 f3 f2 n qf l3 l2 r32r31 r30 r29 r28 r27 2/a8 r24 r23 r22 r21 + + + + km1 l1 k1 g1 e2g2c2 e1 g1 c1 c20r26 f1 r1 c1 r2r3 c2c3 r19 vd13 vd14 r4r5r6 c4c5c6 vd15 r20 vt2 c21 c22 c23 c24 vd4 c10 r10 r7 c7 vd1 r8 c8 vd3 r9 c9 vd5 r11 c11 vd6 r12 c12 vd2 vd8 c18 r18 vd12 c17 r17 vd11 c15 r15 vd9 c14 r14 vd7 c13 r13 r16 c16 vd10 c19 r25 图2-2主电路图 2.1整流电路 整流电路是电力电子电路中出现最早的一种,它将交流电变为直流电,应用十分广泛, 其交流侧由三相电源供电。因为本设计直流电压脉动较小,所以应用三相整流电路。 目前在各种整流电路中,应用最为广泛的是三相桥式全控整流电路。当 0 (23)v kedm 其中 v 为晶闸管承受的最大正反向峰值电压, m 在本设计中 v =328.8v m2 6u23.1346 v (23)v 980v kedm 2.2.2 晶闸管额定电流it 晶闸管额定电流的计算原则是必须使额定电流 i 大于实际流过晶闸管的电流平均值 i t .考虑过载系数,通常取 12 倍。 avt 晶闸管通态平均电流 i avt i= avt 57 . 1 t i 由三相全控桥式整流电路可知,流过晶闸管的电流有效值为: i =0.577i t 3 d i d i=21.5716.32=51.24a avt 晶闸管并联支路的确定 n =(23)v /(0.80.9)v=0560.74 pmked 所以,不需要晶闸管并联。 晶闸管的过电压保护 常见的晶闸管过电压有交流侧过电压和直流侧过电压 交流侧过电压阻容保护 电阻r、c用下面关系式近似计算: r= 0 2 2 3 . 2 i u s u z 10 5 6 . 1785 56.33 3 . 2 2 45 . 1 8 = 2 2 0 6 u s ic 2 56.33 26.1785 1 . 06048. 0 .f 式中:u 整流变压器的阻抗电压,以额定电压的百分数表示,对于本设计,u = zz 4%10%; io变压器空载电流,以额定电流的百分数表示,对于本设计,io=4%10% u 变压器二次相电压有效值(v); 2 s 变压器每相的平均视在容量(va)。 直流侧过电压阻容保护 直流侧过电压保护一般采用在晶闸管两端并联阻容吸收的方法。 c=(24) =0.15fit 3 10f r=1030 取 15 电容耐压vucmu 2 . 82 wfcupm54 . 0 10 6 2.3 中间滤波器设计 直流滤波电容器的参数计算。在三相全控整流电路中,输出直流的基波脉动频率 d c 为 300hz。为了保证整流输出电压为一平直电压,滤波电路的时间常数,即滤波电容器 和直流电源的等效负载电阻的乘积应远远大于整流输出电压的基波脉动周期,实际 d cr d 应用中一般取 6-8 倍即可。既有: =(68)/300=(2027) ddr cs 3 10 得: =(2027) d cf rd 1 103 取=10100 d r 则 =2002000 d cf 实际中选用 =2000 d cf 滤波电容的耐压值按整流最大输出电压选取,即 117v.实际取用耐压为 450v.限流电 9 抗器的参数计算的作用主要是限流,限制流过晶闸管的电流尖峰,改善网侧功率因 d l d l 数。一般可以按照下面的式子进行计算求取: d l =(2023) ddc lfmh 3 10 则 =(2023)=1011.5 d l d c 3 10 mh 因此可以按照 10,100a 选择。 d lmh 在选用和时,除了考虑限流、滤波功能外,还需要考虑到在电源额定工作状态下, d l d c 斩波器因某种原因突然停止工作时,储存在中的能量将转移到中,此过程会使端 d l d c 电压升高,此电压则直接加到 igbt 上,因此选择时也不能取的太大。值应该满 d c d l d l 足: (k-1) 2 2 d dd d i uc l 2 其中 k 为升压系数,一般取 1.2。如果与的取值不能满足上面的关系式则需要适当的 增大或者减小. d c d l 本设计中 : (k-1) =80 2 2 d dd i uc 2 mh 因此前面的取值在 10合理范围内,无需调整。mh 2.4 斩波电路的设计 直流斩波电路 将直流电源的恒定直流电压,通过电子器件的开关作用,变换为可调直流电压的装置 称为直流斩波器。如采用晶闸管作开关元件,则称为晶闸管直流斩波器。 直流斩波器也称直流断续器或直流调压器,较多用于直流牵引调速,例如电力机车、 地铁、城市电车、电瓶搬运车和铲车等。 斩波器的核心部分是晶闸管直流开关。 2.4.1 直流斩波电路 为改变负载直流电压,通常有以下三种工作方式: 10 (1)脉冲宽度控制 (2)脉冲频率控制 (3)脉冲混合控制 (一)脉冲宽度控制直流斩波器 (二)脉冲频率控制直流斩波器 本设计脉冲部分的电源采用电压可调的三相全控晶闸管整流。由于三相全控整流的纹 波输出比较低,只要并入一定的电解电容即可满足滤波的需要。斩波元件采用绝缘栅双极 型晶体管(igbt)。igbt的载流能力主要受元件温升的限制。 vu1600ai250%80 eu0vue200/0 有效值aii2001ai32.162008161 igbt选择 取3倍裕量耐压v480 取3倍a96.4832.163im 选型dv 最大反向电压ai32.162008161 2.5 脉冲变压器: 2.5.1作用: 1、起阻抗匹配作用。降低脉冲电压幅值增大输出电流,更好地触发晶闸管。 2、可改变脉冲正负极性或同时送出两组独立脉冲。 3、将低电压的触发电路与高电压的主电路在电气上加以隔离。 2.5.2特性: 一般变压器传递的是正弦交流电压,而脉冲变压器传递的是前沿陡削的单方向脉冲 电压。 2.6 igbt的保护 2.6.1过电压保护 11 igbt关断时,它的集电极电流下降率较高,极高的电流下降率将引起集电极过电压。 为了保护igbt,必须对其两端的过电压进行控制,以免过电压超过其额定值而导致igbt的 损坏。抑制igbt集.一种是增大栅极电阻rg,另一种是采用缓冲电路。然而,凡的增大将 减缓igbt的开关速度,从而增加了开关损耗,因此这种方法不可取。缓冲电路又称吸收电 路,主要用于抑制电力电子器件的内因过电压、dv/di和di/dt,减小器件的开关损耗。缓 冲电路可分为关断缓冲电路和开通缓冲电路。关断缓冲电路的基本思路是将电容并联于器 件两端,利用电容器上的电压不能的原理来抑制尖峰电压,即吸收器件的关断过电压和换 相过电压,减小dv/dt,同时减小器件的关断损耗。开通缓冲电路是利用电感与器件串联 来抑制器件开通时的电流过冲和di/di并减小器件的开通损耗的。由于开通缓冲电路很容 易实现,下面将着重介绍关断缓冲电路。在实际应用中,igbt的关断缓冲电路有rc吸收和 rcd吸收两种。 1 rc 吸收电路 igbt的rc缓冲电路如图3_5a中吸收电容cs与电阻rs串联后并联于igbt的集电极和发射 极两端构成了rc吸收电路。为了限制吸收电容cs的放电电流, 将其串联了一个电阻r,但是由于电阻r的串入,使得igbt关断时的过电压吸收效果较 单电容缓冲电路要差,而且rs阻值越大,吸收效果越差。所以在实际应用中,rs阻值取得 较小,这样既可有较好的吸收效果,同时对开通时的电流尖峰又有抑制作用。 2 rcd 吸收 在rc吸 收电路的吸收电阻上并联一只二极管就构成了rcd吸收电路,如图3_5b所示。 当igbt关断时,电源经二极管向电容充电,由于二极管的正向导通压阳浸小,所以关断时 的过压吸收效果与电容吸收效果相同。当igbt开通时,电容通过电阻放电,限制了igbt中 的开通尖峰电流。器件每开通一次,电容就充放电一次,所以将其称为充放电缓充电路。 通常,在igbt关断时,电容被充到电源电压值。在igbt导通时,电容通过放电使充入电容 的能量全部消耗在放电回路中,主要消耗在电阻上,而且这种功损耗正比于igbt的开关频 率。 12 g igbt vd2 r cc r vd igbt g vd1 图 2-4 igbt 吸收电路 这两种吸收电路因直接并接在igbt的集电极和发射极的两端,igbt关断时收电容的电 压从零开始上升,因而具有较好的过电压吸收效果。使得igbt关断时的电流、电压的运行 轨迹靠近电流、电压坐标轴,提高了igbt关断时的安全性。但是,对于大功率igbt来说, 其使用频率通常在lochs左右,在这样高的频率下,这两种缓冲电路由于自身损耗过大而 无法使用。目前钳位式rcd吸收电路被认为是最适合于大功率igbt的吸收电路,并且被广 泛采用。 图2-4所 示为带有钳位式rcd吸收电路的igbt斩波器原理图。设负载为感负载,用串 联的rl和ll表示。dl为负载续流二极管,ls代表主电路的杂散电感。钳位式rcd吸收电路 由电阻rs、电容cs和二极管ds组成。吸收电容cs与二极管串联后并联于igbt的集电极和发 射极之间,电阻rs不象吸收电路那样与二极管ds并联,而是另一端与电源的正极相连。斩 波器工作时,电容cs上充有与电源电压-样高的电压,当igbt导通时,由于二极管的作用, 电容cs上的电荷不会放掉,电容电压仍为电源电压。当igbt开始关断时,负载电流仍继续 流过igbt,直到igbt的vce电压,续流二极管导通。在igbt与续流二极管换相的过程中, 杂散电感中的电流突然变小,若无吸收电路会在igbt的集电极和发射极之间产生尖峰电压, 使igbt可能遭到被击穿的危险。在加上钳位式rci吸收电路后,当igbt的集电极电压高 于电源电压时,杂散电感中的能量通过二极管ds转储到吸收电容cs中,igbt的集电极电位 被钳在电容电压上,这就抑制了igbt集电极尖峰电压,而且这种钳位式rcd吸收电路只在 igbt的集电极电压高于电源电压时才起作用,减小了附加损耗。 图 2-4为igbt关断时的电压、电流波形图和轨迹图。在栅极关断信号的作用下,t1时 刻igbt集电极电压开始上升。在ti- t2期间,为yc电压上升阶段,由于是电感性负载, 使流过igbt的电流基本保持不变,在vcf电压低于电源电压时,吸收二极管ds和续流二极 管dl都不导通。当电压上升到电源电压时,即t2时刻,igbt的电流开始衰减并向ds转移, 负载电感中的电流和杂散电感中的电流都开始衰减,续流二极管开始导通。t3时刻,igbt 13 的电流衰减至零,负载电流经续流二极管续流,由于吸收回路中也有杂散电感,所以在 12-13期间出现小的尖峰电压。在t3_t4期间,ls中的储能充向吸收电容cs,使vce电压抬 高。14时刻,当ls中的能量全部转储到电容cs中时,vce电压达到最大值。之后,当二极 管ds反向恢复时,由于反向恢复电流迅速消失,导致igbt集电极电压出现凹坑。is时刻, 杂散电感中电流为零,集电极电压又回到电源电压上。高于电源电压的电容电压经电阻rs 向电源放电,由杂散电感充向电容上的能量经rs大部分送回电源,一部分消耗在电阻rs上。 这种钳位式缓冲吸收电路的电容为无感电容,且电容量可取得大一些。电容容量越大, 吸收过压的效果越明显。由于电容cs上得到的多余能量大部分被送回电源,所以rs上的功 耗不是很大,可选用小容量的电阻。这不但减小了发热,提高了效率,而且可使吸收电路 的体积缩小。通常cs为几微法,rs为几十欧姆,二极管ds应选用快速恢复二极管。2过电 流保护 当igbt发生过流或短路故障时,若不加以保护或保护不当,就可能因发生擎住效应, 使igbt超过其热极限而毁坏。为了避免这些情况的发生,必须对igbt采取有效的保护措施. igbt的过电流保护电路可分为两种类型:一种是过载电流保护,另一种是短路电流保 护。对于过载保护,由于不必快速响应,可采用集中式的保护,即检测输入端或直流环节 的总电流。当此电流超过设定值之后,比较器翻转,封锁装置中所有igbt驱动器的输入脉 冲,使装置的输出电流降为零。这种集中式的保护具有保护的彻底性,一旦保护动作后需 要通过复位才能恢复正常工作。然而,对于短路保护,由于igbt只能承受很短时间的短路 电流,所以其保护电路必须快速动作。下面将着重讨论短路保护。 从识别出过电流信号至切断栩极信号的这段时间必须小于igbt允许短路过电流的时间。 而igbt承受短路电流的时间长短与该igbt的导通压降有关,并随着饱和导通压降的增加而 延长,这是因为随着饱和导通压降的增加,igbt的阻抗也在增加,导致短路电流的幅值减 小,而且短路时的功耗也随着短路电流的平方在减小。如饱和导通压降小于2v的igbt允许 承受的短路时间小于5s,饱和压降为3v的igbt承受的短路时间可达15s ,当饱和压降 增加到4v5v时,其允许短路时间可达30s 。 igbt 的过电流损坏问题可以依靠 igbt 驱动电路中过流保护电路来解决,igbt 的驱动 电路将在下一章讲解。 2.7 吸收电路参数计算 2.7.1 缓冲电容cs 14 缓冲电容cs可将输入电压置于低电压,由实验方法确定,也可以由母线电感计算.图 4-4中,初始浪涌电压之后,随着缓冲电容的充电,瞬态电压再次上升。第二次上升峰值 ucep取决于缓冲电容cs与母线电感lp,设引起浪涌电压的能最lpi02/2可被缓冲电容cs完 全吸收,则有: = 2 0 2 1 ilp 2 2 2 1 ucs =- 2 2 u cep u d u 式中:为最大工作电流; 0 i 为第二次上升电压峰值。 2 u 在设计系统时采用整体缓冲电路,通常以每100a输出级电流大约取1f的方法确定电 路的电容量。 所以本设计中选用1f的电容。 2.7.2 缓冲电阻 rs 要求igbt关断信号到来之前,将缓冲电容所积蓄的电荷放完。以关断信号之前放掉90%为 条件,rs缓冲电阻rs的选择应遵循以下原则: s s fc r 6 缓冲电阻不能太小,过小会使igbt开通时的集电极初始电流增大.因此,在满足上式 条件下,希望尽可能选取大的电阻值。为igbt的开关频率,igbt的最大开关频率为f 1500hz,实际使用时取f=1500hz. 则有=0.11 s r s fc6 1 k 缓冲电阻的电阻功耗= s r s r pwufcs33 2 0 故选用50w、0.2的电阻。k 2.7.3 缓冲二极 故选用快速恢复二极管,以保证igbt导通时很快关断。缓冲二极管选用过渡正向电压 低、反向恢复时间短、发向恢复特征较软的规格,其额定电流应不小于主电路开关器件额 定电流的1/10。可以选用mur3010ce型超快速恢复二极管。其额定正向平均电流为30a,反 向重复峰值电压为1000v,反向恢复时间port #define p0_0 /pa-bit.bit0 #define p0_1 /pa-bit.bit1 #define p0_2 /pa-bit.bit2 #define p0_3 /pa-bit.bit3 67 #define p0_4 /pa-bit.bit4 #define p0_5 /pa-bit.bit5 #define p0_6 /pa-bit.bit6 #define p0_7 /pa-bit.bit7 #define p0_8 /pa-bit.bit8 #define p0_9 /pa-bit.bit9 #define p0_10 /pa-bit.bit10 #define p0_11 /pa-bit.bit11 #define p0_12 /pa-bit.bit12 #define p0_13 /pa-bit.bit13 #define p0_14 /pa-bit.bit14 #define p0_15 /pa-bit.bit15 #define p1_0 /pb-bit.bit0 #define p1_1 /pb-bit.bit1 #define p1_2 /pb-bit.bit2 #define p1_3 /pb-bit.bit3 #define p1_4 /pb-bit.bit4 #define p1_5 /pb-bit.bit5 #define p1_6 /pb-bit.bit6 #define p1_7 /pb-bit.bit7 #define p1_8 /pb-bit.bit8 #define p1_9 /pb-bit.bit9 #define p1_10 /pb-bit.bit10 68 #define p1_11 /pb-bit.bit11 #define p1_12 /pb-bit.bit12 #define p1_13 /pb-bit.bit13 #define p1_14 /pb-bit.bit14 #define p1_15 /pb-bit.bit15 #define p0 /pa-port #define p0_buffer /pa_buffer-port #define p0_dir /pa_dir-port #define p0_attrib /pa_attrib-port #define p0_latch /pa_latch-port #define p0_lowbyte /pa-byte.bytel #define p0_highbyte /pa-byte.byteh #define p0_dir_lowbyte /pa_dir-byte.bytel #define p0_dir_highbyte /pa_dir-byte.byteh #define p0_attrib_lowbyte /pa_attrib-byte.bytel #define p0_attrib_highbyte /pa_attrib-byte.byteh #define p1 /pb-port #define p1_buffer /pb_buffer-port #define p1_dir /pb_dir-port #define p1_attrib /pb_attrib-port #define p1_lowbyte /pb-byte.bytel 69 #define p1_highbyte /pb-byte.byteh #define p1_dir_lowbyte /pb_dir-byte.bytel #define p1_dir_highbyte /pb_dir-byte.byteh #define p1_attrib_lowbyte /pb_attrib-byte.bytel #define p1_attrib_highbyte /pb_attrib-byte.byteh #define osc_unit /poscu-port #define timebase_unit /ptbu-port #define timebase_clear /ptbc-port #define t0 /pt0-port #define t1 /pt1-port #define ta_unit /pt0u-port #define tb_unit /pt1u-port #define int_unit /pintu-port #define int_clear / pintc-port #define ad_unit /padu-port #define admux_unit /padmuxu-port #define ad_mic /padm-port #define ad_line /padl-port #define da_unit /pdau-port #define da0 /pda0-port #define da1 /pda1-port #define flash_unit /pflashu-port 70 #define t0_unit /pt0u-tunit.rsc #define t1_unit /pt1u-tunit.rsc #define pwm0 /pt0u-tunit.pwm #define pwm1 /pt1u-tunit.pwm #define ext0 /pb-bit.bit2 #define ext1 /pb-bit.bit3 #define ext0_dir /pb_dir-bit.bit2 #define ext1_dir /pb_dir-bit.bit3 #define ext0_attrib /pb_attrib-bit.bit2 #define ext1_attrib /pb_attrib-bit.bit3 #define uart_unit1 /puartu1-byte.bytel #define uart_unit2 /puartu2-byte.bytel #define uart /puart-byte.bytel #define uart_baud_low /puartbaudl-byte.bytel #define uart_baud_high /puartbaudh-byte.bytel #define sck_dir /pb_dir-bit.bit0 #define sda_dir /pb_dir-bit.bit1 #define sck_attrib /pb_attrib-bit.bit0 #define sda_attrib /pb_attrib-bit.bit1 #define sck /p1_0 71 #define sda /p1_1 #define rx_dir /pb_dir-bit.bit7 #define tx_dir /pb_dir-bit.bit10 #define rx_attrib /pb_attrib-bit.bit7 #define tx_attrib /pb_attrib-bit.bit10 #define rx /p1_7 #define tx /p1_10 #define rx_int_en /puartu1-bit.bit7 #define tx_int_en /puartu1-bit.bit6 #define uart_reset /puartu1-bit.bit5 #define parity /puartu1-bit.bit3 #define parity_en /puartu1-bit.bit7 #define rx_em /puartu2-bit.bit7 #define tx_em /puartu2-bit.bit6 #define rx_rdy /puartu2-bit.bit7 #define tx_rdy /puartu2-bit.bit6 #define uart_fe /puartu2-bit.bit5 #define uart_oe /puartu2-bit.bit4 #define uart_pe /puartu2-bit.bit3 #define ad_open() /ad_unit=0x3d 72 #endif .include hardware.inc .code buffer: .dw 0x2100,0x0300,0x0600,0x0c00,0x1800,0x3000 .iram lable: .float 0.054 /定义数据转换系数 lable: .float 1.601 lable: .float 0.240 .var _flag /igbt 触发输出标志存储单元 .var _a0 /定时器 a 计数初值存储单元 .var _f0 /定时器 b 计数初值存储单元 .var _d0 /定时器 b 计数初值存储单元 .var _e1 /存放 e(k-1) .var _e2 /存放 e(k) .var _d1=0 /存放e(k-1) .var _u1=0 /存放 u(k-1) .var _u2 /存放 u(k) .var _w1 /暂存单元 .var _w2 /暂存单元 .var _w3 /暂存单元 73 .var _p /pid 参数 .var _i .var _d .var _y1 /暂存单元 .var _r /暂存单元 .n: .equ 6 .external _init_adc1 .external _init_adc2 .external _pid .external _cmp .external _xfcl .code / 函数: _main() / 描述: 主程序 / 参数: 无 / 返回: 无 .public _main _main: r1=0xff30 /设置 ioa4,ioa5 为上拉电阻的输入端 /ioa8ioa15 位高电平输出端 p_ioa_data=r1 r1=0xff00 p_ioa_attrib=r1 74 p_ioa_dir=r1 r1=0x8001 /设置 iob0 位高电平输出,iob15 位低电平输出 /设置 iob1,iob2,iob3 位带上拉电阻的输入 p_iob_dir=r1 r1=0x000f p_iob_data=r1 p_iob_attrib=r1 r1=p_ioa_data /读 a 口数据 test r1,0x0010 /判断系统是否启动 jz _main /为零,则系统没有启动,返回_main r1=0x0000 p_timera_ctrl=r1 /定义定时器 a 使用的时钟源频率, /时钟源 a 为 24.576mhz r1=0x0002 p_timerb_ctrl=r1 /定义定时器 b 使用的时钟源频率, /时钟源 b 为 232768mhz r1=0x1500 p_int_ctrl=r1 /开放 irq1,irq2,irq3 中断 r1=0x0000 _flag=r1 /_flag置零 r1=_a0 r2=_f0 r3=_d0 75 p_timerb_data=r1 /设置定时器 b 的计数初值 p_timera_data=r1 /设置定时器 a 的计数初值 /初始化结束 l_start: call _init_adc1 /调触发角、占空比、频率 ad 转换子程序 call _init_adc2 /调电流反馈值 ad 转换子程序 call _pid /调 pid 运算子程序 call _xfcl /调限幅处理子程序 int irq,fiq /允许中断 nop /等待中断 nop nop nop nop r1=p_ioa_data /读 a 口数据 test r1,0x0020 /系统停止检测 jz l_end /停止程序结束 jmp l_start /不停止,则循环程序 l_end .end / 函数:_init_adc1( ) / 语法:void_init_adc1(void) / 参数:无 76 / 返回:_a0,_f0_d0 .public _init_adc1 _init_adc1: r2=0x0003 l_loop1: p_adc_mux_ctrl=r2 /选择通道 line_in r1=0x0001 p_adc_ctrl=r1 /设置 p_adc_ctrl 单元,允许 ad 转换 nop /等待 nop nop nop nop _ad1: r1=p_adc_mux_ctrl /读寄存器p_adc_mux_ctrl的 b15 位 test r1,0x8000 /判断是否转换完毕 jz _ad1 /否,继续转换 r1=p_adc_mux_data /是,则读出结果 r1=r1 lsr 4 r1=r1 lsr 2 jz l_a0 cmp r2,0x0002 jz l_f 77 r4=lable3 mr=r1*r4,ss r1=0xffff-r3 jmp l_loop2 _d=r1 l_a0: _r=r1 r4=lable1 mr=r1*r4,ss r1=0xffff-r3 a0=r1 jmp l_loop2 l_f: r4=lable2 mr=r1*r4,ss r1=0xffff-r3 _f=r1 l_loop2 r2-=1 jnz l_loop1 retf /函数_irq3() /语法 void_ irq3(void) 78 /参数,无 /返回,无 .text .public_irq3 push r1,r3 to sp /现场保护 r1=0x0100 test r1,p_int_ctrl /比较是否为 irq3_ext1 中断 jnz l_irq3_ext1 r1=0x0200 /比较是否为 irq3_xt2 中断 jnz l_irq3_ext2 l_irq3_key: goto l_exit_int l_irq3_ext2: p_ioa_data=0x0000 goto l_exit_int l_irq3_ext1: /外中断 1 l_delay: r1=5006 r1=1 jnz l_delay r1=0x1000 p_int_ctrl=r1 int off 79 r1=0x0002 p_timerb_ctrl=r1 /启动定时器 b r1=_a0 p_timerb_data=r1 /设置定时器 b 计数初值 r2=0x0000 p_ioa_data=r2 r1=0x1000 l_loop3: test r1,p_int_ctrl /检查标志位是否溢出 jz l_loop3 p_int_clear=r

温馨提示

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

评论

0/150

提交评论