毕业设计(论文)单片机功率因数自动检测软件设计.doc

上传人:文库蛋蛋多 文档编号:3977907 上传时间:2023-03-30 格式:DOC 页数:31 大小:537.50KB
返回 下载 相关 举报
毕业设计(论文)单片机功率因数自动检测软件设计.doc_第1页
第1页 / 共31页
毕业设计(论文)单片机功率因数自动检测软件设计.doc_第2页
第2页 / 共31页
毕业设计(论文)单片机功率因数自动检测软件设计.doc_第3页
第3页 / 共31页
毕业设计(论文)单片机功率因数自动检测软件设计.doc_第4页
第4页 / 共31页
毕业设计(论文)单片机功率因数自动检测软件设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《毕业设计(论文)单片机功率因数自动检测软件设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)单片机功率因数自动检测软件设计.doc(31页珍藏版)》请在三一办公上搜索。

1、淮安信息职业技术学院毕 业 论 文课题名称 单片机功率因数自动检测软件设计学生姓名 学 号 12042015专 业 通信工程班 级 120420 指导教师 日 期2007-6-15内容提要:本文详细论述了利用单片机自动测试局部供电系统的功率因数,然后根据测得的功率因数数值自动投切补偿电容的硬件装置和软件流程。该装置能随着功率因数的变化恰当地进行补偿,始终保持功率因数在0.95左右,达到最佳补偿效果。这对充分发挥供电设备的效益,节约电能是十分有益的。This paper discusses in detail the use of MCU automatic test the local sup

2、ply system power factor, Then, based on the numerical automatic power factor compensation capacitor switching hardware and software installation process. The device can power factor with appropriate changes to the compensation, and always maintain the power factor in the 0.95% Compensation to achiev

3、e the best results. This play on the full power equipment efficiency, saving energy is very useful. 关键词:检测、功率、因数、过补偿、欠补偿Detection, power factor, over compensation owed compensation 目录第1章 功率因数的自动检测(3)1.1Tx的计量(3)1.2补偿电容自动投切(4)第2章 硬件装置(5)2.1硬件装置特点(5)2.2硬件装置各部分电路分析(6)2.2.1单片机部分电路(7)2.2.2单片机时钟电路(8)2.2.3单

4、片机复位电路(8)2.2.4信号提取电路(8)2.2.5波形变换电路(10)2.2.6定时电路(10)2.2.7计数电路(10)2.2.8投切控制电路(13)2.2.9串行显示电路(13)第3章 程序设计(18)3.1初始化程序(18)3.2中断服务程序(18)3.3运算与控制程序(18)3.4源程序(20)结束语、致谢、参考文献(29)第一章 功率因数的自动检测1.1Tx的计量要检测供电系统中的功率因数cos,只要测量电压与电流的相位差,既测量两个同频率正弦信号的相位差,如图1所示。电网中的交流电压周期T被认为是固定的,只要能测量出Tx值,就可以用下式求得相位差:=(Tx/T)360 Uac

5、 Uu Ib Ui 图1 电压与电流的时间差Tx其中Tx为电压信号与电流信号过零的时间差。因此,问题的关键是求Tx的时间值。为此,把两个正弦交流信号通过过零检测转换为相同频率的方波信号。取其正半周,其波形如图2所示 UI t t T图2 电压电流由正弦信号变成方波信号利用电压方波的上升沿起动一个对固定周期为Tc的脉冲进行计数的计数器,而利用电流方波的上升沿停止该计数器,由于Tc是已经知道的。计数器可读得计数值N,则Tx=NTc。这样就测得了Tx的值。1.2补偿电容自动投切一个供电系统的功率因数值通常是随负载的大小而变化。当负载大时,功率因数较低,为了提高功率因数就要及时投入补偿电容。当负载较小

6、时,就要及时切除补偿电容,否则会造成过补偿,同样降低功率因数的值。利用单片机实时测量功率因数值,并控制补偿电容的自动投切,能达到最佳的补偿效果。补偿电容的容量要根据用电系统的容量和补偿前后的功率因数值来确定。将补偿电容分成若干组,组数多一些,补偿的效果就好一些。第二章 硬件装置2.1硬件装置特点利用单片机自动地补偿功率因数,是通过硬件与软件密切配合完成的。由于单片机是把微型计算机主要部件都集成在一块芯片上,即一块芯片就是一个微型计算机。因此,单片机具有以下特点:1) 有优异的性能价格比。目前国内市场上,有些单片机的芯片只有几元人民币,加上少量外围元件,就是构成一台功能相当丰富的智能化控制装置。

