XX大 学
模拟电路课程设计报告
课题名称:基于STC12系列单片机的串联型开关电源设计与实现
学 院 计算机与电子信息学院 专 业 班 级 学 号
姓 名
摘要:本模拟电路课程设计要求制作开关电源的模拟电路部分,在掌握原理的基础上将其与单片机相结合,完成开关电源的设计。本报告旨在详述开关电源的原理分析、计算、仿真波形、相关控制方法以及程序展示。
一、 开关电源原理分析
本课程设计采用单片机控制与模拟电路相结合的方法来实现开关电源。单片机所采用的芯片为STC12C5A60S2,该芯片在拥有8051内核的基础上加入了10为AD和PWM发生器。通过程序,即可控制单片机产生一定占空比的PWM脉冲,将此脉冲输入到模拟电路部分,在模拟电路的输出端即可产生一定的输出电压,可比较容易的通过程序来实现对输出电压的控制。但上述的开环控制是无法达到精确的调节电压,因此需要采用闭环控制来精确调制。即,对输出电压进行AD采样,将其输入回单片机中进行数据处理。单片机根据处理的结果来对输出电压做出修正,经过这样的逐步调节即可达到闭环的精密输出。由此原理,可以将整个过程分成一下模块:MCU控制模块,PWM波形输出模块,模拟电路模块,AD转换模块,数码管显示模块,键盘输入模块。原理图如下:
二、本设计的特色
经过几次完善,本课程设计的程序改掉了之前的独立按键而换用了矩阵键盘,同时,矩阵键盘与数据的对应形式与手机键盘相同,操作方便。对于显示函数进行了一定的修改,废弃了应用Delay函数的原始办法,改用中断进行显示,这样的效果更佳。同时,对于闭环控制也进行了一定的更改,由原来的简单的对占空比进行操作变成了在一定时刻后对占空比进行10000次叠加取均值,这样使显示更加的稳定准确。将每次输入数据都要复位的缺点进行看修改,只需先按独立按键就可进入重复键入数据的模式,使得程序更加实用。同时程序中也加入了对输入数据进行修改和按键音的功能,使得整个设计更加人性化。
三、模拟电路原理说明
模拟电路图如下:
该模拟电路的控制部分原理为,通过MCU输出的PWM脉
冲来不断的使三极管导通和截止,这样就达到了一个类似开关的功能,使得三极管的射极与VCC导通和截止。而射极的电压经过后续电路后,其输出端就会输出一定的电压值。也就是说通过调整PWM脉冲即可该电路的输出电压。
四、相关控制说明
本系统通过STC12C5A60S2单片机对其进行控制,具体控制流程为:首先,程序先对定时器进行初始化,通过定时器中断来对数据进行显示,之后通过键盘输入程序对数据进行输入,并将其输入的数据保存在数组中。在这个过程中可以对输入的数据进行更改。之后对单片机进行AD、PWM初始化。使其处于工作状态。在初始化时,应该将PWM的占空比设定为最小,即CCAP0H、CCAP0L=0XFE。之后,AD采样回电压并将其储存在数组中同时转化成能够与键盘输入值进行比较的形式。将该值与键盘输入值进行比较,通过比较结果来对CCAP0H,CCAP0L进行调整,考虑到如果闭环控制如果是在不
断的调整占空比,那么随之接收到并且显示的电压必定在不断跳动,因此,可以采用将不断调整的占空比进行叠加取出均值然后赋给CCAP0H,CCAP0L的方法,直至调整为与键盘输入的数值达到最优为止,这样即完成了闭环精确调制电压的过程。
在编程中,需要注意的问题有:1、在AD采样时,不一定会达到很高精度,这时需要实测数据,根据数据对程序进行修正。2、关于闭环控制,起初,程序中将键盘输入与占空比设置联系到了一起。这是十分不明智的。应将键盘输入数据与占空比的设置分开,键盘输入的数据仅仅作为一个标准用于比较。
五、设计中存在的不足
在设计过程中,虽说程序可以正确运行,但是程序中语句的运用
确实存在不合理之处。例如本应是if……else的语句却用了两个if,这样看似可以正常运行,但是效率却不如if……else。这些细微之处都应该加以注意。
六、本次课程设计的体会
本次课程设计的最大体会就是:对待程序,要多注意关注它的细节,不要以程序可以正确运行为目的,而应当尽可能的提高程序的效率,尽可能的增强程序的可读性,尽可能的达到人性化的设计。增加一些诸如可删除,按键音,可重复输入数据,状态指示灯等小功能。这些看似容易的小功能实际是设计者的设计思想理念的体现,这也正是我们应该培养的。