分支与循环程序设计实验报告汇总
循环程序设计实验报告
循环程序设计实验报告
实验名称:循环程序设计实验报告
实验目的:
本实验旨在通过编写循环程序,提高学生对循环结构的理解和应用
能力,并培养学生的编程思维和解决问题的能力。
实验要求:
1.熟悉循环结构的基本原理和应用场景。
2.掌握使用循环结构解决实际问题的方法。
3.能够分析和设计能够利用循环结构优化的程序。
4.完成实验报告,详细记录实验过程和结果。
实验内容:
1.实验环境和工具
介绍实验所使用的编程环境和工具,包括操作系统、编程语言和开
发工具等。
2.实验题目和要求
描述实验要求和题目,明确实验要求和要解决的问题。
3.实验设计
介绍实验的设计思想和方法,包括解决问题的整体思路和基本步骤。
4.实验步骤
按照设计思路和方法,详细描述实验的具体步骤,包括程序的编写、调试和运行等。
5.实验结果与分析
展示实验的运行结果,并对结果进行详细分析和解释。
6.实验总结
总结实验的过程和结果,提出实验中存在的问题和改进的方向。
附件:本实验涉及的附件包括但不限于实验源代码、实验数据和实
验报告等。
法律名词及注释:
1.版权:著作权法规定的个人或集体对作品享有的专有权利。
2.商标:商标法规定的商业标识,用以区分不同商家的商品或服务。
3.专利:专利法保护的发明创造,赋予发明人对其发明的独占权利。
实验三---分支结构程序设计实验报告-
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整除的年份。
实验代码:
实验结果:
分支程序的设计实验报告
分支程序的设计实验报告
实验目的
本实验旨在通过设计一个分支程序来展示控制流程中的分支结构,加深对这一概念的理解,并通过实际编程提高对分支结构的应用能力。
实验原理
分支程序是一种常见的控制流程结构,它根据条件的真假选择不同的执行路径。在编程中,分支程序通常用于判断特定条件是否满足,并根据不同结果执行不同的操作。常见的条件语句包括if 语句、switch 语句等。
在设计一个分支程序时,需要明确条件和执行路径,并根据不同情况进行相应处理。分支程序的设计需要考虑条件的正确性和完备性,避免出现判断错误或遗漏情况。
实验过程
本实验选择使用Python 语言来设计和实现一个简单的分支程序。具体步骤如下:
1. 首先,根据实际需求确定分支程序的目标和条件。在本实验中,我们设计了一个分支程序来判断一个数字是否是奇数。
2. 接下来,根据选定条件,实现相应的判断逻辑。我们使用if 语句来对给定数字进行判断。如果数字对2 求余等于0,那么这个数字是偶
数;否则,这个数字是奇数。
3. 在程序中加入输出语句,以便用户能够看到最终的判断结果。
4. 编译和运行程序,观察输出结果是否符合预期。
在实验过程中,我们还可以进行额外的调试和优化,并添加更多的分支条件来扩展程序功能。例如,我们可以增加一个分支条件来判断数字是否为负数,或者根据数字的大小进行不同的处理等。
实验结果
经过编写、编译和运行,我们得到了一个简单的分支程序。该程序可以根据给定的数字判断其是否是奇数,并将结果输出给用户。
下面是程序的源代码:
python
n = int(input("请输入一个整数: "))
循环程序设计 实验报告
循环程序设计实验报告
循环程序设计实验报告
引言:
循环程序设计是计算机科学中一项重要的技术,它能够让计算机在特定条件下重复执行一段代码,从而实现特定的功能。本实验旨在通过编写循环程序,探索循环程序设计的原理和应用。
实验目的:
1. 理解循环程序设计的概念和原理;
2. 学会使用不同类型的循环结构,如for循环、while循环和do-while循环;
3. 掌握循环程序设计在问题解决中的应用。
实验过程:
1. 实验环境的搭建
在实验开始前,我们需要搭建一个适合编写和运行循环程序的环境。选择一款适合的集成开发环境(IDE),如Visual Studio、Eclipse等,并安装相应的编程语言环境,如C++、Java等。
2. 编写基本的循环程序
首先,我们从最简单的循环结构开始,即for循环。以C++语言为例,我们可以使用以下代码编写一个简单的for循环程序:
```cpp
#include <iostream>
int main() {
for (int i = 0; i < 10; i++) {
std::cout << "Hello, World!" << std::endl;
}
return 0;
}
```
上述代码中,for循环的三个部分分别表示循环变量的初始化、循环条件和循环变量的更新。通过这个简单的循环程序,我们可以在控制台输出10次"Hello, World!"。
3. 使用循环解决实际问题
循环程序设计在解决实际问题时非常有用。我们可以通过循环来处理一系列数据、实现复杂的算法等。下面以一个实际问题为例,演示如何使用循环程序设计进行问题求解。
分支和循环程序设计实验报告
实验名称 分支与循环程序设计实验
指导教师 罗志祥
专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137********
一、任务要求
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
2
64/2
106410
X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。
二、设计思路
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
2
64/2
106410
X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 将外部单元1000H 中的X ,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X 与64的大小关系,再判断X 与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE 指令后的进位位CY,进一步比较大小,分别跳转至对应语句。将结果存于外部单元的1001H 以及1002H 。
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
实验三 分支程序、循环程序设计实验
实验三分支程序、循环程序设计实验
一、实验目的
1.掌握分支程序的结构。
2.掌握分支程序的设计、调试方法。
3.加深对循环结构的理解。
4.掌握循环结构程序设计的方法以及调试方法。
二、实验设备
PC机一台,TD-PITE实验装置一套。
三、实验内容:
设计一数据块间的搬移程序。设计思想:程序要求把内存中一数据区(称为源数据块)传送到另一存储区(称为目的数据块)。源数据块和目的数据块在存储中可能有三种情况,如图1所示。
图3-1 源数据块与目的数据块在存储中的位置情况
对于两个数据块分离的情况,如图3-1(a),数据的传送从数据块的首地址开始,或从数据块的末地址开始均可。但是对于有重叠的情况,则要加以分析,否则重叠部分会因“搬移”而遭到破坏,可有如下结论:
当源数据块首地址<目的块首地址时,从数据块末地址开始传送数据,如图3-1(b)所示。当源数据块首地址>目的块首地址时,从数据块首地址开始传送数据,如图3-1(c)所示。参考流程:如图3-2所示。
图3-2 程序流程图实验程序
SSTACK SEGMENT STACK
DW 64 DUP(?)
SSTACK ENDS
CODE SEGMENT
ASSUME CS:CODE
START: MOV CX, 0010H
MOV SI, 3100H
MOV DI, 3200H
CMP SI, DI
JA A2
ADD SI, CX
ADD DI, CX
DEC SI
DEC DI
A1: MOV AL, [SI]
MOV [DI], AL
DEC SI
DEC DI
DEC CX
JNE A1
JMP A3
实验3分支与循环结构程序设计
GDOU-B-11-112广东海洋大学学生实验报告书(学生用表)
实验名称实验3分支与循环结构程序设计课程名称C++程序设计1 课程号S162321011学院(系) 信息学院专业计算机科学与技术班级
学生姓名???? 学号20101161 实验地点科423 实验日期
一.实验目的
1.熟悉 C++程序的顺序、分支和循环控制结构及其实现方法;
2.掌握结构化程序设计的基本方法和步骤,进一步学习程序的调试过程。
二.实验准备
1.复习 C++ 的三种程序控制结构及其实现方法。
2.根据实验内容要求,编写好实验程序。
三.实验内容
1.用循环语句编程打印如下图案:
*********
*******
*****
***
*
#include<iostream>
using namespace std;
int main()
{
int a,b,c;
for(a=0;a<5;a++)
{
for(b=0;b<a;b++)
cout<<" ";
for(c=0;c<9-a*2;c++)
cout<<"*";
cout<<endl;
}
return 0;
}
2.编一程序打印出2~99之间的所有素数,每输出5个数即换行。
#include<iostream>
#include<cmath>
#include<iomanip> using namespace std; int main()
{int m,k,i,n=0;
bool prime;
for(m=2;m<=99;m=m+1) {prime=true;
实验二分支程序实验和循环程序实验
实验二分支程序实验和循环程序实验【上篇】分支程序实验
一、知识点
1、控制转移类指令
无条件转移指令JMP 、条件转移指令Jcc
2、单分支结构
注意分支条件的选择:当条件满足时,直接转到分支的下一条指令;否则,执行单分支语句段。例如,求AX中数据的绝对值:
CMP AX, 0
JGE NONEG
NEG AX
NONEG: MOV RESULT, AX
思考:如果条件改为 JL,以上分支程序段如何改写?是比较程序段的复杂度?
3、双分支结构
双分支结构中条件的选择任意,但特别注意:
当分支语句段1结束后,一定要用JMP指令跳过分支语句段2,即跳到分支结束的位置。
例如,判断AX中的数据的符号,若为非负数,则0→sign;否则,-1→sign。
CMP AX, 0
JGE NONEG
MOV SIGN, -1
JMP END0
NONEG: MOV SIGN, 0
END0: ……
4、分支结构程序测试用例的设计
基本准则:测试用例要满足能够使每个分支都能执行一次,特别注意边界数据的测试。
换句话说,就是首先分析每个分支条件,找出使条件成立、不成立时的数据取值范围,然后从每个范围中选一个数据,形成一个测试用例;另外,边界数据作为单独一个测试用例。
【举例说明】
(1)单分支/双分支结构的测试:比如“判断AX中的数据的符号”程序段,需要设计三个测试用例,即分AX>0、 AX<0、 AX=0三种情况,分别确定一个数据(假设AX分别取5、-2、0三个数据)。其中,0就是一个介于条件成立与不成立之间的边界数据。
具体操作:在DEBUG环境下,用R命令改变AX的值,调试,分析程序流程和结果。
Sure 实验四
实验四分支和循环程序设计实验一、实验目的
1.熟悉汇编语言程序设计结构。
2.熟悉汇编语言分支程序基本指令的使用方法。
3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。
4.了解汇编语言循环程序设计的基本流程。
5.熟悉汇编语言循环基本指令的使用方法。
6.掌握利用汇编语言的循环指令完成循环程序设计方法。
二、实验内容
1、判断方程 AX2+BX+C=0 是否有实根。若有实根,则将字节变量 tag 置 1,否则置 0。假设 A、B、C 均为字节变量,数据范围为-128~127。
2、编写一个程序,判别键盘上输入的字符;若是 1-9 字符,则显示之;若为 A-Z 字符,显示“C”;若为 a-z 字符,显示“c”;若是回车字符(其 ASCII 码为 0DH),则结束程序,若为其它字符则显示显示“R”。
3、(大家再次编成实现实验一的题目,看是否可以优化程序?)分类统计字数组 data 中正数、负数和零的个数,并分别存入内存字变量 Positive、Negative 和 Zero 中,数组元素个数保存在其第一个字中。使用 Debug 查看 Positive、Negative 和 Zero 三个变量的数据。
4、编写程序,在字符串变量 STRING 中存有一个以$为结尾的 ASCII 码字符串,要求计算字符串的长度,并把它存入 LENGTH 单元中。(要求用条件控制循环方法,并且字符串分数据类型是字节和字两种情况)
注意:涉及到初始数据的,同学们自行给出多组数据,反复加以验证各题程序。
三、实验原理
在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。
汇编实验四分支和循环程序设计实验(设计性实验)
汇编实验四分支和循环程序设计实验(设计性实验)
汇编语言实验报告
实验四分支和循环程序设计实验(设计性实验)
班级:
姓名:
学号:
实验日期:
实验四分支和循环程序设计实验(设计性实验)
一、实验要求和目的
1.熟悉汇编语言程序设计结构;
2.熟悉汇编语言分支程序基本指令的使用方法;
3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法;
4.了解汇编语言循环程序设计的基本流程;
5.熟悉汇编语言循环基本指令的使用方法;
6.掌握利用汇编语言的循环指令完成循环程序设计方法。
二、软硬件环境
1、硬件环境:计算机系统windows;
2、软件环境:装有MASM、DEBUG、LINK、等应用程序。
三、实验涉及的主要知识
在实际应用中,经常根据一些条件来选择一条分支执行。汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号相减而导致的结果来进行。
1.无条件转移指令JMP
无条件转移指令JMP 是使程序无条件转移至目标处,又分为段内转移、段间转移。
2.条件转移指令JXX
条件转移指令可分为三大类:
1).简单条件转移指令指令。根据单个标志位的状态判断转移条
件。
标志位指令转移条件意义
CF JC CF=0 有进位/借位
JNC CF=1 无进位/借位
ZF JE/JZ ZF=1 相等/等于0
JNE/JNZ ZF=0 不相等/不等于0 SF JS SF=1 是负数
JNS SF=0 是正数
OF JO OF=1 有溢出
JNO OF=0 无溢出
PF JP/JPE PF=1 有偶数个1
JNP/JPO PF=0 有奇数个1
微机实验分支和循环程序设计实验
微机实验分支和循环程序设计实验微机实验三分支和循环程序设计实验
一、分支程序设计实验
1.实验目的
1.掌握分支程序的结构。
2掌握分支程序的设计、调试方法。
2.实验设备
微机一台
3.内容
设计一数据块间的搬移程序
代码:
DATA SEGMENT ;定义数据段
ORG 2520H ;输入原数据存放地址 X DB 1,2,3,4,5,6,7 ;1234567的赋值COUNT EQU $-X ;计算数据串长度 ORG 2525H ;输入目的数据存放地址 Y DB 7 DUP(0) ;定义目的数据长度 DATA ENDS ;数据段结束
STACK SEGMENT PARA STACK 'STACK' ;定义堆栈段 STAPN DB 100 DUP(?) ;定义100个字节空间 TOP EQU LENGTH STAPN STACK ENDS
CODE SEGMENT ;定义代码段
MAIN PROC FAR ;过程定义语句
ASSUME CS:CODE,DS:DATA,SS:STACK ;段寄存器分别与哪些段有关
START:MOV AX,STACK;设置堆栈寄存器
MOV SS,AX
MOV SP,TOP
PUSH DS ;DS入栈保护
SUB AX,AX ;AX=0
PUSH AX ;段内偏移量0入栈
MOV AX,DATA ;数据段基址赋给AX
MOV DS,AX
LEA AX,X ;取X的地址偏移量
LEA BX,Y ;取Y的地址偏移量
CMP AX,BX ;比较大小
JC FE ;如果AX小于BX,则执行FE
JMP FS ;否则执行FS
分支与循环程序设计实验-报告
实验名称 分支与循环程序设计实验
指导教师 罗志祥
专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137********
一、任务要求
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
2
64/2
106410
X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。
二、设计思路
1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。
2
64/2
106410
X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 将外部单元1000H 中的X ,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X 与64的大小关系,再判断X 与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE 指令后的进位位CY,进一步比较大小,分别跳转至对应语句。将结果存于外部单元的1001H 以及1002H 。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。P
3.0为低电平时开始计时,为高电平时停止计时。设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。
c语言实验报告分析总结3篇
c语言实验报告分析总结3篇
c语言实验报告分析总结1
在科技高度发展的今天,计算机在人们之中的作用越来越突出。而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。
在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。
由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。
上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。
学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。因为学时所限,课程不能安排过多的上机实验,
所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的'理解
分支程序设计实验报告
分支程序设计实验报告
实验名称:分支程序设计实验报告
实验目的:通过分支程序设计的实验,深入理解程序运行的基本
原理,掌握分支语句的应用方法,提高编写程序的能力和水平。
实验原理:分支程序设计是一种基于逻辑运算的程序结构,它可
以根据不同的条件,选择不同的执行路径,从而实现程序不同的输出
效果。
实验过程:首先,确定需要实现的程序功能,并根据程序逻辑设
计分支语句。然后,使用编程工具编写代码,调试程序,运行程序。
最后,对程序进行测试和优化,达到预期的效果。
实验结果:通过实验,我深入理解了分支程序设计的基本原理和
应用方法。我能够设计和编写简单的分支程序,实现不同的输出结果。我还学会了如何测试和优化程序,以达到最佳的执行效果。通过实验,我提高了编写程序的能力和水平。
实验总结:分支程序设计是计算机编程中非常重要的一部分,掌
握分支语句的应用方法可以提高编写程序的效率和质量。通过实验,
我能够利用分支语句来设计程序,实现复杂的逻辑运算和条件判断。
我对编程语言的掌握和应用能力也有了进一步的提高。我相信,凭借
自己的勤奋努力和不断的实践,我一定能成为一名优秀的程序员。
循环程序设计实验报告
循环程序设计实验报告
循环程序设计实验报告
1. 引言
循环程序设计是计算机程序设计中的重要部分,通常用于重复执行一段代码。本文档旨在介绍循环程序设计的基本概念、常见的循环结构以及在实际编程中的应用。通过本次实验,我们将探索循环程序设计的原理和技巧,并通过编写具体的代码案例加深理解。
2. 循环程序设计的基本概念
循环程序设计的基本概念包括循环变量、循环条件和循环体。循环变量是在循环过程中被递增或递减的变量,用于控制循环的执行次数。循环条件是一个布尔表达式,用于判断是否继续执行循环。循环体是需要重复执行的代码块。
3. 常见的循环结构
在实际编程中,常见的循环结构包括`for`循环、`while`循环和`do-while`循环。
3.1 `for`循环
`for`循环是一种在已知循环次数的情况下使用的循环结构。它由三个部分组成:循环变量初始化、循环条件和循环递增或递减操作。以下是`for`循环的语法示例:
markdown
for (初始化; 条件; 递增或递减) {
// 循环体
}
3.2 `while`循环
`while`循环是一种在未知循环次数的情况下使用的循环结构。它只由循环条件组成,循环体会根据循环条件的真假决定是否执行。以下是`while`循环的语法示例:
markdown
while (条件) {
// 循环体
}
3.3 `do-while`循环
`do-while`循环是一种至少执行一次循环体的循环结构。它由循环体和循环条件组成,循环体会先执行一次,然后根据循环条件的真假决定是否继续执行。以下是`do-while`循环的语法示例:markdown
汇编语言程序设计实验报告二(分支循环程序实验)
汇编语言程序设计实验报告二(分支循环程序实验)
一、实验目的
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内容
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分支与循环程序设计实
验报告汇总
集团标准化工作小组 [Q8QX9QT-X8QQB8Q8-NQ8QJ8-M8QMN]
实验名称分支与循环程序设计实验
指导教师罗志祥
专业班级光电1406 姓名段昳晖学号 U2014*****
联系电话 137********
一、任务要求
1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过
P0、P1、P2端口输出(以压缩BCD码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
二、设计思路
1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为
L1、L2、L3,先比较X与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE指令后的进位位CY,进一步比较大小,分别跳转至对应语句。将结果存于外部单元的1001H以及1002H。
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过
P0、P1、P2端口输出(以压缩BCD码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。其中对端口显示的秒数、分钟数、时间数,进行二进制修正。
利用循环来设计延时程序,合理计算语句长度,以及循环次数。
程序运行时修正的值,可以实现暂停计数和继续的功能。
提高部分(选做):
1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
初始化P1、P2,,计数循环中插入一秒延时程序。R1存千百位、R2存个十位,=0时,进行加1计数,取出R2中的数存于A,对A 加1,同时进行十进制修正,存于P2,达到99,则进位对千百位进行加1。=1时,进行减一操作,取出R1中的数存于A,对A减1,同时进行十进制修正,存于P1,达到0,则对P2,对R2进行减一。
计数循环前判断的值,当=1时,开始计数,=0时,原地循环,停止计数,直到=1,可以实现随时停止与开始。
三、资源分配
1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
X存于片外1000H
Y存于片外1001H、1002H
其中,求平方时,低位存于1001H,,高位存于1002H
除二时,商存于1001H,,余数存于1002H
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过
P0、P1、P2端口输出(以压缩BCD码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
P0输出小时数
P1输出分钟数
P2输出秒数
R0小时循环计数
R1分钟循环计数
R2秒循环计数
R3保存分钟数
R4保存小时数
提高部分(选做):
1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
P1输出千百位
P2输出个十位
计数开始与停止控制
加1减1计数切换
R1存千百位
R2存个十位
四、流程图
1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过
P0、P1、P2端口输出(以压缩BCD码的形式)。为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
提高部分(选做):
1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
五、源代码(含文件头说明、语句行注释)
1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
File name:
Description: 对8bits符号数X,对于不同的X进行不同的运算操作
Date:
Designed by:
Source used: 1000H: 存X的值
1001H、1002H: 存Y的值
1001H:平方运算所得低位;除法运算所得商
1002H:平方运算所得高位;除法运算所得余数
ORG 0000H
LJMP MAIN
ORG 0100H
MAIN: MOV DPTR,#1000H ;X存于1000H
MOV A,#-1 ;给X赋值
MOV B,#0
MOVX @DPTR,A
;正负判断
JB ,L3 ;X<0,L3
;X>0
CJNE A,#64,L2 ;A!=64,L2
SJMP L1
L1: MOV B,A ;X>=64
MUL AB
SJMP STORE ;低位存于1001H,?高位存于1002H
L2: JNC L1 ;X>64,L1
CJNE A,#10,L4 ;A!=10,L4
SJMP L3 ;X=10,L3
L4: JC L3 ;X<10,L3
MOV B,#2
DIV AB ;X>10
SJMP STORE ;商存于1001H,余数存于1002H
L3: CPL A ;X<=10
STORE: INC DPTR ;结果存于1001H
MOVX @DPTR,A
INC DPTR
MOV A,B
MOVX @DPTR,A
SJMP $
END