微机实验报告模板201Xword范文模板 11页.docx

上传人:b****3 文档编号:5206784 上传时间:2022-12-13 格式:DOCX 页数:9 大小:17.80KB
下载 相关 举报
微机实验报告模板201Xword范文模板 11页.docx_第1页
第1页 / 共9页
微机实验报告模板201Xword范文模板 11页.docx_第2页
第2页 / 共9页
微机实验报告模板201Xword范文模板 11页.docx_第3页
第3页 / 共9页
微机实验报告模板201Xword范文模板 11页.docx_第4页
第4页 / 共9页
微机实验报告模板201Xword范文模板 11页.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

微机实验报告模板201Xword范文模板 11页.docx

《微机实验报告模板201Xword范文模板 11页.docx》由会员分享,可在线阅读,更多相关《微机实验报告模板201Xword范文模板 11页.docx(9页珍藏版)》请在冰豆网上搜索。

微机实验报告模板201Xword范文模板 11页.docx

微机实验报告模板201Xword范文模板11页

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!

==本文为word格式,下载后可方便编辑和修改!

==

微机实验报告模板-201X

《微机实验》报告

实验名称

指导教师

专业班级姓名学号联系电话

一、任务要求

实验目的:

熟练掌握Keil环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO口的使用。

实验内容:

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

?

X2当X?

40?

Y?

?

X/2当20?

X?

40

?

当X?

20?

X

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

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

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

提高部分(选做):

a.实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。

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

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

二、设计思路

第一题:

先利用A的最高位判断是否是负数,利用SUBB指令来判断X是否大于40,SUBBA,#40如果cy位为一,说明产生借位,即X<40,若CY=0,则X大于40,同理判断X是否大于40,求一个数的平方,用MUL指令,先将X赋给B,然后MULAB,即为X的

平方运算。

《微机实验》报告

第二题:

先设计一个延时子函数,利用LCALL指令调用子函数,秒计数达到60立马清零,此时分计时加一,分计数达到60,清零,小时计数加一。

然后利用DA指令将其变为BCD码输出到相应的引脚。

延时子程序利用循环嵌套以及NOP指令,要求误差在10us以内。

三、资源分配

第一题:

片外201XH为X的值,201XH为Y的值,若Y为两个字节,则201XH存储Y的高八位,201XH存储低八位。

进行商运算时,201XH为商,201XH为余数。

第二题:

R4,R3,R2分别用来暂时储存时钟的秒,分,时,时、分、秒数值分别通过P0、P1、P2端口以BCD码的形式输出,R7,R6,R5,作为延时子程序的循环嵌套,循环置数。

四、流程图

五、源代码(含文件头说明、语句行注释)

第一题:

ORG0000H

LJMPSTART

ORG0100H

START:

CLRC

BBEQU28H

CCEQU14H

MOVDPTR,#201XH

MOVXA,@DPTR;将201XH的内容赋给A

CLRC;将C清零

JBACC.7,FUSHU;判断X是不是负数,若是负数,跳转SUBBA,#BB;作减法运算

JCNEXT;若CY为1,跳转

ADDA,#BB;CY为0,X>=40

MOVB,A;将A赋给B

MULAB;作乘法运算,即平方运算

INCDPTR;DPTR自加

MOVX@DPTR,A;将结果低位给DPTR指向的地址

INCDPTR;DPTR自加

MOVA,B

MOVX@DPTR,A;将结果低位给DPTR指向的地址

SJMPHERE

NEXT:

ADDA,#BB;恢复A的值

SUBBA,#CC;作减法运算

JCNEXT1;若不大于20,执行NEXT1

ADDA,#CC;大于20,顺序执行,恢复A的值

MOVB,#2;将B的值赋2;

DIVAB;作除法运算

INCDPTR;DPTR自加

MOVX@DPTR,A;商保存在DPTR指向的地址

INCDPTR;DPTR自加

MOVA,B

MOVX@DPTR,A;余数保存在DPTR指向的地址

SJMPHERE

NEXT1:

ADDCA,#CC;若A为正数,小于20,先恢复A的值CPLA;A取反

INCDPTR;DPTR自加

MOVX@DPTR,A;将A存入DPTR指向的地址

SJMPHERE

FUSHU:

CPLA;取反

INCDPTR;DPTR自加

MOVX@DPTR,A;将A存入DPTR指向的地址

SJMPHERE

HERE:

SJMPHERE;踏步指令,动态停机

END

第二题:

ORG0000H

LJMPSTART

ORG0100H

START:

MOVR2,#0

MOVR3,#0

MOVR4,#0;R2,R3,R4清零

MOVP0,#0;

MOVP1,#0;

MOVP2,#0;P1,P2,P0清零

WAIT:

JBP3.0,WAIT;如果P3.0高电平,继续等待

JNBP3.0,SEC;如果P3.0为低电平,执行计数

NOP

SEC:

LCALLDELAY;调用1S延时子程序

MOVP2,R4;将R4赋给P2

MOVA,R4;将R4赋给A

ADDA,#1;A加一

DAA;BCD码修正

MOVR4,A;将A赋给R4

CJNEA,#0x60,WAIT;如果没达到60S则继续计数,若达到60S则向下执行

MOVP2,#0;秒针清零

MOVR4,#0H;R4清零

MOVP1,R3;将R3赋给P1

