分支与循环程序设计实验报告

合集下载

循环程序设计实验报告

循环程序设计实验报告

循环程序设计实验报告
实验名称:循环程序设计实验报告
实验目的:
本实验旨在通过编写循环程序,提高学生对循环结构的理解和应用
能力,并培养学生的编程思维和解决问题的能力。

实验要求:
1.熟悉循环结构的基本原理和应用场景。

2.掌握使用循环结构解决实际问题的方法。

3.能够分析和设计能够利用循环结构优化的程序。

4.完成实验报告,详细记录实验过程和结果。

实验内容:
1.实验环境和工具
介绍实验所使用的编程环境和工具,包括操作系统、编程语言和开
发工具等。

2.实验题目和要求
描述实验要求和题目,明确实验要求和要解决的问题。

3.实验设计
介绍实验的设计思想和方法,包括解决问题的整体思路和基本步骤。

4.实验步骤
按照设计思路和方法,详细描述实验的具体步骤,包括程序的编写、调试和运行等。

5.实验结果与分析
展示实验的运行结果,并对结果进行详细分析和解释。

6.实验总结
总结实验的过程和结果,提出实验中存在的问题和改进的方向。

附件:本实验涉及的附件包括但不限于实验源代码、实验数据和实
验报告等。

法律名词及注释:
1.版权:著作权法规定的个人或集体对作品享有的专有权利。

2.商标:商标法规定的商业标识,用以区分不同商家的商品或服务。

3.专利:专利法保护的发明创造,赋予发明人对其发明的独占权利。

循环的应用实验报告

循环的应用实验报告

循环的应用实验报告实验目的:探究循环的应用和实际意义。

实验步骤:1. 阅读循环的相关概念和应用,包括循环结构的语法、循环的分类及其特点等。

2. 设计一个实际生活场景,并使用循环来解决问题。

3. 编写程序代码,并进行测试和验证。

4. 总结实验结果,并思考循环的应用和实际意义。

实验结果:在实验中,我选择了一个实际生活场景——计算一个人一年中打电话的总时长。

假设这个人每天都会打电话,且每次通话时长不等。

通过使用循环结构,可以方便地进行多次的通话时长的累加操作。

下面是我编写的Python代码:total_duration = 0 # 所有通话时长的总和for i in range(365):duration = float(input("请输入第%d天的通话时长:" % (i+1)))total_duration += durationprint("一年中打电话的总时长为:%.2f小时" % total_duration)在程序中,我使用了一个`for`循环,循环的次数是365次,即一年的天数。

在每次循环中,用户需要输入当天的通话时长,并将其累加到`total_duration`变量中。

经过测试,我输入了一年中每天的通话时长,程序成功计算出了一年中打电话的总时长。

这说明循环结构的应用使得解决类似问题变得更加简单和高效。

实验总结:通过这个实验,我进一步理解了循环结构的应用和实际意义。

循环结构使得程序可以重复执行一段代码,从而实现一些需要重复操作的任务。

在实际生活中,循环结构的应用非常广泛。

比如,银行对用户账户的余额计算、超市对销售统计的处理、学校对学生考试成绩的计算等等,这些都需要使用循环结构来进行计算和处理。

循环结构的应用不仅使得程序更加高效,而且使得解决问题更加简单。

在实验中,我通过循环结构轻松地计算出了一年中打电话的总时长,如果没有循环结构,我可能需要手动累加365次通话时长,这样显然是低效且容易出错的。

分支与循环程序设计实验报告汇总

分支与循环程序设计实验报告汇总

分支与循环程序设计实验报告汇总标准化管理部编码-[99968T-6889628-J68568-1689N]实验名称分支与循环程序设计实验指导教师罗志祥专业班级光电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.熟悉汇编语言程序设计结构;2.熟悉汇编语言分支程序基本指令的使用方法;3.掌握利用汇编语言实现单分支、双分支、多分支的程序设计方法。

二、软硬件环境1.硬件环境:微机CPU 486以上,500MB 以上硬盘,32M 以上内存; 2.软件环境:装有MASM 5.0、DEBUG 、LINK 和EDIT 等应用程序。

三、实验涉及的主要知识单元在实际应用中,经常根据一些条件来选择一条分支执行。

汇编语言的条件判断主要是通过状态寄存器中的状态位、无符号数相减或有符号和相减而导致的结果来进行。

下面就有符号数转移指令来了解在汇编语言程序设计方法。

