创新性实验结题报告简易计算器Word下载.docx

上传人:b****5 文档编号:18742923 上传时间:2023-01-01 格式:DOCX 页数:22 大小:195.92KB
下载 相关 举报
创新性实验结题报告简易计算器Word下载.docx_第1页
第1页 / 共22页
创新性实验结题报告简易计算器Word下载.docx_第2页
第2页 / 共22页
创新性实验结题报告简易计算器Word下载.docx_第3页
第3页 / 共22页
创新性实验结题报告简易计算器Word下载.docx_第4页
第4页 / 共22页
创新性实验结题报告简易计算器Word下载.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

创新性实验结题报告简易计算器Word下载.docx

《创新性实验结题报告简易计算器Word下载.docx》由会员分享,可在线阅读,更多相关《创新性实验结题报告简易计算器Word下载.docx(22页珍藏版)》请在冰豆网上搜索。

创新性实验结题报告简易计算器Word下载.docx

采用2*8键盘;

利用2*8的键盘扫描子程序,读取输入的键值。

(二)、键盘接口电路

计算器输入数字和其他功能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。

矩阵键盘采用两条I/O线作为行线,八条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。

这样键盘上按键的个数就为2×

8个。

这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。

矩阵键盘的工作原理:

计算器的键盘布局如图2所示:

一般有16个键组成,在单片机中正好可以用一个P口和另一个P口的两个管脚实现16个按键功能,这种形式在单片机系统中也最常用。

矩阵键盘布局图:

矩阵键盘内部电路图如下图所示:

(三)、LED显示模块

本设计采用LED数码显示来显示输出数据。

通过D0-D7引脚向LED写指令字或写数据以使LED实现不同的功能或显示相应数据。

(四)运算模块(单片机控制)

MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等一台计算机所需要的基本功能部件。

如果按功能划分,它由如下功能部件组成,即微处理器(CPU)、数据存储器(RAM)、程序存储器(ROM/EPROM)、并行I/O口、串行口、定时器/计数器、中断系统及特殊功能寄存器(SFR)。

单片机是靠程序运行的,并且可以修改。

通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,通过使用单片机编写的程序可以实现高智能,高效率,以及高可靠性!

因此我们采用单片机作为计算器的主要功能部件,可以很快地实现运算功能。

3、实验步骤

总流程图:

详细算术运算程序设计流程图:

五、实验结果与分析

1、实验现象、数据记录

经过反复测试调整,该计算器可简单进行100以内的加减乘除计算,以及清零功能,结果能保留小数点后一位,能显示计算结果的正负,完成了实验要求。

测试结果记录:

(1)加法运算:

64+37=

(2)减法运算:

12—86=

(3)乘法运算:

99*99=

(4)除法运算:

65/21=

2、对实验现象、数据及观察结果的分析与讨论:

该实验达到了实验的基本要求,但是需要改进和提高的还有很多,设计的计算器能进行100以内的加减乘除计算,以及清零功能,结果能保留小数点后一位,能显示计算结果的正负,但是只能进行两个操作数的操作,而不能进行连续计算,比如连加、连乘,并且不能进行有符号数的计算,即输入的两个操作数必须是正号的,也不能输入带小数点的操作数,对此,我会课下继续对它进行研究改进,争取做出具有更多功能的更先进的计算器。

3、关键点:

实验过程中由于对单片机的了解的不彻底,想法太简单遇到了很多的阻碍,开始只是简单的觉得只有显示和键盘这两个模块不了解,很难弄,其余的部分只是简单的加减乘除,几句简单程序就行,结果后来在四位数的显示上出了问题,跟本就不是简单的结果除以1000得出千位,于是又重新编制计算部分,后来在同学的帮助下做出了觉得很正确的程序,不过试验还是失败,最后从头重来,一步步研究,一步步计算,终于显示出了正确结果,该程序的逻辑性很强,每个细节都要考虑到,需要一遍遍测试显示结果,知道得出最终正确的答案。

六、实验结论

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。

回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,可以说得是苦多于甜,但是可以学到很多很多的的东西。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

通过这次课程设计使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。

使我们在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。

七、指导老师评语及得分:

签名:

年月日

附件:

源程序

;

P0接位选,P1接段选

YSEQU20H;

第一个数十位

YGEQU21H;

第一个数个位

ERSEQU22H;

第二个数十位

EGEQU23H;

第二个数个位

YIEQU24H

EREQU25H

JFEQU26H;

结果负号位

JQEQU27H;

结果千位

JBAEQU28H;

结果百位

JSEQU29H;

结果十位

JGEQU30H;

结果个位

JXEQU31H;

结果小数位

JG1EQU32H

ORG0000H

MAIN:

MOV20H,#00H

MOV21H,#00H

MOV22H,#00H

MOV23H,#00H

MOV24H,#00H

MOV25H,#00H

MOV26H,#0C0H

MOV27H,#00H

MOV28H,#00H

MOV29H,#00H

MOV30H,#00H

MOV31H,#00H

MOV32H,#00H

ONE1:

CLRC

ACALLKEYSCAN

JBPSW.5,ONE1

CJNEA,#11,ONE11

SJMPMAIN

ONE11:

CJNEA,#10,ONE12

SJMPONE1

ONE12:

JNCONE1

MOV21H,A

ACALLDELAY

ONE2:

ACALLXS1

JBPSW.5,ONE2

CJNEA,#11,ONE22

ONE22:

CJNEA,#10,ONE23

SJMPONE2

ONE23:

JNCONE31

MOV20H,21H

ACALLDELAY

ONE3:

ACALLXS2

JBPSW.5,ONE3

CJNEA,#11,ONE33

ONE33:

CJNEA,#10,ONE30

SJMPONE3

ONE30:

JCONE3

ONE31:

