分支程序设计实验实验报告
程序设计实训实验报告(热门20篇)

程序设计实训实验报告(热门20篇)c语言是在国内外广泛使用的一种计算机语言。
其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。
其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,unix,linux,mac,os/2,无一例外,哪一个不是c 语言写的?很多新型的语言如,c++,java,c,j,perl...都是衍生自c语言。
掌握了c语言,可以说你就掌握了很多门语言。
学习c程序这门课一年了,这是我们学的第一门专业课,在大学里c语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。
所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,c语言是计算机的基础,大多数软件都需要用c语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。
同时,我觉得c语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。
在学习一年c语言的过程中我也在慢慢探索怎样才能学好c语言,并总结了一点经验:要了解c语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。
在c语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。
这些都是语法基础也是c语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。
比如说ifelse和switchcase这两种条件语句都是用来判断执行功能的,那我要什么时侯用if什么时侯用switch呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选switch而不会选if。
分支程序的设计实验报告

分支程序的设计实验报告实验目的本实验旨在通过设计一个分支程序来展示控制流程中的分支结构,加深对这一概念的理解,并通过实际编程提高对分支结构的应用能力。
实验原理分支程序是一种常见的控制流程结构,它根据条件的真假选择不同的执行路径。
在编程中,分支程序通常用于判断特定条件是否满足,并根据不同结果执行不同的操作。
常见的条件语句包括if 语句、switch 语句等。
在设计一个分支程序时,需要明确条件和执行路径,并根据不同情况进行相应处理。
分支程序的设计需要考虑条件的正确性和完备性,避免出现判断错误或遗漏情况。
实验过程本实验选择使用Python 语言来设计和实现一个简单的分支程序。
具体步骤如下:1. 首先,根据实际需求确定分支程序的目标和条件。
在本实验中,我们设计了一个分支程序来判断一个数字是否是奇数。
2. 接下来,根据选定条件,实现相应的判断逻辑。
我们使用if 语句来对给定数字进行判断。
如果数字对2 求余等于0,那么这个数字是偶数;否则,这个数字是奇数。
3. 在程序中加入输出语句,以便用户能够看到最终的判断结果。
4. 编译和运行程序,观察输出结果是否符合预期。
在实验过程中,我们还可以进行额外的调试和优化,并添加更多的分支条件来扩展程序功能。
例如,我们可以增加一个分支条件来判断数字是否为负数,或者根据数字的大小进行不同的处理等。
实验结果经过编写、编译和运行,我们得到了一个简单的分支程序。
该程序可以根据给定的数字判断其是否是奇数,并将结果输出给用户。
下面是程序的源代码:pythonn = int(input("请输入一个整数: "))if n % 2 == 0:print("这是一个偶数。
")else:print("这是一个奇数。
")以下是程序运行的示例结果:请输入一个整数: 5这是一个奇数。
请输入一个整数: 8这是一个偶数。
实验总结通过本次实验,我们深入学习了分支程序的设计原理和实现方法,并通过编写一个简单的示例程序加深了对分支结构的理解。
华南理工大学微机与接口实验报告(四实验,题目原理流程图代码截图完整版)

微机原理实验报告班 级:2012级电子科学与技术卓工班级电子科学与技术卓工班姓 名: 黄中一黄中一 学 号: 201236460273序 号:评阅分数:评阅分数:实验一一、实验目的1、学会如何建立汇编源文件ASM2、学会调用MASM 宏汇编程序对源文件进行汇编,获得目标程序宏汇编程序对源文件进行汇编,获得目标程序 OBJ 及LST 列表文件列表文件3、学会调用LINK 连接程序汇编后的目标文件OBJ 连接成可执行的文件连接成可执行的文件EXE 4、学会使用DEBUG 调试程序把可执行文件装入内存并调试运行,用D 命令显示目标程序,用U 命令对可执行文件反汇编,用G 命令运行调试。
命令运行调试。
二、实验设备装有MASM 软件的IBM PC 机三、实验内容1、汇编程序对源程序进行编译,生成扩展名为OBJ 的目标文件;连接程序是将目标程序和库文件进行连接、定位,生成扩展名为EXE 的可执行文件;调试程序是对目标文件进行调试,验证它的正确性。
是对目标文件进行调试,验证它的正确性。
2、DEBUG 程序各种命令的使用方法程序各种命令的使用方法功能功能命令格式命令格式 使用说明使用说明显示内存单元内容显示内存单元内容D 地址地址从指定地址开始显示40H 个字节或80H 个字节个字节 修改内存单元内容修改内存单元内容 E 地址地址先显示地址和单元内容等待输入修改的内容输入修改的内容检查和修改寄检查和修改寄存器的内容存器的内容R 显示全部寄存器和标志位及下条指令单元十六进制数码和反汇编格式和反汇编格式反汇编反汇编U 地址地址从指定地址开始反汇编16个或32个字节个字节 汇编汇编 A 地址地址从指定地址直接输入语句并从指定指定汇编装入内存从指定指定汇编装入内存跟踪跟踪 T =地址=地址 从指定地址开始逐条跟踪指令运行运行 G =地址=地址无断点,执行正在调试的指令执行正在调试的指令 退出退出Q退出DEBUG 返回DOS3、实验过程①、在edit 环境,写字板,记事本等中输入源程序。
实验三---分支结构程序设计实验报告-

XXX大学软件类实验报告
课程名称:C语言程序设计学号:
姓名:
班级:
指导教师:
开课学期:
学院:
XXX大学教务处
4.switch语句。
四、实验过程及内容:(运行结果请抓图到对应题目的下方)
1. 先分析以下程序,写出运行结果,再上机检验。
实验结果:
2.先分析以下程序,写出运行结果,再上机检验。
实验结果:
3.先分析以下程序,写出运行结果,再上机检验。
实验结果:
4. 程序改错题。
以下程序的功能是将a、b、c三个数从小到大进行排序,即使得a≤b≤c.。
程序中有一些错误,试将其改正并上机验证。
实验结果:
5. 程序填空题。
以下程序的功能是:从键盘接收一个字符,如果是小写英文字母,则将其转换为相应的大写字母;如果是大写英文字母,则将其转换为相应的小写字母;如果是其他字符,则不做转换。
填空将程序补充完整并上机验证。
实验结果:
6. 编程题。
根据以下分段函数计算y的值,x的值由键盘输入。
保留两位小数
输入格式:-2
输出格式:y=-2.00
实验代码:
实验结果:
7.输入一个正整数作为年份,编程判断该年是否为闰年。
若是输出“Yes”,否则输出“No”。
提
示:能被4整除,但不能被100整除的年份;或者能被400整除的年份。
实验代码:
实验结果:。
《Python程序设计》实验3---Python基本数据类型及分支结构实验报告

**大学数学与信息工程学院《Python程序设计》实验报告实验名称:实验3 Python基本数据类型及分支结构班级:姓名:,学号:实验地点:日期:《一、实验目的:[实验目的和要求]1、熟练掌握Python三种数字类型及其应用2、熟练判断条件表达式的真假3、熟练掌握Python分支结构二、实验环境:1、计算机,局域网,python 软件三、~四、实验内容和要求:(直接将实验步骤及截图写在题目下面,结果必须截图)1、复数z=-3+4j,用Python程序求得对应的实部和虚部并计算z的绝对值,并思考输出的绝对值代表什么含义2、请将下列数学表达式用Python程序写出来,并运算结果1)427345x+-⨯=代码:a=2**4 b=7。
c=3 d=4 e=5x=(a+b-c*d)/e print(x)2)2131677()(mod )/x =+⨯代码:>a=3**2 b=1 c=16 d=7x=(a+b)*(c%d)/7 print(x)3、编写程序,根据输入的长和宽,计算矩形的面积并输出。
要求:输入语句input 实现同步赋值。
、lw=input('请输入矩形的长和宽,以空格分隔:') length,width=map(float,()) s=length*widthprint("矩形面积为:",s)4、编写程序,用户输入一个三位以上的整数(如果不是三位数则提示输入错误),输出其百位以上的数字。
例如用户输入1234,则程序输出12。
(提示:使用整除运算。
)代码:a=eval(input('请输入一个三位以上的整数:'))!b=int(a/100)if(a<99):print('输入错误')else:print(b)------------------------------------------------------------------------------------------------------------------------------5、已知某课程的百分制分数mark ,将其转换为5分制(优、良、中、及格、不及格)的评定等级grade ,评定条件如下:(注意:不要存在冗余条件) 、908090=7080607060mark mark mark mark mark ≥⎧⎪≤<⎪⎪≤<⎨⎪≤<⎪⎪<⎩优良成绩等级中及格不及格代码:mark=eval(input('请输入你的分数:')) if mark>=90: print('优') elif 90>mark>=80: print('良') elif 80>mark>=70:、print('中') elif 70>mark>=60: print('及格') elif mark<60:print('不及格')6、-7、 (1)编写计算n的阶乘的程序,n由用户输入。
汇编语言程序设计实验报告二(分支循环程序实验)