四、实验内容与步骤1.实验内容(1)编写计算下面函数值的程序:⎪⎩⎪⎨⎧<-=>=0,10,00,1x x x y设输入数据为X 、输出数据Y ,且皆为字节变量,使用Debug 查看X 、Y 两个变量的数据(2)以ARRAY 为首地址的内存单元中,存放5个8位的不带符号数,找出5个数中的最大数,并将结果存入RESULT 字节单元中。

2.实验步骤 a.实验流程图(1)计算函数值的流程图b.编写程序(1)计算函数值的实验代码 DATA SEGMENT X DB 12 Y DB ?DATA ENDSSTACK SEGMENT STACK'STACK' DB 100H DUP(?) STACK ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 ;把AX 与0比较JGE BIGPR ;0≥AL 转入BIGPR MOV Y,0FFFFH ;0<AL 则1-=Y JMP EXIT BIGPR: JE EQUPR ;0=AL 转入EQUPR MOV Y,1 ;0>AL 则1=Y JMP EXIT EQUPR: MOV Y,0;0=AL 则0=YEXIT: MOV AL,Y RET CODE ENDS END START(2)查找最大值的实验代码 DATA SEGMENT ARRAY DB 2,1,4,5,3 RESULT DB ? DATA ENDSSTACK SEGMENT STACK'STACK' DB 100H DUP(?) STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX LEA B X,ARRAY MOV AL,[BX] ;ARRAY 第一个数存入BXMOV CX,5 ;置循环次数 LOP: INC BX ;指针变量增1 CMP AL,[BX] ;比较AL 中数与[BX]的大小JAE L1;][BX AL ≥转入L1 MOVAL,[BX];][BX AL <则][BX AX ← L1: LOOP LOP;执行循环LOP 程序MOV RESULT,AL MOV AH,4CH INT 21H CODE ENDS END STARTc.对程序进行debug 调试,观察中间结果 (1)计算函数值的调试 1.反汇编内容①MOV AL,XX 反汇编后变成MOV AL,[0000],即XX 为数据段第一个存储单元的内容,数据段的起始偏移地址为0000。

实验报告1

实验报告1

实验报告1实验五正负数据分流程序设计一、实验目的1.掌握汇编语言程序的编写方法。

2.学习汇编语言程序的编辑、组装、连接、调试和运行的全过程。

3.掌握分支程序结构和循环程序结构的编程二、实验内容使用缓冲区的第一个地址设置内存缓冲区,以存储16个数字(字节)。

尝试将数据块中的正数(包括0)存储到起始地址为正的缓冲区中,将负数存储到起始地址为负的缓冲区中。

数据为F5H、46h、78h、4f、0bch、0dah、0abh、02h、12h、56h、0d5h、0ach、34h、89h、45h、0c3h。

三、实验步骤1.输入源程序,建立asm文件。

程序的编辑d:\\masm5>edit文件名.asm2.使用MASM宏汇编程序汇编源文件并生成目标文件obj。

程序汇编d:\\masm5>masm文件名;3.使用链接连接程序形成执行文件exe。

程序链接D:\\masm5>链接文件名;4.实施程序。

程序运行D:\\masm5>文件名5程序调试D:\\masm5>调试文件名Exe(或D:>debugd:\\masm5\\filename.Exe)四、思考题1.使用调试软件(.EXE文件形式)调试程序。

不执行任何命令,就可以使用D命令(dds:0)查看数据段的原始数据吗?为什么?2.如果汇编语言源程序通过汇编和链接,是否正确?为什么?5、实验报告1.画出程序流程图。

2.写出源程序清单。

数据段bufferdb0f5h,46h,78h,4fh,0bch,0dah,0abh,02h,12h,56h,0d5h,0ach,34h,89h,45h,0c3h plusdb16dup(?)minusdb16dup(?)dataendscodesegment假设:代码,ds:datastart:movax,datamovds,axmovcx,16movsi,offsetbufferleadi,plusleabx,minuslop:moval,[si]testal,80hjnzl1莫夫[di],艾尔incdijmpagainl1:mov[bx],alincbxjmpagain:印西looplopmovah,4chint21hcodeendsendstart3.回答思考问题1.首先用t命令顺序执行用户程序的前几条直到寄存器ds/es已预置为用户的数据段。

分支与循环程序设计实验-报告

分支与循环程序设计实验-报告

实验名称 分支与循环程序设计实验指导教师 罗志祥专业班级 光电1406 姓名 段昳晖 学号 U2014***** 联系电话 137********一、任务要求1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。

264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。

二、设计思路1. 设有8bits 符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。

264/2106410X 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 码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。

主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。

利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。

微机原理软件实验报告

微机原理软件实验报告

信息与通信工程学院微机原理软件实验报告班级:姓名:学号:日期:2011年12月实验一DEBUG的使用 (1)一、实验目的 (1)二、实验内容 (1)三、预习思考 (3)四、实验过程 (4)五、实验总结 (9)实验二分支、循环程序设计 (10)一、实验目的 (10)二、实验内容 (10)三、预习思考 (10)四、实验过程 (10)(一)、流程图 (11)(二)、源代码 (11)(三)、实验分析 (11)五、实验总结 (14)实验三代码转换程序设计 (15)一、实验目的 (15)二、实验内容 (15)三、预习思考 (15)四、实验过程 (16)(一)流程图 (16)(二)模块层次图 (16)(三)源代码 (17)(四)实验分析 (21)五、实验总结 (22)实验四子程序设计 (23)一、实验目的 (23)二、实验内容 (23)三、预习思考 (23)四、实验过程 (24)(一)流程图 (24)(二)模块层次图 (25)(三)源代码 (25)(四)实验分析 (34)五、实验总结 (35)实验五中断程序设计 (37)一、实验目的 (37)二、实验内容 (37)三、预习思考 (37)四、实验过程 (38)(一)流程图 (38)(二)源代码 (39)(三)实验分析 (45)五、实验总结 (46)实验一 DEBUG 的使用一、实验目的1.掌握汇编程序的编辑、编译、连接和执行的全过程;2.学习和掌握用DEBUG调试程序的方法。

二、实验内容1.用编辑软件,输入以下汇编语言源程序:DAT SEGMENTA DB 20B DB 15Y DB 3 DUP(0)Z DB 0,0DAT ENDSSTA SEGMENT STACKDW 50 DUP(?)STA ENDSCOD SEGMENTASSUME CS:COD,DS:DATSTAR PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATMOV DS,AXMOV AX,STAMOV SS,AXMOV AL,AMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,BMOV Z,ALMOV Z+1,ALCALL SUB1MOV AL,AMOV Z,ALMOV AL,BMOV Z+1,ALCALL SUB1ADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSTAR ENDPSUB1 PROCMOV AL,ZMOV AH,Z+1MUL AHADD WORD PTR Y,AXADC BYTE PTR[Y+2],0RETSUB1 ENDPCOD ENDSEND STAR2.通过编译,连接形成可执行文件。

c语言实验报告分析总结3篇

c语言实验报告分析总结3篇

c语言实验报告分析总结3篇c语言实验报告分析总结1在科技高度发展的今天,计算机在人们之中的作用越来越突出。

而c语言作为一种计算机的语言,我们学习它,有助于我们更好的了解计算机,与计算机进行交流,因此,c语言的学习对我们尤其重要。

在这个星期里,我们专业的学生在专业老师的带领下进行了c语言程序实践学习。

在这之前,我们已经对c语言这门课程学习了一个学期,对其有了一定的了解,但是也仅仅是停留在了解的范围,对里面的好多东西还是很陌生,的在运用起来的时候还是感到很棘手,毕竟,万事开头难嘛。

由于时间的关系,我们的这次实践课程老师并没有给我们详细的介绍,只是给我们简单的介绍了几个比较重要的实际操作。

包括了程序模块处理.简单界面程序.高级界面程序.程序的添加修改.用程序做一元线性回归处理以及用c语言程序来画粒度分布图等这几样比较重要的时间操作。

上机实验是学习程序设计语言必不可少的实践环节,特别是c语言灵活、简洁,更需要通过编程的实践来真正掌握它。

对于程序设计语言的学习目的,可以概括为学习语法规定、掌握程序设计方法、提高程序开发能力,这些都必须通过充分的实际上机操作才能完成。

学习c程序设计语言除了课堂讲授以外,必须保证有不少于课堂讲授学时的上机时间。

因为学时所限,课程不能安排过多的上机实验,所以希望学生有效地利用课程上机实验的机会,尽快掌握用c语言开发程序的能力,为今后的继续学习打下一个良好的基础。

为此,我们结合课堂讲授的内容和进度,安排了12次上机实验。

课程上机实验的目的,不仅仅是验证教材和讲课的内容、检查自己所编的程序是否正确,课程安排的上机实验的目的可以概括为如下几个方面:1.加深对课堂讲授内容的'理解课堂上要讲授许多关于c语言的语法规则,听起来十分枯燥无味,也不容易记住,死记硬背是不可取的。

然而要使用c语言这个工具解决实际问题,又必须掌握它。

通过多次上机练习,对于语法知识有了感性的认识,加深对它的理解,在理解的基础上就会自然而然地掌握c语言的语法规定。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

分支与循环程序设计实验-报告————————————————————————————————作者: ————————————————————————————————日期:实验名称 分支与循环程序设计实验指导教师 罗志祥专业班级 光电1406 姓名 段昳晖 学号 U2014*****联系电话 137********一、任务要求1. 设有8bits 符号数X 存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。

264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz)。

