单片机课程设计报告简易计算器1.docx

上传人:b****1 文档编号:10517005 上传时间:2023-05-26 格式:DOCX 页数:13 大小:126.37KB
下载 相关 举报
单片机课程设计报告简易计算器1.docx_第1页
第1页 / 共13页
单片机课程设计报告简易计算器1.docx_第2页
第2页 / 共13页
单片机课程设计报告简易计算器1.docx_第3页
第3页 / 共13页
单片机课程设计报告简易计算器1.docx_第4页
第4页 / 共13页
单片机课程设计报告简易计算器1.docx_第5页
第5页 / 共13页
单片机课程设计报告简易计算器1.docx_第6页
第6页 / 共13页
单片机课程设计报告简易计算器1.docx_第7页
第7页 / 共13页
单片机课程设计报告简易计算器1.docx_第8页
第8页 / 共13页
单片机课程设计报告简易计算器1.docx_第9页
第9页 / 共13页
单片机课程设计报告简易计算器1.docx_第10页
第10页 / 共13页
单片机课程设计报告简易计算器1.docx_第11页
第11页 / 共13页
单片机课程设计报告简易计算器1.docx_第12页
第12页 / 共13页
单片机课程设计报告简易计算器1.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计报告简易计算器1.docx

《单片机课程设计报告简易计算器1.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告简易计算器1.docx(13页珍藏版)》请在冰点文库上搜索。

单片机课程设计报告简易计算器1.docx

单片机课程设计报告简易计算器1

物理与电气工程学院课程设计报告

 

设计名称:

简易计算器

院部:

物理与电气工程学院

专业班级:

10电信一班

学生姓名:

陈鹏梁伟伍洁泉吴昌刚

完成时间:

2012年6月9日

评阅意见:

陈鹏

梁伟

伍洁泉

吴昌刚

评阅教师日期

 

摘要

单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。

本次设计是设计一个简易计算器,能够进行多位简单的加减运算,同时它能支持2位整数运算。

它主要由STC89S52单片机、A8255、数码管,键盘等模块组成。

本计算器是将键盘输入信息经处理通过缓存,送入数码管显示,键盘采用行列式,数码管采用动态扫描方式,计算功能通过软件实现,用汇编语言对单片机可编程芯片进行编程,实现对计算器的设计。

目录

设计要求1

1、方案

1.1方案

2、硬件电路设计.

2.1键盘电路设计

2.2显示电路设计

3、系统工作流程及流程图

4、系统功能测试与整体指标

4.1软件调试步骤

4.2程序调试步骤

4.3测试结果

5总结与思考及致谢

附录一主程序

简易计算器

设计要求

1 3*4键盘输入,数码管显示。

2 完成一位整数的加减

3 由于键盘只有12个按键,安排如下:

  +---------------+

  |1|2|3|4|

  |5|6|7|8 |

  |0|+|-|= |

  

  +---------------+

1、方案

1.1方案

按照设计要求,提出方案

此方案首先通过键盘得到数据,通过A8255记录数据,并通过程序对数据进行处理,最后通过数码管显示出来。

结构框图如图1:

图1方案方框图

2、硬件电路设计

2.1键盘电路设计

键盘输入采用3*4的矩阵键盘。

3*4键盘12个按键分别用于控制数字“0~8”以及数学运算符号“+、-、键盘模块电路如图

(2)所示。

图2键盘设置图

当进行扫描时,扫描信号由列引脚输入键盘。

以11111101、11111011、11110111的顺序每次。

扫描不同的列,然后读取列引脚的信号就可以判断是哪个键被按下。

识别键盘上哪个键被压下的过程的扫描步骤:

1.检测是否所有键都都松开了,若没有则反复检测。

2.但所有键都松开了,再检测是否有键压下,若无键一下则反复检测。

3.如有键压下,要消除键抖动,确认有键压下。

4.对压下的键进行编码,将该键的行列信号转换成16进制码,由此确定哪个键被压下了。

如出现多键重按的情况,只有在其它键均释放后,仅剩一个键闭合时,才把此键当作本次压下的键。

5.该键释放后,再回到2。

2.2显示电路设计

LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED显示器,器排列形状如图(3)所示:

图3LED数码管

为了显示数字或符号,要为LED显示器提供代码,即字形代码。

七段发光二极管,再加上一个小数点位,共计8段。

图4LED数码管显示原理图

3、系统工作流程及流程图

系统在开机上电后,系统处于等待状态,没有任何动作。

等待输入数字以及运算符号,一旦有相应的按键按下,系统就会执行相应的动作。

LED数码管上就会显示对应的数字,符号以及运算结果等。

为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。

为了得到被按键的键码,现使用行扫描法识别按键。

其程序框图如图5:

 

图5数码管显示程序框图

 

4、系统功能测试与整体指标

4.1软件调试步骤

1)打开软件后,在Project菜单中选择NewProject命令,打开一个新项目。

保存此项目,输入工程文件名后,并保存工程文件的目录。

2)为项目文件选择一个目标器件,即选择8051的类型。

在Database列表框中选择“ATML89S52”,确定。

3)上述设置好后,创建源程序文件并输入程序代码。

