搜档网
当前位置:搜档网 › Keil C软件使用(调试汇编程序)

Keil C软件使用(调试汇编程序)

Keil  C软件使用(调试汇编程序)
Keil  C软件使用(调试汇编程序)

Keil C软件使用(汇编语言)

山东交通学院 杨福广

2011.09

目 录

1简介 (3)

2 建立一个新工程 (4)

(1)建立工程框架 (4)

(2)建立文件 (5)

(3)在工程中添加文件 (7)

(4)编辑工程中文件 (8)

3 进行软件调试 (10)

4 关于软件的设置 (11)

1简介

Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。

下面介绍Keil C51软件的使用方法

进入Keil C51 后,屏幕如下图所示。几秒钟后出现编辑界

启动Keil C51时的屏幕

进入Keil C51后的编辑界面

简单程序的调试

学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习汇编语言编程的基本使用方法和基本的调试技巧。

2 建立一个新工程

(1)建立工程框架

单击Project菜单,在弹出的下拉菜单中选中New Project选项

然后选择你要保存的路径,输入工程文件的名字,比如保存到asm目录里,工程文件的名字为test2。如下图所示,然后点击保存.

这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单

片机的基本的说明,然后点击确定.

完成上一步骤后,屏幕如下图所示

(2)建立文件

到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。

在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项

新建文件后屏幕如下图所示

此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。然后,单击“保存”

按钮。

(3)在工程中添加文件

回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下菜单

然后单击“Add File to Group ‘Source Group 1’” 屏幕如下图所示 (选择文件类型为asm source file)

选中Text1.asm,然后单击“Add ”屏幕好下图所示

注意到“Source Group 1”文件夹中多了一个子项“Text1.asm”了吗?子项的多少与所增加的源程序的多少相同。

(4)编辑工程中文件

现在,请输入如下的汇编语言源程序:

ORG 0000H

MOV A,#03H;

MOV R0,#09H;

MOV 09H,#0x0AA;

MOV A,@R0;

MOV DPTR,#3000h;

MOVX A,@DPTR;

SJMP $;

END

在上图中,单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),

编译成功后,再单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键Ctrl+F5),屏幕如下所示

3 进行软件调试

到此,可以进行软件的调试。例如,寄存器窗口(注意寄存器串口下边标签

的切换)可以看到程序执行时寄存器中内容的变化,如下图。

调试中可以单步、执行到鼠标处、执行到断点等

选择如下菜单可以看RAM当中数值。在memory #1等输入待观察到地址,就可以

看到对应到的存储值。

如果需要CPU复位,点击如下菜单

4 关于软件的设置

关于编译模式,从debug模式中退出来后,选择project/option for

target…,如下图

出现,下边窗口选第一个标签target

时钟(MHz)后面的数值是晶振频率值,默认值是所选目标CPU的最高可用频率值,对于AT89C51而言是24MHz,而AT89S51是33MHz。该数值与最终产生的目标代码无关,仅用于软件模拟调试时显示程序执行时间。正确设置该数值可使显示时间与实际所用时间一致,一般将其设置成与你实际所用的晶振频率相同。

储存器模式设置在汇编语言程序设计时不用设置

第二个标签“out”,如下图,选中“creat HEX file”,生成的.hex文件将来下载到ROM中执行。

最后一个标签“debug”,仿真类型选择(是软件模拟?仿真器?其他)等,如下图

软件调试技巧

软件调试技巧 一、软件调试方法 软件调试有很多种方法。常用的有4种,即强行排错法、回溯排错法、归纳排错法和演绎排错法。 1.强行排错法 这种方法需要动脑筋动的地方比较少,因此叫强行排错。通常有以下3种表现形式: ●打印内存变量的值。在执行程序时,通过打印内存变量的数值,将该数值同预期的数值进行比较,判 断程序是否执行出错。对于小程序,这种方法很有效。但程序较大时,由于数据量大,逻辑关系复杂,效果较差。 ●在程序关键分支处设置断点,如弹出提示框。这种方法对于弄清多分支程序的流向很有帮助,可以很 快锁定程序出错发生的大概位置范围。 ●使用编程软件的调试工具。通常编程软件的IDE集成开发环境都有调试功能,使用最多的就是单步调 试功能。它可以一步一步地跟踪程序的执行流程,以便发现错误所在。 2.回溯排错法 这是在小程序中常用的一种有效的调试方法。一旦发现了错误,可以先分析错误现象,确定最先发现该错误的位置。然后,人工沿程序的控制流程,追踪源程序代码,直到找到错误根源或确定错误产生的范围。 3.归纳排错法 归纳法是一种从特殊推断一般的系统化思考方法。归纳法调试的基本思想是,从一些线索(错误的现象)着手,通过分析它们之间的关系来找出错误,为此可能需要列出一系列相关的输入,然后看哪些输入数据的运行结果是正确的,哪些输入数据的运行结果有错误,然后加以分析、归纳,最终得出错误原因。 4.演绎排错法 演绎法是一种从一般原理或前提出发,经过排除和精化的过程来推导出结论的思考方法。调试时,首先根据错误现象,设想及枚举出所有可能出错的原因作为假设。然后再使用相关数据进行测试,从中逐个排除不可能正确的假设。最后,再用测试数据验证余下的假设是否是出错的原因。 二、调试的原则 调试能否成功一方面在于方法,另一方面很大程度上取决于个人的经验。但在调试时,通常应该遵循以下一些原则。 1.确定错误的性质和位置的原则 用头脑去分析思考与错误征兆有关的信息,避开死胡同。调试工具只是一种辅助手段。利用调试工具可以帮助思考,但不能代替思考。通常避免使用试探法,最多只能将它当作最后的手段,毕竟小概率事件有时也会发生。 2.修改错误的原则 在出现错误的地方,很可能还有别的错误。修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误本身。当新修正一个错误的同时又引入新的错误。 三、有效减少调试时间 1.绘制程序流程图 一些程序员认为,绘制程序流程图是件繁琐的事,而且浪费时间。其实不然,当读者对着偌大的程序一筹莫展时,面对纷纭复杂的关系理不出头绪时,使用程序流程图绝对可以事半功倍。 因此建议在编制程序前先绘制流程图,这样编程的思路有条理,调试时同样会有条不紊。若编制程序之前没有绘制流程图,当排错没有进展时,可以马上编写流程图。你会发现,程序中某些分支或细节被忽略了,这些细节可能就是程序出错的地方。 2.不要过多地依赖单步调试 有些程序对时间很敏感。数据只在那么一瞬间有效,可谓稍纵即逝。所以等到单步执行到那里时,