汇编语言程序设计实验报告二(分支循环程序实验)一、实验目的1、掌握分支程序、循环程序的设计方法。
2、熟悉DEBUG程序的使用方法。
3、掌握汇编语言程序的编辑、汇编、连接以及调试过程。
二、实验内容1、编写一程序,将内存中某一区域的数据传送到另一个区域中(要求用循结构,不考虑数据块重叠问题)。
2、编写一程序,将内存中某一区域的数据传送到另一区域(要求考虑数据块重叠问题)。
三、实验准备1、预习数据传送指令,熟悉分支和循环程序设计方法。
2、预习DEBUG调试程序的使用方法。
3、根据实验内容要求,编写好实验源程序。
四、实验步骤1、用QE或其它编辑软件,在计算机上编辑源程序,使其正确无误。
2、汇编、连接源程序,产生.EXE可执行文件。
3、运行程序。
(1) 进入DEBUG。
打入DEBUGT MYPROG.EXE。
MYPROG为所编程序的文件名。
(2) 先用G命令连续剧连续执行程序,程序执行完毕后,观察运行结果。
如果执行后是对的,说明程序编写是正确的,如果结果不对,说明程序有错误,则执行下一步。
(3) 检查程序。
在程序中设置若干断点,以便杳出错误所在。
(4) 采用单步命令T或执行程序,观察各寄存器和存储单元内容,以便找到错误之处。
五、实验报告要求1、列出程序清单,并给出程序流程图。
2、总结实现数据传送的几种方法,指出它们的区别。
开始3、分析实验中所遇到的一些问题,分析错误原因。
4、说明本实验中是如何使用DEBUG进行调试的。
CX、SI、DI置初值六、流程图勤开始设置增量方式CX、SI、DI置初值保存SI内容AL [SI] SI SI+源块长度[DI] AL N SI>DIYSI SI+1 恢复SI内容恢复SI内容DI DI+1CX CX-1 设置减量方式N CX=0, SI指向源块末尾DI指向目的块末尾Y结束 [DI] [SI]题一流程图 N 传完了吗, 书馆 Y结束题二流程图七、程序清单题一程序清单:STACK SEGMENT STACK ‘STACK’DB 100 DUP(0)STACK ENDSDATA SEGMENT PARA ‘DATA’SOUR DB 0、1、2、3、4、5、6、7、8、9 DEST DB 10 DUP(,)DB ‘$’DATA ENDSSEGMENT PARA‘CODE’ASSUME CS:CODEMAIN PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV CX,10MOV SI,offset SOURMOV DI, offset DESTAGAIN: MOV AL,[SI]MOV [DI],ALINC SIIN DILOOP AGAINMOV DX,offset DESTMOV AH,09HINT 21HRETMAIN ENDPCODE ENDSEND START题二程序清单:DATA SEGMENT PARA ‘DATA’STRG DB ‘ABCDEFGHIJKLMNOP’STG1 EQU STRG+4STG2 EQU STHG+8STRSE EQU 6DATA ENDSSTACK SEGMENT PARA ‘CODE’DB 100 DUP(0) STACK ENDSCODE SEGMENT PARA ‘CODE’ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK PROC FARSTART: PUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXMOV ES,AXMOV CX,STRSEMOV SI,OFFSET STG1MOV DI,OFFSET STG2CLDPUSH SIADD SI,STRSE-1CMP SI,DIPOP SIJL MOVESTDADD SI,STRSE-1ADD DI,STRSE-1 MOVE: REP MOVSB RETMAIN ENDPCODE ENDSEND START。
程序设计实验报告(matlab)