二、设计思路1. 设有8bit s符号数X存于外部R AM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。

264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 将外部单元1000H 中的X ,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X 与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令C JNE,以及执行C JNE 指令后的进位位CY,进一步比较大小,分别跳转至对应语句。

将结果存于外部单元的1001H以及1002H 。

2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

设计1s延时子程序(延时误差小于10us,晶振频率12MHz )。

主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。

利用R 0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。

其中对端口显示的秒数、分钟数、时间数,进行二进制修正。

利用循环来设计延时程序,合理计算语句长度,以及循环次数。

程序运行时修正P3.0的值,可以实现暂停计数和继续的功能。

提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。

利用P 3.7状态选择加、减计数方式。

2)利用P3口低四位状态控制开始和停止计数,控制方式自定。

初始化P 1、P2,,计数循环中插入一秒延时程序。

R 1存千百位、R2存个十位,P 3.7=0时,进行加1计数,取出R2中的数存于A ,对A 加1,同时进行十进制修正,存于P2,达到99,则进位对千百位进行加1。

P 3.7=1时,进行减一操作,取出R1中的数存于A,对A 减1,同时进行十进制修正,存于P1,达到0,则对P 2,对R2进行减一。

计数循环前判断P3.0的值,当P3.0=1时,开始计数,P3.0=0时,原地循环,停止计数,直到P3.0=1,可以实现随时停止与开始。