3-2节 程序调试的方法

3-2节程序调试的方法 编程是一件需要认真和细心的工作。通过让学生从李明同学学习程序设计时所遇到的困难和他情感上所表现出来的“窘态”故事开始,道出程序调试不但需要技巧、更需要有耐心和毅力的道理,从而激发学生学习程序调试的兴趣和热情,拉开了本节的充幕。 接着,布置任务,让学生输入课本P83四段有错误的程序,要求学生自己探究,并改正程序。 最后分析程序运行的情况,总结出程序运行出错的四种类型: 一、拼写错误 1)在工程窗口中,看到红色文字显示的程序是有拼写错误的。 2)同时还要检查其它的拼写错误 Pring改为print Integr改为integer 2、编译时出现的错误 S应该改为a 3、运行时出现的错误 运行时的错误是指编译通过后,在执行程序时出现的错误,如用0作除数等。

例如:a=0的时候,将会出现0作除数的情形 4、逻辑错误 程序运行后,得出的结果不是正确的。这说明程序存在逻辑错误。逻辑错误产生 的原因很多,运算符使用不正确、语句次序不对、循环的设置不对等都可以产生 逻辑错误。 如这里的程序的出口应该是tree>=100 任务: P85 马上行动:

你和同学们能解决以上的问题吗?以合作、交流的方式大胆尝试一下,你会有意外的收获! 一、本节小结: 本节主要通过任务驱动、探究的形式,介绍了程序的错误类型,分析了产生错误的原因,程序的调试与排错的方法,让学生“从做中学”,进一步体验了程序调试的方法和技巧,培养了 学生调试程序的耐心和毅力,提高了学生程序设计的素养。 五、课外练习 编写一个程序,将从键盘输入的一个自然数进行因数分解,输出结果并上机验证。

PLC程序现场调试的方法

P L C程序现场调试的方法 Prepared on 24 November 2020

PLC程序现场调试的方法——【非常重要】 02-04 16:42更新林慧玲分类:围观:625人次微信二维码 1、要查接线、核对地址 要逐点进行,要确保正确无误。可不带电核对,那就是查线,较麻烦。也可带电查,加上信号后,看电控系统的动作情况是否符合设计的目的。 2、检查模拟量输入输出 看输入输出模块是否正确,工作是否正常。必要时,还可用标准仪器检查输入输出的精度。 3、检查与测试指示灯 控制面板上如有指示灯,应先对应指示灯的显示进行检查。一方面,查看灯坏了没有,另一方面检查逻辑关系是否正确。指示灯是反映系统工作的一面镜子,先调好它,将对进一步调试提供方便。 4、检查手动动作及手动控制逻辑关系 完成了以上调试,继而可进行手动动作及手动控制逻辑关系调试。要查看各个手动控制的输出点,是否有相应的输出以及与输出对应的动作,然后再看,各个手动控制是否能够实现。如有问题,立即解决。 5、半自动工作 如系统可自动工作,那先调半自动工作能否实现。调试时可一步步推进。直至完成整个控制周期。哪个步骤或环节出现问题,就着手解决哪个步骤或环节的问题。 6、自动工作 在完成半自动调试后,可进一步调试自动工作。要多观察几个工作循环,以确保系统能正确无误地连续工作。 7、模拟量调试、参数确定 以上调试的都是逻辑控制的项目。这是系统调试时,首先要调通的。这些调试基本完成后,可着手调试模拟量、脉冲量控制。最主要的是选定合适控制参数。一般讲,这个过程是比较长的。要耐心调,参数也要作多种选择,再从中

选出最优者。有的PLC,它的PID参数可通过自整定获得。但这个自整定过程,也是需要相当的时间才能完成的。 8、完成上述所有的步骤 整个调试基本算是完成了。但最好再进行一些异常条件检查。看看出现异常情况或一些难以避免的非法操作,是否会停机保护或是报警提示。进行异常检查时,一定要充分考虑到设备与人身的安全! 整个调试基本算是完成了。但最好再进行一些异常条件检查。看看出现异常情况或一些难以避免的非法操作,是否会停机保护或是报警提示。进行异常检查时,一定要充分考虑到设备与人身的安全!

VB程序调试技巧

