实验二分支程序 豆丁_实验二分支程序设计

2020-02-29 其他范文 下载本文

实验二分支程序 豆丁由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“实验二分支程序设计”。

微机《实验》报告

实验名称 分支程序设计实验

指导教师 曹 丹 华

专业班级 光电1007班 姓名 余 冬 学号 U201013524 序号 16 联系方式 ***

一、任务要求

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

X2当X40YX/2当20X40

当X20X2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。提高部分(选做):

a.实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。

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

二、设计思路

任务1:将位于2000H中的X取出,判断是否为负数,若为负数,则对X按位取反,结果送入3000H单元。若为正数,则将X的值与40比较,若大于等于40,则将X平方后的结果送入3000H低字节和高字节单元中。若X小于40,则将X的值与20比较,若X>20,则将除以2后存入3000H单元。否则对X按位取反,结果送入3000H单元。

其中,按位取反使用CPL指令实现:除以2运算使用2进制位带左移实现:平方运算使用MUL指令实现。并且平方运算后的结果用2个存储单元保存。任务2:

先将P2、P1和P0端口置0,注意P0没有锁存功能,用R5存储P0的内容,并将R5也置0.然后根据P3.0的值来判断是否开始计时,计时开始后等待一秒,而后P2加1,判断P2与60的大小,若P2小于60,则重新判断P3.0的值来决定是否开始计时。若P2等于60,则将P2置0,同时P1加1.再判断P1与60的大小,若小于60,则重新看P3.0的值是否开始计时。若P1等于60,则将P1置0,同时R5加1后将其值赋给P0。再判断R5与24的大小,若R5小于24,则重新判断P3.0的值来看是否开始计时。若R5等于24,则将置1后将其值赋给P0。等待一秒后又再次判断P3.0的值,目的是保证当改变P3.0后程序能立即做出反应。

三、资源分配

1.2000H:存入8bits符号数X 3000H、3001H:保存计算后的结果 DPTR:对片外RAM进行读写操作 R1:减法运算时保存A的值 2.R5:暂时存储P0端口的值

R0、R1、R2、R3、R4:为实现延时一秒而指定操作的周期数 P0、P1、P2:分别输出时、分、秒数值 P3:起计时控制作用

四、流程图1、2.五、源代码(含文件头说明、资源使用说明、语句行注释)1.M EQU 10H ORG 0000H LJMP MAIN ORG 0100H MAIN:MOV DPTR,#2000H MOV A,#10H

MOVX @DPTR,A;MOVX A,@DPTR

JB ACC.7,LOOP2 MOV R1,A

CLR C

SUBB A,#40H

MOV A,R1

JC LOOP1

MOV B,A MUL AB

MOV DPTR,#3000H MOVX @DPTR,A

MOV A,B INC DPTR MOVX @DPTR,A

DONE:SJMP DONE LOOP1:MOV R1,A

CLR C SUBB A,#20H

MOV A,R1

JC LOOP2

JZ LOOP2

CLR C

RRC A

将初始值存入2000H单元

;从2000H单元读出M的值

;判断M是否为负,若为负,跳转LOOP2;暂时保存A的值

;将M的值与40进行比较;将减法运算之前的值再赋给A;若M的值小于40,跳转LOOP1

;进行M的平方运算

;低位存入3000H单元

;高位存入3001H单元;暂时保存A的值

;将M的值与20进行比较;将减法运算之前的值再赋给A;若M小于20,跳转LOOP2;若M等于20,跳转LOOP2;进行除了操作 OVER:MOV DPTR,#3000H MOVX @DPTR,A SJMP DONE

;字节取反

;将结果存于3000H单元

LOOP2:CPL A

SJMP OVER END2、ORG 0000H LJMP MAIN ORG 0300H MAIN:MOV P2,#00H;将P2端口置0 MOV P1,#00H MOV P0,#00H MOV R5,#00H

;将P1端口置0;将P0端口置0

;将P0端口的暂时存储器置0 START:JB P3.0,START;判断P3.0是否为0,若为0,则向下执行 LCALL DELAY;调用延时子程序 HERE: JB P3.0,HERE MOV A,P2

ADD A,#01H DA A MOV P2,A MOV A,P1 ADD A,#01H DA A MOV P1,A CLR C SUBB A,#60H JC LOOP2 MOV P1,#00H MOV A,R5 ADD A,#01H

;将秒钟值加强,并作十进制修正

DA A MOV R5,A MOV P0,R5 CLR C SUBB A,#24H