三、资源分配1. 设有8bi ts 符号数X存于外部RA M单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。

264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当X存于片外1000HY 存于片外1001H 、1002H其中,求平方时,低位存于1001H,,高位存于1002H除二时,商存于1001H,,余数存于1002H2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD 码的形式)。

P 3.0为低电平时开始计时,为高电平时停止计时。

设计1s 延时子程序(延时误差小于10us ,晶振频率12MHz )。

P0输出小时数P1输出分钟数P2输出秒数R0小时循环计数R 1分钟循环计数R2秒循环计数R3保存分钟数R4保存小时数提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。

利用P3.7状态选择加、减计数方式。

2)利用P3口低四位状态控制开始和停止计数,控制方式自定。

P1输出千百位P2输出个十位P 3.0 计数开始与停止控制P3.7 加1减1计数切换R 1存千百位R2存个十位四、流程图1. 设有8bits 符号数X 存于外部R AM 单元,按以下方式计算后的结果Y 也存于外部R AM 单元,请按要求编写完整程序。

264/2106410X X Y X X X X ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。

提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。

利用P3.7状态选择加、减计数方式。

2)利用P3口低四位状态控制开始和停止计数,控制方式自定。

五、源代码 (含文件头说明、语句行注释)1. 设有8bit s符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部RAM 单元,请按要求编写完整程序。

264/2106410X X Y X X XX ⎧≥⎪=<<⎨⎪≤⎩ 当 当 当 : ta sk 1.asm Desc ripti on: 对8bits 符号数X,对于不同的X进行不同的运算操作Da te: 2016.10.13Designed by:Source used: 1000H: 存X 的值1001H 、1002H: 存Y的值1001H:平方运算所得低位;除法运算所得商1002H:平方运算所得高位;除法运算所得余数ORG 0000HLJM P MAINﻩ O RG 0100HMAIN : MOV DPT R,#1000H ;X 存于1000HMOV A,#-1 ;给X 赋值MO V B,#0MOVX @DPTR,Aﻩﻩ ;正负判断ﻩ JB ACC .7,L3 ;X<0,L3ﻩﻩ ;X>0ﻩ CJNE A,#64,L2 ;A!=64,L 2ﻩ SJMP L1L1: M OV B ,A ;X >=64M UL ABSJMP STO RE ;低位存于1001H,¸高位存于1002HﻩL2: JNC L1 ;X>64,L1CJNE A,#10,L4 ;A!=10,L4SJM P L3 ;X=10,L3L4: JC L3 ;X<10,L3MOV B,#2DIV AB ;X>10SJM P S TORE ;商存于1001H,余数存于1002HﻩL3: CPL A ;X<=10STORE: INC DPTR ;结果存于1001HMOVX @DPTR,AﻩINC DPTRMOV A,BMOVX@DPTR,AﻩSJMP $END2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。

P3.0为低电平时开始计时,为高电平时停止计时。

设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。