程序设计实验报告(matlab)实验一: 程序设计基础实验目的:初步掌握机器人编程语言Matlab。
实验内容:运用Matlab进行简单的程序设计。
实验方法:基于Matlab环境下的简单程序设计。
实验结果:成功掌握简单的程序设计和Matlab基本编程语法。
实验二:多项式拟合与插值实验目的:学习多项式拟合和插值的方法,并能进行相关计算。
实验内容:在Matlab环境下进行多项式拟合和插值的计算。
实验方法:结合Matlab的插值工具箱,进行相关的计算。
实验结果:深入理解多项式拟合和插值的实现原理,成功掌握Matlab的插值工具箱。
实验三:最小二乘法实验目的:了解最小二乘法的基本原理和算法,并能够通过Matlab进行计算。
实验内容:利用Matlab进行最小二乘法计算。
实验方法:基于Matlab的线性代数计算库,进行最小二乘法的计算。
实验结果:成功掌握最小二乘法的计算方法,并了解其在实际应用中的作用。
实验六:常微分方程实验目的:了解ODE的基本概念和解法,并通过Matlab进行计算。
实验内容:利用Matlab求解ODE的一阶微分方程组、变系数ODE、高阶ODE等问题。
实验方法:基于Matlab的ODE工具箱,进行ODE求解。
实验结果:深入理解ODE的基本概念和解法,掌握多种ODE求解方法,熟练掌握Matlab的ODE求解工具箱的使用方法。
总结在Matlab环境下进行程序设计实验,使我对Matlab有了更深刻的认识和了解,也使我对计算机科学在实践中的应用有了更加深入的了解。
通过这些实验的学习,我能够灵活应用Matlab进行各种计算和数值分析,同时也能够深入理解相关的数学原理和算法。
这些知识和技能对我未来的学习和工作都将有着重要的帮助。
程序设计基础实验报告