输入好代码后点击“文件/保存”。

4)把源文件添加到项目中,用鼠标指在目标工作区的目标1,点击右键在弹出的菜单中选择添加文件到源代码组,在弹出的添加文件框中,选择需要添加到项目中的文件。

5)开始编译,对项目文件进行编译。

若没有错误后进行硬件调试。

4.2程序调试步骤

程序调试应一个模块一个模块地进行,首先单独调试各功能子程序,检查程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各子程序连接起来进行总调试。

故调试步骤如下:

1)矩阵3*4键盘的调试

键盘程序是整个程序的基础,我们必须保证其正确。

调试方法:

先把程序下载到单片机,让数码管显示,在有键按下时显示的是否为设定的值。

2)数码管程序调试

正确的显示数值是整个程序的关键。

调试方法:

先把程序下载到单片机,让数码管显示,是否正确的显示数值。

4.3测试结果

实例测试:

将写入程序的单片机插入实验板插座内,程序正确的有0~8数值的显示和正常的两则运算

5、\总结与思考及致谢

电子设计正在当今社会发挥越来越重要的作用,其采用的软硬件结合技术也逐渐成熟,该模拟系统正是采用软硬相结合的方法实现的。

STC89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程FLASH存储器,可以为众多嵌入式控制应用系统提供灵活、超有效的解决方案。

在键盘设计方面,主要是软件的设计,通过程序编码来完成硬件方面所无法工作的部分,例如关于在扫描键盘时,需要逐行拉低并进行判断、编码。

判断时,需要不断的屏蔽字节,来获取所需要的数据,而这一点硬件是无法做到的。

此次课程设计是做简易计算器,这个需要对51芯片有足够的理解,能够充分认识每个引脚的详细功能,对于汇编语言也必须掌握的比较好。

正是由于此次设计让我们明白了单片机在实践中的运用。

我们的题目是基于单片机设计简易计算器,对于我们这些实践中的新手来说,这是一次考验。

这次课程设计我们学到很多很多的东西,学会了怎么在遇到问题时去解决问题。

不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。

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

同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

在此次课程设计中,首先我要感谢王陈宁老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。

在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。

其次,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计两位数字加减的难题。

同时也感谢学院为我提供良好的做毕业设计的环境。

最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学

主程序:

ORG00H

AJMPSTART

ORG30H

START:

MOVP0,#0FFH

MOVR6,#0

LOOP:

MOVP1,#0FDH//令第一行为为零

MOVR6,#0

JBP1.4,L1//判断1按下

MOVR0,#1

LCALLXS

L1:

JBP1.5,L2//判断2按下

MOVR6,#0

MOVR0,#2

LCALLXS

L2:

JBP1.6,L3//判断3按下

MOVR6,#0

MOVR0,#3

LCALLXS

L3:

JBP1.7,L4//判断4按下

MOVR6,#0

MOVR0,#4

LCALLXS

L4:

MOVP1,#0FBH//令第二行为零

JBP1.4,L5//判断5按下

MOVR6,#0

MOVR0,#5

LCALLXS

L5:

JBP1.5,L6//判断6按下

MOVR6,#0

MOVR0,#6

LCALLXS

L6:

JBP1.6,L7//判断7按下

MOVR6,#0

MOVR0,#7

LCALLXS

L7:

JBP1.7,L8//判断8按下

MOVR6,#0

MOVR0,#8

LCALLXS

L8:

MOVP1,#0F7H//令第三行为零

JBP1.4,L9//判断0按下

MOVR6,#0

MOVR0,#0

LCALLXS

L9:

JBP1.5,L10//判断加号键按下

MOVR2,#1

MOVA,R0

MOVR1,A

SJMPLOOP

L10:

JBP1.6,L11//判断减号键按下

MOVR2,#2

MOVA,R0

MOVR1,A

SJMPLOOP

L11:

JBP1.7,L12//判断等号键按下

CJNER2,#1,L13//判断加号还是减号

MOVA,R1//加号

ADDA,R0

MOVR4,A

CJNER4,#9,L18//判断两数之和释放大于9

SJMPT2//等于9

L18:

JCT2

MOVR6,#1//大于9

MOVA,R4

SUBBA,#10

MOVR5,A

LCALLXS

LJMPLOOP

T2:

//小于9

MOVA,R4

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

LJMPLOOP

L13:

//减号

MOVA,R1

CLRC

SUBBA,R0

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

L12:

LJMPLOOP

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH//共阴数码管段码

DELAY:

MOVR7,#02H//延时1MS

DE:

MOVR6,#0FFH

DJNZR6,$

DJNZR7,DE

RET

XS:

//显示子程序

CJNER6,#1,XX//判断是否为加法后的

MOVP2,#04H//大于9的显示程序

MOVDPTR,#TAB

MOVA,R5//显示个位

MOVCA,@A+DPTR

MOVP0,A

ACALLDELAY

MOVP2,#02H//显示十位

MOVP0,#06H

SJMPXW

XX:

//小于或等于9的显示程序

MOVP2,#02H

MOVA,R0

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVP0,A

XW:

RET

end

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

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2