在KEILC中调试程序.docVIP

  • 12
  • 0
  • 约3.16千字
  • 约 8页
  • 2016-11-05 发布于重庆
  • 举报
在KEILC中调试程序

在KEIL?C中调试程序 首先建立工程。选[Project\New?Project],选择工程保存的路径,及为工程命名。例如将其存放在D:\新建文件夹(2),命名为123。输入完工程名后会打开一个如下图所示的对话框,在这里我们选择CPU的型号,根据我们选用的CPU芯片的不同,这里的设置不同。在这里我们选用Atmel\AT89C51。 接下来弹出一个如下图的对话框。该对话框提示你是否要把标准8051的启动代码添加到工程中去。如用C语言写程序,一般选“否”,但是,如果用到了某些增强功能需要初始化配置时,则可选“是”。在这里,我们选“否”,即不添加启动代码。 新建文件。 在[File\New]建一个文件,将程序写入。这里以一个00-99秒计时器程序为例。程序如下 #include AT89X51.H unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92, 0x82,0xf8,0x80,0x90}; //共阳数码管段0-9 unsigned char Second; delay10ms() //延时10毫秒 { unsigned int i,j; for(i=0;i10;i++) for(j=0;j120;j++); } leds() //显示子函数 {? 0_0=0;???? //选通P0_0数码管? ??? P2=table[Second/10];? //送段值????? ?? delay10ms();????? //延时??? ? P2=0xff;?????? //消影??? ? P0_0=1;?????? //消除P0_0选通状态?? ?? P0_1=0;????? //选通P0_0数码管?? ?? P2=table[Second%10];? //送段值????? ?? delay10ms();????? //延时?? ?? P2=0xff;???? //消影??? ? P0_1=1;?????? //消除P0_0选通状态? } void?delay1s(void)?//延时1秒 {?? unsigned?char?j;??? ? for(j=50;j0;j--)? leds();? }? void main(void) { Second=0; //显示置0 while(1) //主循环 { delay1s(); // 延时 Second++; //自加 if(Second==60) //判断是否到60 { Second=0; //到60置0 } leds(); //显示子程序 } } 保存文件。选[File\Save],将其保存在刚建的工程下。这里是用的C语言编程,所以后缀名要加上”.C”。这里我们将其命名为“Text1.c“。注意扩展名“.C”不可省略。 打开工程[Project\Open Project],在左窗口中单击右键,选“Add files to Group “Source Gropu 1“,将程序Text1.c加载到工程。只有经过这一步才能对程序进行下面的编译及调试。 单击KEIL C51 工具栏的“”图标,弹出名为“Options for Target ?Target1?”的对话 框。单击“Output”标签页,选中“Create HEX File”项,然后“确定”。如下图所示。 编译: 可选译工具栏上的编译“ ”也可选 [Project\Rebuild all target files]。如编译有 错误会在最下面的Build窗口中显示出来,通过双击出错的信息可到出错的那一行。 调试: 编译通过后就进行调试。可选择工具栏上的调试按键也可选[Debug\satr\stop Debug Scssion]。 运行: 运行可选择全速运行、单步进入等运行方式。可以利用工具栏上的快捷键也可在[Debug]菜单中选择。 其中: 单步进入与单步跳过运行的区别在于: 当调用子程序时,单步进入会进入子程序运行,而单步跳过不进入子程序。 例如上面的程序,当选择单步进入运行方式,则在调用显示子程序时,它会进入子程序内部运行,此时我们就可以看到执行时P0、P2的变化。 当选择单步跳过运行方式时,我们则只能它到它运行完子程序后的结果。即P0

文档评论(0)

1亿VIP精品文档

相关文档