3.: task2.asmDescription:24小时制电子时钟Date: 2016.10.13Designedby: DYHSource used:P0:输出小时数P1:输出分钟数P2:输出秒数R0:小时循环计数R1:分钟循环计数R2:秒循环计数R3:保存分钟数R4:保存小时数ORG 0000HLJMP MAINﻩﻩORG 0100HMAIN:MOV SP,#40HMOV P0,#0MOV P1,#0MOVP2,#0MOV R3,#0 ;保存小时MOV R4,#0;保存分钟;设定循环MOV R0,#24;小时外循环·24MOVR1,#59 ;分钟中循环·60MOVR2,#59;秒内循环·60CLRAﻩLOOP:JNB P3.0,$ ;p3.0=0,结束计数LCALL DELAY ;延时1sﻩADD A,#1ﻩDAAMOVP2,ADJNZR2,LOOPﻩMOV A,R3 ;分钟开始计数将分钟赋给AﻩADD A,#1 ;分钟+1DA AﻩMOVR3,AMOV P1,ACLR A ;秒清零MOV R2,#59 ;重置内循环·ﻩDJNZ R1,LOOP ;R1!=0,中循环MOV R3,#0 ;分钟清零,小时计数ﻩMOV A,R4ADD A,#1ﻩDA AﻩMOV R4,AMOV P0,AMOV R2,#59;重置中循环ﻩMOVR1,#59 ;重置外循环ﻩDJNZ R0,LOOPDONE:SJMP $DELAY:MOV R7,#11 ;n==((201*5+5)*90+9)*11+2=1000001DELAY3: MOVR6,#90 ;t=1.000001sDELAY2: MOV R5,#201ﻩDELAY1: NOPﻩNOPﻩﻩNOPﻩDJNZ R5,DELAY1NOPNOPﻩDJNZ R6,DELAY2ﻩﻩNOPﻩNOPﻩNOPﻩﻩﻩNOPﻩNOPﻩﻩﻩNOPﻩDJNZ R7,DELAY3ﻩRETﻩEND提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。

利用P3.7状态选择加、减计数方式。

2)利用P3口低四位状态控制开始和停止计数,控制方式自定。

Description: 实现4位十进制加、减1计数Date: 2016.10.13Designed by: DYHSource used:P1输出千百位P2输出个十位P3.0 计数开始与停止控制P3.7 加1减1计数切换R1存千百位R2存个十位ORG 0000HﻩﻩMOV P1,#0 ;输出千百位MOV P2,#0 ;输出个十位ﻩMOV R1,#0;存千百位ﻩMOV R2,#0 ;存个十位LJMPMAINﻩﻩORG 0100HMAIN:ﻩJB P3.0,$;计数开始与停止控制JNB P3.7,ADD1 ;加1减1,模式选择SUB1:MOV P1,#99ﻩMOV P2,#99ﻩﻩMOV R1,#99LOOP2: MOV R2,#99LOOP1:JB P3.0,$JNB P3.7,LOOP3MOV A,R2LCALL DELAYﻩDEC AMOV R2,Aﻩﻩ MOVP2,R2ﻩ CJNE R2,#0H,LOOP1ﻩMOV A,R1ﻩ DEC AﻩﻩMOV R1,Aﻩﻩ MOV P1,R1ﻩ CJNE R1,#0H,LOOP2ﻩﻩ SJMP$ADD1:MOV P1,#0ﻩﻩMOV P2,#0MOVR1,#0LOOP4: MOVR2,#0LOOP3: JB P3.0,$JBP3.7,LOOP1MOV A,R2LCALL DELAYﻩINCAMOV R2,AMOVP2,R2CJNER2,#99H,LOOP3ﻩﻩMOV A,R1ﻩ INC AﻩMOVR1,AﻩMOV P1,R1CJNE R1,#99H,LOOP4ﻩﻩ MOV R1,#0ﻩSJMP$DELAY: MOV R7,#11 ;n==((201*5+5)*90+9)*11+2=1000001 DELAY3:MOV R6,#90;t=1.000001sDELAY2: MOV R5,#201ﻩDELAY1:NOPﻩNOPﻩNOPﻩﻩﻩDJNZ R5,DELAY1ﻩNOPNOPﻩﻩDJNZ R6,DELAY2ﻩNOPﻩﻩNOPﻩﻩNOPﻩﻩﻩNOPﻩﻩﻩ NOPﻩ NOPDJ NZ R7,DELA Y3ﻩ RETE NDﻩ六、程序测试方法与结果1. 设有8bit s符号数X 存于外部RAM 单元,按以下方式计算后的结果Y 也存于外部R AM 单元,请按要求编写完整程序。

相关文档
最新文档