搜档网
当前位置:搜档网 › 易语言程序设计 第八章 程序调试及错误处理 免费

易语言程序设计 第八章 程序调试及错误处理 免费

易语言程序设计 第八章 程序调试及错误处理 免费
易语言程序设计 第八章 程序调试及错误处理 免费

<易语言程序设计>

作者:蔷薇的羽翼

第八章程序调试及错误处理

程序在编写完成后可能会存在这样那样的问题,或测试后发现了错误,这些都与要开发人员去寻找错误发生的地方并改正,即调试程序,在易语言的开发环境中提供了诸如单步跟踪,设置执行断点,监视变量值等调试手段,能够帮助开发人员快速定位错误,掌握这些调试手段是每个开发人员的基本要求。

8.1程序有哪些错误

古语云:人非圣贤孰能无过。编写程序中总是或多或少的错误发生。这些错误根据产生的原因可以分为三种:语法错误逻辑错误和异常错误。

针对不同的错误,易语言提供不同的解决方案,但首先要区分三种错误,我们以走路为例说明,一个人要到某地,,路线的选择和进行过程好比是我们设计好的程序,如果路线正确,天气理想,个人在努力就一定会到到目的地,这就说程序运行正常,但可能会出现这样的情况,比如第一,汽车没有油了。。这种不符合规则的做法在程序的一开始我们就已经知道错误了,就好比编译错误,第二,这人的路线错了,好比在岔道口走错了方向,结果走到了其他的地发,这好比逻辑错误,第三,遵守了规则,路线也正确,但是没想到某个路被洪水冲垮了,这就是运行错误。

1.语法编译错误

不正确的书写格式会造成编译错误,比如漏掉了某些标点符号,调用函数没有提供必要的参数,数据类型不匹配,这些错误大多都会在编译调试时候自动检测出来并显示错误信息。

2.逻辑错误

当应用程序为按照预期的方式执行时就会产生逻辑错误,从语法的角度来看,代码是正确有效地,运行过程也是顺利的,但是产生了不正确的结果,其原因就是应用程序逻辑出现了错误。

检测程序是否含有逻辑错误可以采用人工检查代码测试程序的方法,测试就是运行应用程序,将结果和预期的目标进行比较的一种动态检查手段,对含有逻辑错误的程序需要进行调试,易语言提供了强大使用方便的调试手段,能帮助我们了解程序运行的整个过程和每个时刻的状态,从而迅速定位错误

3.运行异常错误

应用程序运行期间,当一个语句执行操作时发生错误的事件,就会产生运行异常错误,比如用户意料之外的数组下标越界等,这些错误如果没有被代码捕获,会是程序突然异常终止而无法继续运行。

8.2如何调试程序

1.常用的调试手段

再优秀的程序员都不能保证写出来的程序十全十美没有任何错误,出现错误不可怕只要熟悉的使用调试工具,采用合理的调试手段,就能快速排除错误,常用的调试手段有。

▲设置运行断点

再猜想可能发生错误的过程中设置断点,然后执行程序,当程序执行到断点实在的语句时,程序会中断(运行暂停),这是可以观察一些重要的变量和属性的值,看是否符合逻辑。

▲单步跟踪

在程序处于中断模式下,可以控制程序语句一步一步的执行,从而找出错误所在的语句或过程

▲监视变量值

对关键变量进行实时监控,观察变量值是否发送预期的变化,这是最有效的调试手段,因为程序的主体人物就是对数据的加工,程序是否成功也就取决与保存数据的变量是否完成预期的运算

▲代码中添加调试语句

为了简化调试过程或程序不便于进行中断运行,可以在代码中加入调试语句,不影响程序正常的操作流程而处处关键的中间处理结果,例如可以使用输出调试文本语句在提示窗口中输出中间结果。

2.设置断点

下面已上一章7-1.e程序为例子。说明如何使用易语言的调试工具完成对程序的调试稍微修改下7-1的例子我们直接对数组元素赋值.

假设我们输入了数字0但是程序却报告虾米都没找到。调试的思路就是:首先想到的是肯定在查找的子程序中出现了问题。于是将断点设置在子程序中,然后单步执行循环语句,观察每次从数组中取出来的元素是否正确,是否与提供的数值相同哦,直到查出问题,具体操作步骤如下。

可以在设计代码是设置断点,具体方法:首先将光标移动到要设置断点的代码行。然后按下【F9】键,或者点击运行菜单设置或清除断点

在执行上述操作就会清除断点。

设置了断点后,易语言将会在代码行左边的灰色空白区域显示个红色圆圈。

3.运行程序

设置断点只是为运行做准备,想要程序正好停在断点所在的代码行,必须让程序运行起来,并且要确保处理逻辑肯定能够进入断点所在的过程。如果程序在运行过程中执行

不到断点所在的位置,那么该断点达不到中断程序的作用

按下启动按钮,开始执行程序,与普通程序运行没有什么区别。一旦运行到断点处程序会自动中断并返回易语言代码区,光标停在断点语句,程序处于等待状态,这成为调试中断状态。

中断状态只需要再次点击启动按钮就能继续运行。

4.单步跟踪

程序进入中断模式后,还有断点的行没有执行,如果观察断点以后行在运行时候发生了什么,就要使用单步跟踪运行来跟踪运行状态,跟踪过程中可以随时了解人和变量或表达式的值。

▲单步跟踪

