电子计算器.docx
《电子计算器.docx》由会员分享,可在线阅读,更多相关《电子计算器.docx(12页珍藏版)》请在冰豆网上搜索。
电子计算器
单片机课程设计报告书
课题名称
电子计算器设计
姓名
李雪东
学号
20086498
院、系、部
电气工程
专业
电气工程及其自动化
指导教师
焦咏梅、马丽、高艳玲
2010年7月1日
一、设计目的
1、了解电子计算器的工作原理。
2、进一步熟悉LED显示电路和键盘扫描电路的工作原理和编程方法。
3、掌握电路板的实物焊接。
4、了解数据计算的基本方法。
二、设计内容
1.设计4*4的键盘,其中10个数字键0~9,其余6个为“+”“-”“=”和“C”。
2.设计2位LED接口电路。
3.实现1位数的简单运算。
三、电路及连线设计
运算控制功能。
内部时钟发生器,提供震荡脉冲。
键盘口的输入。
系统各部件处于确定的初始状态,并从初态开始工作。
电子计算器电路图:
*所需元器件
1、开关(sw-pb)21个。
2、电容四个:
(22P两个)、(10uf一个)、(电解电容一个0.1uf)。
3、晶振一个,10K数码管一个,单片机芯片一个。
4、74HC573芯片两个,电感10K一个,电源(5V)两个。
四、使用说明
键盘:
本课题需要的是16个按键,故选择用非编码键盘,为了减少所占用的端口,由P1口采用4*4矩阵式键盘。
显示:
LED数码管显示块是由发光二极管显示字段的显示器件。
在单片机应用中通常使用七段LED。
本设计采用的是共阴极接法。
五、流程图设计
1、数码管显示子程序
图5-1数码管显示子程序
2、读键输入程序设计
为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。
为了得到被按键的键码,现使用行扫描法识别按键。
其程序框图如下:
图5-2读键子程序
3、主程序的设计
主程序主要是用来进行初始化的,调用其他子程序,清空各个标志位,清空缓存区,读取键码,判断功能,在LED上作出回应,主程序流程图如下图所示。
图5-3主程序流程图
六、程序设计如下
ADDDBIT00H
SUBBIT01H
CHUNSHUBIT02H
ORG0000H
AJMPSTAR
ORG0030H
STAR:
MOVR0,#40H
MOV30H,#3FH
CLRADDD
CLRSUB
CLRCHUNSHU
MAIN:
LCALLDISPLAY
MOVA,#0FFH;键盘扫描开始
LP:
MOVP3,#00001111B;扫描子程序
MOVA,P3
JNBACC.0,LP0
JNBACC.1,LP1
JNBACC.2,LP2
JNBACC.3,LP3
LCALLDELAY1
MOVR2,61H
CJNER2,#0,XLS1
XLS1:
AJMPLP
LP0:
MOVB,#0
AJMPLP15
LP1:
MOVB,#1
AJMPLP15
LP2:
MOVB,#2
AJMPLP15
LP3:
MOVB,#3
LP15:
MOVP3,#0FFH;扫描行
MOVP3,#11110000B
MOVA,P3
LCALLDELAY
JNBACC.4,LP4
JNBACC.5,LP5
JNBACC.6,LP6
JNBACC.7,LP7
AJMPLP8
LP4:
MOVR3,#0
AJMPLP8
LP5:
MOVR3,#4
AJMPLP8
LP6:
MOVR3,#8
AJMPLP8
LP7:
MOVR3,#12
LP8:
MOVA,B
ADDA,R3
LCALLDELAY
MOVR4,A
MOVA,R4
CJNEA,#0AH,N;判断功能键
AJMPN1
N:
JNCN1
MOVA,R4
JBCHUNSHU,ERSHU2
MOVR0,#40H
MOV@R0,A
AJMPYISHU
ERSHU2:
MOVR0,#50H;第二个数
MOV@R0,A
YISHU:
LCALLCHABIAO;第一个数
LCALLDISPLAY
N1:
CJNEA,#0FH,NEXT
MOV30H,#3FH
CLRADDD
CLRSUB
CLRA
MOV40H,A
MOV41H,A
MOVR0,#40H
MOVA,#3FH
MOV30H,A
SJMPNEXT4
NEXT:
CJNEA,#0EH,NEXT1;+
SETBADDD
SETBCHUNSHU
SJMPNEXT4
NEXT1:
CJNEA,#0DH,NEXT2;—
SETBSUB
SETBCHUNSHU
SJMPNEXT4
NEXT2:
CJNEA,#0CH,NEXT4;=
EQUAL:
CLRCHUNSHU
JBADDD,JIA
JBSUB,JIAN
AJMPNEXT4
JIA:
MOVR1,#40H;加法
MOVA,@R1
MOVR1,#50H
ADDA,@R1
LCALLCHABIAO
AJMPNEXT4
JIAN:
CLRC;减法
MOVR1,#40H
MOVA,@R1
MOVR1,#50H
SUBBA,@R1
MOVR4,A
LCALLCHABIAO
LCALLDISPLAY
NEXT4:
AJMPMAIN
CHABIAO:
MOVDPTR,#TAB;查表
MOVCA,@A+DPTR
MOV30H,A
RET
DISPLAY:
MOVA,30H;显示
SETBP2.0
MOVP1,A
CLRP2.0
MOVA,#11110111B
SETBP2.1
MOVP1,A
CLRP2.1
LCALLDELAY
DELAY:
MOVR7,#0FFH;延时
LP11:
DJNZR7,LP11
RET
DELAY1:
MOVR7,#9CH
LP12:
DJNZR7,LP12
RET
TAB:
DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H
RET
END
六、程序设计如下
七、设计总结
感谢学校安排这次单片机小学期,让我们有了将理论与实践同步的机会。
这次实践过程中我与组员经过将近四天的努力,完成了小学期的单片机课程设计,包括硬件和软件,过程虽是辛苦的,但从中我却学到了很多东西。
首先巩固了课上学习的理论知识,对于计算机汇编语言的系统化整体化有了更深的认识。
在编写程序的过程中遇到了很多困难经过我们经过反复调试不断修正最终才得到现在的程序,这让我明白写程序只不过是设计的很小一部分,调试和验证才是最为重要的。
最难的部分焊接实物,实验要求八个二极管是共阳极接法,我们先用Protel99se将接线图画出,然后按照接线图进行焊接,在接下来焊接的过程中我们遇到了很多问题:
电解电容正负接反,开关使用方法不正确焊接虚焊等等,在老师的指导和自己细心检查后才焊接成功。
整个设计过程最大的收获就是意识到理论知识扎实的重要性,实践是建立在理论之上的;另外就是合作的重要性,每个人都有他的特长一个人难免有疏漏,只有大家共同努力才能顺利的完成任务。
最后感谢,焦老师,马老师和高老师,我们今天的收获是建立在你们这几天的辛苦指导上的。
虽然只有短短的几天,但我学到的却很多,这为我今后进入工作岗位奠定了坚实的基础。
参考文献:
[1]高峰.单片微型计算机原理与接口技术.科学出版社,2007
[2]l李飞.单片机原理及其应用西安电子科技大学出版社,2007