基于STC12系列单片机的串联型开关电源设计与实现.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于STC12系列单片机的串联型开关电源设计与实现.doc》由会员分享,可在线阅读,更多相关《基于STC12系列单片机的串联型开关电源设计与实现.doc(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流基于STC12系列单片机的串联型开关电源设计与实现.精品文档.基于STC12系列单片机的串联型开关电源设计与实现 开关电源是一种利用现代电力电子技术,控制开关管开通和闭合的时间比率,维持稳定输出电压的一种电源,开关电源一般是由脉冲宽度调制(PWM)控制。与一般的线性电源相比较,两者的成本都随着输出功率的增加而增长,但两者的增长速率有所差异,最重要的一点就是开关电源效率一般都会要比线性电源的效率要高。基于开关电源与线性电源的不同,开关电源主要由以下的几个模块组成:1串联开关电源电路;2 AD转换模块采集电源电压;3 PWM波形输出模块;4数码管
2、显示;5键盘输入设置电压;6通过CPU(STC12C5A60S2)控制算法。系统的基本框图如下:基本思路为:首先从键盘输入一个电压值,并把该电压值在数码管上面显示出来,再由A/D转换模块对串联开关电源电路的输出端进行电压采集,将采集到的电压值与键盘输入的电压值进行比较,通过闭环算法,控制PWM的脉宽输出,由此控制串联开关电压电源电路,改变输出的电压值,使得输出值与设定的电压值相等。一:串联开关电源电路部分该电路图由一个三极管,电感,电阻,电容,二极管,还有就是接VCC和接GND端,电路相对比较简单,如图所示:原理:在PWM端无输入时,三极管相当于闭合,三极管右边的电路无电流流过,此时RL两端的
3、电压为0V。当PWM端有电流输入时,三极管导通,电感L1和电容C1,可以分别防止电流和电压突变,有一定的稳压作用。高频二极管D1,可以在PWM由开向关状态转换时与电感L1形成通路,释放电感的能量。而由于PWM端输入的是方波,也就是说三极管是处于开或者关状态的。由此C1和R1在开状态时电容充电,R1两端的电压逐渐升高,而当三极管处于关状态时,电容C1对R1进行放电,此时电压逐渐降低。最后通过控制三极管的开与关的时间比例便可以使得在R1两端形成稳定的电压。二:键盘输入数据部分在该实验中,输入数据时要用到矩阵键盘,矩阵键盘又称为行列式键盘,它是用4条I/O线作为列线,4条I/O线作为行线组成的键盘。
4、在行线和列线的每一个交叉点上设置一个按键,由此组成了4*4的键盘,比之直接将端口线用于键盘多出了一倍,而且线数越多,区别越明显,比如再多加一条线就可以构成20键的键盘,而直接用端口线则只能多出一键(9键)。由此可见,在需要的键数比较多时,采用矩阵法来做键盘是合理的。这样的行列式键盘结构可以有效地提高单片机系统中I/O口的利用率。如下图所示的4*4矩阵键盘:为了判断矩阵键盘上面的按键是否有按下的,由于矩阵键盘是连接着P2口的,可以事先对P2端口赋值,比如使P2 = 0x7f,则除了P2.7口是低电平之外,其余的均为高电平。通过扫描P2.0到P2.3,要是有按键按下,假如P2.3为低电平,则可知道
5、P2.3与P2.7对应的那个按键按下了(也就是SM1),以此类推,便可以知道具体是哪个按键被按下了。除了上面要知道是哪个按键被按下了之后,还要知道那个按下的按键代表的是哪个值,此时通过给所赋的低电平的端口和另一个低电平的端口组合起来就可以知道所按下的按键所代表的数值。三:数码管数据显示部分知道了上面在矩阵键盘输入的数值后,便要在数码管上面显示出来。该实验板的8位数码管是共阴极的数码管,使用端口为P0和P1口,且为动态数码管,因此在同一时间,只有一个数码管是亮着,但由于人眼的视觉残留,使得看上去是全部一起亮着的。8位分别有段选和位选,段选就是要一个数码管显示的字型,而位选则是由低电平选中所要那一
6、个数码管,该数码管才能亮。因此要使得数码管亮并显示数字,则必须在位选时该数码管的位选管脚出于低电平,然后再通过段选显示字型。如下图所示的数码管:四:控制PWM输出部分STC12C5A60S2系列单片机集成了两路可编程计数器阵列(PCA)模块,可用于软件定时器,外部脉冲的捕捉,高速输出以及脉宽调制(PWM)输出。在该实验中主要用到PWM脉宽调制输出,通过对特殊功能寄存器初始化,就可以在P1.3(选择模式0时) 或P1.4(选择模式1时)端口输出可调占空比的高速脉冲。五:A/D转换部分(完成万用表功能,即测量开关电源输出电压)STC12C5A60S2系列单片机自带有8路10位高速A/D转换器,在本
7、实验中只用到其中的一路,故可以通过软件设计选择其中的一路用来测量电压。在不需作为A/D转换的端口可以继续作为I/O口使用。AD转换对特殊功能寄存器的初始化主要有ADC_CONTR和A/D转换结果寄存器ADC_RES(用来存放高八位) ADC_RESL(用来存放低两位);在ADC_CONTR中包含有ADC电源控制位ADC_POWER,模数转换器转换速度控制位SPEED1 SPEED0,模数转换器转换结束标志位ADC_FLAG,模数转换器(ADC)转换启动控制位ADC_START,模拟输入通道选择CHS1/CHS2/CHS3。由于是2套时钟,在设置ADC_CONTR控制寄存器的语句执行之后,要经过
8、4个CPU时钟的延时,其值才能够保证被这只进ADC_CONTR控制寄存器,所以设置ADC_CONTR控制寄存器后,要加4个空操作延时才能正确读到ADC_CONTR寄存器的值。ADC的结构如下图所示:六:闭环控制算法这部分是整个实验中最重要的部分,该部分主要是通过A/D采集数据控制PWM输出,PWM控制开关电源输出,以达到稳定,即让开关电源输出电压稳定在键盘输入的电压值。针对前面的要求,则需要用单片机来完成所有的控制与计算。在该实验中,作为AD采集的端口为P1.0,PWM输出端口为P1.3,在采集完电压数据的时候把数据存放在ADC之中,而从键盘输入数值时,键盘上显示的是一个小数,但在单片机中存在
9、中间变量temp的是一个整数,为小数的1000倍,因此在引用数码管显示的数值时要将temp除以1000才能得到实际的设置电压数值Vs;另一方面,采集回来的电压ADC要转换成实际的电压数值,则由下面的算法得出:真实值 Vr = ADV*5.0/1024.0 在得到这两个数值之后对他们进行比较,要是VrVs时,则要降低PWM输出脉冲的占空比,由此而使得串联开关电路的输出电压与事先所设置的电压值相同。实际测得的电压与设置的电压对比表格如下:Vs4.03.073.123.253.353.463.583.693.783.93.964.08通过上面的表格可以看出来,虽然实际测出来的电压Vr和设置的电压Vs
10、有一定的误差,但是总体还是在设置的电压附近波动,所能输出地电压范围为0.8v4.0v。心得体会:通过这次基于STC12系列单片机的串联型开关电源的课程设计让我对单片机的理论有了更加深入的了解,同时在具体的制作过程中我发现现在书本上的知识与实际的应用存在着不小的差距,书本上的知识很多都是理想化后的结论,忽略了很多实际的因素,或者涉及的不全面,可在实际的应用时这些是不能被忽略的,因此不得不考虑这方面的问题,这让我无法根据书上的理论就轻易得到预想中的结果,有时结果甚至很差别很大在实验之中,要使用单片机的管脚,则必须要对所要用到的管脚充分的了解。在此之中我充分了解到,单片机的管脚不单单是输入输出而已,
11、还有很多的其他功能,就比如说这次实验中所用到的AD转换功能和PWM脉冲输出功能。要知道怎么样使用一些管脚的第二功能或者第三功能,就要对该单片机的结构有更深的了解,在设计程序的时候就可以对一些特殊的功能寄存器进行初始化,以便更好地使用复用的管脚。除此之外,我更加深了对C语言的理解,C51是针对单片机设计的,它与纯粹的C语言还是有一些差别的。像在这次实验之中使用到的定时器和对一些特殊功能寄存器赋值的那些语句,在纯粹的C语言里面是没有的。C51是要在熟知单片机的结构下才能编程的,特别是此次里面所要用到的AD转换和PWM脉宽输出。在编程的时候,有几点很深的体会就是:1定时器的使用,定时器有点类似于死循
12、环,不过和死循环不一样的是,定时器是当计时超过所设定的时间时,就会产生中断,从头开始几时,在定时器中断里面的程序也重新开始执行。而死循环,比如说while(1),在它里面的程序执行完一次的时候有会从新从头开始执行,不像定时器要到一定的时间之后才可以重新运行一次程序。2还有就是对一些细节上面的改进,比如说按按键是的防抖动问题,可以加上一些延时防止单片机误判多次按下按键。关于小数点的时候,可以用一个除所需显示的数字按键来表示,小数点的移动可以设置标志位,再与前面现实的数值相或,就可以使得小数点显示在相应的位那里了。总体来说,我通过这次课程设计不单单学到了很多单片机和C51编程的的知识,更多的是学会
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC12 系列 单片机 串联 开关电源 设计 实现
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内