JC LOOP3 MOV R5,#00H MOV P0,R5 MOV R0,#13 DELAY9:NOP NOP DJNZ R0,DELAY9 AJMP START LOOP3:MOV R0,#13 DELAY8:NOP NOP

DJNZ R0,DELAY8 NOP NOP NOP LJMP START LOOP2:MOV R0,#16 DELAY7:NOP

NOP DJNZ R0,DELAY7 NOP NOP NOP AJMP START LOOP1:MOV R0,#19H DELAY6:NOP NOP

DJNZ R0,DELAY6 NOP AJMP START DELAY:MOV R2,#6H DELAY3:MOV R1,#255 DELAY2:MOV R0,#255 DELAY1:NOP

NOP NOP DJNZ R0,DELAY1 DJNZ R1,DELAY2 DJNZ R2,DELAY3 MOV R4,#58 DELAY5:MOV R3,#255 DELAY4:NOP DJNZ R3,DELAY4

DJNZ R4,DELAY5 RET END

六、程序测试方法与结果、软件性能分析 1.a.赋值X为-2,截图如下 :

B.赋值X为16,截图如下:

C.赋值X为22,截图如下:

D.赋值X为42,截图如下:

2.第一步,当程序刚开始运行的时候,时分秒全部清零,如下图:

第二步,当秒向分进位时,前后对比如下:

运行前

运行后 由上可以看出前后刚好延时一秒。

第三步,当分向时进位时,前后对比如下:

运行前

运行后

由上可以看出分向时进位时,前后延时一秒。第四步,到23:59:59时,运行前后如下:

运行前

运行后

由上也可以看出,分向时进位也延时一秒。综上,软件性能良好。

七、思考题

1.实现多分支结构程序的主要方法有哪些?举例说明、答:若分支比较少,则通常用条件转移指令来实现。

例如,判断两个单字节无符号数的大小,分别存于片内RAM的40H和41HUJ单元)并把人数存入单元。可以用判断CY的转移指令来实现,程序如下: JUDGE: MOM A,40H CLR C SUBB A,41H JNC LP MOV 42H,41H RET LP:MOV 42H RET 若分支比较多,则可采用的有三种形式:分支地址表、转移指令表、地址偏移量表。具体例子不详述。

2.在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?怎样用十进制加法指令实现减1计数?

答:十进制加法1计数器进行加1操作时,每加一次1,就得将每一字节进行十进制修正;而十六进制加法是相当于单字节或多字节的加法运算,其中被加数是计数器的当前值,加数始终是1.十进制加法进行减1计数时,应该将计数器的当前值与-1的补码FFH相加,然后将每一字节进行修正,从而实现十进制减1计数。

八、心得

本次实验遇到的问题包括时钟的程序设计和流程图的绘制。看出来,单片机的基础知识还没掌握好,应复习相应的课件,补充缺陷的地方。下次实验再继续努力。说明:

标题:黑体,小四号

正文:宋体,五号,1.5倍行距

流程图使用 SmartDraw7

或Visio软件绘制

实验二分支程序 豆丁

微机《实验》报告实验名称 分支程序设计实验指导教师 曹 丹 华专业班级 光电1007班 姓名 余 冬 学号 U201013524 序号 16 联系方式 *** 一、任务要求1.设有8bits符......

实验二小升旗仪式程序

实验二小升旗仪式程序第一项:出旗第二项:升国旗,奏国歌,少先队员行队礼,非少先队员行注目礼。 第三项:全体师生唱国歌第四项:国旗下讲话(老师或学生代表)第五项:宣誓呼号(辅导员带领)第......

工作总结(豆丁上传)

2010年工 作 总 结金桥铝型材厂有限公司科技部电器维修班2010年技术工作总结随着2011年的到来,回顾2010年过去的一年中,在公司领导的指导下,秉承公司“守法、勤奋、节约、高效......

大学毕业感言豆丁

大学毕业感言豆丁(精选15篇)由网友“楠宝宝”投稿提供,下面是小编给大家整理后的大学毕业感言豆丁,欢迎大家借鉴与参考,希望对大家有所帮助。篇1:英文简历 豆丁网 yjbysFemale, 18......

程序的分支结构说课稿

程序的分支结构说课稿作为一位杰出的老师,有必要进行细致的说课稿准备工作,说课稿可以帮助我们提高教学效果。优秀的说课稿都具备一些什么特点呢?下面是小编为大家整理的程序的......

《实验二分支程序 豆丁.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
实验二分支程序 豆丁
点击下载文档
相关专题 实验二分支程序设计 程序 豆丁 实验二分支程序设计 程序 豆丁
[其他范文]相关推荐
[其他范文]热门文章
下载全文