一,如果遇到了一些逻辑性很强的问题比如有循环什么的我的方法是在关键地方加入debug.print 变量 这样可以比较好地找到问题 二,msgbox 三,监视窗口,如下面的例子 For i=1 to 10000 A=sqr(i) next i 你想再监视当i=799时A的值,就可以添加监视,方法:点调试,添加监视,选择“当监视值为真时中断”,上面表达式框中写上i=799, 这样你按F5,运行程序,程序会在i=799时中断。其他选项你可以自己去琢磨一下。 一个程序如何顺利的“脱产”,调试的过程是非常重要的。学过、钻研过程序设计的人都有同样的感受,很多情况下,调试程序的过程会比程序编写的过程更为困难。任何一个天才都不敢说,他编的程序是100%正确的。几乎每一个稍微复杂一点的程序都必须经过反复的调试、修改,最终才完成。所以说,程序的调试是编程中的一项重要技术。 程序中的典型错误类型 A类:语法错误。 B类:编译错误。 C类:属性设置错误。 D类:逻辑错误。 调试方法 方法一:利用“MSDN帮助菜单” “MSDN帮助菜单”是一个很好的自学工具,对于出现调试对话框的菜单来说,可以按下“帮助”按钮查看错误原因。 对于一些不是很清楚的函数格式、保留字的作用,也可以借助“帮助菜单”。 方法二:逐过程检查 主要检查代码是否写对,位置有没有错误,关键是要确定一段代码是在哪个事件控制下的。不妨先在脑海中把整个程序过一边,想一想究竟会有哪些事件发生(有些事件是人机互动的,例如:鼠标点击;而有些是机器自己执行的,这时要想到计时器的作用);然后想一想每一件事发生后有什么效果。我们代码所编写的一般就是事件发生后的这个效果,那么以此事件来决定代码所写的位置。 方法三:逐语句检查(顺序、语义) 主要检查每一句代码的顺序是否写对,语义是否正确。 把整个代码从头至尾地读一边,仔细思索每一段子过程什么时候执行,以及每一子过程中的每一句代码什么时候发生,必要时可以在程序段中插入Print语句分段查看;也可用注释语

程序调试步骤

一、认识调试功能 在组建(build)菜单中,点击开始调试(start debug),在其下级子菜单中,包含了启动调试器运行的各项子命令(如图1所示) 图1 开始调试菜单 各子命令及其功能如下: ?Go:从程序中的当前语句开始执行,直到遇到断点(后面讲)或遇到程序结束。 ?Step Into:控制程序单步执行,并在遇到函数调用时进入函数内部。 ?Run to Cursor:在调试运行程序时,使程序运行到当前光标所在位置时停止,相当于设置了一个临时断点。 二、单步调试代码 利用图1菜单中的Step into功能或按F11键,进入单步调试状态,有一个箭头指向程序的第一行,每按一次F11键,程序再向前执行一行语句,如图2所示。

图2 开始调试后的界面 我们对图2的界面进行观察。 首先,菜单中增加一个调试(debug)菜单,如图中①处,下面是菜单中的部分功能(鼠标浮到上面时,会有提示,请试一试。) ?Step Into(F11):单步调试程序,遇到调用函数时,进入函数内部逐步执行; ?Step Over(F10):也是单步调试程序,遇到调用函数时,并不进入函数内容执行; ?Step Out:调试程序时,从正在执行的某个嵌套结构的内部跳到该结构的外部,常用于知道调用函数中不存在错误的情况; ?Run to Cursor(CTRL-F10):调试程序时,直接运行到插入点处。 其次,和当前正在执行的语句相关的变量,以及其当前的值显示在了②处。 再次,黄色箭头代表了正在执行的位置。 【练习1】 下面,针对求1+2+3+...+100的程序,体验单步执行。步骤: (1)编写如图所示求1+2+3+...+100的程序,排除编译错误; (2)按前述开始单步执行,用“Step Into(F11)”持续执行,在执行过程中,注意观察变量的变化。 ?调试中,要将自己的预期和计算机执行的结果进行比较,当发现不一致,恭喜,问题找到了。

Aleader--AOI-调试步骤与技巧

A l e a d e r--A O I-调试步骤 与技巧 -标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

标准注册与调试步骤 1.标准注册: A.电容: 电容的检测主要是检查其焊点、是否贴有元件和是否错料 电容命名格式是C-元 件大小-数字,eg:如图的 电容c0603-1 选定位框定位,框住 本体,便于找位 0603的元件偏移范围在之间, 若偏移范围过大,会导致测试 过程中框偏移而影响测试 注册时规定其中一个焊盘朝右 为零度,若当时元件不是按如图 所示的放置,则按此键旋转,使 B.电阻: 电阻的标准分两部分作,第一部分是看焊点(如下图图一),每二部分是看丝印(如下图图二),这样既可以检测焊点又可以检测是否错料(丝印检测) 电容命名格式是R-阻值(即本体 上的丝印),若同一块PCB板有大 小不同、阻值相同的元件,则R- 阻值-元件大小 焊点检测时不用滤色功能和调 整对比度、亮度 在上面的选项都选择完后,点 击此按钮,确定注册 图一

