数字功率表毕业设计论文(编辑修改稿)内容摘要:

用定时器计数的方式,当单片机 的 INT0 由 1 变成 0 产生跳变的时候,即电压波形产生负跳变的时候,开始计数。 当 INT1 由 1 变成 0 产生跳变的时候,即电流波形产生正跳变的时候,关闭定时器 T0。 当 INT0 由 0 变成 1,即电压波形产生正跳变的时候再次打开定时器 T0,但当 INT1 的波形由 0 变成 1 的时候,即电流测量相位差 查表求功率因数 测量电压有效值 测量电流有效值 计算功率 调用显示子程序 显示处理 置显示标志位 南京工程学院毕业设计说明书(论文) 第 21 页 波形产生负跳变的时候,关闭定时器 T0。 这样,根据在定时器 T0中所保存的数值 xT ,通过公式xxTT 23600  (其中 T 为交流电路频率, x 为 电压和电流之间的相位差 )得, TTxx 2360 ,即 2360/  T Txx ,为了程序计算方便我把测量数值放大了 1000 倍,其中 T 为电路的周期,根据所测电路的频率为 50HZ 可以得到其中 T ,又 xT为 T0 的计数值带入上式,所以便可以计算出相位角 x。 然后再通过查表便可以求出功率因数。 对功率因数的测量子程序流程图如 所示: Y 关闭 T0停止计数 INT0=0? 等待 设 T0初值 INT0=1? 等待 启动 T0开始计数 INT1=1? 等待 N Y N Y N B 南京工程学院毕业设计说明书(论文) 第 22 页 图 功率因数测量子程序如下: LOOP10: MOV TL0,0。 测相位差 MOV TH0,0 JNB ,$ JB ,$ SETB TR0 …………………… …………………… CCC: MOV DPTR,TABCOS。 功率因数 MOVC A,@A+DPTR MOV R0,GLYSSZ MOV @R0,A ( b) 电压、电流的有效值的测量 电压、电流有效值测量过程是这样的,我们通过硬件和软件综合调试发现在测量的过程中,电压(电流)的有效值和我们通过 TLC2543 回来得到的采样值并不是完全成线性变化的,在某一范围内甚至误差很大,这与我们预期的情况有很大的出入,为了减小这个误差我们决定在软件上采用线性插值来解决这个误差,即我们建立一个不同的电压(电流)对应不同的采样值这样的一个表,最后通过采样回来得到的采样值进行线性插值进而得到我们电 路中的电压(电关闭 T0停止计数 重新启动 T0开始计数 INT1=0? 等待 Y N B 计算相位差 计算功率因数 南京工程学院毕业设计说明书(论文) 第 23 页 流)的有效值。 电压(电流)测量的量程自动转换就是在这里实现,实现的过程如下所述:首先我们先采样电压(电流)的小量程通道的电压然后判断采样回来的值是否大于我们小量程电压(电流)表格中最大电压(电流)所对应的采样值,如果小于等于则证明我们所选择的通道量程正确,则查小量程电压(电流)表格进行线性插值计算的出电压(电流)的有效值。 否则的话我们转大量程通道重新采样再查大量程表格进行线性插值计算最终得到电压(电流)的有效值。 在这里,大量程与小量程的分界点,电压在 40V,电流在 1A。 在编制采样子程序的时 候,为了克服由于系统的随机干扰信号而引起的随机误差,我们对同一通道连续采样十次,然后将这十次采样得到的值由大到小进行排序,排完后去掉其中的最大值与最小值,对剩下八个数据取平均值,最后得到的平均值就是本次采样的最终采样值。 电压有效值测量子程序流程图如下 : 图 线性插值 查大量程电压表格 返回 线性插值 选定电压小量程通道 电压值是否大于 40V 调用采样子程序 查小量程电压表格 选定电压大量程通道 调用采样子程序 Y N 南京工程学院毕业设计说明书(论文) 第 24 页 电流有效值测量子程序流程图如下: 图 采样子程序流程图如下: 线性插值 查大量程电流表格 返回 线性插值 选定电压小量程通道 电流值是否大于 1A 调用采样子程序 查小量程电流表格 选定电流大量程通道 调用采样子程序 Y N 采样 10 次 采样值按从大到小排序 选定通道与寄存器组 将 PSW 压栈 C 南京工程学院毕业设计说明书(论文) 第 25 页 程序如下: 测量电压子程序 CYDY0: MOV TDJCQ,20H CYDY1: CALL CY1 CLR C MOV R4,A MOV R5,B MOV A,R4 SUBB A,0CH JNC CYDY2 JZ AAA JNZ MMMM AAA: MOV A,R5 SUBB A,0A1H JNC CYDY2 MMMM: MOV DPTR,TABDY0 MOV JSQ3,9 CALL CHETA RET CYDY2: MOV TDJCQ,30H CALL CY1 MOV R4,A MOV R5,B MOV DPTR,TABDY1 MOV JSQ3,22 CALL CHETA RET 测量电流子程序 CYDL0: MOV TDJCQ,00H 图 取平均值 将 PSW 弹出堆栈 返回 C 南京工程学院毕业设计说明书(论文) 第 26 页 CYDL1: CALL CY1 CLR C MOV R4,A MOV R5,B MOV A,R4 SUBB A,0CH JNC CYDL2 JZ LLL JNZ MMM LLL: MOV A,R5 SUBB A,0D6H JNC CYDL2 MMM: MOV DPTR,TABDL0 MOV JSQ3,6 CALL CHETA RET CYDL2: MOV TDJCQ,30H CALL CY1 MOV R4,A MOV R5,B MOV DPTR,TABDL1 MOV JSQ3,7 CALL CHETA RET 采样子程序 CY1:PUSH PSW SETB MOV R7,10。 采样 10次 MOV R1,SHJJCQ CY2:MOV A,TDJCQ CALL CY2543 MOV @R1,B INC R1 MOV @R1,A INC R1 DJNZ R7,CY2 CALL PXU。 将采样的数从大到小排序 CALL QPJZ。 取平均值 MOV A,R4 MOV B,R5 POP PSW RET 南京工程学院毕业设计说明书(论文) 第 27 页 ( c) 功率的测量 准确来讲,功率并不是直接测出来的,而是通过软件间接的算出来的。 我们先通过测量得到电流有效值 I,电压有效值 U 然后根据公式 cos IUP 便可以计算出功率的数值,然后再送入 GLSZ 单元。 功率测试流程图如图 所示: 测量功率的子程序如下: MOV DLSZ,A MOV A,R7 MOV DLSZ+1,A MOV R2,00H MOV A,GLYSSZ MOV R3,A …………………… …………………… CALL NDIV1。 (R2R3R4R5)/R6R7=R4R5 MOV A,R4 MOV GLSZ,A MOV A,R5 MOV GLSZ+1,A ( 4)显示处理子程序 该程序主要目的是将我们要显示的数据转换成液晶能显示的 ASCAL 码送往显示缓冲区。 在本系统中由于采样回来得到的数据是二进制数液晶并不能直接取电流值 取功率因数值 相乘结果存入 GLSZ 单元 取电压值 乘以 GLSZ 结果送入 GLSZ 单元 图 南京工程学院毕业设计说明书(论文) 第 28 页 将其显示,所以我们要将其转换成液晶可以显示的 ASCAL 码。 显示处理流程图如图。 ( 5)液晶显示子程序。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。