实验一 用C 语言编写简单程序一、实验目的1. 熟悉VC6.0的编程环境,掌握运行C 程序的基本步骤。
2. 了解C 程序的基本框架,模仿例题编写简单的C 语言程序。
3. 正确书写算术表达式、赋值表达式和关系表达式。
4. 掌握基本输入输出函数的使用,正确调用C 语言提供的数学库函数。
5. 掌握简单的单步调试方法。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.在屏幕上显示一个句子“What is a computer?”。
2.求华氏温度150F 对应的摄氏温度。
计算公式如下:其中,c 表示摄氏温度;f 表示华氏温度。
3.输入x ,计算下列分段函数的值(保留2位小数),请调用sqrt 函数求平方根,调用pow 函数求幂。
4. 输入一个正整数m (0100)m ≤≤,求100i m i =∑。
四、实验要求1. 将上机验证正确的源代码写到实验报告上。
2.根据自己的真实感受,认真填写实验分析和实验心得以及问题和建议。
3.按时提交实验报告。
553299c f =⨯-⨯21(1)2 x<02()0x x f x ⎧+++⎪=≥一、实验目的1.熟练掌握关系表达式的使用。
2.熟练掌握使用else-if 语句实现多分支结构程序设计。
二、实验环境Windows XP ;Visual C++ 6.0。
三、实验内容1.输入x ,计算并输出下列分段函数sign(x)的值。
2.输入月薪salary ,输出应交的个人所得税tax (保留2位小数)。
按照2011年开始实行的新的个人所得税法,计算公式为:tax = rate*(salary-3500)-deduction 。
当salary≤3500时,rate=0、deduction=0当3500<salary≤5000时,rate=3%、deduction=0当5000<salary≤8000时,rate=10%、deduction=105当8000<salary≤12500时,rate=20%、deduction=555当12500<salary≤38500时,rate=25%、deduction=1005当38500<salary≤58500时,rate=30%、deduction=2775当83500<salary 时,rate=45%、deduction=135053.输入一个正整数n ,再输入n 个学生的百分制成绩,统计各等级成绩的个数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二分支程序设计实验实验报告实验名称:分支程序设计实验指导教师罗志祥专业班级光信1006 姓名张博学号U9 联系方式一、任务要求:熟练掌握KeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO 口的使用。
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写程序。
240/2204020X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩当当当2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。
为低电平时开始计时,为高电平时停止计时。
提高部分(选做):a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。
利用状态选择加、减计数方式。
b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路:1.分支函数程序设计:首先将X 赋给累加器A ,与40比较大小,将大于或等于40的执行乘方操作;小于40的再与20做比较,大于20的执行取除法操作,小于或等于20的执行取反操作。
最后将计算结果Y 存于片外的RAM 上。
2.电子时钟程序设计思路:首先用循环程序的嵌套实现一个1s 的延时,同时让记秒的端口P2同步加一,到60后清零;再让此循环执行60次实现1min 的延时,同时让P1同步加一,到60后清零;再让分钟的循环执行24次,实现1hour 的延时,同时让P0同步加一。
至此循环,即可实现24小时的时钟功能。
(注:本计算机的晶振频率为12MHz )位十进制加、减1计数程序思路:低位的个位和十位赋给一个寄存器,而将高位即百位千位赋给另外一个寄存器,通过循环程序使低位数循环100次即向高位进位或借位,高位循环100次后即回归初始状态,同时设计两个子函数分别执行加一、减一操作。
其中,用P3的第7位的状态实现对计数与否的控制。
三、资源分配:1.分支函数程序:A:累加器C:位操作B:做乘方的寄存器DPTR:片外寻址指针2000H、2001H、2002H:片外存储空间2.电子时钟程序:A:累加器C:位操作P0、P1、P2:分别电子时钟的时、分、秒输出R0、R1、R2:分别时分秒计数用存储器R3、R4、R5:完成1s延时的相关数据存储3.四位十进制加、减1计数程序:A:累加器C:位操作P0:低位输出口 P1:高位输出口 R0:高位寄存器 R1:低位寄存器 R7 R6:分别临时储存低位和高位的寄存器四、流程图:1. 分支函数程序流程图2.电子时钟程序流程图3.四进制加、减1计数程序流程图各图形如下:电子时钟:NONO五、源代码:1)ORG 0000HMOV A,#50HMOV DPTR,#2000HMOVX @DPTR,A ;将数存入片外RAM MOV DPTR,#2000HMOVX A,@DPTR ;从片外RAM中取数X MOV R7,ACLR CMOV R0,#40H ;对X的值进行比较SUBB A,R0JNC MUTIMOV R1,#20HCLR CMOV A,R1SUBB A,R7JC DIVIMOV A,R7CPL A ;对X进行取反MOV DPTR,#2001HMOVX @DPTR,A ;存入片外RAMLJMP STOPDIVI:MOV B,#2H ;除法子程序MOV A,R7DIV ABMOV DPTR,#2001HMOVX @DPTR,ALJMP STOPMUTI:MOV A,R7 ;平方子程序MOV B,AMUL ABMOV DPTR,#2001H ;低位存入片外RAM中2001H MOVX @DPTR,AINC DPTRMOV A,BMOVX @DPTR,A ;高位存入片外RAM中2002HSTOP:SJMP $END2)ORG 0000HMOV R0,#0;R0,R1,R2置0MOV R1,#0MOV R2,#0MOV P0,#0;P0,P1,P2置0MOV P1,#0MOV P2,#0INPUT:JNB ,STEPSTART: ACALL DELAYINC R0;秒钟计数MOV A,R0ACALL OUTPUT;转化为bcd码MOV P2, ACJNE R0,#60,START;60进制判断进1 MOV R0,#0;MOV P2,#0;INC R1;分钟计数MOV A,R1ACALL OUTPUT;转化为bcd码MOV P1,ACJNE R1,#60,START;60进制判断MOV R1,#0;MOV P1,#0;INC R2;时钟计数MOV A,R2;ACALL OUTPUT;计算bcd码MOV P0,ACJNE R2,#24,START;判断是不是溢出了 MOV R2,#0;溢出清0MOV P0,#0;输出清0SJMP INPUT;跳出循环DELAY:MOV R3,#19H;循环次数LOOP:MOV R4,#28HLOOP1:MOV R5,#0FAH;循环次数LOOP2:NOPNOPDJNZ R5,LOOP2DJNZ R4,LOOP1DJNZ R3,LOOPSJMP STARTRETOUTPUT:MOV B,#0AH;DIV ABSWAP AORL A,B RETDONE:SJMP $STEP:SJMP STEPEND3)ORG 0000HMOV P0,#0HMOV P1,#0HMOV P2,#0HJUDGE:CLR CMOV C,JNC ADDDONESUBDDONE:MOV P0,#99HMOV P1,#99HMOV R0,#63H ;千,百位 MOV R1,#63H ;十,个位START: MOV A,R1ACALL DELAYDEC AMOV R7,AACALL OUTPUTMOV P1,AMOV B,R7MOV R1,BCJNE A,#0H,START ;低位循环MOV A,#63HMOV R7,AACALL OUTPUTMOV P1,AMOV B,R7MOV R1,BMOV A,R0MOV R7,ADEC AACALL OUTPUTMOV P0,AMOV B,R7MOV R0,BCJNE A,#0H,START ;高位循环SJMP $;原地踏步ADDDONE:MOV P0,#00HMOV P1,#00HMOV R0,#00H ;千,百位MOV R1,#00H ;十,个位MOV R0,#0HSTART1: MOV A,R1ACALL DELAYINC AMOV R7,AACALL OUTPUTMOV P1,AMOV B,R7MOV R1,BCJNE A,#99H,START1 ;低位循环MOV A,#0HMOV R7,AACALL OUTPUTMOV P1,AMOV B,R7MOV R1,BMOV A,R0INC AMOV R6,AACALL OUTPUTMOV P0,AMOV B,R6MOV R0,BCJNE A,#99H,START1 ;高位循环SJMP $;原地踏步OUTPUT:MOV B,#0AH;转化为BCD码DIV ABSWAP AORL A,BRETDELAY:MOV R3,#32H;循环次数LOOP:MOV R4,#14H;循环次数LOOP1:MOV R5,#0FAH;循环次数LOOP2:NOPNOPDJNZ R5,LOOP2DJNZ R4,LOOP1DJNZ R3,LOOPRETEND六、程序测试方法与结果、软件性能分析1)分段函数测试分别令X=10、30、50测试个分段函数,再使用X=20、40测试分界点,其对应结果如下:X=40时,得到X,Y存入片外RAMX=20时,X=30时,X=40时,Y的高位存入片外RAM 2002H,低位存入2001HX=50时,Y的高位存入片外RAM 2002H,低位存入2001H2)、电子时钟测试当为高电平时,不记时,如图:当为低电平时计时开始,其计时效果如下:由于小时等待时间太长,故在此不再截图显示3)、4位十进制加、减1计数:当为低电平时执行加一计数P0输出千位和百位 P1输出十位和各位当为高电平时执行减一计数P0输出千位和百位 P1输出十位和各位七、思考题1.1.实现多分支结构程序的主要方法有哪些举例说明。
答:实现方法大致如下:1. 1.使用条件转移指令实现,如DJNZ,JNC……2. 2.使用分支表法,如分支地址表、转移指令表、地址偏移量表。
2.2.在编程上,十进制加1计数器与十六进制加1计数器的区别是什么怎样用十进制加法指令实现减1计数答:十进制加一后需要在计算结果的基础上进行修正,运用DA指令;而十六进制加一指令所得结果即为最终结果,无需进行修正。
写十进制加法指令时,首先将结果与#0相加,即ADD A ,#0;然后运用DA A指令,修正A为十进制,最后再执行减一操作,即DEC A。
如此便可得到结果。
八、心得与体会本次实验主要进行了分支程序的设计实验,并涉及到了函数的多分支,与子函数间的嵌套,加深了我们对如何运用子函数进行程序的分支的方法。
其中,分支函数的实现过程不是很复杂,但是电子时钟的24小时制程序设计需要对多级函数的嵌套有深刻的理解,在这个程序的设计过程中,的确锻炼了我们对于子函数、延时程序、系统频率等相关概念有了多的了解。
在电子时钟设计中,要指出的是,程序在考虑一些延时的循环函数时,一些耗时比较少的指令没有加入计算,这就导致了,程序在执行过程中会出现一定的误差,在所难免,但总体而言,精确度还算比较高,满足了设计的要求。
总而言之,本次实验在自己一人的努力下,基本完成了实验任务,岁耗时较长,但有其自己的效果,也提高了我通过单片机实现一些小型功能的能力,这些对以后的学习必将大有裨益!。