丝印的变化较多,若与本体 一起作标准,则影响焊点的 检测,且误判较多,很难调顺, 单独对丝印作标准,可以减 少由于丝印变化而带来的误 偏移范围一般填 作丝印检测时通过滤色可以消除 松香对丝印的影响,调整对比度和 亮度可使白的部分更白黑的更黑, 图二 C.三极管: 三极管的的标准分三部分作,具体步骤如下: ⑴本体和两个脚一起框,主要用来检测两个脚的焊点,加上本体能更好定位,编程时若三极管来料较多,都可以用一个来替换,可以节约编程时间,且在调试时可以不考虑丝印对它的影响,只要看焊点是否完好,而检测错料可以对丝印单独作标准{见第 三极管的命名格式是Q-数字,允 许偏移范围一般在加上极性检测 后能更好地检测元件是否贴反,定 位框定位能更准确找位 不管元件原来在PCB板的 放置如何,注册标准时一定 要将焊盘朝右,按此按钮可 以实现

程序调试的技巧

一、程序调试的必要性 程序设计过程中,错误是在所难免的。虽然有些程序员认为一个程序可以做到完美无瑕,但实际情况却并非如此,不然就不会有人对Windows怨气冲天了。尽管信息学竞赛中所编的程序从来不会像Windows那样庞大,最多也是仅仅几百K而已,但由于时间有限,选手们的程序难免有疏漏之处。因此,调试就成了极其重要的一环。如何在紧迫的时间内快速准确地发现并改正错误,正是本文所要讨论的问题。 二、常见错误类型归纳 《孙子兵法》云:“知己知彼,百战不殆。”对于程序调试者来说,程序中的错误就好比是敌人,如能准确把握敌人的情况,无疑是极为有利的。下面我们就来对常见的一些错误类型进行归纳并给出解决方法。 1、思路错误 这要看是基本算法错误还是功能缺陷。前者需要重写大部分代码,是否重写则根据时间是否充裕而定,后者只需增加一部分代码,再修改某些地方,这时应全面考虑,以防遗漏应该修改的地方。 2、语法错误 这个没什么可说的,作为一名信息学竞赛的选手,应该对自己选择的编程语言的语法了如指掌,具体在这里就不多讲了。 3、书写错误 这种错误令人十分头痛,一般的书写错误在编译时都能找出来,但如

果你在表达式中用到变量j时误写成了i,不但编译程序找不出来,自己找时也由于两者样子比较相似,难以发现。排除这种错误只能靠“细心”两字,具体可使用下面要介绍的静态查错法。 4、输出格式错误 由于现在信息学竞赛采用黑箱测试法,由于输出格式错误而导致失分的例子屡见不鲜。一个标点,一个空格,都会导致最后的悔恨。因此,在调试时先要核对输出格式,针对不同输出格式多设计几个测试用例,以防一失足成千古恨。 5、其它编程时易犯的错误 除了上面所说的错误类型外,其它就属于编程时在细节上考虑不周所造成的了。下面仅列举其中一些较为隐蔽的错误。只有靠平时不断总结积累,才能真正的做到“知己知彼”。 ①变量未赋初值 看下面的程序段 For i:=1 to N Do If A>Max Then Max:=A; WriteLn(Max); 这个程序段的原意显然是要输出数组A中最大的数。但由于它遗漏了将Max赋初值的语句,因此很可能会出现输出的数并不在数组A中的错误。应该在过程开头添上一句Max:=-MaxInt;。养成变量使用前先赋初值的习惯能预防许多较隐蔽的错误。 ②中间运算越界

程序调试技巧

程序调试(除错)过程中的一些雕虫小技(一、前言) 调试程序,是软件开发过程中的一个必不可少的环节。这篇帖子,匠人试着来整理一下一些调试的技巧。 说到“技巧”,这个词自从被所长批臭之后,匠人就吓得不敢再提,生怕一不小心就暴露了思想的浅薄和眼光的局限,呵呵。所以咱们不叫“技巧”,干脆低调点,就叫“雕虫小技”吧。 这里所讨论的“调试”技巧,有些是必须结合开发工具本身的功能来实现,而有些可以通过烧录芯片来验证。 各种开发工具,提供的功能多少强弱也不尽相同,这些方法也未必都能套用。仅供参考吧。 最后说明一下,这是没有草稿的帖子,匠人仍然以不定期连载的方式,边写边发边改。可能结构会比较混乱。欢迎大家一起参与讨论。 程序调试(除错)过程中的一些雕虫小技(二、磨刀不误砍柴功) 在调试之前,需要掌握以下一些基本功: 1、熟悉当前的开发(调试)环境,比如:设置断点、单步运行、全速运行、终止运行,查看RAM、查看堆栈、查看IO口状态……总之,要熟练掌握基本操作的方法,并深刻了解其中意义。 2、了解芯片本身的资源和特性。

3、了解一点汇编语言的知识。(本来匠人是准备写“精通”的,但考虑到现状,还是“放低”这方面的要求罢了)。 4、掌握基本的电路知识和排错能力。(软件调试有时也会牵涉到硬件原因。总不能连三极管的好坏都不能识别吧?) 5、万用表、示波器、信号发生器……这些工具总该会用吧? 6、搜索、鉴别资料的能力。(内事问百度、外事问古狗、有事没事上21ic网) 7、与人沟通,描述问题的能力。(调试36计的最后一计——就是向他人讨教。当然,你得把话说明白才行) 差不多了,如果上述7把砍柴刀磨好了,就可以开始调试了。接下来,请调入你的程序…… ——什么?你说你程序还没写? ——匠人倒塌…… 程序调试(除错)过程中的一些雕虫小技(三、优先调试人机界面)面对程序中的一大堆模块,无从下手是吗?好吧,匠人告诉你,先调显示模块,然后是键盘。 为什么要先调显示模块?道理很简单,我们说“眼睛是心灵的窗户”,同样,“显示是程序的窗户”。一旦把显示模块调试好了,就可以通

3.2程序调试的方法教案

3.2 程序调试的方法 浅色飞翔 一、教材分析 本节内容是广教版信息技术选修一《算法与程序设计》第三章第二节程序调试的方法。程序的调试贯穿了程序设计与实现的整个过程中,要在以后的章节中学会利用VB进行编程,必须从掌握程序的错误类型和调试方法开始,先学会程序的调试,然后将程序调试的技能贯穿于以后编程的各个章节中,不断地潜移默化,使学生养成良好的编程习惯,从点点滴滴开始积累程序调试方法和技巧。这对于提高学生自身的编程修养是大有裨益的。 二、学情分析 本节课是在高二年级实施。高二年级的学生逻辑思维能力较强,具备了初步程序设计、代码分析的能力;在学习本节内容之前,学生已完成本模块中VB程序设计语言基础知识的学习,能编写一些简单的程序。学生对利用编程解决问题兴趣较高。但是,个别学生在小组协作学习时依赖性较强,另外,对选择适当的语句编写程序还要进一步的学习。 三、教学目标 1、知识与技能 1)掌握程序调试的意义 2)体验程序错误的类型,并分析其原因 3)体验程序调试与排错的基本方法 2、过程与方法 通过调试不同的例程,掌握程序错误的四种类型和原因及程序调试与排错的方法,认识程序调试的重要性。 3、情感态度与价值观 1)关注程序调试和排错的方法,并在程序设计中自觉加以运用。 2)培养调试程序的技巧、耐心和毅力,树立运用计算机解决问题的思想。 四、教学重、难点 重点:程序错误的四种类型,掌握调试与排错的方法。