《微机实验》报告

MOVA,R3;将R3赋给A

ADDA,#1;分针加一

DAA;BCD修正

MOVR3,A;将A存入R3

CJNEA,#0x60,WAIT;如果分针没达到60,则继续计数,如果达到60,则向下执行

MOVP1,#0;分针清零

MOVR2,#0;R2清零

MOVP0,R2;将R2存入P0

MOVA,R2;将R2存入A

ADDA,#1;时针加一

DAA;BCD码修正

MOVR2,A;将A存入R2

CJNEA,#0x24,WAIT;如果时针没到24,则继续计时,达到24,则向下执行MOVR2,#0;R2清零

MOVP0,#0;P0清零

DELAY:

MOVR7,#46

DEL1:

MOVR5,#152

DEL2:

MOVR6,#70

DEL3:

DJNZR6,DEL3

DJNZR5,DEL2

DJNZR7,DEL1

RET

END

六、程序测试方法与结果

6

第一题:

《微机实验》报告

如图所示,当X为29H时,即41,平方得到1681,换算成十六进制即为0691,当X为21H时,即33时,除以二商16余1,当X为10,取反得到DA,当X为AB负数,取反得到54,实验结果与理论一致。

第二题

7

如图所示,延时函数延时为0.9999950s达到精确要求,图二图三为分针秒针运行过程,满足钟表的运行规则。

六.思考题

1.实现多分支结构程序的主要方法有哪些?

举例说明。

2.在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?

怎样用十进制加法指令实现减1计数?

8

1.实现多分支结构程序的主要方法有哪些?

举例说明。

I.利用条件转移指令实现,DANE或者JB,JNB等指令

例如求|X|

XDATA20H

ORG0000H

LJMPSTART

START:

MOVSP,#30H

MOVA,X

JNBACC.7,ISPOS

CPLA

INCA

ISPOS:

MOVX,A

HERE:

SJMPHERE

END

II.利用散转结构LJMP,AJMP等指令

例如:

ORG0400H

START:

MOVDPTR,#ENTRY

MOVA,R3

MOVB,#3

MULAB

JMP@A+DPTR

ENTRY:

LJMPR_KEY0

LJMPR_KEY1

LJMPR_KEY2

R_KEY0:

CPLP1.0

9

SJMPSTART

R_KEY1:

SETBP1.0

SJMPSTART

R_KEY2:

MOVP1,#0AAH

SJMPSTART

END《微机实验》报告

2.在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?

怎样用十进制加法指令实现减1计数?

十进制加一后需要在计算结果的基础上用DA指令进行BCD修正,而十六进制加一指令所得结果即为最终结果,无需进行修正。

运用ADDA,#99H

DAA

就能实现减一计数

提高部分:

ORG0000H

LJMPMAIN

ORG0100H

MAIN:

MOVR0,#20H;给R0赋20H

MOVR1,#21H;给R1赋21H

MOV@R0,#0;给20H赋0MOV@R1,#0;给21H赋0

MOVP2,#00H;给P2赋0

MOVP1,#00H;给P1赋0

;WAIT:

MOVA,P3

ANLA,#0FH;CJNEA,#0FH,WAIT;若P3低四位都为1,则开启计数,若不全为1,则跳转wait等待开启

10

《微机实验》报告

JBP3.7,JIA;如果P3.7为高电平,作加法运算

LJMPJIAN

;如果P3.7为低电平,作减法运算

JIA:

MOVA,@R0;

ADDA,#1;DAA

;

将20H的值给A

A加一计数BCD码修正

将A存入20H

MOV@R0,A;

MOVP1,A;JNCWAIT;

低位从P1输出

如果没到100,则继续计数,到100,低位清零,

高位加一

MOVA,@R1ADDA,#1DAA

;

存放高位的21H内容赋给A

;当低位到100A加一

BCD修正将A存入21H

;

MOV@R1,A;

MOVP2,A;P2输出高两位JNCWAIT;MOVP1,#00H;MOVP2,#00H;LJMPMAIN

;返回wait

如果高位没到100,则继续计数

JIAN:

MOVA,@R0;将20H的值给A

ADDA,#99H;A加99H即减一运算DAA;MOV@R0,A

BCD码修正

;将A存入20H

MOVP1,A;低位从P1输出

JCWAIT;若低位没到0,则继续建议运算,到0,则高位减一MOVA,@R1

;存放高位的21H内容赋给A

LJMPMAIN;

ADDA,#99H;DAA

;

《微机实验》报告

若低位减到0,高位减一BCD码修正

将A存入21H

MOV@R1,A;

MOVP2,A;P2输出高两位

END

如图所示,截图一表示P3.7为高电平时,加一计数器正常计数,图二表示到达99准备进位的时候,图三表示,加以计数器正常进位

图四表示减法计数器正常减一,图二表示低位达到00,高位准备减一,图三表示高位正常减一,功能与要求符合

其它说明:

1.标题:

黑体,小四号

2.正文:

宋体,五号,1.5倍行距

3.流程图使用SmartDraw7或Visio软件绘制4.不要加封面

∙荐计算机上机实验内容及实验报告要求

∙荐构建学校德育管理与评价体系的实验报告

∙荐化学实验报告格式

∙荐大学物理实验课程设计实验报告

∙荐电路实验报告要求

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1