每按下一次【F8】程序就会自动执行一行,然后等待,如果程序当前行调用了一个过程,会跳过过程,如果需要查看过程内部,则使用Shift+F8来单步跟踪进入,跟踪到过程的内部。例子中我们至于要不断的按下F8就可以跟踪检查没次循环体的执行情况

▲监视变量

中断时可以将光标停留在任意一个变量上,都会快速的显示该变量的当前值如图

为了更方便的了解变量的值和变量的变化情况,可以添加变量到监视窗口,以便同步查看,方法是选择监视表窗口在任意位置点击右键在右键菜单中选择添加如图

在弹出的查看修改窗口中在请输入欲计算的表达式\变量输入框中填写变量或者表达式,然后点添加到系统监视表按钮这样要监视的变量就会出现在监视表中,并且随着程序的执行,监视窗口中的变量或表达式会同步更新。

▲使用变量表窗口

变量表窗口是专为变量设计,可以很方便的查看到当前的程序集变量全局变量和局部变量值数组个元素值。如图

▲使用输出窗口

输出窗口是另外一种调试方法,在该窗口能计算任何有效的表达式并输出结果。当

前活动窗口.如图使用输出调试文本(数组[局部计次])即可在输出窗口中输入数组元素的数据

5.修改并测试

通过调试后发现了问题,找到了错误后就可以修改并且在此运行测试,最简单的方法就是停止程序运行,然后修改代码。

修改完后再次测试时候可以直接用鼠标选取刚刚发生错误的语句然后点击运行菜单执行到光标处或则按下Alt+F8然后按下F8单步跟踪或则F5继续运行,这时候变量值可能和修改以前不同,我们可以通过变量表中选取想要修改的变量值然后修改变量,放入我们关心的变量值然后再测试逻辑是否正确。

在确认无错误之后就可以结束调试工作了。

本章小结

程序的错误分为三种语法编译错误逻辑错误运行异常错误

为了调试错误易语言提供了方便的调试工具如设置断点单步跟踪执行到光标处变量表达式监视表等等。

在进行简单跟踪变量不影响程序运行的情况下尽量使用输出调试文本()这点尤其是新手极为重要。

中断原理应用程序设计

第六章中断原理应用程序设计 6.1 中断系统的基本概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生);CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务);待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断。 中断源 引起CPU中断的根源,称为中断源。中断源向CPU提出的中断请求。CPU暂时中断原来的事务A,转去处理事件B。对事件B处理完毕后,再回到原来被中断的地方(即断点),称为中断返回。实现上述中断功能的部件称为中断系统(中断机构)。 MCS-51单片机提供了5个中断源,其中两个为外部中断请求源(P3.2)和(P3.3),两个片内定时器/计数器T0和T1的溢出请求中断源TF0(TCON的第5位)和TF1(TCON的第7位),1个片内串口发送或接收中断请求源TI(SCON的第1位)和RI(SCON的第0位)。 中断优先级 同一优先级中的中断申请不止一个时,则有中断优先权排队问题。同一优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,其排列如所示: 表6-4 MCS-51单片机中断源的自然优先级及入口地址

需要说明的是,为了便于用C语言编写单片机中断程序,C51编译器也支持51单片机的中断服务程序,而且用C语言编写中断服务程序,比用汇编语言方便的多。C语言编写中断服务函数的格式如下: 函数类型函数名(形式参数列表)[interrupt n] [using m] 其中,interrupt后面的n是中断编号,取值范围0~4,;using中的m表示使用的工作寄存器组号(如不声明,则默认用第0组)。 例如,定时器T0的中断函数可用如下方法编写: void Timer(void) interrupt 1 using 0 //定时器T0的中断服务函数,T0的中断编号为1,使用第0组工作寄存器 { ........//中断服务程序 } 6.2 中断系统的控制 定时器/计数器控制寄存器TCON TCON的功能是接收外部中断源(、)和定时器(T0、T1)送来的中断请求信号。字节地址为88H,可以进行位操作。表5-5列出了TCON的格式。 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TF1 TR1 TF0 TR0 IT0 IT1 IE0 IT0 表6-5 定时器/计数器控制寄存器TCON的格式

公司账务处理流程设计方案

我在xxxx工作。公司生产及销售插秧机等农用机械。属于中小型科技型企业。 随着企业日益发展壮大,企业对管理模式进行了适时的调整,通过启动管理流程再造工作,明确了公司各级管理机构和管理职能,并将管理目标逐级分解到位,通过严格的管理制度及措施予以实现,使各项管理工作流程化、规范化、系统化,促进企业管理工作的全面提升。公司财务部主要组织结构如下: 财务部主要组织结构 (一)现金的管理 1、现金的使用范围 根据国务院颁发的《现金管理暂行条例》的规定,除一般零星日常支出外,其余投资、工程支出都必须通过银行办理转账结算,不得直接兑付现金。企业收支的各种款项必须按照规定办理,在规定的范围内使用现金,允许的范围有: ①职工工资、津贴,个人劳务报酬; ②根据国家规定颁发给个人的科学技术、文化艺术、体育等各种奖金; ③各种劳保、福利费用以及国家规定的对个人的其他支出; ④出差人员必须随身携带的差旅费; ⑤结算起点(1000 元)以下的零星支出; ⑥中国人民银行确定需要支付的其他支出。 2、现金的结算管理 ①办理现金收入业务,要根据经济业务的内容向对方(单位或个人)开具合法收据,并将现金及时存入银行,不准以任何名义、形式设立小金库,不得随意坐支。 ②各部门根据业务需要办理借款业务,需填写“借款单”,要素填写必须齐全,经部门领导及总会计师审批后,出纳方可支付借款。借款后要及时归还借款或拿凭据报销。 ③个人办理现金报销业务,必须按要求填制“费用报销单”或“差旅费报销单”,并随附原始单据或原始批件。出纳按照费用报销流程的规定付款。 ④收付款后,要在报销凭证上加盖“现金收讫”“现金付讫”章。 ⑤财务部门要严格按照有关规定办理现金收付业务,对于不符合规定或是手续不全的,财务部门不得予以办理。 3、现金的日常管理 ①设置现金日记账,每日经济业务完成后,出纳人员要逐笔记录日记账并核对库存现金,做到日清月结,确保库存现金的账面余款与实际库存额相符(账实相符),银行存款余款与银行对账单相符(账账相符),现金、银行日记账数额分别与现金、银行存款总账数额相符。如发生长、短款问题,须于当日查找、核对清楚、寻查原因,并及时报告部门领导。长款必须按规定入账,短款由相关责任人赔偿。 ②不得以白条及单据抵库存现金,不得保留账外现金。