难点:程序的调试与排错及其技巧。 五、课时安排 1课时 六、教学方法讲解法任务驱动自主探究 七、教学过程

八、板书设计 九、教学反思 本节课是广教版信息技术选修一《算法与程序设计》第三章第二节的内容,主要讲解了两方面的内容:程序错误的类型、程序调试与排错的方法。通过教学过程中存在的问题以及评课老师给予的建议,我总结了以下几点需要改进的地方: 1、设计的三个活动环节,其中第一个活动没按预想的引起学生极大的兴趣, 其余两个活动,大部分学生完成的还可以。因此,在课前引入方面有待提高。 2、教学过程中,出现了语言表达不流畅的问题,主要表现为口头语“那么” 出现的次数太多,同时,在讲解错误类型的概念时,语言不够顺畅。 3、整堂课氛围不是很活跃,课堂调控上把握的还不到位,课堂调控能力有 待提高。 4、教学目标基本完成,最后学生的情感态度价值观方面还未达到预期效果。 5、教师要给学生一碗水,最起码自己要有一桶水。从备课到讲课,深感在 专业水平上要继续努力,深钻深研,将内容吃透,才能给学生深入浅出的讲透。 通过此次录课,深感讲好一节课不是件容易的事情,需要有深厚的专业知识及教学能力,同时,还要具备良好的心理素质。 本次录课,特别感谢信息技术组各位指导老师和同事的悉心帮助,在他们的指导和帮助下,短短的时间内,我才得以完成录课,并且在授课方面取得了很大的进步。特此感谢!

汇编语言上机操作及程序调试的方法

汇编语言上机操作及程序调试的方法第一节在IBM-PC机上运行汇编源程序所必备的软件 为了在IBM-PC机上运行汇编源程序,机器上必须有DOS操作系统环境,DOS系统盘上应有下列文件: EDIT 文件编辑程序 MASM 宏汇编程序 LINK 链接程序 DEBUG 调试程序 第二节在IBM-PC机上运行汇编源程序的步骤 当用户编制好汇编语言源程序之后,要在机器上运行,必须经过以下几个步骤: 1.用EDIT命令建立与修改汇编源程序文件(ASM文件) 源程序就是用汇编语言的语句编写的程序,必须以ASM为附加文件名。2.用MASM命令汇编源文件以产生相应的目标文件(OBJ文件) 3.用LINK命令连接目标文件以产生可执行文件(EXE文件) 4.调试、运行可执行文件

上机过程示意图如下: 汇编语言程序 编辑程序 汇编程序 连接程序 调试程序 有错吗? 运行程序 Y N 图2-1 汇编语言程序上机过程流程 第三节 DEBUG 程序调用及汇编语言程序调试方法 调试程序DEBUG 是DOS 支持的又一种系统软件,主要用于汇编语言程序的调试。汇编和连接过程只能查出源程序的语法错误,不能查出功能上的错误和程序不完善的地方。 一、DEBUG 程序的启动 DEBUG 程序有两种启动方法。 第一种启动方法:只要打入DEBUG 和回车键,就可以把它装入内存。但是这样启动只把DEBUG 程序本身装入内存并进入等待DEBUG 命令状态,还没有把要调试的程序装入内存。 第二种启动DEBUG 的程序的方法是一次相继装入DEBUG 程序和要调试的程序。打入的命令格式如下: DEBUG[d :][path]filename[.ext][parml]Lparm2] 其中的Filename 是要调试程序的文件名,可选项[d:][path]和[.ext]分别是要调试程序的所在盘符、路径和扩展名。可选项[parml]和[parm2]是DEBUG 程序为要调试程序准备的参数(一般不用)。 例 进入DEBUG 程序并装入要调试程序,要调试程序在A 驱动器中。其操