MOVR5,A;

R5为符号位,表示加或减或乘或除

ONE4:

JBPSW.5,ONE4

CJNEA,#11,ONE44

ONE44:

CJNEA,#10,ONE45

SJMPONE4

ONE45:

JNCONE4

MOV23H,A

ONE5:

ACALLXS4

JBPSW.5,ONE5

CJNEA,#11,ONE55

LJMPMAIN

ONE55:

CJNEA,#10,ONE56

SJMPONE66

ONE56:

JNCONE5

MOV22H,23H

ONE6:

ACALLXS5

JBPSW.5,ONE6

CJNEA,#11,ONE66

ONE66:

CJNEA,#10,ONE6

ACALLGN

ONE61:

ACALLKEYSCAN

JBPSW.5,ONE60

ONE60:

ACALLXS3

SJMPONE61

*********************************************************************

KEYSCAN:

LCALLKAP;

扫描键子程序

JNZKP1

SETBPSW.5;

置无键标志

RET

KP1:

LCALLDELY;

去抖

LCALLKAP;

再次扫描键盘

JNZKP2;

转识键码程序

KP2:

CLRPSW.5;

置有键操作标志

MOVR0,#0FEH;

逐列扫描初始值

MOVR4,#00H;

0列加数

KP4:

MOVA,R0

MOVP0,A;

送列扫描信号

MOVA,P2;

回读行信号

JBACC.0,L1;

不是第一行,转第二行

MOVA,#00H;

是第一行,行吗=0

AJMPKP5

L1:

JBACC.1,L2;

不是第二行,转第三行

JBACC.1,NEXT

MOVA,#08H;

是第二行,行码=8

KP5:

ADDA,R4;

对应的行码+对应的列码=键码

PUSHACC;

保护已经得到的键码

KP3:

LCALLDELY

继续扫描

JNZKP3;

A值不等于0,表示手未松开!

POPACC;

A值等于0,手已经松开,弹回键码!

NEXT:

INCR4;

下一列列码加1

JNBACC.7,KEYSCAN;

列到最后列了吗?

RLA

MOVR0,A;

下一列

AJMPKP4;

扫描下一列

KAP:

MOVA,#00H;

全扫描字(列)

送全扫描字

回读行信息

CPLA

ANLA,#0FH;

得到A值,=0,无键;

≠0,有键

DELY:

MOVR6,#14H;

去抖!

DL:

MOVR7,#0FFH

DJNZR7,$

DJNZR6,DL

******************************************计算加减乘除

GN:

MOVA,20H

MOVB,#10

MULAB

ADDA,21H

MOV24H,A

************************得到第一个数

MOVA,22H

ADDA,23H

MOV25H,A

***************************得到第二个数

MOVA,R5

J0:

CJNEA,#12,J1

SJMPJIA

LJMPXS3

J1:

CJNEA,#13,J2

SJMPJIAN

J2:

CJNEA,#14,J3

SJMPCHENG

J3:

LJMPCHU

JIA:

MOVA,24H

ADDA,25H

MOVJG1,A

LJMPAAAA

RET

JIAN:

MOVA,24H

SUBBA,25H

JNCJIAN1

MOVJF,#0BFH

MOVA,#255

CLRC

SUBBA,32H

INCA

JIAN1:

RET

CHENG:

CLRC;

个位与个位相乘

MOVA,21H

MOVB,23H

DIVAB

MOVJG,B

MOVJS,A

;

*********

MOVA,20H;

十位与个位相乘

MOVJBA,A

MOVA,B

ADDCA,JS

CJNEA,#10,CH1

SJMPCH2

CH1:

JCCH3

CH2:

SUBBA,#10

MOVJS,A

MOVA,JBA

SJMPCH4

CH3:

******************************************

CH4:

MOVA,22H;

个位与十位相乘

MOVB,21H

ADDCA,JBA

CJNEA,#10,CH5

SJMPCH6

CH5:

JCCH7

CH6:

CLRC

SJMPCH8

CH7:

*******************

CH8:

十位与十位相乘

MOVB,22H

MOVJQ,A

CJNEA,#10,CH9

SJMPCH10

CH9:

JCCH11

CH10:

MOVJBA,A

MOVA,JQ

SJMPCH12

CH11:

MOVJBA,A

CH12:

CHU:

MOVB,25H

MOVA,B;

余数

MOVA,B

CJNEA,#5,CHU2

CHU1:

JNCCHU2

SJMPCHU3

CHU2:

INCA

CHU3:

MOVJX,A;

小数

SJMPAAAA

AAAA:

MOVA,JG1

MOVJG,B;

得到JG1个位

MOVJS,B;

得到JG1十位

MOVJBA,A;

得到JG1百位

XS1:

MOVP1,#0FFH;

共阳灭码

MOVP0,#20H

MOVDPTR,#TAB

MOVCA,@A+DPTR;

查出字形代码

MOVP1,A;

送个位

ACALLDELAY

XS2:

MOVA,20H;

显示输入的第一个数

MOVP0,#10H;

送位控信号

送十位

ACALLDELAY;

稳定显示信息

XS4:

MOVA,23H

XS5:

MOVA,22H;

显示输入的第二个数

MOVCA,@A+DPTR;

*********************************************************

XS3:

MOVP0,#01H;

MOVA,JF

送负号位

MOVP0,#02H

MOVA,JQ

送千位

MOVP0,#04H

MOVA,JBA

送百位

MOVP0,#08H

MOVA,JS

MOVP0,#10H

MOVA,JG

查出字码

ANLA,#7FH

共阳灭码

MOVP0,#20H

MOVA,JX

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP1,A;

送小数位

TAB

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH

DELAY:

MOVR6,#0FFH

END

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

当前位置:首页 > 经管营销 > 金融投资

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

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