农村普通高中选修课课程资源开发研究――易语言程序设计

农村普通高中选修课课程资源开发研究――易语言程序设计 发表时间:2017-12-11T15:03:50.220Z 来源:《知识-力量》2017年8月下作者:向光明 [导读] 计算机是帮助人们解决问题的有力工具,而编程语言则是操作这一工具的最好方式,但是使用者具体运用哪一种语言其实并不十分重要,重要的是解决问题的逻辑思路。 摘要:计算机是帮助人们解决问题的有力工具,而编程语言则是操作这一工具的最好方式,但是使用者具体运用哪一种语言其实并不十分重要,重要的是解决问题的逻辑思路。所以,将易语言程序设计作为农村普通高中的一门选修课程,实际上也是希望借此机会培养学生的全局意识、创新精神和实践精神。由于学习时间有限,且程序设计本来就是一个很难的问题。为此,调整选修课的教学内容显得尤为必要。本文主要就农村普通高中易语言程序设计选修课课程资源开发这一主题展开研究。 关键词:农村普通高中选修课课程资源开发易语言程序设计展开研究 引言: 随着现代科学技术的不断快速发展,以及人们对当代学生教育的要求不断提高,传统的计算机课程教学方式早已无法满足学生的实际学习需求了。尤其是易语言程序设计这一新课程的开发,更是对教师教学水平提出了更高的要求。从目前的教学情况看,农村普通高中计算机基础教育课程的开展情况并不乐观,尤其是在新课程教学改革的背景下,对于选修课程的教学质量要求更是相应有所提高,而易语言程序设计作为一门较难的学科知识,其教学目标的实现更是难以达到预期的效果。本文主要针对易语言程序设计这一选修课程的资源开发进行研究,也是希望能够整体上提高农村高中计算机课程教学的质量,进而增强学生今后工作的竞争力。 一关于易语言的基本概况 易语言是一款全中文全可视跨平台的编程工具,由大连大有吴涛易语言软件开发有限公司设计开发的,它的特点是全中文化,入门要求低,几乎只要懂得使用计算机和文字输入的人都可以进行程序设计,而且它的开发语言也是全中文的、生活化。而将易语言程序设计纳入到农村普通高中选修课课程资源开发范畴之中,这对学生今后的生活,学习,工作都将会产生十分积极的影响。 二易语言程序设计选修课课程资源开发的必要性 2.1时代发展的必然需求 随着信息技术的逐渐普及和社会人群需求量的加大,近几年,信息技术在社会各行各业的普及范围也变得越来越广,并且帮助人们解决了很多生活,工作中所存在的问题,而易语言程序设计就是非常重要的一个工具。 作为计算机课程中的一部分知识,它不仅是教会学生如何更好的使用计算机,而且还将培养学生的创新意识,逻辑思维能力和实践精神,并从根本上提高他们的计算机操作能力。总体而言,将易语言程序设计纳入到农村普通高中选修课程资源开发范围中,其实也是素质教育理念提出后的必然结果,而这也是今后学生必须要具备的基本素质和能力,当然,也从侧面反映出了当下我国信息技术发展的趋势。 2.2改变了传统的计算机教学模式 以往,农村普通高中的计算机课程内容都极其有限,而且教师教学的方式也比较传统,其中比较典型的就是“填鸭式”的教学模式。然而,教师们一味的将大量的计算机理论知识灌输给学生,使用学生感觉计算机知识太难,兴趣索然,最终沉迷于游戏,制约他们的全面发展。 但是随着计算机基础教育改革进程的不断加剧,计算机课程的内容开始逐渐增多,而易语言程序设计就是其中非常重要的一部分。由于这一课程知识的学习对于学生操作等各方面能力要求都相对更高,因此,作为教师就必须要改变相对传统的教学方式,这样也才能够有效激发学生对这一选修课程的学习兴趣,潜移默化中,他们的思维以及创新意识也将得到有效的提高,与此同时,学生对相关计算机理论知识的掌握也将变得更加牢固,整体而言,也是利于高中计算机课程教学效率提高的。 三如何促使易语言程序设计选修课课程资源实现有效开发 3.1指导思想:以培养学生的信息素养为目标 “培养学生的信息素养”既是中学信息技术的培养目标,也是中学信息技术教学关注的热点问题。对于农村高中学生而言,易语言程序设计这一课程学习本身就较难,研究还发现,部分学生在细节知识点上还存在着诸多问题,比如:一个函数参数甚至一个分隔符的错误,就会直接导致学生程序无法正常运行。所以在实际教学中,教师需要引导学生从细处入手,进而培养他们养成良好的程序录入习惯;又比如,有的学生在调试程序遇到了问题,那么首先就是引导学生查看函数或命令参数是否运用了规定符号等等,当同学们从细处发现并解决问题后,自然也就豁然开朗了。 3.2课程资源的选择以“易”为准则 程序设计本身是一个较难的课题,结合农村高中生的实际情况,所选课程资源一定要做到易学易懂的原则,因此在课程资源的选择上坚持了“三易”原则: 易学:易语言全中文化,入门要求低,几乎只要懂得使用计算机和文字输入的人都可以进行程序设计,而且它的开发语言也是全中文的、生活化。 易操作:学生学习时间有限,如果长时间学习理论会导致学生失去学习兴趣,失去选修课本身的意义,所以课程资源内容上,偏重于“入门”级的操作内容,以设计小程序入手,让学生“当堂见交效”,体验成功,快乐学习! 总之,结合学生实际情况,选择易学易操作的课程资源,以培养学生学习方法和学习能力为主,不断提高学生的信息素养,为他们将来进一步学习打下坚实的基础。 3.3严格遵循实践教学步骤 易语言作为可视化程序,里面包含有大量需要进行实践教学的内容,不过,教师在教学的时候一定要遵循相应的步骤。 比如:针对“如何设计一个优美的界面”这个问题,在进行界面设计教学的时候就要有意识的培养学生把握全局的观念,并遵循以下几个