7、2) 集成度高,体积小,可靠性好。单片机把个功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。而且,由于单片机体积小,易于采取电磁屏蔽或密封措施,适合于在恶劣的环境下工作。3) 控制能力强,单片机指令丰富,能充分满足工业控制的各种要求。4) 低功耗,低电压,便于生产便携产品。5) 易扩展。可根据需要并行或串行扩展,构成各种不同应用规模的计算机控制系统。片内有足够的Flash ROM,可避免扩展外ROM,成为名副其实的单片机扩展外ROM既增加了应用技术,又增加了线路的复杂性,降低可靠性,一般来说,对于一个中等规模的单片机应用系统,有8KB左

8、右的ROM,已经够用了,AT89C51系列单片机有4-20KB可供选择,已完全胜任绝大多数单片机应用系统对ROM容量的要求。6) Flash ROM修改程序十分方便。ATMEL89系列单片机内的Flash ROM可檫写1000次以上,应用并不复杂的通用ROM写入器就能方便地檫写。一般来说,单片机应用系统在开发阶段,程序修改十分频繁,即使在产品定型生产后,程序修改和软件升级也是常有的事。这是单片机产品与一般电子产品的区别,单片机产品可以在硬件电路维持不变的情况下,通过修改程序升级产品档次,扩展产品的功能。7) 具有在片程序ROM二级保密系统。在许多情况下,单片机产品需要保护程序存储器ROM中的程

9、序,防止被非法剽窃。一般EPROM型单片机芯片只有一级保密系统,如8751即只有一个封锁位,对其编程后,可防止任何外部方式访问内ROM。檫除EPROM,保密位也同时被檫除89C51系列单片机内ROM具有二级保密系统,即具有3个保密位,对其编程后可呈现3种不同方式的保密功能,表2-6为89C51系列单片机程序封锁位及其功能。 封锁方式序号程序封锁位保密功能LB1LB2LB31UUU不设程序加密2PUU不允许在片外内ROM 代码;禁止ROM进一步编码3PPU除了具有方式2功能外,同时禁止内ROM校验4PPP除了具有方式3能外,同时禁止内ROM执行注:LB1,LB2,LB3为3个封锁位P=被编程U=

10、未编程8) AT89C52-AT89C55芯片与80C51系列单片机中的80C52芯片相同,有定时、计算器3个,中断源6个,片内RAM256B,其中128B与特殊功能寄存器地址空间重叠,均为80H-FFH读写区方法是:读写特殊功能寄存器用直接寻地址或寄存器地址,同89C51读写内RAM高128B用Ri间接寻址。 9) AT89C51系列单片机还有相应的低电压芯片AT89LV51、AT89LV52、AT89LV53、AT89LV54、AT89LV55、最低工作电压为2.7V。10) AT89C51系列单片机时钟频率最高可为24MHz。2.2硬件装置各部分电路分析其硬件装置的作用是对电压信号、电流

11、信号采样,把它们转换成适合单片机测量的信号,在设计具体电路时要考虑便于与单片机连接。硬件装置的总体框图如图3所示图3 硬件装置的总体框图2.2.1单片机部分电路图4 单片机部分电路2.2.2单片机时钟电路80C51单片机内有一高增益反相的放大器,按图连接即可构成自激振荡电路,振荡频率取决于石英晶体振荡频率,范围可取1.2-12MHz,C1,C2主要起频率微调和稳定作用,电容值可取10-30Pf。当采用外振荡输入时,8051(HMOS)可按图2-8b连接,80C51(HMOS)可按图2-8bc连接。2.2.3单片机复位电路图2-12a为80c51上电复位电路。RC构成微分电路,在上电瞬间,产生一

12、个微分脉冲,其宽度若大于2个机器周期,80c51将复位。为保证微分脉冲宽度足够大,RC时间常数应大于两个机器周期。一般取22f电容,1k电阻。图2-12b是按键复位电路。该电路有上电复位功能外,若要复位,只需按下图中REST键R1C2仍构成微分电路,按下RST端产生一个微分脉冲复位,复位完毕C2经R2放电,等待下一次按下复位按键。2.2.4信号提取电路图5 信号提取电路一般的局部供电三相交流系统,其三相负载是不平衡的。为了能真实地反映三相电功率因数的值,从A、C相取电位差Uac为电压信号,从而B取电流信号Ib,这样能基本上取其功率因数平均值。根据三相交流点电中相带奶牙之间的相位关系(见图6),

