《基于单片机的ATX电源智能检测仪的设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的ATX电源智能检测仪的设计.doc(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目 录摘 要1关键词1Abstract1Key word1引言21.设计内容及要求32.整体方案设计和论证42.1ATX电源工作原理42.2整体方案设计与论证62.2.1整体方案设计62.2.2整体方案的论证62.3各模块的介绍82.3.1直流电源模块82.3.2单片机模块82.3.3数据采集模块92.3.3开关模块132.3.4显示模块183.硬件电路203.1电源模块203.2单片机模块213.3AD模块223.4与电脑电源的衔接模块224.软件设计244.1系统总的流程图244.2CD4051控制子程序244.3AD转换子程序254.4显示子程序265.调试285.1AD芯片与下载线的影
2、响285.2AD的时序285.3AD数据高低位295.4CD4051的正常工作电压296.结论30参考文献30致谢32附录33基于单片机的ATX电源智能检测仪的设计摘 要本文主要阐叙了用51单片机实现ATX电源智能检测仪的设计方法。该智能检测仪是对电脑电源的输出电压进行检测,判断其性能好坏的一款产品。设计思路是利用AD芯片对ATX电源实际输出电压进行采集,通过单片机系统对数据进行处理,并将数据和结果在显示模块显示。本设计能实现采集ATX电源+5V、+12V、+3.3V几个大功率输出端口的电压,判断ATX电源的的性能。本产品能很准确的检测出ATX电源的实际带负载能力,为ATX电源实际性能检测提供
3、了有力依据。关键词单片机;AD芯片;LCD;ATX电源The Design of ATX Power Supply Smart Detector Based MCUAbstractThis article illustrates the reclassification of 51 MCU with smart detector ATX power supply design. The detector is intelligent computer power supply output voltage for testing to determine their quality of a
4、product. The idea of design is to use the AD chip ATX power supply output voltage to the actual collection, through MCU system the data processing and data and results in the display module. Acquisition of this design can achieve ATX power supply +5 V, +12 V, +3.3 V several high-power output voltage
5、 and judge the performance of the ATX power supply, This product can detect the ATX power supply with the actual load capacity very accurately, providing a strong basis for the actual performance test of the ATX power supply. Key wordMCU;AD chip; LCD;ATX power supply引言电源是电脑能够运行的动力之源,在电脑运行的过程中我们越来越认识
6、到它的重要性。如果电源性能不佳,轻则机器时不时给你来个反复启动、仿制处于半梦半醒之间,重则让整部机器为此献身。即使你机器配备的是品质优良的电源,但随着不断地给机器添置新的硬件和外设,这个电源是否还能担当起重任呢?我们又如何选择合适的电源呢?打开电源的外壳后一个有经验的用户能够了解电源的工艺水平,但并不能估算出电源输出的实际功率,而且大多数经销商是不会给用户这样的机会的,所以电源的输出功率、各端的最大输出电流等指标通常都标注在电源的铭牌上。我们怎么知道这些指标是否属实呢?市场上出现了许许多多的大功率电源,200W400W的电源到处都是,有杂牌的还有名牌的,面对这么多行行色色的产品,作为消费者,我
7、们到底该如何选择?很多人只是单纯的用万用表检测下空载情况下电脑电源是否正常,根本不清楚电源的实际负载能力。市场上很难找到一款检测电脑电源功率的电子产品。在网上找,费了很大力气才找到深圳的一家公司有类似的产品而且价格昂贵!针对这种情况,我们很有必要设计个合适的电脑电源检测仪。目前单片机应用广泛,利用单片机可以设计出一款价格低廉适用性强的检测仪。它有很大的市场前景,并可以很有力的打击假冒伪劣产品,保护我们消费者的利益。1.设计内容及要求设计一款单片机ATX电源智能检测仪,能检测出ATX电源的输出功率是否达到要求。具体要求如下:(1)采样ATX电源+12V、+5V、+3V输出端子在带大功率负载时所能
8、提供的电压,单片机根据这个电压值判断电源输出功率是否符合要求,并在LCD显示模块显示数据和处理后的结果。(2)采样ATX电源+5V USB1 +5V USB2输出端子在带小功率负载时所能提供的电压,并在LCD显示模块显示数据和处理后的结果。(3)ATX电源-12V、-5V用指示灯表示正常与否。(4)LCD显示模块能对采样的数据及处理后的结果进行循环显示。2.整体方案设计和论证2.1ATX电源工作原理检测电脑电源,自然很有必要知道电脑电源的工作原理,以下是对电脑电源的简要介绍:PC电源的工作流程:当市电进入电源后,先通过扼流线圈和电容滤波去除高频杂波和干扰信号,然后经过整流和滤波得到高压直流电。
9、接着通过开关电路把高压直流电转成高频脉动直流电,再送高频开关变压器降压。最后滤除高频交流部份,这样最后输出供电脑使用的相对纯净的低压直流电。图.1PC电源流程框图如图2.1 PC电源流程框图所示,电源内部的大致流程为:高压市频交流输入一、二级EMI滤波电路(滤波) 全桥电路整流(整流)+大容量高压滤波电容(滤波) 高压直流 开关三极管 高频率的脉动直流电 开关变压器(变压) 低压高频交流 低压滤波电路(整流、滤波) 稳定的低压直流输出。 开关管的品质直接决定了电源的稳定性,它也是电源中主要的发热元件,拆开电源后看到的主散热片上的两个晶体管就是开关管。高频开关变压器同样是整个电路中的核心部件,讲
10、究的是铁氧体的效率、磁芯截面积的大小和磁隙的宽度,截面积过小的变压器容易产生磁饱和而无法输出较大的功率,各个绕组的匝数直接影响输出的电压,通常我们无法具体的掌握这些参数,所以无法准确的判断变压器到底能输出多大的功率。另外,开关变压器的输出端虽然很多,但其中的某些输出端使用的却是相同的绕组,比如+3.3VDC和+5VDC就是这样,所以当+3.3VDC输出最大电流时+5VDC就无法输出很大的电流了,就是由于这个原因我们不能将电源各个输出端的功率进行简单的累加。在主变压器旁边的两个小变压器也有各自的作用,其中一个将开关电路控制信号进行放大以驱动开关管进行工作,同时还可以将开关管工作的高压区和集成电路
11、工作的低压区进行物理隔离。另外一个完全是一套独立的小型开关电源,这就是我们所说的待机电路,其输出的电压为电源的主电路供电,同时通过+5VSB端输出到主板来实现唤醒功。开关电源向电脑提供+5V、+12V、+3.3V、-12V、-5V、+5V USB1、+5V USB2 七个端口,其中+5V、+12V、+3.3V端口需带的起电脑的大功率负载,才能保证电脑正常运行。以上介绍了ATX电源的基本工作原理及一些特殊的输出端口。我们就是要检测这些特殊的端口,来检测ATX电源的实际负载能力。2.2整体方案设计与论证 2.2.1整体方案设计单片机ATX电源智能检测仪由直流电源模块,单片机模块,数据采集模块,开关
12、模块,负载模块,显示模块几个部分组成。关系图如下。单片机模块开关模块IRF32055数据采集模块(A/D)负载模块显示模块图2.2 ATX电源智能检测仪设计框图整体方案简叙:通过单片机控制开关模块来轮流选通场效应管IRF32055,打开场效应管后,负载开始工作, 在打开负载端口的期间,负载会迅速加热。单片机再控制AD芯片不断的对提供负载工作的端口电压进行采集,并将采集到的模拟值进行处理,然后再把采集到的数据和处理后的结果显示。2.2.2整体方案的论证(1)电源供电直流电源模块作为给单片机、AD芯片、LED显示提供正常工作电压的电路,在一般产品的设计中都是不可或缺的,但单片机ATX电源智能检测仪
13、检测的是一个有源器件,而且能提供+5V、+12V的电压,那么我们是否能就只对这个电压进行稳压处理来提供各个模块的正常工作电压呢?答案是在被检测的ATX电源本身是一个工作在正常状况下可以实现为各个模块提供工作电压,但是当ATX电源在非正常工作状态下或不工作状态下,就会导致ATX电源智能检测仪工作不正常或不工作。所以直流电源模块是必须的,只有加上了直流电源为各个模块提供正常的工作电压,才能使ATX电源智能检测仪持续稳定的工作。(2)AD测量范围的处理由于接触到的AD芯片都只能采样0-5V的电压,那采样12V就不能直接实现,设计通过加分压电路的方法把采样电压降的测量范围以内,在通过但片机内部处理,折
14、算出实际的电压。(3)采样选择ATX电源智能检测仪主要是检测ATX电源的带负载能力,看它到底能输出多大的功率,而+5V USB1、+5V USB2输出端本身并不是大功率输出端口。考虑到这些,设计就采用只采样而不做大功率测试的采样方法,把大功率负载换成适当的电阻,在采样检测判断是否能输出相应的电压。(4)负电压采样ATX电源输出-12V、-5V两个负电压,由于接触到的AD芯片都只能采样正电压,就拿ADC0809来说如果要输入负电压信号的话,在输入AD之前应该在这个信号上叠加一个合适的正电压信号,使得输入AD的信号全部在0V以上,然后在微处理器的程序中减去叠加上的正电压信号。如果强行输入负电压信号
15、可能会导致芯片损坏,即使没有损坏,微处理器读到的数据也只有正电压部分是正确的,负电压部分将被认为是0V。2.3各模块的介绍2.3.1直流电源模块本设计需向芯片提供+5V电压及+12V电压,用最简单的7812及7805稳压电路即可满足要求。市电进入后经15V变压器整形滤波后向7812提供输入端。2.3.2单片机模块本设计的核心控制芯片就是单片机,该模块的功能:实现对系统的控制.单片机种类繁多,应该选择最合适的单片机,要熟练掌握它的功能且灵活应用.本设计选择的是AT89C51。优点:控制方便,性能稳定,资源丰富。AT89C51单片机简介:AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(F
16、PEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。AT89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。MCS-51系列单片机的引脚图如下图2.3 MCS-51系列单片机的引脚图2.3
17、.3数据采集模块该模块主要实现对ATX电源输出的电压进行采集,通过该数据判断电源的输出功率是否满足要求。本模块采用ADC0809芯片实现数据的采集,下面对该芯片进行介绍。ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。(1)ADC0809的内部逻辑结图2.4 ADC0809的内部逻辑结构图由上图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转
18、换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。(2)引脚结构图2.5 ADC0809引角图图2.6 实物图IN0IN7:8条模拟量输入通道ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选
19、择表如下表所示。表2.1CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7数字量输出及控制线:11条ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0为数字量输出线。CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提
20、供,通常使用频率为500KHZ,VREF(),VREF()为参考电压输入。(3)ADC0809应用说明ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。初始化时,使ST和OE信号全为低电平。送要转换的哪一通道的地址到A,B,C端口上。在ST端给出一个至少有100ns宽的正脉冲信号。是否转换完毕,我们根据EOC信号来判断。当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。2.3.3开关模块该模块要实现的功能:提供单片机选择具体让某块负载工作的端口。该模块可有用开关功能实现电路加上开关管构成。(1)开关功能的实现的选择方案1:选择普通三极管,如9012、90
21、13等。优点:易于控制。缺点:浪费单片机的管脚资源,稳定性差。方案2:选择模拟开关芯片。优点:易于控制,节约单片机管脚资源,产品已经非常成熟,稳定性好,易于采购。理想的多路开关其开路电阻为无穷大,其导通时的电阻为零此外,还希望它切换速度快,噪音小,寿命长,工作可靠。在计算机控制系统中多采用集成电路多路开关,其种类、型号都比较多,有8通道、16通道、甚至32通道的。常用的多路开关有CD4051(八选1)、菜单4052(双四选1 )、cd4067(十六八选1)等。本设计选择的是CD4051芯片。下面是对CD4051芯片的详细介绍:CD4051引脚图如下:图2.7 CD4051引角图功能图如下:图2
22、.8 CD4051功能图CD4051是8通道多路开关,由逻辑电平转换、二进制译码器和8个开关电路组成。CD4051的引脚如图2.7所示,图中C、B、A是二进制的控制输入端,INH是允许输入端。当INH为高电平时,不论从A、B、C端输入何值,8个通道均不通;当INH为低电平时,允许由A、B、C端输入3位二进制数,在8路通道中选择一路将输入和输出接通。CD4051允许双向使用,改变图中IN/OUT和OUT/IN的接法,可以实现“多到一”或“一到多”的转换。 CD4051是计算机控制系统中广泛使用的模拟开关,直流供电电源为VDD =515V,输入电压UIN =0VDD ,它所能传送的数字信号电位变化
23、范围为315V,模拟信号峰峰值为15V,当VEE 接负电源时,正、负模拟电压均可通过。接通电阻小,一般小于80, 断开电阻高,在VDD -VEE =10V时,泄漏电流的典型值为10nA。CD4051应用上有个非常值得注意的地方,那就是VDD的大小会影响到芯片对选通管脚的选择端口A、B、C电压高低的识别。比如当VDD10V时,要给A赋高于6V的电压才认为是A至1了。当VDD=8V时,只要给A赋5V ,A就至1。(2)开关管的选择开关管的要求:1、必须能承受大功率。2、开路电阻为无穷大,其导通时的电阻为几乎为零。3、希望它切换速度快,噪音小,寿命长,工作可靠。对于这样苛刻的要求也只有场效应管方能胜
24、任。场效应管与晶体管不同,它是一种电压控制器件(晶体管是电流控制器件),其特性更象电子管,它具有很高的输入阻抗,较大的功率增益,由于是电压控制器件所以噪声小。场效应管是一种单极型晶体管,它只有一个P-N结,在零偏压的状态下,它是导通的,如果在其栅极(G)和源极(S)之间加上一个反向偏压(称栅极偏压)在反向电场作用下P-N变厚(称耗尽区)沟道变窄,其漏极电流将变小,反向偏压达到一定时,耗尽区将完全沟道夹断,此时,场效应管进入截止状态,此时的反向偏压我们称之为夹断电压,用Vpo表示,它与栅极电压Vgs和漏源电压Vds之间可近以表示为Vpo=Vps |Vgs|,这里|Vgs|是Vgs的绝对值。当Vg
25、s=0时Id(漏极电流)=0,只有当Vgs增加到某一个值时才开始导通,有漏极电流产生。并称开始出现漏极电流时的栅源电压Vgs为开启电压。本设计是给Vgs提供足够大的电压,使场效应管工作在放大区,Ids完全取值于Rds。本设计选择了IRF3205,下面是对IRF3205的详细介绍:IRF3205是大功率场效应管, 开路电阻为无穷大,其导通时的电阻为几乎为零,切换速度快,只要应用得当,能长时间工作。以下通过图片来描述IRF3205场效应管与Id的关系, 与Id的关系。图2.9 在室温25摄氏度下典型的输出特性图10 在175摄氏度下典型的输出特性从以上2图可以看出与Id的关系基本不受温度的影响,且
26、只要大于1V, Id足可以超过15A。利用这点可以很好的解决当为3.3V时向ATX电源提供大功率负载的问题。图2.11 典型的传输特性从上图可看出,只要6V, Id能有可达到100A。足以满足产品设计要求。图1.12 开关时间波形从上图可以看出IRF3205易于控制,且开关时间短。2.3.4显示模块该模块的功能:实现对采集到信号的及时显示方案1:用LED做时时动态显示。优点:控制简单,价格低廉,易于购买。缺点:浪费CPU资源。方案2:用LCD做静态显示。优点: 控制简单,价格低廉,易于购买,可以有效的节约CPU资源。可以显示字符。缺点:浪费单片机断口;本设计采用的是LCD1602。下面是LCD
27、1602进行详细资料。表2.2 1602B引脚说明编号符号引脚说明编号号符号引脚说明1VSS电源地9D2双向数据口2VDD电源正极10D3双向数据口3VL对比度调节11D4双向数据口4RS数据/命令选择12D5双向数据口5R/W读/写选择13D6双向数据口6E模块使能端14D7双向数据口7D0双向数据口15BLK背光源地8D1双向数据口16BLA背光源正极VDD:电源正极,4.55.5V,通常使用5V电压;VL:LCD对比度调节端,电压调节范围为05V。接正电源时对比度最弱,接地电源时对比度最高,但对比度过高时会产生“鬼影”,因此通常使用一个10K的电位器来调整对比度,或者直接串接一个电阻到地
28、;RS:MCU写入数据或者指令选择端。MCU要写入指令时,使RS为低电平;MCU要写入数据时,使RS为高电平;R/W:读写控制端。R/W为高电平时,读取数据;R/W为低电平时,写入数据;E:LCD模块使能信号控制端。写数据时,需要下降沿触发模块。D0D7:8位数据总线,三态双向。如果MCU的I/O口资源紧张的话,该模块也可以只使用4位数据线D4D7接口传送数据。本充电器就是采用4位数据传送方式;BLA: LED背光正极。需要背光时,BLA串接一个限流电阻接VDD,BLK接地,实测该模块的背光电流为50mA左右;BLK: LED背光地端。根据资料,只要对各端口进行准确的控制,可以很容易的实现读写
29、。3.硬件电路3.1电源模块电源模块采用的是最常用的7812、7805稳压电路。硬件电路图如下:图3.1 直流电源市电经过15V的交流变压器后进行整流稳压可得到+12V、 +5V电压。3.2单片机模块 单片机模块主要是起控制作用,具体电路图如下:图3.2 单片机控制模块为了便于画图,本设计主要是用网络节点来绘图。单片机要工作的基本条件都必须有,它包括晶振、电源等。上图中CON16是LCD显示模块。3.3AD模块 AD模块主要实现对ATX电源输出电压的采集,具体电路如下:图3.3 AD模块本模块采用IN-1IN-5这5个模拟量输入通道,对ATX电源各个端口输出电压进行采集,单片机给出控制地址输入
30、信号A、B、C和控制信号OE、ST控制其工作状况,数据通过IN1IN7传送给单片机。3.4与电脑电源的衔接模块从废旧的主板上拆下与电源衔接的20针座子,因为该接口包括了电脑电源出来的所有需要检测的电压。具体接口如下图所示: 图4.4 电源接口其中需注意的是:必须将3、4脚的针同时插上,保证连接。电脑电源才会启动。其他的端口有多输出端子,可以只接一个。4.软件设计4.1系统总的流程图开启信号?初始化各模块,K=1AD采集+K=5?开始 结束数据处理显示图4.1 系统流程图4.2CD4051控制子程序void cd4051()switch(ccd) case(1):A1=1;B1=0;C1=0;
31、break;case(2):A1=0;B1=1;C1=0; break;case(3):A1=0;B1=0;C1=1; break;case(4):A1=0;B1=1;C1=1; break;case(5):A1=1;B1=1;C1=1; break;case(6):A1=0;B1=0;C1=0; break;case(7):A1=1;B1=1;C1=0; break;case(8):A1=1;B1=0;C1=1; break;default:INH=1;INH=0;4.3AD转换子程序void ad()switch(cad) case(1):A=1;F=1;C=0; break;case(2
32、):A=0;F=0;C=1; break;case(3):A=0;F=1;C=0; break;case(4):A=1;F=0;C=0; break;case(5):A=1;F=0;C=1; break;default:A=0;F=0;C=1;OE=0; /启动ST=0;ST=1;ST=0;OE=1; delay1m(200); delay1m(200); /结束 P2=0xff;p20=p37;p21=p36;p22=p35;p23=p34;/数据高低位互换p24=p33;p25=p32;p26=p31;p27=p30; x1=P2;4.4显示子程序void setxy(char x,cha
33、r y) /*X=行(12),Y=列(116)*/uchar c;if(y16);elseswitch(x)case 1:DATA=0x80+y-1;enable();break;case 2:DATA=0xc0+y-1;enable();break;default:break;void enable(void)RS=0;RW=0;E=0;delay15(5);E=1;void enable1(void)RS=1;RW=0;E=0;delay15(1);E=1;5.调试5.1AD芯片与下载线的影响调试AD过程中,OE端口直接用P17来控制,因为OE端口会硬件拉低,使得下载线端口出现异常,怎么也
34、烧不进程序,开始以为是因为断路、晶振等问题引起。后来才在调试中发现是OE端口会硬件拉低引起的。5.2AD的时序ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。根据以上的资料编写出ADC0809的启动程序段如下:OE=0; /启动ST=0;ST=1;ST=0;OE=1; 但是在启动了AD以后,用单片机去读AD输出的数据
35、,怎么也的不到正确的数据。经反复调试、排查后发现是因为以上程序只启动的AD而并没有判断AD转换结束,所以在启动AD以后不能马上读到正确的数据,要判断AD转化结束或做一个足够长的延时后才能读到正确的数据。5.3AD数据高低位在AD的调试过程中还出现数据不稳定,有很大的变化,但又在几个固定的值中变化的情况,这个现象看来古怪,但也有规律,这主要是由于数据的高低位搞反了,而低位数据本身就会有变动导致的。低位的变动本来影响不大,但放到高位就对数据的值产生了很大的影响,这本来是硬件的原因引起,但由于该软件远比改硬件方便,只要在软件中把数据做一次高低位互换的处理就解觉了。5.4CD4051的正常工作电压CD
36、4051是8通道多路开关,在调试的过程中遇到了不管给什么控制电平都选通第0路的现象。这主要是CD4051的工作的压没有给好引起的,由于本产品在CD4051形成通路时要达到的电压是7V,这就要求CD4051的工作电压一定要比7V高,所以在设计中采用了12V的直流电给CD4051供电,而此时CD4051默认的高低电平就和普通的TTL电平不同了,它把7V以下的都认为是低电平。又由于CD4051的通道选择是由单片机直接控制,所以不管单片机给的是什么控制电平CD4051都选通第0路。为了降低CD4051默认的高电平就必须降低它的工作电压,又考虑到CD4051的工作电压一定要比7V高,所以设置CD4051
37、的工作电压为8.2V,这样才让CD4051正常工作。6.结论本论文通过单片机控制AD芯片、模拟开关的方法,对如何轮流向电脑电源提供大功率负载问题进行了研究;介绍了硬件的原理以及连接的方法,软件的设计流程以及部分代码,并在附录1给出了完整的电路图,经调试可实现电脑电源的负载能力检测。硬件部分设计保证了单片机能很好的在ATX电源加上大功率负载下进行轮流的AD采集,其中场效应管IRF3205是起到主要的开关作用的开关作用,保证大功率负载能轮流工作。而CD4051起到了单片机与负载之间的控制衔接作用。软件部分的设计跟硬件完美配合实现了ATX的实际负载能力检测。我们知道只要合理的控制AD的时序便能很好的
38、实现AD采集,合理的安排整个检测的流程,便能实现完全的系统的检测。软件的设计就是通过不断的控制CD4051及AD采集并将采集结果经过处理送到LCD1602进行显示并做报警处理。整个产品的使用非常简单,只要把ATX电源的接头接入相应的座子,上电后本产品将自动完成所有测试,并在显示模块显示数据和结果。参考文献1 李华等编著.MCS-51系列单片机实用接口技术M.北京:北京航空航天大学出版社,1993:12-45.2 张立科.单片机通信技术与工程实践M.北京:人民邮电出版社,2005:165-178.3 张凯等编著.MCS-51单片机综合系统及其设计开发M.北京:科学出版社,1996:68-115.
39、4 朱宇光编著.单片机应用新技术教程M.北京:电子工业出版社,2000:115-164.5 余永权编著.89系列FLASH单片机原理与应用M.北京:电子工业出版社,2000:12-14.6 楼然苗,李光飞编著.51系列单片机设计实例M.北京:北京航空航天大学出版社,2003:45-62.7 李东生编著.PROTEL 99SE电路设计技术入门与应用M.北京:电子工业出版社,2002:118-169.8 张有顺编著.MCS-51/96系列单片机简明教程M.北京:中国脊梁出版社,1998:43-58.9 Holux. GR-87MQKQua Manual. ,1995,23(8): 72102.10
40、 Siemens. TC35i module note. ,2001,33(8): 150176. 11 潘永雄,沙河,刘向阳编著.电子线路CAD实用教程(第二版)M.西安:西安电子科技大学出版社,2003:48-119.附录:#include #include #include intrins.h#include math.h#define uchar unsigned char#define uint unsigned int#define DATA P2sbit E=P07;sbit RS=P05;sbit RW=P06;sbit A=P13;sbit F=P14;sbit C=P15;
41、sbit ST=P16;sbit OE=P04;sbit di=P10; sbit zs=P11; sbit go=P12;sbit A1=P00; sbit B1=P01; sbit C1=P02; sbit INH=P03;sbit p30=P30; sbit p31=P31; sbit p32=P32; sbit p33=P33;sbit p34=P34; sbit p35=P35; sbit p36=P36; sbit p37=P37; sbit p20=P20; sbit p21=P21; sbit p22=P22; sbit p23=P23;sbit p24=P24; sbit p
42、25=P25; sbit p26=P26; sbit p27=P27;int x,x1,x2=0,s1=3,s2=2,s3=0,ss1=3,ss2=1,ss3=1,ss4=0,begin,cad,ccd;int i=0,j=0,k=0,flag=0,xx1=250,a1=0,a2=0,a3=0;int cnt ,scnt, second;uchar *p,*p1,*p2,*p3;void lcd();void delay15(uchar);void enable(void);void enable1(void);void delay1ms(void);void setxy(char x,cha
43、r y);void reset(void);void show1(void);void show2(void);void show3(void);void show4(void);void show5(void);void didi(void);void ad(void);void cd4051(void);void cj33(void);void cj55(void);void cj122(void);void cjusb(void);void cj3v(void);void cj5v(void);void cj12v(void) ;uchar code BB117= ATX TEXT ;u
44、char code BB217= begin? ;uchar code BB317=text:;uchar code BB417=fact:;uchar code BB517= It is good;uchar code BB617= It is bad;uchar code BB717= text over; uchar code BB1117= thank you!;uchar code BB817= warnig! ; uchar code BB917= text usb one; uchar code BB1017= text usb two; uchar code AA16=0,1,2,3,4,5,6,7,8,9;uchar show16=1,2,3,4,5;mdelay(unsigned int Delay) unsigned int i; for(;Delay 0;Delay-) for(i=0;i100;i+) ; void setxy(char x,char y) /*X=行(12),Y=列(116)*/uchar c;if(y16);elseswitch(x)case 1:DATA=0x80+y-1;enable();break;case 2:DATA=0xc0+y-1;enable();break