汇编语言中断程序设计

汇编语言程序设计实验报告 学院:计算机科学与技术专业:计算机科学与技术班级:计科131

LEA DX,FNAME MOV CX,0 ;语句1 INT 21H JC EXIT MOV FNUM,AX MOV BX,AX ;语句2 MOV CX,100 MOV AH,40H LEA DX ,BUF INT 21H MOV BX,FNUM MOV AH,3EH INT 21H EXIT: MOV AH,4CH INT 21H CODE ENDS END START 使用相应的文本编辑器建立文件,内容如上所示。 2.汇编并运行此程序后,在当前目录建立的文件名是什么其内容是什么 1>汇编: C:\masm> masm lab7; 2>连接: C:\masm> link lab7; 3>运行: C:\masm> lab7 3.若将语句1 改为mov cx,1,则运行情况与前面会有什么区别 4.若将语句1 改为mov cx,2,则运行结果同上会有什么不同并简要说明此语句的作用. 5.若将语句2 改为mov bx,1,则运行结果会有什么不同简要说明则语句的作用. 实验二:编写0 号中断的处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“divide error!”,然后返回到DOS。源程序下: assume cs:code code segment start: mov ax,cs mov ds,ax

mov si,offset do mov ax,0 mov es,ax mov di,200h mov cx,offset doend-offset do ;安装中断例程cld rep movsb mov word ptr es:[0],200h mov word ptr es:[2],0 ;设置中断向量表 mov dx,0ffffh mov bx,1 ;测试一下 div bx mov ax,4c00h int 21h do:jmp short dostart db 'divide error!' dostart: mov ax,0 mov ds,ax mov si,202h mov ax,0b800h mov es,ax mov di,160*12+60 mov cx,13 s: mov al,ds:[si] mov ah,15 mov es:[di],ax inc si inc di inc di loop s mov ax,4c00h int 21h doend:nop code ends end start

账务处理流程(总)

外账账务处理 (一)概要 我司外账账务处理基本程序如下(金蝶KIS财税王标准版): 1.建立帐套,初始化财务数据(期初) 2.根据日常通过审核报销过后的原始单据制作记账凭证(每天) 3.预提当月工资(月末) 4.支付上月工资(月末) 5.计提固定资产折旧(月末) 6.无形资产摊销(月末) 7.计提油费(中石化、中油等)(月末) 8.计提粤通卡费用(月末) 9.摊销未确认融资费用(月末) 10.根据发票明细表确认收入制作记账凭证(次月5号前) 11.确认当期税费并计提(次月10号前) 12.凭证检查、凭证审核、凭证过账(次月12号前) 13.凭证结账(次月15号前) 14.当期结账情况检查,纳税申报、缴纳情况检查(次月15号) 15.报表出具(次月15号前) 1.原则 (1)账务处理原则要与本单位的业务性质、规模大小、繁简程度、经营管理的要求和特点等相适应,有利于加强会计核算工作的分工协作,有利于实现会计控制 和监督目标。 (2)账务处理程序要能正确、及时、完整的提供会计信息使用者需要的会计核算资料。 (3)账务处理程序要在保证会计核算工作质量的前提下,力求简化核算手续,节约人力和物力,降低会计信息成本,提高会计核算的工作效率。 2.要求 (1)要适合本单位所属行业的特点,即在设计会计账务处理程序时,要考虑自身企业单位组织规模的大小,经济业务性质和简繁程度,同时,还要有利于会计工 作的分工协作和内部控制。 (2)要能够正确,及时和完整地提供本单位的各方面会计信息,在保证会计信息质量的前提下,满足本单位各部门,人员和社会各有关相关行业的信息需要。 (3)适当的会计账务处理程序还应当力求简化,减少不必要的环节,节约人力,物力和财力,不断地提高会计工作的效率。 3.会计要素确认计量以权责发生制为原则 权责发生制:以权利和责任的发生来决定收入和费用归属期的一项原则.。指凡是在本期内已经收到和已经发生或应当负担的一切费用,不论其款项是否收到或付出,都作为本期的收入和费用处理;反之,凡不属于本期的收入和费用,即使款项在本期收到或付出,也不应作为本期的收入和费用处理。该原则的的在实际账务处理中最重要的特点:实质重于形式。

