新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > PIC单片机C语言程序设计(11)

PIC单片机C语言程序设计(11)

作者:时间:2013-02-05来源:网络收藏
  2) 调用stop Watch(跑表)

  点击图49 中的Debugger 命令, 并在弹出的下拉菜单中点击setting,即可生成图50 所示的Simulator Settings 界面。在该界面中,频率为20MHz,我们将其改成实际电路(即《PIC 单片机C 语言(4)》中的图3))所用的晶振频率4MHz,然后点击图50 中的“确定”,回到图49 所示界面。在该界面中点击“Debugger”命令,并在弹出的下拉菜单中点击“Stop watch,即可生成图51 所示的对话框。

图50

图51

  3) 定量测试

  下面我们来验证程序运行时,各代码运行的具体时间是否如《PIC 单片机C 语言(10)》中的表6 所示。具体操作如下:

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

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

图52

  接着运行语句“PORTB=0X40”;, 方法同语句“TRIA=0X10”;。即先点击Zero,清0,使Zero 右边的time 为0,再点击Step Into( 单步),执行语句“PORTB=0X40”;,可以看到绿色起始箭头又指向了其下一条语句INTCON=0X00;,此时,图52 中Zero 右侧time 旁边给出的该语句运行耗时数是3μs,与表6 所列数值完全相符。

  用同样的方法,依次执行表6 所列的语句,从而确认各语句运行的时间是否与表6 所列数值相同。

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

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

  4) LED 显示增量时间的测定

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

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

  需要说明的是,每次修改了d 值之后,都要按照《PIC 单片机C 语言程序设计(9)》一文介绍的方法,先在MPLAB IDE7.40 集成开发环境中,对源程序pic07.C 进行编译,并确认编译成功,再按本文所述方法进行增量时间测定


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