单片机课程设计报告简易计算器1.docx
- 文档编号:24315868
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:13
- 大小:126.37KB
单片机课程设计报告简易计算器1.docx
《单片机课程设计报告简易计算器1.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告简易计算器1.docx(13页珍藏版)》请在冰豆网上搜索。
单片机课程设计报告简易计算器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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 报告 简易 计算器