13、可知Uac与Ub 是正交,若系统的功率因数是1,那么Ub与I b一定相同,也就是Uac与Ib正交,即Uac超前Ib90;若性同的功率因数不为1,则U b与I b(Ib)间一定有一个夹角。由于值不可能等于或超过90,所以电压信号Uac 总是超前于电流信号Ib90的。在该系统中,实际测量的是Uac与Ib之间的相位角,若此夹角小于90,即 90-,则电流Ib超前于电压Ub角,是容性负载,过补偿。若此夹角大于90,即90+,则电流Ib落后于电压Ub角,是感性负载,欠补偿。在一般供电系统中,都是感性负载。图6 电压信号Uac与电流信号Ib的相位关系Uac通过变压器变成5V,而电流信号Ib通过一个并联小电

14、阻的电流互感器转换成同相位的电信号,如图6所示。2.2.5波形变换电路从变压器与电流互感器取得的电压与电流信号,送到LM339过零检器中,转换成TTL电平的方波信号(见图2)。2.2.6定时电路供电系统中,功率因数瞬间波动的幅度有时是很大的,为了能准确地测量功率因数,求得较平稳的变化趋势,要控制适当的测量间隔和采取多次测量求平均功率因数植的方法。定时电路的功能是控制测量时间的间隔。通过修改程序参数,控制时间可以在很大范围内调整。计数脉冲的周期是1us,它是由系统时钟12M得到的,计数脉冲在电压信号Uu的上升沿送入计数器,而在电流信号Ui的上升沿停止计数脉冲。计数器对计数脉冲进行计数,从而确定系

15、统的功率因数(见图2)。2.2.7计数电路计数电路的实质是相位差测量电路。它是利用单片机定时器来实现的。计数器电路有两个8位计数器组成。T0的两个8位计数器是TH0和TL0,TH0是高8位,TL0是低8位;T1是两个8位计数器TH1和TL1,合起来是16位计数器。定时时间和计数值可以编程设定,其方法是在计数器内设置一个初值,然后加1计满后溢出。调整计数器初值,可调整从初值到溢出的数值,即调整了定时时间和计数值。需要指出的是,定时/计数器作为计数器时,外部事件脉冲必须从规定的引脚输入,T0的外部事件脉冲应从P3.4引脚,T1的外部脉冲应从P3.5引脚输入,从其他引脚无效。且外部脉冲的最高频率不能

16、超过时钟频率的1/24。例如fosc=12MHZ则外部事件脉冲的频率不能高于500KHZ,因为CPU确认一次脉冲跳变需要两个机器周期。定时/计数器的控制寄存器80C51定时/计数器时可编程的,其编程操作通过两个特殊功能寄存器TCON和TMOD的状态设置来实现。1.定时/计数器控制寄存器TCONTCON的结构和各位名称、位地址如表TCONT1中断标志T1运行控制T0中断标志T0运行控制/INT1中断标志/INT1触发方式/INT0中断标志/INT0触发方式位名称TF1TR1TF0TR0IE1IT1IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTCON的低4位与外中断/INT0

17、、/INT1有关,已在中断系统中介绍。高4位与定时/计数器T0、T1有关,介绍如下:1) TF1定时/计数器T1溢出标志。当T1被允许计数后,T1 从初值开始加1计数至最高位产生溢出时,TF1置“1”,即表示请求中断。CPU响应中断后由硬件自动对TF1清0。也可在程序中用指令查询TF1或置“1”、清“0”。2) TF0定时/计数器T0溢出标志。其意义与功能与TF1相似3) TR1定时/计数器T1运行控制位。TR1=1,T1运行(T1是否运行还有其他条件);TR1=0,T1停。4) TR0定时/计数器T0运行控制位,其意义与功能与TR1相似。TCON的字节地址为88H,每一位有位地址,均可操作。

18、2.定时/计数器工作方式控制寄存器TMODTMOD用于设定定时/计数器的工作方式,低4位用于控制T0,高4位用于控制T1。TMOD的结构和各位名称、功能如表高4位控制T1低4位控制T0门控制计数/定时方式选择工作方式选择门控位计数/定时方式选择工作方式选择GATEC/TM1M0 GATEC/TM1M01) M0M1工作方式选择位。M1M0 2位二进制数可表示4种状态,因此M1M0可选择4种工作方式,如表M1M0工作方式功能M1M0工作方式功能00方式013位计数器10方式28位计数器,初值自动装入01方式116位计数器11方式3两个8位计数器,仅用于T02) C/T计数/定时方式选择位。C/T