DSP调试及烧写和加载常见错误及分析

Error: Read status value 0x0001 from symbol PRG_status Flash algorithm failed during clear operation 开始可以正常烧写的,但是上机调试了一下就不能写了. 在烧写lf2407内部flash时出现如下错误,不知是什么原因造成的? Error:Read status value 0x0001 from symbol PRG_status Flash algorithm failed during clear operation. 换了一个芯片后正常 之前有一次在试CCS功能时,一不小心点了一次加密,还没有执行完,就马上点了解密,大概这样烧坏了吧! 太脆弱了,再也不敢试加密了 CMD文件要避开FLASH的40H--44H区间, 我也出现过这样的问题,烧写2407A的片内flash时会出现下面的错误提示:Error: Read status value 0x0001 form symbol PRG_status Flash algorithm failed during clear operation 后来换了一块2407就能烧写了。 是不是2407的flash坏了?有没有办法检测或者修复flash? 昨天在网上查了一下,很多人都遇到了这种问题,可能是dsp内部flash烧坏了吧! 今天重新换了一块芯片,可以烧录进去了,但是上拿到样机上调试一下,再烧录就出现了同样的问题,估计又是flash坏了,到底是什么原因引起的?是不是电源引起的呢? 我也出现过能仿真,但不能烧写的情况!解决方法: 解决方法:降低时钟频率。点击FLASH插件上的“View Config File”,打开VAR.h文件。将该文件中的“PLL_PATIO_CONST .Set 0000h”改成 “PLL_PATIO_CONST .Set 0200h”存盘后,执行目录下的Buildall.bat批处理文件。再重新启动CCS及FLASH插件。 请教高手:在烧写程序的时候出现如下错误:Error: Read status value 0x0001 from s ymbol PRG_status Flash algorithm failed during clear operation

单片机_C语言函数_中断函数(中断服务程序)