LC程序现场调试的方法完整版

L C程序现场调试的方 法 集团标准化办公室:[VV986T-J682P28-JP266L8-68PNN]

P L C程序现场调试的方法——【非常重要】02-04 16:42更新林慧玲分类:围观:625人次微信二维码 1、要查接线、核对地址 要逐点进行,要确保正确无误。可不带电核对,那就是查线,较麻烦。也可带电查,加上信号后,看电控系统的动作情况是否符合设计的目的。 2、检查模拟量输入输出 看输入输出模块是否正确,工作是否正常。必要时,还可用标准仪器检查输入输出的精度。 3、检查与测试指示灯 控制面板上如有指示灯,应先对应指示灯的显示进行检查。一方面,查看灯坏了没有,另一方面检查逻辑关系是否正确。指示灯是反映系统工作的一面镜子,先调好它,将对进一步调试提供方便。 4、检查手动动作及手动控制逻辑关系

完成了以上调试,继而可进行手动动作及手动控制逻辑关系调试。要查看各个手动控制的输出点,是否有相应的输出以及与输出对应的动作,然后再看,各个手动控制是否能够实现。如有问题,立即解决。 5、半自动工作 如系统可自动工作,那先调半自动工作能否实现。调试时可一步步推进。直至完成整个控制周期。哪个步骤或环节出现问题,就着手解决哪个步骤或环节的问题。6、自动工作 在完成半自动调试后,可进一步调试自动工作。要多观察几个工作循环,以确保系统能正确无误地连续工作。 7、模拟量调试、参数确定 以上调试的都是逻辑控制的项目。这是系统调试时,首先要调通的。这些调试基本完成后,可着手调试模拟量、脉冲量控制。最主要的是选定合适控制参数。一般讲,这个过程是比较长的。要耐心调,参数也要作多种选择,再从中选出最优者。有的PLC,它的PID参数可通过自整定获得。但这个自整定过程,也是需要相当的时间才能完成的。 8、完成上述所有的步骤

C Free 程序调试方法

C Free 5.0 程序的单步调试 创建一份新的代码文件 可直接点击“文件”下的白色图标,或点击“文件”选择“新建”,或按快捷键“Ctrl + N”(C Free 5.0默认情况下新建的代码文件为.cpp 格式,可在“工具”、“环境选项”、“新建文件类型”中更改,C语言标准格式为.c 格式) 基于实例的C程序调试介绍 一、查看变量的内容 # include int main(int argc, char* argv[]) { int i; int sum; sum=0; for(i=1;i<=10;i++) sum=sum+i; printf("sum=%d",sum); return 0; }

第一步,打开C Free 5.0,输入上面的代码。 第二步,把光标移到“sum=0;”这一行,按F10 它的作用是设一个断点,程序运行到这里时,会停下来。也就是说,接下来,程序必须通过按 F7键单步运行了。 第三步:按F9 (开始调试)

我们发现有一箭头停留在这句语句上,它指示程序停留的位置,而箭头所在的语句(“sum=0;”)还没有执行。事实上,我们可以通过看一下内存变量sum的内容来验证。 方法是这样的:

打开“调试”下的“监视”,或者按快捷键“Alt + 3”。

在“监视”的空白处点击鼠标右键,选择“添加监视”。 输入需要监视的变量名,这里输入为sum 这时我们可以在监视窗口中看到sum的内容不为0,而是一个随机的值。

第四步,我们按一下F7(进入),我们发现sum的内容变为0了。这说明“sum=0;”这句语句被执行了。 我们还可以用同样的方法看一下i的内容。

C语言程序调试方法入门

调试是一个程序员最基本的技能,其重要性甚至超过学习一门语言。不会调试的程序员就意味着他即使会一门语言,却不能编制出任何好的软件。本文约定,在选择菜单时,通过/表示分级菜单,例如File/Open表示顶级菜单File的子菜单Open。 一、断点 断点是调试器设置的一个代码位置。当程序运行到断点时,程序中断执行,回到调试器。断点是最常用的技巧。调试时,只有设置了断点并使程序回到调试器,才能对程序进行在线调试。 设置断点:可以通过下述方法设置一个断点。首先把光标移动到需要设置断点的代码行上,然后按F9快捷键 弹出Breakpoints对话框,方法是按快捷键CTRL+B或ALT+F9,或者通过菜单Edit/Breakpoints打开。打开后点击Break at编辑框的右侧的箭头,选择合适的位置信息。 一般情况下,直接选择line xxx就足够了,如果想设置不是当前位置的断点,可以选择 Advanced,然后填写函数、行号和可执行文件信息。 去掉断点:把光标移动到给定断点所在的行,再次按F9就可以取消断点。同前面所述,打开Breakpoints对话框后,也可以按照界面提示去掉断点。 二、值 Watch VC支持查看变量、表达式和内存的值。所有这些观察都必须是在断点中断的情况下进行。 1)观看变量的值最简单,当断点到达时,把光标移动到这个变量上,停留一会就可以看到变量的值。 2)VC提供一种被称为Watch的机制来观看变量和表达式的值。在断点状态下,在变量上单击右键,选择Quick Watch,就弹出一个对话框,显示这个变量的值。 3)单击Debug工具条上的Watch按钮,就出现一个Watch视图 (Watch1,Watch2,Watch3,Watch4),在该视图中输入变量或者表达式,就可以观察变量或者表达式的值。注意:这个表达式不能有副作用,例如++运算符绝对禁止用于这个表达式中,因为这个运算符将修改变量的值,导致软件的逻辑被破坏。 三、Memory 由于指针指向的数组,Watch只能显示第一个元素的值。为了显示数组的后续内容,或者要显示一片内存的内容,可以使用memory功能。在Debug工具条上点memory按钮,就弹出一个对话框,在其中输入地址,就可以显示该地址指向的内存的内容。 四、Varibles Debug工具条上的Varibles按钮弹出一个框,显示所有当前执行上下文中可见的变量的值。特别是当前指令涉及的变量,以红色显示。 五、寄存器 Debug工具条上的Reigsters按钮弹出一个框,显示当前的所有寄存器的值。 六、进程控制 VC允许被中断的程序继续运行、单步运行和运行到指定光标处,分别对应快捷键F5、F10/F11和CTRL+F10。各个快捷键功能如下:

