您当前的位置:五五电子网电子知识电器控制PLC工业控制PlC单片机C语言程序SIM软件仿真技 正文
PlC单片机C语言程序SIM软件仿真技

PlC单片机C语言程序SIM软件仿真技

点击数:7991 次   录入时间:03-04 11:49:09   整理:http://www.55dianzi.com   PLC工业控制

  以C语言程序pIC07.C为例,介绍SIM软件仿真的技巧,包括用跑表直接测试C程序运行的耗时(包括秒值)、快速观察C程序的运行路径、显示C程序中的变量值和修改程序中的错误等等。

  (1)用跑表测试程序的延时量和秒计时值
  
  这里,我们仍以pic07.C为例,介绍利用MPLABIDE提供的跑表(又称停表——stopwatch命令),测试C程序中所要求的各种计时值的操作步骤。

  该操作十分简单,同时也是实际程序调试中经常要用到的。

  pic07.C是一个0~99秒的脉冲发生器程序。

  其秒个位在LED显示时,从0到1、从1到2、……,每隔1秒显示数字加1,而秒值是由pic07.C程序显示函数中的d值(d=100)决定的。

  如果用MPLABIDE提供的跑表测试该时间若未达到1秒的要求,可直接改变d值(增加或减少),来达到所规定的递增1秒的要求。

  用跑表测试pic07.C程序中各代码功能的时间,其操作方法如下:

  1)例行操作
  
  在MPLABIDE7.40集成开发环境中,对源程序pic07.C进行编译,只要编译成功(此为进行软件仿真的必要和充分条件),便可进行下面的SIM软件仿真操作了。

  点击pic07.C,把该程序调到MPLABIDE7.40的桌面上。在MPLABIDE7.40的窗口上设置软件仿真调试状态窗口。

  注意:接下来将使用7个模拟调试快捷图标(Debug)。

  2)调用stopWatch(跑表)
  
  点击Debugger命令,并在弹出的下拉菜单中点击setting,即可生成SimulatorSettings界面。在该界面中,频率为20MHz,我们将其改成实际电路所用的晶振频率4MHz,然后点击“确定”,回到原先界面。在该界面中点击“Debugger”命令,并在弹出的下拉菜单中点击“Stopwatch,即可生成对话框。

  3)定量测试
  
  我们验证程序运行时,具体操作如下:

  a.点击快捷图标中的命令Animate,之后立即点击快捷图标中的Halt(停止),其中,主程序TRISA=0×10赋值语句左边有一个绿色箭头,指向的是模拟调试时程序运行的起始语句;而语句X++;(自增量)左边有一个断点标志,即红色的“B”(若语句X++;左边无断点标志“B”,可通过双击X++旁的位置,来进行断点“B”的设置)。接下来,便可验证程序各语句的耗时量了,其操作方法如下:

  b.“Stopwatch”界面右下角的程序频率为4(MHz),说明设置频率是正确的。点击  “Zero”清0,使Zero右边的time为0(说明:该行最右侧显示的是执行多条语句的累积时间,此处可不管),随后点击MPLABIDE菜单行中的模拟调试快捷图标StePINto(单步),使程序从绿色起始箭头所指语句TRIA=O×10;开始,只运行一步就停下来,此时,图52中Zero右侧time旁显示该语句运行耗时数是2μs,与表6所列数值完全相符,而绿色起始箭头则指向了下一条语句“PORTB=0×40”处。

  接着运行语句“PORTB=O×40”;,方法同语句“TRIA=O×10”:。即先点击Zero,清0,使Zero右边的time为0,再点击Step.Into(单步),执行语句“PORTB=O×40”;,可以看到绿色起始箭头又指向了其下一条语句INTCON=O×00;,此时,Zero右侧time旁边给出的该语句运行耗时数是3μs。

  需要注意的是,在点击StepInto(单步)命令运行一条语句前,必须先点击Zero,对time清0一次(即不观察累计时间)。

  此外,运行位赋值定义语句unit_bit=X%10;ten_bit=X10%10;时,应将点击Step.nto命令换成点击“Stepover”命令,其余操作不变,程序又可快速单步运行。遇到delay(200);延时语句时,也用“Stepover”命令,才能顺利验证表6中的耗时量。

  4)LED显示增量时间的测定  
  
  类似上述方法,当程序运行到display(x);语句处时,先点击Zero(清time的0),然后点击MPLABIDE模拟调试的快捷命令“Run”(全速运行),使程序从display(x);全速运行到预先设置的断点X++;处,此时,time的显示值为1.036104S(秒),说明pic07.c程序中的d=100值大了一点。

  此时,我们可将程序中的d值改为99(或98、97),然后在用前述增量时间测定方法对其进行运行时间测定,来找到最准确的0~99递增为1秒的d值。

  需要说明的是,每次修改了d值之后,都要先在MPLAB IDE7.40集成开发环境中,对源程序pic07.C进行编译,并确认编译成功,再进行增量时间测定。




本文关键字:单片机  程序  软件  C语言  PLC工业控制电器控制 - PLC工业控制