单片机_C语言函数_中断函数(中断服务程序) 在开始写中断函数之前,我们来一起回顾一下,单片机的中断系统。 中断的意思(学习过微机原理与接口技术的同学,没学过单片机,也应该知道),我们在这里就不讲了,首先来回忆下中断系统涉及到哪些问题。 (1)中断源:中断请求信号的来源。(8051有3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1(这两个低电平有效,上面的那个横杠不知道怎么加上去))(2)中断响应与返回:CPU采集到中断请求信号,怎样转向特定的中断服务子程序,并在执行完之后返回被中断程序继续执行。期间涉及到CPU响应中断的条件,现场保护,现场恢复。 (3)优先级控制:中断优先级的控制就形成了中断嵌套(8051允许有两级的中断嵌套,优先权顺序为INT0,T0,INT1,T1,串行口),同一个优先级的中断,还存在优先权的高低。优先级是可以编程的,而优先权是固定的。 80C51的原则是①同优先级,先响应高优先权②低优先级能被高优先级中断③正在进行的中断不能被同一级的中断请求或低优先级的中断请求中断。 80C51的中断系统涉及到的中断控制有中断请求,中断允许,中断优先级控制 (1)3个内部中断源T0,T1,串行口,2个外部中断源INT0,INT1 (2)中断控制寄存器:定时和外中断控制寄存器TCON(包括T0、T1,INT0、INT1),串行控制寄存器SCON,中断允许寄存器IE,中断优先级寄存器IP 具体的是什么,包括哪些标志位,在这里不讲了,所有书上面都会讲。 在这里我们讲下注意的事项 (1)CPU响应中断后,TF0(T0中断标志位)和TF1由硬件自动清0。 (2)CPU响应中断后,在边沿触发方式下,IE0(外部中断INT0请求标志位)和IE1由硬件自动清零;在电平触发方式下,不能自动清楚IE0和IE1。所以在中断返回前必须撤出INT0和INT1引脚的低电平,否则就会出现一次中断被CPU多次响应。 (3)串口中断中,CPU响应中断后,TI(串行口发送中断请求标志位)和RI(接收中断请求标志位)必须由软件清零。 (4)单片机复位后,TCON,SCON给位清零。 C51语言允许用户自己写中断服务子程序(中断函数) 首先来了解程序的格式: void 函数名() interrupt m [using n] {} 关键字 interrupt m [using n] 表示这是一个中断函数 m为中断源的编号,有五个中断源,取值为0,1,2,3,4,中断编号会告诉编译器中断程序的入口地址,执行该程序时,这个地址会传个程序计数器PC,于是CPU开始从这里一条一条的执行程序指令。 n为单片机工作寄存器组(又称通用寄存器组)编号,共四组,取值为0,1,2,3 中断号中断源 0 外部中断0 1 定时器0 2 外部中断1 3 定时器1中断 4 串行口中断 (在上一篇文章中讲到的ROM前43个存储单元就是他们,这5个中断源的中断入口地址为: 这40个地址用来存放中断处理程序的地址单元,每一个类中断的存储单元只有8B,显然不

建筑施工企业账务处理及流程

建筑施工企业财务及相关业务流程 1、企业性质为建筑施工企业集团,管理层次分为集团公司、分公司、项目部三级。 2、本流程设计目的主要是让财务部门相关人员了解本岗位工作内容以及与相关业务部门的工作联系。 3、本流程的设计依据是企业会计制度、公司内部相关制度及规定,其中涉及税金交纳的部分内容,具有该企业的特点,其他企业恐不具有参照意义。 XX建筑施工企业财务及相关业务流程 一、材料业务流程 1、申购:每月初,由各工程项目部根据施工进度估算每月需耗用的材料品种、规格、数量,向公司材料部提出申请。 2、供应商的选择和评价: 材料部根据供应商的资质、供应能力、信誉等条件编制供应商名册,对达到要求的供应商评出相应等级,优先选择高等级的供应商,坚决杜绝不合格的供应商参加投标和供货。 按材料供应商建立采购信息档案,并对已验收的材料做好相应的标识,保证各种材料的可追溯性。 3、采购:材料部收到项目部提出的材料申请后,按照交易额的大小采取招标、直接采购等方式,向在册供应商进行询价,按照同质低价的原则决定供货商和供货数量。 4、验收: 供应商送货至项目部,项目部材料保管员按照提出申请的材料品种、规格、质量、数量逐一核对无误后,办理入库手续并在验收单上签字,同时报经各项目部材料员签字确认。 材料验收单一式三联,一联留材料保管员处作为登记仓库材料账的依据,一联交供应商作为结账凭据,一联送公司财务部入账。 5、领用: 项目部各班组,应严格按照相应施工进度的材料需用量领用,不得集中领用或领用与当前施工不相符的材料。 领用时,应由仓库保管员填制领料单,由领用班组签字,同时应报经项目部负责人签字批准

后,仓管员按领料单上的品名、规格、数量发料。 6、结存:每月月末(26日前),各项目部应对库存的各种材料(暂时对钢筋、钢材、水泥三种材料)进行盘点,编制材料收发存月报表,填清结存材料的数量、单价、金额,经盘点人员和仓管员签字后于当月29日前报送至公司财务部。 7、库存管理: 材料仓库应按照库存材料的品种、属性分别采取有效的保管措施,以保证库存物资的完好无损。 材料仓库应建立库存材料台账,严格按收料单、领料单登记,月末及时计算出各种材料的账面结存数,定期盘点库存。如有差额,应即使查找原因,并按实际盘点数调整账面数,做到账实相符。 8、废旧物资的处理: 9、检查与督导:公司材料部对各项目部库存材料的使用、管理负有检查、督导的责任。材料部应定期不定期地对各项目部库存材料的管理进行检查,发现问题及时予以指出。 二、产值申报流程 1、确认形象进度:每月月末由经营部根据各在建工程的形象进度计算出完工百分比。 2、确认当月产值:经营部按各在建工程的总造价乘以完工百分比,计算出当月完工产值。 3、申报产值:经营部将各项目的当月产值,报财务部入账。 4、财务部根据经营部经理签字的产值确认单,作为当月收入入账,同时确认各在建工程相应建设单位的应收账款。 三、报表编制、报送流程 本帖隐藏的内容需要回复才可以浏览 1、结账:各单位总账会计于每月末收入、成本、费用、资产、负债、权益等相关业务处理完毕后,先对固定资产、工资等相关系统进行结账,最后对总账系统进行结账。 2、报表编制:总账会计按照集团公司的要求,按月编制资产负债表、利润及利润分配表、现金流量表等9表及按季撰写财务分析。 3、分公司确认:报表编制完成由分公司财务负责人签字后,报至分公司负责人签字确认。 4、上报: 每月5号下午5:00前,各分公司财务部应将经分公司总经理签字确认后的上月报表的电子

ccs33中建立-编译-调试工程及常见错误讲解.

Part1:ccs3.3中新建一个DM6437的示例工程 1、连接好板子,将板子上仿真器的usb口插到电脑上,启动ccs后,ccs会去获取板子信息并在打开的文件目录中自动生成一个文件,如图所示:笔者使用的是6437的板子 2、用file-new选择建立一个dsp/bios文件 在打开的对话框中选择你使用的板子的型号,如下图: 3、这个时候ccs为我们建立了一个bios文件,以图表显示,里面按照所选板子的类型添加相应的硬件和其他模块。保存这个文件到工程目录下先,文件类型为tcf。 4、保存这个文件的同时,ccs按照bios中的配置在当前目录下自动生成了一个cmd文件。此时将tcf文件和这个cmd文件同时添加到工程中,使用 5、然后需要修改一个编译选项,点击下图所示选项进去:

6、打开后在编译选项对话框总会看到一个命令行,其中最后一句是-mv6400,因为用的是6467的板子,所以这个选项要修改成-mv64+;否则编译会报错:编译选项不正确;但并非所有类型的板子都要改,这个只针对型号为64+的板子。 7、file-new-source file建立一个c源文件,保存并加入到工程中。 以下是示例程序: #include #include #include Int main(Int argc, String argv[])//main函数的类型必须这样写 { unsigned int i; unsigned int sum=0; for(i = 0; i<=100; i++ ) {

sum += i; } printf("the sum = %d .\n",sum); printf("the program run over!\n"); printf("the program run over!\n");} 注意:1)如果想要printf正确输出信息,需要添加对应平台的rts64plus.lib文件。这里是64+平台所以是在C:\CCStudio_v3.3\C6000\cgtools\lib目录下的rts64plus.lib文件,否则ccs 会提示如下警告和错误: >> warning: entry point symbol _c_int00 undefined undefined first referenced symbol in file --------- ---------------- _printf E:\\WorkContent\\projectExample\\Test\\Debug\\test.obj >> error: symbol referencing errors - './Debug/Test.out' not built 2)如果想要printf正确输出信息,cmd文件中必须指定heap的大小,即cmd文件这样写: -c -stack 0x00001000 /* Stack Size */ -heap 0x00001000 /* Heap Size */ //前面这三项必不可少 MEMORY { L2RAM: o = 0x10800000 l = 0x00020000 DDR2: o = 0x80000000 l = 0x10000000 } SECTIONS { .bss > L2RAM .cinit > L2RAM .cio > L2RAM .const > L2RAM .data > L2RAM .far > L2RAM .stack > L2RAM .switch > L2RAM .sysmem > L2RAM .text > L2RAM .ddr2 > DDR2 }