C++程序调试方法和技巧

程序调试方法和技巧 一、改正程序的编译期错误 源程序编制完成后,首先由C++编译程序编译成.obj文件,再由连接程序连接成可执行文件。在编译时,如果源程序存在语法错误(errors),则系统不允许连接,直到改正了所有的语法错误后,才能进行连接。另外,编译时还可能存在另一类错误,即警告性错误(warnings),这类错误一般不影响程序的连接,在很多情况下也不影响程序的执行结果,但建议还是尽量把这类错误改正。 选择编译菜单(Compile)(或者直接单击快捷工具栏上的编译按钮)对编译好的源程序进行编译,在集成环境下方的OutPut窗口中将会显示相应的编译信息(若OutPut窗口没有出现,则可以在快捷工具栏上右键单击并在弹出的菜单中选择OutPut菜单项即可打开(或关闭)OutPut窗口)。若程序编译没有发现错误,则该窗口中显示“***.exe - 0 error(s), 0 warning(s)”,这时可以进行程序的连接;若编译后存在语法错误或警告错误,该窗口中则显示两类错误的个数,并列出相应的错误位置和原因。 改正编译期错误的方法和一般原则为: 1.改正错误时一般从第一个错误开始,然后依次改正后续的错误。因为前面错误的出现,往往会导致编译系统在编译时错位,把本来正确的 语句认为是错的,也可能把某些语句的错误掩盖掉。所以当改正了前 面的错误后,可能会使错误量减少很多,也可能增加很多; 2.在OutPut窗口中双击指定错误,则系统会自动定位到该错误出现的位置,并在错误语句前面用一个蓝色子弹头标识。注意,该标识只是告 诉程序员编译时在此位置出错了,真正的错误可能出现在该标识语句 的前一语句或后一语句,如函数定义时,在小括号后加了分号,错误 标识将出现在左大括号处; 3.根据情况,每改正一个或几个错误后,应重新编译一下,然后再从第一个错误进行改错,直到所有错误都被改正过来。 二、程序执行时的调试 实践中发现,往往很小的程序在执行时也会出现错误。当一个程序可以被连接成功,但执行时却存在不正常现象,如不能得到预期的运行结果或出现死机等,而一下子又很难找出出错原因时,可以采取以下方法查错、改错。 1.单步跟踪执行命令

调试方法和技巧

调试方法和技巧 作者:非凡 便于调试的代码风格: 1.不用全局变量 2.所有变量都要初始化,成员变量在构造函数中初始化 3.尽量使用const 4.详尽的注释 VC++编译选项: 1.总是使用/W4警告级别 2.在调试版本里总是使用/GZ编译选项,用来发现在Release版本中才有的错误 3.没有警告的编译:保证在编译后没有任何警告,但是在消除警告前要进行仔细检查 调试方法: 1、使用Assert(原则:尽量简单) assert只在debug下生效,release下不会被编译。 例子: char* strcpy(char* dest,char* source) { assert(source!=0); assert(dest!=0); char* returnstring = dest; while((*dest++ = *source++)!= ‘\0’) { ; } return returnstring; } 2、防御性的编程 例子: char* strcpy(char* dest,char* source)

{ if(source == 0) { assert(false); reutrn 0; } if(dest == 0) { assert(false); return 0; } char* returnstring = dest; while((*dest++ = *source++)!= ‘\0’) { ; } return returnstring; } 3、使用Trace 以下的例子只能在debug中显示, 例子: a)、TRACE CString csTest =“test”; TRACE(“CString is %s\n”,csTest); b)、ATLTRACE c)、afxDump CTime time = CTime::GetCurrentTime(); #ifdef _DEBUG afxDump << time << “\n”; #endif

STEP7软件调试技巧

STEP7软件调试技巧【工控老鬼】 STEP7的PLC程序符合IEC-61131标准,该标准支持5种编程语言STL/FBD/LAD,另外SFC/SCL是选件.但大部分调试手段却是通用的. (1) Variable Table 根据我的调查显示,Variable Table (变量监视表)是最常用的,功能也很强,能监视又能强制修改,编辑好后可以长期保存,看看STEP7自带的的例子就知道了,都提供了变量表.因为太常用,我就不多说了,嘿嘿... 作用: 变量监视/强制修改调用方法: 主菜单> Insert > s7 Block > Variable Table (2) CPU Message/Diagnostic Buffer 这两者的作用差不多,都是从PLC中的Diagnostic Buffer(诊断缓冲区)中提取诊断信息.区别在于前者象一个日志而后者直接显示了PLC诊断缓冲区中的内容. 如果你的程序已经下载到了PLC中,但一开机就SF(system failure)红色LED灯就亮了,或是程序一开始运行良好,也不知道什么时候就down 机了(噢,太可怕了).先别急,看看Diagnostic Buffer中的信息吧,她会告诉你什么时候,哪个Block出了什么错误,比如某个FB 块忘了下载了(汗) 当然,更深入的分析需要用其他手段跟踪调试了. 作用: 错误诊断/定位

