《在keil c中调试程序》由会员分享,可在线阅读,更多相关《在keil c中调试程序(8页珍藏版)》请在金锄头文库上搜索。
1、在KEILC中调试程序首先建立工程。选ProjectNewProject,选择工程保存的路径,及为工程命名。例如将其存放在D:新建文件夹(2),命名为123。输入完工程名后会打开一个如下图所示的对话框,在这里我们选择CPU的型号,根据我们选用的CPU芯片的不同,这里的设置不同。在这里我们选用AtmelAT89C51。接下来弹出一个如下图的对话框。该对话框提示你是否要把标准8051的启动代码添加到工程中去。如用C语言写程序,一般选“否”,但是,如果用到了某些增强功能需要初始化配置时,则可选“是”。在这里,我们选“否”,即不添加启动代码。新建文件。在FileNew建一个文件,将程序写入。这里以一个
2、00-99秒计时器程序为例。程序如下 #include unsigned char code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90; /共阳数码管段0-9unsigned char Second; delay10ms() /延时10毫秒 unsigned int i,j; for(i=0;i10;i+)for(j=0;j0;j-)leds();void main(void) Second=0; /显示置0 while(1) /主循环 delay1s();/ 延时 Second+; /自加 if(Second=60) /
3、判断是否到60 Second=0; /到60置0 leds(); /显示子程序 保存文件。选FileSave,将其保存在刚建的工程下。这里是用的C语言编程,所以后缀名要加上”.C”。这里我们将其命名为“Text1.c“。注意扩展名“.C”不可省略。 打开工程ProjectOpen Project,在左窗口中单击右键,选“Add files to Group “Source Gropu 1“,将程序Text1.c加载到工程。只有经过这一步才能对程序进行下面的编译及调试。单击KEIL C51工具栏的“”图标,弹出名为“Options for Target Target1”的对话 框。单击“Outp
4、ut”标签页,选中“Create HEX File”项,然后“确定”。如下图所示。编译: 可选译工具栏上的编译“ ”也可选 ProjectRebuild all target files。如编译有 错误会在最下面的Build窗口中显示出来,通过双击出错的信息可到出错的那一行。 调试:编译通过后就进行调试。可选择工具栏上的调试按键也可选Debugsatrstop Debug Scssion。 运行:运行可选择全速运行、单步进入等运行方式。可以利用工具栏上的快捷键也可在Debug菜单中选择。其中:n 单步进入与单步跳过运行的区别在于: 当调用子程序时,单步进入会进入子程序运行,而单步跳过不进入子程
5、序。例如上面的程序,当选择单步进入运行方式,则在调用显示子程序时,它会进入子程序内部运行,此时我们就可以看到执行时P0、P2的变化。当选择单步跳过运行方式时,我们则只能它到它运行完子程序后的结果。即P0、P2最后运行的值。n 全速运行,则程序一直运行,直至按下停止为止。运行方式的选择可以用工具栏中的快捷键也可在Debug菜单下设置。n 遇到延时程序时,跟踪太慢可以让它“运行到光标处”。n 在遇到复杂程序时,可以设断点。在要设断点的地方运用工具栏上“设断点”的快捷键即可设置断点。程序每运行到断点处,就会停下来。这时你就可以看程序运行到此处的值。取消断点可用工具栏上“取消断点”键。在程序运行时可能
6、需要观察某个量的值,可在窗口下面的“Watch #1”或“ Watch #2”等窗口中将要观察的量输入。如此窗口没打开时,可选ViewWatch & Call stack window打开观察窗口。输入变量的方法是,选中窗口中的“type F2 to edit“,按F2,即可输入,它后面就是该变量的值。变量的值也是可以手动改的,同样的方法,选要改的值,按F2,输入想设的值即可。如下图所示,观察变量“Second”的值。选中“type F2 to edit“,按F2输入“Second”回车,即可看到该变量此时的值。当要改变它的值时,则选中“0x00”,按F2后输入想要的值即可。在程序运行时,当有
7、FOR循环,如循环次数太多,可用这种方法改变它的当前循环次数。以便进行下面程序的调试。如在程序中定义了数组,则它的值就是一个地址,要观察它的值,可打开“存储窗口”,在存储窗口中输入该数组的地址,观察它的值,也可直接单击它前面的“+”,即可看到它的值。在“存储窗口”中观察时,选View|Memory windows即可打开。打开后,输入变量存放的地址,即可观察该变量的值。如下图所示要观察数组”table”的值。从观察窗口中看到它的地址为“C:0x006D ”,则在“存储窗口”的“Address”后输入“C:0x006D ”,则可观察它的值。在进行程序调试时,有时需要用到外部端口、定时器溢出或产生外部中断,则可打开“Peripherals”菜单,找到你想要的器件,对它进行手动设置。如下图所示,我们改变P0口的某个位:打开Peripherals|I/OPortsPorts 0,则打开了P0口,此时我们就可以手动的设置它的位,打勾为1,没勾则为0。如果将这个程序的延时部分改为采用定时器0来计时,那么你就必须手动的对定时器0进行溢出设置,达到延时1秒的效果。步骤如下:打开Peripherals|Timer|Timer 0,设置它的溢出标志位TF0=1,即把它前面的勾打上即可实现定时器0的溢出。用这种办法即可实现脱机状态下程序的调试。