程序调试与常见程序错误

程序调试与常见程序错误 目录 一、在Codeblocks中调试程序 (1) 二、存储路径设置问题 (4) 三、修改Codeblocks的设置 (4) 四、提示程序无法调试问题 (6) 五、常见错误分析 (6) 六、程序出错的三种情况 (18) 七、常用的纠错方式 (19) 一、在Codeblocks中调试程序 1.注意事项 不允许工程路径中含有空格、汉字。 2.在相应行号后面点击鼠标左键设置断点 3.打开W ATCHS窗口

4.点击调试按钮 5.可以再watchs窗口看到自动变量。黄色三角表示程序暂停的位置

6.通过单步运行按钮进行单步运行。 7.也可以在debuger标签,command栏输入调试命令进行单步运行、打印变量值等操作。 8.程序运行

二、存储路径设置问题 1. 如果不是默认安装路径,code blocks 就无法找到编译器和调试器,就会出现此类问题。 解决办法:Settings——Compiler and debugger——Toolchain executables——Auto-detect。 2. 输出信息为“某个命令执行失败或异常终止”。 解决方法:通常是相应的编译器找不到,试着将其所在路径放到path环境变量中去。 3. 输出编译错误,如某某文件找不到之类。 解决方法:在项目中设置选项中加上路径(通常可利用customer variable项)。 4. 在调试程序的时候弹出类似""XYZ - Debug": The compiler's setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler. Probably the toolchain path within the compiler options is not setup correctly?! Goto "Settings->Compiler and debugger...->Global compiler settings->GNU GCC Compiler->Toolchain executables" and fix the compiler's setup. Skipping... Nothing to be done (all items are up-to-date)."这种警告。 解决方法:这个错误提示已经说得很清楚了, 找不到编译器, 到菜单Settings->Compiler and debugger...->Global compiler settings->GNU GCC Compiler->Toolchain executables下去修复编译选项前提是你已经装了gcc 如过没装, 就去下个包含mingw的codeblocks, (mingw包含gcc编译器); 三、修改Codeblocks的设置 1.

易语言程序设计 第七章 子程序和模块 免费

<易语言程序设计> 作者:蔷薇的羽翼 第七章子程序和模块 结构化程序的另外一个特征就是将程序自上而下逐渐分解,逐步求精,每次分解可以形成一些小的子程序。每个子程序能实现小的功能目标,他们组合起来能实现一些大的功能目标。初学者可以在学习过程中体会子程序命令带来的好处,不断累积经验后才能熟能生巧 7.1什么是子程序 我们在写程序的过程中时常碰到这样的情况,一个代码段完成的是一项对立的功能,而该功能又会在程序的其他地方重复使用,比如程序中要取得一个文件的不含路径的文件名,因此写了一段代码将该文件的名称和路径分离,可是后来在多个地方需要对多个文件进行这样的处理,将这段代码重复书写多次显然很笨拙,不仅占用空间,而且不利于修改。其实一个事件就是一个子程序,被触发后,这个子程序之内的代码将运行一遍(可以多次触发,多次运行)。 子程序就是一系列的程序语句封装的一个独立的具有特定功能的单元,都有自己的名称,只要需要就能重程序的其他地方进行调用。子程序可以具有返回值,这样在代码运行完毕后给调用者提供一个反馈,调用者就能得到该值进行其他的运算。也可以只去做而不提供返回值 1.如何新建一个子程序。 要想新建一个子程序可以点插入菜单-子程序来完成 也可以在代码编辑区点右键在弹出的菜单中选择新子程序

7.2子程序的编写及使用 1.子程序的编写 新建一个子程序,子程序的默认名为子程序1我们给他重新命名主要用来方便记忆及调用. 【例7-1】利用子程序查询指定数组(随机元素值)中的元素值是否有等于指定的数值。 详见7-1.e 关于数组随机赋值前面第六章已经讲解了不再重复。 可这行代码我们新建的子程序名叫查询带有一个整数型参数所以在调用时 命令就是查询(整数型)。 2.具有返回值的子程序

《易语言中文编程从入门到精通》

绍兴县教研室试点教材 汉语编程工具易语言 汉语编程工具易语言 汉语编程工具易语言