调用方法: 主菜单> PLC >CPU Message... 主菜单> PLC >Diagnostic/Setting >Module Information > Diagnostic Buffer (3) Reference Data 根据你编写好的程序,STEP7程序会通过统计分析得出一堆数据,于是我们可以通过相应的视图分析:变量的使用状况,程序结构,内存占用情况,没用到的symbol和程序中只有绝对地址没有symbol名的M点.偶认为一个比较大的程序写完之后,应该调用reference Data审视一番,做到心中有数,这是一个好的习惯.另外,cross reference可以对变量跟踪定位,在引用表上双击变量名,程序就显示相应的位置. 有些Bug也可以从Reference Data 表格中嗅出来。总之,善于利用此类统计信息对程序分析大有好处. 作用: 静态统计分析 调用方法: 主菜单> Options >Reference Data... (4) STL单步调试/PLCSIM (仿真器)single scan(单循环)调试 这两种手段本来没多大联系,但它们都属于细粒度的动态调试方法,因此就列在一块儿了,它们用于对付比较坚硬的BUG,还有就是对分析别人的STL程序有点儿用. 作用: 细粒度动态跟踪调试 调用方法: STL设断点的条件比较严格: 1.在LAD/STL/FBD编辑器菜单中选择 Debug>Operation>test operating

单片机程序调试小技巧

《匠人手记》网络版 程序调试(除错)过程中的一些雕虫小技 作者:程序匠人 发布日期:2009-11-26 《匠人手记》封面 E-MAIL:zj_artisan@https://www.sodocs.net/doc/3a4214143.html, 《匠人的百宝箱》博客:https://www.sodocs.net/doc/3a4214143.html,/ 《匠人手记》edn书友会:https://www.sodocs.net/doc/3a4214143.html,/628/ 《匠人手记》21ic书友会:https://www.sodocs.net/doc/3a4214143.html,/iclist-63.html

手 记 目 录 一、前言 (1) 二、磨刀不误砍柴功 (1) 三、优先调试人机界面 (2) 四、慢镜头的威力 (2) 五、快镜头的威力 (3) 六、程序中的黑匣子 (3) 七、设卡伏击,拦截流窜犯 (4) 八、向猎人学习挖坑设陷阱的技术 (5) 九、程序中的窃听器 (6) 十、拉闸睡觉!统一管理调试代码 (7) 十一、附录:《匠人手记》简介 (9) 1、《匠人手记》内容简介 (9) 2、《匠人手记》目录 (9) 3、《匠人手记》封面及内页 (10) 4、《匠人手记》热销情况 (11) 5、《匠人手记》被各界推荐 (12) 6、《匠人手记》读者热评 (13) 7、购书渠道 (13) 8、相关连接 (14) 9、《匠人手记》书友会Q群 (14) 10、《匠人手记》网络版版权声明 (14)

程序调试(除错)过程中的一些雕虫小技 一、前言 调试程序,是软件开发过程中的一个必不可少的环节。这篇手记,匠人试着来整理一下日常调试过程中用到的技巧。 说到“技巧”,这个词自从被所长批臭之后,匠人就吓得不敢再提,生怕一不小心就暴露了思想的浅薄和眼光的局限,呵呵。所以咱们不叫“技巧”,干脆低调点,就叫“雕虫小技”吧。 这里所讨论的“调试”技巧,有些是必须结合开发工具本身的功能来实现,而有些可以通过烧录芯片来验证。 各种开发工具,提供的功能多少强弱也不尽相同,这些方法也未必都能套用。仅供参考吧。 最后说明一下,这是没有草稿的帖子,匠人仍然以不定期连载的方式,边写边发边改。可能结构会比较混乱。欢迎大家一起参与讨论。 二、磨刀不误砍柴功 在调试之前,需要掌握以下一些基本功: 1、熟悉当前的开发(调试)环境,比如:设置断点、单步运行、全速运行、终止运行,查看RAM、查看堆栈、查看IO口状态……总之,要熟练掌握基本操作的方法,并深刻了解其中意义。 2、了解芯片本身的资源和特性。 3、了解一点汇编语言的知识。(本来匠人是准备写“精通”的,但考虑到现状,还是“放低”这方面的要求罢了)。 4、掌握基本的电路知识和排错能力。(软件调试有时也会牵涉到硬件原因。总不能连三极管的好坏都不能识别吧?) 5、万用表、示波器、信号发生器……这些工具总该会用吧? 6、搜索、鉴别资料的能力。(内事问百度、外事问古狗、有事没事上21ic网) 7、与人沟通,描述问题的能力。(调试36计的最后一计——就是向他人讨教。当然,你得把话说明白才行) 差不多了,如果上述7把砍柴刀磨好了,就可以开始调试了。接下来,请调入你的程序…… ——什么?你说你程序还没写?

相关主题