19、=1,为计数工作方式,对外部事件脉冲计数,负跳变脉冲有效。C/T=0,为定时工作方式,对片内周期脉冲计数,用作定时器。3) GATE门控位。GATE=0,定时/计数器的运行只受TCON中运行控制位TR0/TR1的控制。GATE=1,定时/计数器的运行同时受TR0/TR1和外中断输入信号(/INT0/INT1)的双重控制,只有当/INT0/INT1=1且TR0/TR1=1时T0/T1才能开始运行。以T0为例,GATE=0时,TR0=1,T0运行;TR0=0,T0停。GATE=1时,TR0=1,且/INT0为高电平时,TO运行。两个条件有一个不满足,T0就不能运行。 TMOD字节地址为89H,不能

20、位操作。因此,设置TMOD须用字节操作指令。定时/计数器是单片机系统的一个重要的部件,其工作方式是灵活,编程简单,使用方便,可用来实现定是控制,延时,频率测量,脉冲测量,信号发生,信号检测等。此外,定时/计数器还可以作为串行通信中波特率发生器。 80C51单片机的内部有两个定时/计数器T1/T2,其核心是计数器,基本功能是加1。对外部事件脉冲(下降沿)计数;对片内机周脉冲计数,是定时器。因为片内机周脉冲频率是固定的,是fosc的1/12。若fosc=12MHz,1机周为1us;若fosc=6MHz,1机周为2us,机周脉冲时间乘以机周数就是定时时间。通过对定时器编程可以确定其计数功能。2.2.

21、8投切控制电路投切控制电路的功能是执行补偿电容机会均相等地参加补偿。由单片机输出的控制信号经过功率放大,通过小型继电器、交流接触器来执行对电容的投切。2.2.9串行显示电路80C51串行口 80C51系列单片机有一个全双工的串行口,这个口既可以用于网络通信,也可以实现串行异步通信,还可以作为同步移位寄存器使用。1.串行口特殊功能寄存器80C51有关串行通信的特殊功能寄存器有串行数据缓冲器SBUF、串行控制寄存器SCON和电源控制寄存器PCON1)串行数据缓冲器SBUF80C51单片机串行口是由发送缓冲寄存器SBUH,接收缓冲寄存器SBUH和移位寄存器三部分组成。SBUH是串行口缓冲寄存器。包括

22、发送寄存器和接收寄存器,以便能以全双工方式进行通信。此外,在接收寄存器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,以避免在数据接收过程中出现桢重叠错误。与接收数据情况不同,发送数据时,由于CPU是主动的,不会发生桢重叠错误,因此发送电路就不需双重缓冲结构。在逻辑上,SBUH只有一个,即表示发送寄存器,又表示接受寄存器。具有不同一个单元地址99H。在物理上,SBUH有两个,一个是发送缓冲寄存器,另一个是缓冲寄存器。在完成串行初始后,发送时,只需将发送数据输入SBUH,CPU将自动启动和完成串行数据的发送;接收时,CPU将自动把接收到的数据存入SBUH,用户只需从SBUH中读出接收数据。2

23、)串行控制寄存器SCON串行控制寄存器SBUH的结构和各位名称、位地址如表:SCOND7 D6 D5 D4 D3 D2 D1D0位名称SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能工作方式选择多机通信控制接收允许发送9位发送中断接收中断各位功能说明如下: SM0 SM1串行口工作方式选择位。其状态组合所对应的工作方式如表:表1SM0 SM1 工作方式功能说明000同步移位寄存器输入/输出,波特率固定为fosc/12 0118位UART,波特率可变(T1溢出率/n,n=32或16)1029位UART,波特率固定为fosc/n,( n=64或

24、32)1139位UART,波特率可变(T1溢出率/n,n=32或16) SM2多机通信控制位。在方式2和方式3中,若SM2=1,且RB8(接收到的第九数据)=1时,将接收到的前8位数据送入SBUH,并置位RI产生中断请求;否则,将接收到的8位数据丢弃。而当SM2=0时,则不论第九位数据为0还是为1,都将前8位数据装入SBUF中,并产生中断请求。 在方式0时,SM2必须为0。 REN允许接收控制位。REN位用于对串行数据的接收进行控制:REN=0,禁止接收;REN=1,允许接收。该位由软件置位或复位。 TB8方式2和方式3中要发送的第九位数据。在方式和方式3时,TB8是发送的第九位数据。在多机通