易语言教程――初级版 目录 目录..........................................................................................................................- 2 - 第一部分 易语言入门....................................................................................................- 3 - 第一课 走进“易”世界........................................................................................- 3 - 一、打开“易语言”设计窗口........................................................................- 3 - 二、认识“易语言”........................................................................................- 3 - 三、第一个易程序............................................................................................- 5 - 四、小结............................................................................................................- 6 - 第二课 简单的人机交互........................................................................................- 7 - 一、第一个交互程序........................................................................................- 7 - 二、小结............................................................................................................- 9 - 第三课 按钮与标签的综合运用..........................................................................- 10 - 第四课 图文并茂..................................................................................................- 12 - 第五课 看看计算机的计算能力..........................................................................- 14 - 第六课 让世界丰富多彩......................................................................................- 16 - 第七课 顺序程序结构..........................................................................................- 18 - 第八课 猜数(选择程序结构)..........................................................................- 21 - 第九课 多分支控制结构语句..............................................................................- 25 - 第十课 练习..........................................................................................................- 27 - 一、选择题:..................................................................................................- 27 - 二、编程题:..................................................................................................- 27 - 第十一课 循环程序结构......................................................................................- 29 - 第十二课 循环程序结构练习..............................................................................- 33 - 一、选择题......................................................................................................- 33 - 二、编程题......................................................................................................- 34 - 第十三课 菜单的设计..........................................................................................- 36 - 一、菜单的基本概念......................................................................................- 36 - 二、菜单编辑器的打开..................................................................................- 36 - 三、设计下拉式菜单......................................................................................- 37 - 第十四课 对话框..................................................................................................- 41 - 一、提示类对话框..........................................................................................- 41 - 二、自定义对话框..........................................................................................- 42 - 三、通用对话框..............................................................................................- 43 - 附录 实例应用荟萃..............................................................................................- 45 -

操作系统实验一中断处理

实习一中断处理 一、实习内容 模拟中断事件的处理。 二、实习目的 现代计算机系统的硬件部分都设有中断机构,它是实现多道程序设计的基础。中断机 构能发现中断事件,且当发现中断事件后迫使正在处理器上执行的进程暂时停止执行,而让操作系统的中断处理程序占有处理器去处理出现的中断事件。对不同的中断事件,由于它们的性质不同,所以操作系统应采用不同的处理。通过实习了解中断及中断处理程序的作用。本实习模拟“时钟中断事件”的处理,对其它中断事件的模拟处理,可根据各中断事件的性质确定处理原则,制定算法,然后依照本实习,自行设计。 三、实习题目 模拟时钟中断的产生及设计一个对时钟中断事件进行处理的模拟程序。 [提示]: (1) 计算机系统工作过程中,若出现中断事件,硬件就把它记录在中断寄存器中。中 断寄存器的每一位可与一个中断事件对应,当出现某中断事件后,对应的中断寄存器的某一位就被置成―1‖。 处理器每执行一条指令后,必须查中断寄存器,当中断寄存器内容不为―0‖时,说明有中断事件发生。硬件把中断寄存器内容以及现行程序的断点存在主存的固定单元,且让操作系统的中断处理程序占用处理器来处理出现的中断事件。操作系统分析保存在主存固定单元中的中断寄存器内容就可知道出现的中断事件的性质,从而作出相应的处理。 本实习中,用从键盘读入信息来模拟中断寄存器的作用,用计数器加1 来模拟处理器 执行了一条指令。每模拟一条指令执行后,从键盘读入信息且分析,当读入信息=0 时,表示无中断事件发生,继续执行指令;当读入信息=1 时,表示发生了时钟中断事件,转时钟中断处理程序。 (2)假定计算机系统有一时钟,它按电源频率(50Hz)产生中断请求信号,即每隔20 毫秒产生一次中断请求信号,称时钟中断信号,时钟中断的间隔时间(20 毫秒)称时钟单

企业账务处理程序设计(江苏省品牌专业江苏大学会计学专业实习论文)

企业账务处理程序设计 姓名: 专业: 学号: 所在学院: 指导教师: 年月日

一、概念 账务处理程序也称会计核算程序,它是以复试记账和账簿体系为核心,把会计凭证、记账程序和会计报表有机结合起来的技术组织方法。 二、设计账务处理程序的作用 (一)有利于科学地、经济的提供会计信息,保证信息的质量 (二)是保证会计工作有条不紊进行的重要条件 (三)是凭证设计和账簿设计的前提 三、账务处理程序设计的原则 (一)有利于提高工作效率,准确迅速地生成信息 (二)有利于经济活动分析和加强监督管理 (三)从企业的实际情况出发 四、账务处理程序设计的设计要求 (一)能正确、及时、全面、系统地提供本单位的财务状况 (二)三大要素不可任意增减 (三)防止信息的重复抄录 (四)企业在遵守国家相关法规的前提下,可以设置符合企业经营特点的会计核算程序 五、账务处理程序的设计 图1 账务处理程序图

(一)记帐凭证帐务处理程序 1.记账凭证账务处理程序示意图 图2 记账凭证账务处理程序 2.凭证设置: 收款凭证、付款凭证、转帐凭证 3.帐簿设置: ①日记帐(现金日记帐、银行存款日记帐) ②总分类帐(按规定会计科目和实际需要设置) ③明细分类帐(按需要设置,三栏式、数量金额式、多栏式等) 4.登记特点: 根据记帐凭证直接登记总分类帐; 5.优点 ①简单、易懂、反映对应关系 ②总分类账直接依据记账凭证逐笔登记的,较为详细,有利于对帐和查帐 6.缺点 登记总分类帐的工作量大。 7.适用情况 适用于规模较小,业务量较少的单位。 (二)汇总记账凭证帐务处理程序的优缺点和适用范围 1.汇总记帐凭证帐务处理程序示意图

相关主题