




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 本本 科科 毕毕 业业 设设 计(论文)计(论文) 题目题目 单片机控制的直流斩波器单片机控制的直流斩波器 院院 系系 专业名称专业名称 电子信息工程电子信息工程 年级班级年级班级 学生姓名学生姓名 指导教师指导教师 年年 月月 日日 摘要摘要 传统开关电源是模数结合的硬件为主的控制方式,其控制精度、响 应速度等都由电路拓扑结构和器件本身的参数决定,很难进一步提升其 性能。随着微处理器处理技术的日趋成熟,开关电源的软硬件结合的控 制技术得到了广泛的关注,它呈现出纯硬件控制方式无法比拟的优点。 本论文以单片机为控制核心对开关电源进行了可编程控制的设计。 首先介绍了开关电源数控技术的研究现状及趋
2、势;对整个系统的硬件电 路进行了各模块的设计及对应器件的选型;在此基础上,对软件部分实 现过程进行了详细阐述。 【关键词】单片机,开关电源 abstract conventional switching power supply is combined with hardware- based module control mode, the control accuracy, response speed by the circuit topology and device parameters of the decision itself, it is difficult to furth
3、er improve its performance. with the microprocessor processing technology matures, switching power supply control software and hardware combination technology has been widespread concern, it presents a pure hardware control mode can not match advantage. in this thesis, the core of the microcontrolle
4、r for the control of switching power supply for the programmable control of the attempt. first introduced the technique of switching power supply cnc status and trends; on the whole system has briefly introduces the hardware design and partial implementation of the software process described in deta
5、il. key words: microcontroller, switching power supply 目录 目录 .3 第一章 前言 .6 1.选题目的和意义 .6 2.国内外综述 .6 第二章 系统硬件设计 .8 2.1 系统原理 .8 2.2 硬件的选取 .9 2.3 半桥输出的 pwm 波产生电路 .10 2.4 a/d 采样及调理电路.10 2.41 电压采样电路.11 2.42 电流采样调理电路 .11 2.5 矩阵键盘电路 .12 2.6 液晶 lcd 显示电路 .14 2.61 液晶 1602 显示器介绍 .14 2.62 本系统中 1602 的应用 .15 第三章 系统
6、软件设计 .16 3.1 软件设计总体思路 .17 3.2 系统主程序模块 .17 3.21 始初化模块 .18 3.22 pwm 波发生模块.19 3.23 a/d 转换模块.23 3.24 pid 算法处理模块.27 3.25 lcd 液晶显示模块.29 3.26 按键处理模块 .29 3.3 中断服务程序模块 .31 3.31 中断程序原理及框图 .31 3.32 数字滤波算法 .32 第四章 结 论 .34 致 谢 .36 参考文献 .37 附录 .39 目录? 前 言 1.选题目的和意义 直流斩波电路(dc chopper)的功能是将直流电变为另一固定电压 或可调电压的直流电。也称为
7、直接直流-直流变换器(dc/dc converter) 。 直流斩波电路包括六种基本斩波电路升降压斩波电路应用最为广泛。路 包括六种基本斩波电路升降压斩波电路应用最为广泛。直流斩波器能起 调压的作用,所以可以做开关电源用。 开关电源作为电力电子领域的一个重要分支,随着电力电子技术的 高速发展而被广泛应用于以电子计算机为主的各种终端设备和通信设备 中,是当今电子信息产业飞速发展不可缺少的一种电源方式。采用传统 控制方式的开关电源,其控制精度、响应速度等都由电路拓扑和器件本 身的参数决定,如果想进一步提高开关电源的性能,就只能选用参数更 优的器件,或者对原有电路进行大范围的改动,这对电源产品的研发
8、、 生产都会带来很多麻烦,也制约了开关电源性能的提升。同时,由于模 拟信号在传递过程中可能会出现信号失真、畸变以及受到外界电磁干扰, 造成开关电源工作状态不稳定。所以,采用传统控制方式的开关电源在 性能上的提升相当有限。 随着数字处理技术的日趋成熟,开关电源的可编程数控技术得到了 快速的发展和广泛的关注。与硬件控制方式相比,数字控制技术具有其 无法比拟的优势。 2. 国内外综述 开关电源的发展方向是高频、高可靠、低耗、低噪声、抗干扰和模 块化。由于开关电源轻、小、薄的关键技术是高频化,因此国外各大开 关电源制造商都致力于同步开发新型高智能化的元器件,特别是改善二 次整流器件的损耗,并在功率铁氧
9、体(mn?zn)材料上加大科技创新,以 提高在高频率和较大磁通密度(bs)下获得高的磁性能,而电容器的小型 化也是一项关键技术。smt 技术的应用使得开关电源取得了长足的进展, 在电路板两面布置元器件,以确保开关电源的轻、小、薄。开关电源的 高频化就必然对传统的 pwm 开关技术进行创新,实现 zvs、zcs 的软开关 技术已成为开关电源的主流技术,并大幅提高了开关电源的工作效率。 对于高可靠性指标,美国的开关电源生产商通过降低运行电流,降低结 温等措施以减少器件的应力,使得产品的可靠性大大提高。 目前,开关电源以小型、轻量和高效率的特点被广泛应用于以电子 计算机为主导的各种终端设备、通信设备
10、等几乎所有的电子设备,是当 今电子信息产业飞速发展不可缺少的一种电源方式。目前市场上出售的 开关电源中采用双极性晶体管制成的khz、用制成 的khz 电源,虽已实用化,但其频率有待进一步提高。要提高开 关频率,就要减少开关损耗,而要减少开关损耗,就需要有高速开关元 器件。然而,开关速度提高后,会受电路中分布电感和电容或二极管中 存储电荷的影响而产生浪涌或噪声。这样,不仅会影响周围电子设备, 还会大大降低电源本身的可靠性。其中,为防止随开关启-闭所发生的电 压浪涌,可采用 r-c 或 l-c 缓冲器,而对由二极管存储电荷所致的电流 浪涌可采用非晶态等磁芯制成的磁缓冲器。不过,对 1mhz 以上的
11、高频, 要采用谐振电路,以使开关上的电压或通过开关的电流呈正弦波,这样 既可减少开关损耗,同时也可控制浪涌的发生。这种开关方式称为谐振 式开关。目前对这种开关电源的研究很活跃,因为采用这种方式不需要 大幅度提高开关速度就可以在理论上把开关损耗降到零,而且噪声也小, 可望成为开关电源高频化的一种主要方式。当前,世界上许多国家都在 致力于数兆 hz 的变换器的实用化研究。 3. 本论文的任务及工作 第二章 系统硬件设计 本章将对硬件部分的设计进行详细介绍,其中包括以单片机为核心 最小系统的搭建以及外围电路的设计和优化,并对一些在设计中遇到的 问题进行分析和解决。 2.1 系统原理 本次制作的是 3
12、6v、3a 的开关电源,要求能够对输出的电压进行恒 定的控制,使整个系统具有很好的稳定性。可以通过键盘的输入值对开 关电源在 20v-36v 的输出控制,而对其进行恒压的控制是根据设置的电 压值与采集到的电压值的偏差进行比较,由单片机来完成 pid 算法处理 得到电压的偏差信号,再根据偏差信号的大小改变单片机 eccp 模块所产 生两路推挽的 pwm 波的占空比,从而改变半控桥电路中两个 mos 管通断 时间的大小,从而起到稳压的作用。同时外加 led 显示模块,对实时的 电压电流起到了检测和显示的作用。系统的硬件框图如图 2-1 所示。 图 2-1 系统硬件框图 实际的硬件系统中,通过抗干扰
13、电路来减少外界干扰如果没有该部 分输入电路就会有干扰对输出有很大的影响,整流滤波电路使输入和输 出的波形更接近理想化,这样可以减少误差。如果没有该部分加大了误 差有可能使结果和理想状态下有很大的出入。 单片机模块输出两路推挽的 pwm 波,通过高速光耦隔离并且进行电 平的转换,再通过以 ir2113 为核心的驱动电路将 pwm 波供给开关电源的 半桥控制的逆变电路。从开关电源输出端电压经分压后采集回单片机模 块进行 a/d 转换,通过 lcd 液晶显示采样回来的电压值。通过软件的控 制使电压稳定在某一值,具体的电压值由按键模块确定。 2.2 硬件的选取 本设计采用的是 microchip 公司
14、的高性能 8 位单片机pic18f4520,并 且使用 c 语言进行程序的编写,同时在 mplab ide 集成开发环境中程 序的编译和调试对整个系统进行描述和设计。 本设计所使用的 pic18f4520 单片机是采用 10 位 a/d 及纳瓦技术的 40 脚的增强型闪存单片机,如图 2-2 所示。 21-2 pic18f4520 dpip 封装的引脚图 此单片机具有高性能的 risc(reduced instruction set computer)结构 cpu,有较宽的工作电压范围:2.0-5.5v,同时驱动能力强,驱动电流高达 25ma,还具有超低的功耗,多级的中断。由单片机来完成 pi
15、d 算法处理 得到电压的偏差信号,再根据偏差信号的大小改变单片机 eccp 模块所产 生两路推挽的 pwm 波的占空比,从而改变半控桥电路中两个 mos 管通断 时间的大小,从而起到稳压的作用。 在本设计中主要使用的是单片机的 eccp 模块(增强型捕捉/比较 /pwm 模块) ,10 位输出的 a/d 转换模块,同时加上外围的键盘输入模 块,以及 lcd 显示模块。 2.3 半桥输出的 pwm 波产生电路 由于原先在选择单片机时选择的是 pic18f4520,其内部本身就具有 eccp 模块,所以只需要单片机的最小系统就可以实现两路推挽的 pwm 波 的输出,无需外加其他电路。 2.4 a/
16、d 采样及调理电路 本系统主要对输出的电压以及电流进行采样,通过分压或者信号调 理电路进行整形和放大送至 a/d 转换器,由于 pic 单片机本身就内置有 a/d 转换模块,所以不必外扩展 a/d 转换器,使得整个系统的硬件电路 变得更为简捷。 123456 a b c d 654321 d c b a title numberrevisionsize b date:1-may-2010 sheet of file:d:program filesexamplesbackup11.ddbdrawn by: ra1/an1 3 ra2/an2/vref- 4 ra3/an3/vref+ 5 ra4
17、/tock1/c1out 6 ra5/an4/ss/ 7 re0/rd/an5 8 re1/wr/an6 9 re2/cs/an7 10 vdd 11 vss 12 osc1/clki/ra7 13 osc2/clko/ra6 14 rc0/t1oso/t13cki 15 rc1/t1osi/ccp2 16 rb6/kbi2/pgc 39 rb5/kbi1/pgm 38 rb4/kbi0/an11 37 rb3/an9/ccp2 36 rb2/int2/an8 35 rb1/int1/an10 34 rb0/int0/an12 33 vdd 32 vss 31 rd7/psp7/p1d 30
18、rd6/psp6/p1c 29 rd5/psp5/p1b 28 rd4/psp4 27 rc7/rx/dt 26 rc6/tx/ck 25 rc5/sdo 24 rc2/ccp1/p1a 17 rc3/sck/scl 18 rc4/sdi/sda 23 ra0/an0 2 mclr/vpp/re3 1 rb7/kbi3/pgd 40 rd0/psp0 19 rd1/psp1 20 rd2/psp2 21 rd3/psp3 22 pic18f4520 u3 vcc5v vcc5v y1 jt c23 22pf c24 22pf r23 10k vcc5v rs rw e d0 d1d2 d3 p
19、wmout1 pwmout2 anjian volt amp cont_out 123456 a b c d 654321 d c b a title numberrevisionsize b date:7-may-2010 sheet of file:c:documents and settingsadministrator业 业 业 业 业 业 .ddbdrawn by: r31 100k r32 10k vout volt 图 2-3 pic18f4520 各管脚电路图 图 2-4 电压分压采样电路 2.41 电压采样电路电压采样电路 单片机的 a/d 转换器所能接受的输入转换电压为 0
20、-5v,而从开关电 源的输出端所输出的电压在 24v-36v 之间,要将其转换成相应的数量值 就必须将输出端的电压进行降压处理,故采用了分压电路,将输出电压 的值降到 2-4v 之间,考虑到电阻的功耗问题,两个分压电阻不宜太小, 同时考虑到电阻的阻值越大越容易受干扰,阻值又不宜取太大,因此, 我们最终选定 100k 和 10k 这两个电阻分压以便单片机的 a/d 转换器进行 模数的转换。具体的分压电路较为简单,如图 2-4 所示。 2.42 电流采样调理电路 本系统采用康铜丝6进行电流的采样。用康铜丝是考虑到功率损耗 的问题,是因为康铜丝的阻值很小,一般在 0.01 左右,电流流经康铜 丝后的
21、电压很小,最大值不会超过 50mv,信号比较微弱。因此,在进行 采样的时候,我们需要将此电压信号放大到 pic 单片机的 a/d 模块能够 接受的 0-5v 之间的范围。本系统根据实际的需要将该电压进行大约 100 倍的放大,这一模块的电路图如 2-5 所示。直接用提供的公式计算, 当 u1=u2=uf 时, 满足输出 uo=-(u1+u2),当然如果要求说满足一个确定 的关系式时,可以通过改变两个电阻与 rf 的比值得到所需要的比例关系。 从运算放大器输出的电压 vout=1+(r31+r33)/r32vcurrent,放大倍数由 (r31+r33)/r32决定。 123456 a b c
22、d 654321 d c b a title numberrevisionsize b date:10-m ay-2010sheet of file:c:documents and settingsadministrator业 业 业 业 业 业 .ddbdrawn by: ar1 opam p vcc5v r33 100k r32 1k current amp r31 1k 图 2-5 电流采样信号调理电路 2.5 矩阵键盘电路 通过键盘的输入值对开关电源在 20v-36v 的输出控制,而对其进行 恒压的控制是根据设置的电压值与采集到的电压值的偏差进行比较。 如图 2-6 所示为 33 的矩
23、阵式键盘,这一键盘的电路设计是采用电 阻分压式设计,配合 a/d 转换器一查表得方式做按键的判断,所以只要 使用一个具有 a/d 功能的输入口即可完成对 33 的矩阵式键盘的扫描操 作,图中的 anjian 端口与图 2-3 的 an0 相连接,为 a/d 功能的输入口。 此外,一般的按键所用开关都是机械弹性开关,由于机械触点的弹 性作用,按键开关在闭合时不会马上稳定地连接,在断开时也不会马上 完全的断开,在闭合和断开的瞬间均有一连串的抖动,所以一般在程序 中会加按键的去抖动的部分。按键按下的电压信号波形图如图 2-7 所示, 从图中可以看出按键按下和松开的时候都存在着抖动。抖动时间的长短 因
24、按键的机械特性不同而有所不同,一般为 5ms10ms。 如果不处理键抖动,则有可能引起一次按键被误读成多次,所以为了确 保能够正确地读到按键,必须去除键抖动,确保在按键的稳定闭合和稳 定断开的时候来判断按键状态,判断后再做处理。 123456 a b c d 654321 d c b a title numberrevisionsize b date:7-may-2010 sheet of file:c:documents and settingsadministrator业业业业业业.ddbdrawn by: s1 k1 s2 k2 s3 k3 s4 k4 s7 k7 s5 k5 s8 k8
25、 s6 k6 s9 k9 r24 10k r25 4.7k r26 2.2k vcc5v r27 20k r28 10k r29 20k r30k 30k anjian amp 图 2-6 33 矩阵式键盘 在本系统的按键去抖动设计中,主要是判断按键是否抬起。如果此 法效果不是很好,那就可以采用延时再判断的方法,如前所述,机械按 键的抖动时间一般在 10ms-20ms 之间。在程序中首先 a/d 采样进来的电 压值与延时 10ms 后的电压值进行比较,若相等,则说明按键已经确定按 下,按键的抖动已经消除。假若不相等,则按键不确定已经按下,需要 重新再扫描。实验证明,本系统中只需要采用判断按键是
26、否抬起的方法 已经可以很好的去抖动满足要求了。 按键按下 前抖动稳定闭合后抖动 按键松开 图 1-7 按键抖动 2.6 液晶 lcd 显示电路 2.61 液晶 1602 显示器介绍 液晶显示器以其微功耗、体积小、显示内容丰富以及超薄轻的诸多 优点,在各类仪表和低功耗系统中得到广泛的应用7-8。 根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可 分为单行 16 字,2 行 16 字,两 20 字等等。 本系统中采用的是一款应用相当广泛,功能精简但完全可以满足要 求的 1602 液晶模块。它是 16 字2 行的字符型液晶模块,是一种通用 模块,与数码管相比该模块主要有如下优点: 1)位数
27、多,可显示 32 位,而 32 个数码管体积相当庞大了。 2)显示内容丰富,可显示所有数字和大、小写字母。 3)程序简单,如果用数码管动态显示,会占用很多时间来刷新显示, 而 1602 自动完成此功能。 1602 采用标准的 16 脚接口,各管脚功能如表 2-1 所示。 表 2-1 1602 各管脚及其功能 2.62 本系统中 1602 的应用 根据系统设计的实际需要,液晶模块主要是显示设定电压值,ad 采 集得到的时间电压值,电流值。1602 的各管脚和单片机各端口的连接如 图 2-8 所示,实物图如图 2-9 所示。液晶显示器 1602 的 d0-d3 分别与 pic18f4520 的 r
28、d0-rd3 相连接,使能端 e 则与单片机的 vref+端相连,rs 端与 rd4 连接,r/w 端则与 rd6 相连,具体可以把图 2-3 与图 2-8 这两 幅图联合起来看。15、16 脚是用来调节背光,达到即使黑暗的地方也能 看清液晶屏上显示的字符,但它有损于液晶屏的寿命。 管脚序号名称功能 1vss电源地端 2vdd电源5v 端 3vee液晶显示器对比度调整端 4rs寄存器选择,高选数据寄存器、低选 指令寄存器 5r/w读写信号,高为读、低为写 6e使能端,高电平跳变为低电平时有效 714d0d7双向数据口 15、16led+、led-调节液晶背光 123456 a b c d 65
29、4321 d c b a title numberrevisionsize b date:1-may-2010 sheet of file:d:program filesexamplesbackup11.ddbdrawn by: vcc5v rs rw e d0 d1 d2 d3 vcc5v s1 k1 s2 k2 s3 k3 s4 k4 s7 k7 s5 k5 s8 k8 s6 k6 s9 k9 r24 10k r25 4.7k r26 2.2k vcc5v r27 20k r28 10k r29 20k r30k 30k anjian gnd 1 vcc 2 vo 3 rs 4 rw 5
30、e 6 db0 7 db1 8 db2 9 db3 10 db4 11 db5 12 db6 13 db7 14 bg vcc 15 bg gnd 16 lcd 1602 u4 lcd1602 图 2-8 1602 与单片机引脚连接图 第三章 系统软件设计 单片机传统的开发语言是汇编语言,因为汇编语言是最接近机器码 的一种语言。其主要优点是占用资源少、程序执行效率高。但是不同的 cpu,其汇编语言可能有所差异,所以不易移植。 作为一种结构化的程序设计语言,c 语言的特点就是可以使你尽量 少地对硬件进行操作,具有很强的功能性、结构性和可移植性,因此常 常被优选作为单片机系统的编程语言。用 c 编
31、写程序比汇编更符合人们 的思考习惯,开发者可以摆脱与硬件无必要的接触,更专心的考虑功能 和算法而不是考虑一些细节问题,这样就减少了开发和调试的时间。c 语言具有良好的程序结构,适用于模块化程序设计,因此采用 c 语言设计 单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法, 将功能模块化,由不同的模块完成不同的功能,这样可使整个应用系统 程序结构清晰,易于调试和维护。不同的功能模块,分别指定相应的入 口参数和出口参数,对于一些要重复调用的程序一般把其编成函数,这 样可以减少程序代码的长度,又便于整个程序的管理,还可增强可读性 和移植性。 综上,c 语言具有很强的功能性和结构性,可以缩
32、短单片机控制系 统的开发周期,而且易于调试和维护,已经成为目前单片机语言中最流 行的编程语言。本程序设计正是将每一功能模块化,一个一个模块进行 c 语言的编写,再一块一块调试,从整个设计下来的结果看,用 c 语言 编写程序达到了很好的效果。 本设计使用单片机对开关电源进行数字的控制,代替原来的 pwm 控 制芯片 ka75009。原先的 ka7500 所实现的功能是对输出的电压以及电 流进行反馈采样,通过误差放大器之后对输出的 pwm 波的占空比进行相 应的调节,起到了稳压恒流的作用。改用 pic18f4520 后,采取双通道 a/d 采样,分别为电压采样和电流的采样,转换为相应之后进行 pi
33、d(proportional integral differential)算法,同样起到了稳压恒 流的作用。同时外围增设键盘和 lcd 显示电路,对输出的电压和电流有 实时的控制和监测。 本章将对整个软件部分的设计思路及其具体实现进行阐述。 3.1 软件设计总体思路 本系统的软件主要有主程序模块、中断服务程序模块组成。其中, 主程序模块主要完成系统的初始化模块、pwm 波发生模块、adc 信号采集 模块以及 pid 算法处理模块、键盘以及 lcd 显示模块。中断服务程序主 要完成 tmr0 定时 10ms 和 a/d 模块的数据采集滤波处理功能。 3.2 系统主程序模块 主程序模块的程序框图如
34、图 3-1 所示。 图 3-1 主程序框图 3.21 始初化模块 主程序中的初始化模块主要完成系统全局变量的初始化、eccp 模块 的初始化、a/d 转化的初始化、lcd 显示的初始化、tmr0 定时器的初始 化和 cpu 中断系统的初始化。初始化模块的程序框图如图 3-2 所示。 eccp 模块的初始化将设置有两路互补推挽输出的 pwm 波,a/d 转化初始 化将 a/d 模块初始化为 10 位的 a/d 转换,tmr0 初始化完成每 10ms 采样 一次电压及电流值。 图 3-2 初始化模块框图 3.22 pwm 波发生模块波发生模块 在pic18f4520 中,ccp1模块为带有增强的p
35、wm功能的标准ccp模块10。 这些增强的功能包括提供2路或4路输出通道、用户可选的极性(高电平 有效或低电平有效) 、死区控制以及自动关闭和重启。因此,增强型pwm 模式提供了更多的pwm 输出选项以适应范围更广的控制应用。 图3-3所示为pwm操作的简化框图。所有的控制寄存器都是双重缓冲 的,并且在一个新的pwm周期的开始时刻(timer2复位时的周期边界)被 装载以防止在任何输出上出现毛刺。但pwm延迟寄存器pwm1con例外,该 寄存器在占空比边界或周期边界(选择两者中首先出现的那个)被装载。 由于缓冲,模块将不会立即启动,而要等到分配的定时器复位为止。这 意味着增强型pwm 波形并不
36、完全与标准的pwm 波形吻合,而是偏移一个 完整的指令周期(4tosc)11。 图 3-3 增强型 pwm 模式工作原理示意图 每个增强型ccp模块至多有4路pwm 输出,这取决于选定的操作模式。 这些输出,p1a至p1d,与portc和portd上的i/o引脚复用。输出是否有效 取决于选定的ccp操作模式。因此,若想要单片机工作于半桥输出的增强 型的pwm模式,必须按照以下几个步骤: (1) 通过分别设置ccp1con寄存器的p1m1:p1m0 和ccp1m3:ccp1m0 位 可配置模块的输出模式和极性。如图3-4所示为ccp1con寄存器各配置位。 图3-4 ccp1con寄存器配置位
37、由于本设计中为两路互补推挽的pwm波输出,所以设置 p1m1:p1m0=10,即半桥输出:p1a和p1b为带死区控制的调制输出;p1c和 p1d被指定为端口引脚。同时设置ccp1m3:ccp1m0=1100,使p1a和p1b都为 高电平有效。 (2) 使p1a和p1b都为输出模式,即配置trisc和trisd的相应引脚为 0。 (3) 设置pwm波的周期。pwm 周期可以通过写pr2寄存器来指定。用以 下公式来计算pwm周期。 pwm周期=(pr2)+14tosc(tmr2预分频值) 根据本系统所需pwm波的实际情况,原先的pwm控制芯片所产生的pwm 波的频率要求为25khz,即周期为410
38、-5s。而单片机外部的振荡器为 16mhz,tosc=1/16106s,经计算的pr2=159。 (4) 设置pwm波的占空比。通过写ccpr1l寄存器和ccp1con位来 指定pwm占空比。最高分辨率可达10位。ccpr1l包含占空比的高8位,而 ccp1con包含低2位。由ccpr1l:ccp1con 表示完整的10位值。 计算占空比的公式如下: pwm占空比=(ccpr1l:ccp1con)tosc(tmr2预分频值) 可以在任何时候写入ccpr1l和ccp1con,但是在pr2和tmr2发生 匹配(即周期结束)前占空比值不会被锁存到ccpr1h中。在pwm模式中, ccpr1h 是只读
39、寄存器。ccpr1h寄存器和一个2位的内部锁存器用于给pwm 占空比提供双重缓冲。这种双重缓冲结构非常重要,可以避免在pwm工作 过程中产生毛刺。 同样根据本系统所需 pwm 波的实际情况,pwm 的占空比在 25%左右。 所以需要配置 ccpr1l 和 ccp1con,经计算得 ccpr1l=0x28,同时 ccp1con=00。 (5) 设置死区延时。在半桥输出模式下,两个引脚用作输出端来驱 动推挽式负载。pwm 输出信号在p1a引脚上输出,而互补的pwm输出信号 在p1b引脚上输出。如图3-5所示。 图 3-5 半桥 pwm 波输出波形示意图 在半桥应用中,模块在所有时间以pwm频率的调
40、制信号驱动电源开 关,关闭电源开关通常比打开它需要更多的时间。如果上方的电源和下 方的电源开关同时切换(一个打开,另一个关闭) ,两个开关可能会在一 段很短的时间内都处于打开状态,直到一个开关完全关闭为止。在这很 短的间隔内,很大的电流(直通电流)可能流过两个电源开关,从而导 致半桥供电电源短路。为了避免在切换期间流过这种潜在的破坏性直通 电流,一般延迟打开其中的一个开关等待另一个开关完全关闭。在半桥 输出模式下,可编程的死区延迟可用来避免直通电流破坏构成半桥的电 子开关。该延迟在信号从非有效状态到有效状态转换时发生。pwm1con 寄存器(如图3-6所示)中的pdc6:pdc0位根据单片机指
41、令周期设置延迟 时间(tcy或4个tosc)13。 图 3-6 pwm1con 寄存器 其中 bit6-bit0 为 pwm 延迟计数位,延迟时间为 pwm 信号变为有效 的预计时间和实际时间之差,其单位为 fosc/4(4tosc)周期14。 根据本设计的情况,设定延时时间为占空比时间的 5%,即 510-7s,故 对 pwm1con 寄存器赋值为 0 x84。 3.23 a/d 转换模块转换模块 在本系统中需要对电压和电流进行相应的 a/d 转换,硬件电路的设 计已经在前一章进行了较为详细的描述,在此不再赘述。这一小节主要 介绍 pic 单片机中的 a/d 转换的原理以及在本实验中所需要用
42、到 a/d 转 换功能的程序设计。 pic 单片机中的 a/d 转换模块15如图 3-7 所示。 可用软件选择模拟参考电压为器件的正电源电压和负电源电压(vdd 和vss)或ra3/an3/vref+引脚和ra2/an2/vref-/cvref引脚上的电平。a/d转 换器具有可在休眠模式下工作的特性。要使a/d转换器在休眠状态下工作, a/d转换时钟必须来自于a/d 模块内部的rc振荡器。 采样保持电路16的输出是转换器的输入,转换器采用逐次逼近法得 到转换结果。器件复位操作将强制所有寄存器进入复位状态,这将迫使 a/d模块关闭并中止正在进行的转换。可以将每个与a/d转换器相关的端 口引脚配置
43、为模拟输入或数字i/o。adresh和adresl寄存器保存a/d转换 的结果。当 a/d转换完成之后,转换结果被装入adresh:adresl寄存器对, go/done位(adcon0寄存器)被清零且a/d中断标志位adif被置1。上电复 位时,adresh:adresl寄存器中的值保持不变。上电复位后, adresh:adresl寄存器中的值不确定。在根据需要配置好a/d模块之后, 必须在转换开始之前对选定的通道进行采样。必须将模拟输入通道相应 的tris位选择为输入。采集时间一结束,即可启动a/d转换。可将采集时 间编程设定在go/done位置1和实际转换启动之间。 图 3-7 10 位
44、 a/d 转换器模块原理框图 在执行 a/d 转换时应该遵循以下步骤: 1.配置 a/d 模块17: (1)通过 adcon0 寄存器选择输入通道。adcon0 寄存器各配置位如图 3-8 所示 。 其中 bit7-bit6 为未用位,bit5-bit2 为模拟通道选择位, 从 0000-1100 分别代表 an0-an12,这 13 个通道。bit1 为 a/d 转换状态 位,1 表示转换正在进行,0 表示空闲。bit0 为 a/d 转换使能位,1 表示 使能,0 表示禁止。 图 3-8 adcon0 寄存器各配置位 (2)通过 adcon1 寄存器配置模拟引脚、参考电压和数字 i/o 口。
45、 adcon1 寄存器各配置位如图 3-9 所示。其中 bit7-bit6 为未用位,bit5- bit4 为参考电压配置位,在本次设计中将其配置位 00,使得参考电压在 0-5v 之间。bit3-bit0 为 a/d 端口配置控制位,如表 3-1 所示。 图 3-9 adcon1 寄存器各配置位 表 3-1 a/d 端口配置控制位 由于 an0 为按键采集,an1 为电压采集,an2 为电流采集,所以 adcon1 寄存器的 bit3-bit0 设置为 1100。 (3)通过配置adcon2从而设置a/d转换的采集时间。每当go/done位置 1,用户就可利用adcon2寄存器选择采集时间。
46、该寄存器还提供了自动设 定采集时间的选项。可以使用acqt2:acqt0 位(adcon2)设置采集 时间,采集时间的范围是2到20 个tad。当go/done位置1时,a/d模块继 续对输入进行采样,采样时间为所选择的采集时间,然后自动启动转换。 由于采集时间已被编程,因此在选择通道和go/done 位置1之间无需另外 等待一个采集时间。 若acqt2:acqt0=000,则表示选择手动采集。当go/done位置1时,采 样停止并启动转换。用户有责任确保在选定所需要的输入通道和go/done 位置1之间经过了所需要的采集时间。此选项也是acqt2:acqt0位的默认 复位状态,并且与不提供可
47、编程采集时间的器件兼容。 在这两种情况下,当转换完成时,go/done位被清零、adif 标志位 被置1且a/d 再次开始对当前选定的通道进行采样。如果采集时间已经被 编程,那么将不会有任何指示显示采集时间何时结束,转换何时开始。 adcon2寄存器各配置位如图2-10所示。 图 3-10 adcon2 寄存器各配置位 bit5-bit3为a/d采集时间选择位,在本设计中将这3位设置成010, 为4tad(每位a/d转换时间被定义为tad)。而每完成一次10位a/d转换需要 11个tad。图3-11显示了go置位为1,bit5-bit3位被设置为010,且在转 换开始之前选择4tad采集时间后
48、a/d转换器的工作状态。 在转换期间将go/done位清零将中止当前的a/d转换。不会用尚未完 成的a/d转换结果来更新a/d结果寄存器对。这意味着adresh:adresl寄存 器将仍然保持上一次的转换结果(或上一次写入adresh:adresl寄存器的 值) 。在a/d转换完成或中止以后,需要等待2个tad才能开始下一次采集。 等待时间一到,将自动开始对选定通道进行采集。 图 3-11 a/d 转换周期 tad(acqt=010.tacq=4tad) 2.配置a/d中断: (1)清零adif位 (2)将adie位置1 (3)将 gie 位置 1 3.等待所需要的采集时间。 4.启动转换:将
49、 adcon0 寄存器中的 go/done 为置 1。 5.等待 a/d 转换完成,在本设计中是以中断的形式来判断转换是否 完成。 6.读取 a/d 结果寄存器(adresh:adresl) 。 7.再次进行 a/d 转换。 3.24 pid 算法处理模块算法处理模块 1.pid 算法原理简介18 典型 pid 控制的传递函数如式(1)所示: (1) 1 1 ( )( )( )(st st k sx sx sg d i p i o 式中:kp为比例系数;ti为积分常数;td为微分常数。 简单说来,pid 控制器各校正环节的作用如下: 比例环节(proportiona1):及时成比例地反映控制系
50、统的偏差信号, 偏差一旦产生,控制器立即产生控制作用,以减少偏差。 积分环节(integra1):主要用于消除静差,提高系统的无差度。积 分作用强弱取决于积分时间常数ti,ti越大,积分作用越弱,反之则越 强。 微分环节(differentia1):能反映偏差信号的变化趋势(变化速率), 并能在偏差信号值变得太大之前,在系统中引入一个有效的早期修正信 号,从而加快系统的动作速度,减小调节时间。 若令,则式(1)可以改写为: i i p k t k ddp ktk (2)sk s k ksg d i p )( 将式(2)经过拉氏变换,并考虑初始值,即可求得时域内理想的模拟 pid控制算式,如下:
51、 (3) 0 )( )()()(u dt tde kdttektektu dip 由于单片机根据采样时刻的偏差值计算控制量19,因此式(3)中的 积分和微分项不能直接使用,需要做离散化处理。按照模拟pid控制算法 的算式(3),现以一系列的采样时刻点代表连续的时间,以和式代替积分, 以增量代替微分,则可得到离散化的pid表达式为: (4) n j nndjinpn ueekekeku 1 01) ( 式中:j为采样序号,j=0,1,2n;un第n次采样时刻的控制器输出值; en为第n次采样时刻输入的偏差值;en-1为第n-1次采样时刻输入的偏差值。 数字pid控制分为位置式pid控制算法和增量
52、式pid控制算法,式(4) 所示便是位置式pid算式。 由式(4)可得控制器第n-1次的输出量un-1为: (5) 0 1 1 2111 )(ueekekeku n j nndjinpn 所以,增量式pid控制算式如下所示: (6)2()( 2111 nnndninnpnn eeekekeekuuu 2.本系统的pid算法程序框图 在开关电源结构中,开关电源是通过修改pwm波占空比改变逆变桥中 coolmosfet的通断时间,从而控制输出电压的大小。当输出电压超过给 定值时,减小pwm波占空比,减小coolmosfet开通时间,降低输出电压; 反之,当输出电压小于给定值时,则增加pwm波占空比
53、,增加coolmosfet 开通时间,使输出电压升高。可见,在控制器进行调节的时候我们所关 心的是此次pwm波的占空比需要改变的量,即每次输出控制量的增量。因 此,本系统使用增量式pid控制算法。程序框图如图3-12所示。 图 3-12 pid 算法程序框图 3.25 lcd 液晶显示模块液晶显示模块 本设计中的 lcd 现实这一块相对清晰,主要进行的是对 lcd 的读写 操作。但是在编写程序的过程中主要的是将读写的时序有很好的理解。 如图 2-13 和如图 2-14 分别为显示了 1602 的读和写的操作。 3.26 按键处理模块 通过按键实现设定电压的增减,如按一下增加键(键 1) ,则设
54、定电 压值加一伏,但是如果设定电压值大于或是等于 36v 时,则不在增加; 同理,按一下减少键(键 2) ,则设定电压值减一伏,但是如果设定电压 值小于或是等于 24v 时,设定值将不在减少而是保存原值不变。 图 3-13 lcd1602 读操作时序图 图 3-14 lcd1602 写操作时序图 注:tsp1和 tsp2的最小值一般在 30-40ns 之间;thd1和 thd2最小值一 般在 10ns; tpw的最小值为 150ns;tc的最小值为 400ns;tf的最大值一般为 25ns;tr的最大值一般为 25ns;td的最大值一般为 100ns。 此模块采用 ad 采集的方式来识别按键的
55、按键模块,每个按键对应于 不同的电压,因此每个按键对应于不同的 ad 值,从而通过判断 ad 值的 大小范围就可以判定出按键的值,而此按键模块只需一个 ad 采集口就够 了,大大的减少了 io 口的占用情况。 各个按键按下所得到的 ad 值如下: key1 2.5v 0 x200 key2 2.0v 0 x199 key3 1.67v 0 x156 key4 2.882v 0 x24e key5 2.24v 0 x1ca key6 1.795v 0 x16f key7 3.11v 0 x27c key8 2.37v 0 x1e5 key9 1.916v 0 x188 3.3 中断服务程序模块
56、3.31 中断程序原理及框图 此系统的中断服务程序采取两级中断,主要是 tmr0 定时/计数器产 生 10ms 定时的溢出中断,主要完成定时 10ms 对 a/d 模块的数字量读取 和重新开始新的 a/d 转换,每当 adcbuffer 缓冲区的内容满时,对所有 采集到的数据进行数字滤波从而读取正确的 a/d 转换后的电压数字量传 给主程序的电压变换模块从而交于 pid 算法处理模块进行处理。在此分 析电压中断服务子程序。程序的框图如图 3-15 所示。 图 3-15 电压中断服务程序框图 3.32 数字滤波算法 数字pid控制是一种采样控制,它只能根据采样时刻的偏差值计算控 制量。而测量信号
57、中总是存在一些干扰、噪声或者畸变,这些因素都影 响上述控制算法的精度,从而使整个控制系统的性能下降。因此,利用 数字滤波技术能够有效地对偏差信号(测量信号)中的干扰、噪声进行滤 波或者对其畸变进行动态补偿,从而提高数字pid控制算式的精度,改进 控制系统的性能。 本系统中软件中采用tmr0定时10ms,每10ms定时的时间到就将 a/d转换的结果读出来,存储在定义的unsigned char adcbuffer5缓冲区 中。当缓冲区满时,将缓冲区的内容进行排序,抑制掉最大值和最小值, 只取中间的值作为转换的结果。 这部分数字滤波的具体实现方法如下: /采用数字滤波算法,用排序法完成 for(i
58、=0;isizeof(adcbuffer)/2;i+) for(j=i;jsizeof(adcbuffer)/2;j+) if(adcbufferiadcbufferj) temp=adcbufferi; adcbufferi=adcbufferj; adcbufferj=temp; /获取滤波后的 ad 转换值,将该值载入 adcvalue 中 adcvalue=adcbuffersizeof(adcbuffer)/2; 第四章 结 论 此毕业设计主要完成的任务是对开关电源进行数字的控制即程序的 编写。其实从硬件电路的角度讲难度并不是很大,因为主要就是电压和 电流的采集,然后进行 a/d 的
59、转换,再调节 pwm 波的占空比。原理相对 简单,但是要做成功其实并不是一件容易的事情,主要碰到的问题有不 同电压情况下 pwm 波的占空比是不一样的。要想通过进行电压的设定以 及将电压稳定在设定的状态需要对 pwm 波的占空比有比较精确的定量认 识。在这个情况下面,需要极其耐心地对每个电压所对应的 pwm 波的占 空比做一个较为详细的记录,以便进行软件程序的编写。 在开关电源中,相对模拟系统而言,数字系统22具有设计周期短, 易实现模块化管理,能够消除因分立元件引起的不稳定和电磁干扰等优 点。因此,近年来数字控制在开关电源中得到迅速的发展。随着芯片技 术的不断发展,特别是单片机技术的发展,各
60、种在模拟电路中难以实现 的现代控制方法也开始应用于开关电源的控制中,使得模拟控制向数字 控制转变。 相信随着数字技术的不断发展和电子技术的不断发展,单片机的数 字控制将会越来越受到关注,也会越来越广泛地被运用到高效率、高功 率因素的开关电源中。 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际 问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考 察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用 中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世 纪的大学来说掌握单片机的开发技术是十分重要的。 随着科技的发展,单片机已不是一个陌生的名词,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医疗器械行业中的品牌建设与市场定位
- 医疗器械技术进步对商业发展的影响
- 医疗行业中的科技力量-探讨移支动技术在健康教育中的应用
- 利用区块链进行精确控制优化医疗资源供应链管理的路径研究
- 2025年生产部工作年度总结模版
- 医疗健康产业中的大数据与人工智能
- 医疗大数据分析在疾病预防中的价值
- 企业食堂供货合同范例
- 以环保为目标创新型医院的设计与实施
- 供销合同范例6
- 2025届浙江省学军、镇海等名校高考英语二模试卷含解析
- 韦氏测试题及答案
- 历年贵州特岗试题及答案
- 2025怎样正确理解全过程人民民主的历史逻辑、实践逻辑与理论逻辑?(答案3份)
- 国家开放大学《工具书与文献检索》形考任务1-4参考答案及作业1
- GB/T 45501-2025工业机器人三维视觉引导系统通用技术要求
- 2025中原工学院教师招聘考试试题及答案
- 浅谈南京市区地形地貌和工程地质层构成
- 北师大版四年级数学下册第五单元 认识方程标准检测卷(含答案)
- 2025年福建省漳州市中考适应性练习地理试题(含答案)
- 2024年云南省初中学业水平考试地理试卷含答案
评论
0/150
提交评论