25、信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0表示数据,TB8=1表示地址。该位由软件置位或复位。 TB8还可用于奇偶校验位。 RB8方式2和方式3中要接收的第9位数据。在方式2或方式3时,RB8存放接收到的第9位数据。 TI发送中断标志。当方式0时,发送完第8位数据后,该位由硬件置位。在其他方式下,遇发送停止位时,该位由硬件置位。因此TI=1,表示桢发送结束,可软件查询TI位标志,也可以请求中断。TI位必须由软件清0。 RI接收中断标志。当方式0时,接收完第8位数据后,该位由硬件置位。在其他方式下,当接收到停止位时,该位由硬件置位。因此RI=1,表示桢发送结束,可软件查询RI

26、位标志,也可以请求中断。RI位必须由软件清0。3)电源控制寄存器PCONPCON主要是为CHMOS型单片机电源控制而设置的专用寄存器,其中最高位SMOD是串行口波特率的倍增位,当SMOD=1时串行口波特率加倍。系统复位时,SMOD=0。PCON寄存器不能进行为寻址。如表:PCOND7D6D5D4D3D2D1D0位名称SMODGF1GF0PDIDL2.串行工作方式80C51串行通信共有4种工作方式,由串行控制寄存器SCON中SMOSM1决定,如表11)串行工作方式0在方式0下,串行口是作为同步移位寄存器使用。这时以RXD(P3.0)端作为数据移位的输入/输出端,而TXD(P3.1)端输出移位脉冲

27、。移位数据的发送和接近以8位一桢,不设起始位和停止位,无论输入/输出,均低位在前高位在后。其桢格式如表在使用方式0可将串行输入输出数据转换成并行输入输出数据。 数据发送数据传送方向D0D1D2D3D4D5D6D7串行口作为并行输出口使用时,要用“串入并行”的移位寄存器(例如CD4094或74HC164)其典型连接电路如图在以位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移入74HC164Sa、Sb端。当8位数据全部移出后,SCON寄存器的TI 位被自动置1。其后74HC164的内容即可并行输出。74HC164/CLR为清0端,输出时/CLR必须为1,否则74HC164Q0Q7输出为0。

28、 数据接收如果把能实现“并行串出”功能的移位寄存器(例如CD4014或74HC165)与串行口配合使用,就可以把串行口变为并行输入口使用,如图74HC165S/L端为移位/置入端,当S/L=0时,从D0D7并行置入数据。在80C51串行控制寄存器SCON中的REN=1,TXD端发出移位时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数据D7后。置位中断标志R1,表示一桢数据接收完成。 波特率方式0时,移位操作的波特率是固定的,为单片机晶振频率1/12。以FOSC表示晶振频率,则波特率=FOSV/12,也就是一个机器周期进行一次移位。若FOSC=6MHZ,则波特率为500KBIT/S,即2V

29、S移位一次。如FOSC=12MHZ,则波特率为1M(BIT/S),即1VS移位一次。 利用74LS161移位寄存功能(分频)对单片机输出的串行数据逐级分频,从第一级到最后一级总共分2次,这样就把单片机输出的串行数据转换为并行数据,74LS161的译码显示功能,对数据进行频段译码,分8段进行数码显示,直观明了。本电路设计简单,避免了并行输出线路复杂,不易布线的问题。图7 数码管显示局部电路 第三章 程序设计功率因数的补偿是通过硬件和软件结合起来实现的。其整个程序可以分为几个功能段。3.1初始化程序初始化是为测量功率因数准备,主要包括对部分RAM工作区清零,关闭测量计数信号,然后对定时器进行初始化

30、,设置定时器的工作方式,开中断。然后打开测量计数信号,调用显示的程序,在显示过程中,当电流信号到达时,引起定时器通道中断。3.2中断服务程序定时器的中断服务程序的主要功能是读取定时器的测量值。然后对测量结果进行处理,因此这时不应再返回显示子程序中去。3.3运算与控制程序此程序是功率因数自动补偿的核心。对测量结果进行运算分析,决定是否投切补偿电容。执行此程序时,首先对此次的测量进行分析,确定是否合理,不合理返回重新测量。并检验测量次数。没有达到预定的测量的测量次数,返回接着测量;达到测量次数,对多次测量结果进行计算,取其平均值,查表求得功率因数值。接着判断是欠补偿还是过补偿。是过补偿,置标志为负

