1P111G-M计数及显示应用一.000—255计数及显示1.硬件连联接见图1(图1)2.程序目的:通过开关量输入口检测输入脉冲并计数及显示。编程思路:用P6口检测输入脉冲,没有脉冲时P6口加上的是低电平,因此,P6口输入高电平,有脉冲时P6口加上+12V,因此,P6口输入低电平。只要检测P6口由低到高的变化就认为是一个脉冲。用计数器0记录脉冲数并将其存入F00中,显示F00的内容。当脉冲数计到255个时停止计数。—d04(显示器仟位显示“0”)0—d03(显示器佰位显示“0”)0—d02(显示器十位显示“0”)0—d01(显示器个位显示“0”)0—]00(计数器0清零)—L00(调用脉冲检测子程序)—]01(计数器0加1)—F00(计数器0内容传送给F00)]0—d00(显示器显示F00内容)F00—]0(如计数器0计数到255就执行下步程序,否则上跳4步)255004000—└00(自循环)0002—H00(脉冲检测子程序入口)—□P6(如P6口无脉冲,就执行下步程序,否则下跳2步)000002—└01(上跳1步)000—□P6(如脉冲结束就执行下步程序,否则自循环)000000—└┘(子程序返回)—E∩d(编程结束)注1:程序中H00子程序非常有用,它的功能是测脉冲下降沿。在计数、测频率、测转速应用中少不了它。注2:被测脉冲最小宽度由H00子程序决定。它可测≥4毫秒宽度的脉冲。注3:二脉冲间最小间隔时间由L00指令到再次执行L00指令之间的程序数量决定,程序少间隔就小,否则间隔就大。注4:指令的执行时间见指令集第九部分。二.0000---9999计数及显示上例只能显示最多255个计数脉冲,下面再介绍最多可显示9999个脉冲的程序。计数器]1作为十进制个位计数器,计数器]2作为十进制十位计数器,计数器]3作为十进制佰位计数器,计数器]4作为十进制仟位计数器。内存F01作为计数器]1的存储器,内存F02作为计数器]2的存储器,内存F03作为计数器]3的存储器,内存F04作为计数器]4的存储器。脉冲由P6口输入。—d04(显示器仟位显示“0”)0—d03(显示器佰位显示“0”)0—d02(显示器十位显示“0”)0—d01(显示器个位显示“0”)—]10(计数器1清零)—]20(计数器2清零)—]30(计数器3清零)—]40(计数器4清零)—L99(调用显示子程序)—L98(调用脉冲检测子程序)—L97(调用四位十进制计数子程序)—└03(上3步)000—H98(脉冲检测子程序入口)3—□P6(如P6口无脉冲,就执行下步程序,否则下跳2步)000002—└01(上跳1步)000—□P6(如脉冲结束就执行下步程序,否则自循环)000000—└┘(子程序返回)—H99(显示子程序入口)—F01(计数器1内容传送给F01)]1—d01(显示器个位显示F01内容)F01—F02(计数器2内容传送给F02)]2—d02(显示器十位显示F02内容)F02—F03(计数器3内容传送给F03)]3—d03(显示器佰位显示F03内容)F03—F04(计数器4内容传送给F04)]4—d04(显示器仟位显示F04内容)F04—└┘(子程序返回)—H97(四位十进制计数子程序入口)—]1(如果计数器1=009就执行下步指令,否则下跳4步)009000004—]10(计数器1清零)—F01(计数器1内容传送给F01)]1—┌04(下跳4步)000—]11(计数器1加1)—F01(计数器1内容传送给F01)]1—└┘(子程序返回)—]2(如果计数器2=009就执行下步指令,否则下跳4步)009000004—]20(计数器2清零)—F02(计数器2内容传送给F02)]24—┌04(下跳4步)000—]21(计数器2加1)—F02(计数2内容传送给F02)]2—└┘(子程序返回)—]3(如果计数器3=009就执行下步指令,否则下跳4步)009000004—]30(计数器3清零)—F03(计数器3内容传送给F03)]3—┌04(下跳4步)000—]31(计数器3加1)—F03(计数3内容传送给F03)]3—└┘(子程序返回)—]4(如果计数器4=009就执行下步指令,否则下跳4步)009000004—]40(计数器4清零)—F04(计数器4内容传送给F04)]4—└┘(子程序返回)—]41(计数器4加1)—F04(计数4内容传送给F04)]4—└┘(子程序返回)—E∩d