31、,这时应切除一组电容。寻找循环切除补偿电容的序号,输出相应命令,执行切除一组电容,然后返回显示子程序。如果是欠补偿,置符号为正,当求得功率因数的实际值与理想值0.96的差的绝对值为小于(或等于)0.03时,说明此时功率处于0.930.99之间,是最佳状态,既不投入电容也不切除电容,返回程序。当该绝对值大于0.03时,此时功率因数值只能小于0.93,应投入一组补偿电容组的序号,输出命令,执行投入一组电容,然后返回进行下一组数据测量。其流程图如图8所示。 图8 控制与运算程序框图LM339集成块简介:LM339是电压比较器,利用它将电压与电流转换成与TTL相同的方波信号。是设计中的重要器件。 LM

32、339集成块内部装有四个独立的电压比较器,该电压比较器的特点是:1)失调电压小,典型值为2mV;2)电源电压范围宽,单电源为2-36V,双电源电压为1V-18V;3)对比较信号源的内阻限制较宽;4)共模范围很大,为0(Ucc-1.5V)Vo;5)差动输入电压范围较大,大到可以等于电源电压;6)输出端电位可灵活方便地选用。LM339集成块采用C-14型封装,下图第一张为外型及管脚排列图。由于LM339使用灵活,应用广泛,所以世界上各大IC生产厂、公司竟相推出自己的四比较器,如IR2339、ANI339、SF339等,它们的参数基本一致,可互换使用。 图9 LLM339引脚与内部框图3.4源程序O

33、RG 0000HTH1H EQU 10H ;定内RAM的存储单元TL1L EQU 11HPUAL EQU 12HCSTAT EQU 18HCUTCW EQU 19HUPCW EQU 1AHCUTCN EQU 1BHUPCN EQU 1CHSTART: LJMP STARORG 000BH ;定时器T0中断服务程序CLR TR0CLR TR1 ;停止T0,T1运行CLR P2.0CLR P2.1 ;系统清0INC 30HRETISTAR: MOV R3,#40H ;清内RAM区从00H3FHMOV R0,#01HMOV A,#00HLOOPG: MOV R0,AINC R0DJNZ R3,LOO

34、PGMOV CSTAT,#6FH ;清功率因数体MOV A,#99HMOV PUAL+01H,A ;存入功率因数最大值CALL DISPLY ;调用显示程序NEXTL: CALL DELAY ;调用延时程序CLR F0 ;清补偿标志CLR P2.0 ;清检测命令停止检测CLR P2.1 ;清显示SETB P2.0 ;检测开始SETB P3.3 ;设输入脉冲高电平CJNE R7,#3EH,NEXTM ;R7存放测量次数等3EH,将其清0MOV A,#00HMOV R7,ANEXTM: NOPMOV TMOD,#91H ;TESTPLUS ;初始化定时器T0,T1MOV TL1,#00H ;T1计

35、数初值MOV TH1,#00HMOV DPTR,#TIME ;取定时时间MOV A,R7MOVC A,A+DPTR ;初始化T0的定时时间MOV TH0,AINC R7MOV A,R7MOVC A,A+DPTRMOV TL0,AINC R7 ;次数加1SETB ET0 ;开中断ET0,EASETB EASETB TR0 ;启动定时器T0,T1SETB TR1SETB P2.1CLR P2.1JB P3.3,$ ;输入脉冲为高电平一直等待CLR TR1 ;是低电平停止计数MOV A,TL1MOV TL1L,A ;存定时器计数值存入指定单元MOV 20H,AMOV A,TH1MOV TH1H,AM

36、OV 21H,AMOV PUAL,PUAL+1;NEWTOLA ;替换功率因数值TT: MOV R3,#03HLOOP1: CLR C ;计算脉冲宽度转换成功率因数值MOV A,TL1LRLC AMOV TL1L,AMOV A,TH1HRLC AMOV TH1H,ADJNZ R3,LOOP1MOV R4,ACLR C ;+AND-SUBB A,#9CH ;5ms ;判断是否是5msJC LOOPN ;小于5ms转MOV R6,ACLR CSUBB A,#4EH ;大于5ms说明是过补偿JNC LOOPMSJMP LOOP2LOOPN: SETB F0 ;-FLAG ;置补偿标志 过补偿CPL AADDC A,#00H ;计算过补偿值MOV R6,ACLR CSUBB A,#4EHJNC LOOPMSJMP LOOP2LOOPM: MOV A,#4FHSJMP LOOP3LOOP2: MOV A,R6 ;欠补偿LOOP3: MOV DPTR,#PDATAMOVC A,A+DPTR ;取新的功率因数

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号