计算器说明书
- 格式:pdf
- 大小:213.02 KB
- 文档页数:7
计算器说明书
1 设计课题任务、功能要求说明及总体⽅案介绍
1.1 设计课题任务
课题:简易计算器
任务:设计⼀个具有特定功能的计算器。该计算器上电或按键复位后能⾃动显⽰系统提⽰界⾯,进⼊准备⼯作状态。能实现基本的加、减、乘、除四则运算。1.2 功能要求说明
在本次⼯程实践中,主要完成如下⽅⾯的设计任务:
(1)计算器上电或按键复位后能显⽰初始化界⾯
(2)2秒后进⼊计算器界⾯
(3)按键能进⾏加、减、乘、除运算并显⽰结果
(4)按清零键后能进⾏下⼀次计算1.3 设计课题总体⽅案介绍及⼯作原理说明
计算器的总体功能原理是以AT89S52单⽚机为主要控制核⼼,通过外接4*4⾏列式键盘作为控制信号输⼊源,⼀块12864液晶作为显⽰器件,通过按键控制,单⽚机实时地去执⾏,在12864液晶上显⽰界⾯。系统控制原理图如图1所⽰。
液晶
显⽰电路AT89S52
电源电路
复位电路
下载电路
键盘电路图1系统控制原理图2 设计课题硬件系统的设计
2.1 设计课题硬件系统各模块功能简要介绍
2.1.1 AT89S52控制模块
考虑到设计功能需要,控制器的功能⽤于外部键盘信号的接收和识别、液晶模块的显⽰控制、复位电路等,我们选择了AT89S52系列单⽚机,具有反应速度极快,⼯作效率特⾼的特点。
AT89S52是⼀种低功耗、⾼性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使⽤Atmel 公司⾼密度⾮易失性存储器技术制造,与⼯业80C51 产品指令和引脚完全兼容。⽚上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯⽚上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌⼊式控制应⽤系统提供⾼灵活、超有效的解决⽅案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O ⼝线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,⼀个6向量2级中断结构,全双⼯串⾏⼝,⽚内晶振及时钟电路。另外,AT89S52 可降⾄0Hz 静态逻辑操作,⽀持2种软件可选择节电模式。空闲模式下,CPU停⽌⼯作,允许RAM、定时器/计数器、串⼝、中断继续⼯作。掉电保护⽅式下,RAM内容被保存,振荡器被冻结,单⽚机⼀切⼯作停⽌,直到下⼀个中断或硬件复位为⽌。2.1.2 12864液晶模块
FYD12864-0402B是⼀种具有4位/8位并⾏,2线或3线串⾏多种接⼝⽅式,内含国家⼀级、⼆级简体中⽂字库的点阵图形液晶显⽰模块;其显⽰分辨率为128*64,内置8192个16*16点汉字,和128个16*8点ASCⅡ字符集。利⽤该模块灵活的接⼝和简单、⽅便的操作指令,可构成全中⽂⼈机交互图形界⾯。12864液晶的控制⼝线主要接在AT89S52单⽚机的P0和P3的部分⼝线上,可以显⽰8×4⾏,16×16点阵的汉字。低压低功耗是其⼜⼀显著特点。与同类液晶模块相⽐,⽆论硬件电路或显⽰程序都要简洁得多,且该模块的价格也略低于相同点阵的液晶模块。2.1.3 键盘功能模块
根据系统的基本要求,采⽤由16个键构成的⾏列式键盘分别接在AT89S52单⽚机的P1.0-P1.7,相对于独⽴式键盘节省了⼤量⼝线和空间,给电路设计带来极⼤的⽅便,不过也相应的增加了程序的设计难度。采⽤矩阵式连接⽅法,组成4×4式16个按键,分别代表数字“0~9”、运算符“+、-、*、/”、等于号“=”、清零键。2.2 设计课题电路原理图、PCB图、元器件布局图
2.2.1 电路原理图
电路原理图(见附录A)2.2.2 电路PCB图
电路PCB图(见附录B)2.2.3 元器件布局图
元器件布局图(见附录C)2.2.4 键盘电路原理图及PCB图
键盘电路原理图及PCB图(见附录D)2.3 设计课题元器件清单
见附录E3 设计课题软件系统的设计
3.1 设计课题使⽤单⽚机资源的情况
AT89S52的⽚外资源:
P0、P1:基本输⼊输出⼝;
P3.5:E(12864液晶);
P3.0:RS(12864液晶);
P3.1:RW(12864液晶);
XTAL1、XTAL2:晶振输⼊;
RST: 复位输⼊。
AT89S52的⽚内资源:
30H、31H、32H、33H单元:临时暂存器单元;23H单元:第⼀操作数存储单元;24H单元:第⼆操作数存储单元;24H单元:第⼀操作数单元;25H单元:第⼆操作数单元;26H单元:运算的⾼位存放单元;27H单元:运算的低位存放单元;通⽤寄存器区;专⽤寄存器SFR:A,PSW,SP,P0,P1,P3等。3.2 设计课题软件系统各模块功能简要介绍
3.2.1主函数模块
主函数Void main(),⽤于设置初始化界⾯,调⽤各个主要模块,实现简单计算器的整体功能。3.2.2矩阵式键盘模块
矩阵式键盘软件设计主要通过在主程序中调⽤键扫函数keyscan()来执⾏相应的功能,单⽚机P1⼝在复位之后保持⾼电平,当键按下相应⼝线为低电平,经过相应判别过程判断键松开后,执⾏相关键功能程序,完成相应操作。3.2.3液晶显⽰模块
液晶显⽰是通过在主程序中调⽤相关的液晶功能函数来执⾏相应功能,经过液晶接在单⽚机上的P0及P3部分管脚,通过液晶功能函数LCD12864()的调⽤对液晶进⾏操作,将各类指令写⼊液晶模块,⽤来驱动液晶以实现不同的显⽰功能,达到界⾯显⽰的要求。3.2.4数据处理模块
通过调⽤处理函数jia_deng(uint i,uint j);jian_deng(uint i,uint j);cheng_deng(uint i,uint j);chu_deng(uint i,uint j);chengfang(uinta,uint b),把键盘上输⼊的数字顺序显⽰,并且对运算结果进⾏位数分离后显⽰。
3.3 设计课题软件系统程序流程框图
3.3.1主函数
开始
显⽰界⾯
调键扫函数N
是否有键按
下Y
输⼊第⼀次操
作数
输⼊运算符号
输⼊第⼆次操
作数
输⼊等于号
调数据处理函
数
调显⽰函数
显⽰运算结果
清零
结束
图2主函数流程框图3.3.2矩阵式键盘
图3键扫函数流程框图
开始
有键按下 延时去抖动
键确实按下 计算保持键值
延时去抖动
返回键值
按键释放 结束Y
Y
Y
N
N
N
3.3.3液晶显⽰
开始
判忙给液晶发写指令N
送显⽰字符地址
给液晶发写数据
指令
送显⽰字符
字符送完了吗?
结束Y Y
N
图4液晶显⽰函数流程框图3.3.4数据处理
开始
对第⼀个操
作数处理
分离整数、
⼩数
对第⼆个操
作数处理
分离整数、
⼩数
进⾏运算
显⽰整数
显⽰⼩数
结束
图5数据处理函数流程框图3.4 设计课题软件系统程序清单
见附录F4 设计结论、运⾏结果、误差分析及体会
4.1 设计课题的设计结论及使⽤说明
程序编写完成后,⽤keil4调试后显⽰程序0错误0警告,表明程序⽆语法类错误。下载程序到液晶系统后,按编写思路输⼊计算式后,得出的结论与实际值⽆误差,表明程序设计成功。4.2 设计课题的仿真结果调试主要是针对⾏列式键盘和液晶显⽰器,在按下键盘不同的键时,进⼊不同的操作界⾯,各操作界⾯的调试结果如图所⽰:
图6初始化界⾯图7加法界⾯
图8减法界⾯图9乘法界⾯
图10除法界⾯4.3 设计课题的误差分析
输⼊加、减、乘、除计算式,得出结果,分析误差如下:
例1:61+12=73
实际值:73 计算值:73
结论:误差为0。
例2:94-64=29
实际值:29 计算值:29
结论:误差为0。
例3:56*15=840
实际值:840 计算值:840
结论:误差为0。
例4:64/12=5
实际值:5 计算值:5
结论:误差为0。4.4 设计体会
为期⼀周的课程设计终于在今天画上圆满的句号。通过这次课程设计,我把这学期学习的内容都复习了⼀遍,也发现⾃⼰有很多知识学得不够扎实,也不能很好的把理论与实际结合起来。对于编写这个程序,我感觉⾃⼰还有⼏分吃⼒和知识有⼏分⽋缺。总的来说,虽然这次设计的基本功能能够实现,但是由于时间与学识的限制,本课程设计的软件系统中还有⼀些⽅⾯需要改进,如拓展计算器计算位数,增加平⽅、开根号、三⾓函数功能,增加⼗六进制数、⼆进制数转换等功能。
结束语
课程设计是培养学⽣综合运⽤所学知识,发现,提出,分析和解决实际问题,锻炼实践能⼒的重要环节,是对学⽣实际⼯作能⼒的具体训练和考察过程.随着科学技术发展的⽇新⽇异,单⽚机已经成为当今计算机应⽤中空前活跃的领域,在⽣活中可以说得是⽆处不在。因此作为⼆⼗⼀世纪的⼤学来说掌握单⽚机的开发技术是⼗分重要的。
回顾起此次单⽚机课程设计,我仍感慨颇多。由于我在暑假参加了单⽚机培训,我选择了难度较⼤的计算器课题,但是我没能完成更多的功能,没有编写出功能更加强⼤的计算器程序。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从⽽提⾼⾃⼰的实际动⼿能⼒和独⽴思考的能⼒。通过这次课程设计使我得到了⼀次⽤专业知识、专业技能分析和解决问题全⾯系统的锻炼。使我们在单⽚机的基本原理、单⽚机应⽤系统开发过程,以及在常⽤编程设计思路技巧(特别是汇编语⾔)的掌握⽅⾯都能向前迈了⼀步,为⽇后成为合格的应⽤型⼈才打下良好的基础。
致谢
对于这次课程设计的顺利完成,我⾸先要感谢王韧教授,教学过程中是他细⼼的给我讲解了许多关于AT89S52、⾏列式键盘、液晶显⽰相关的知识,并在设计过程中所遇到的难题都给了⾮常重要的意见,本次设计能够有较好的主体框架也得益于王韧⽼师的指导,导师渊博的知识、严谨的治学态度、崇⾼的敬业精神与为⼈师表的风范,使我受益匪浅,在此,谨向王教授表⽰我最衷⼼的感谢。
同时,在我的实际作品的制作过程之中,得到的学校许多的同学的热情的指导和详细的说明,特别是暑假培训期间同学们的帮助。此外,在实际程序的编写的过程遇到许多的不解困难的时候,周围的同学也给我提供的最详细的解答,没有以上的每⼀个⼈的帮助,我的单⽚机课程设计很难顺利的完成,在此,我对于在我的设计和制作的过程中给予我帮助的每⼀个⼈⼀并表⽰感谢。
参考⽂献[1]马忠梅.单⽚机C程序设计[M],北京:北京航空航天⼤学出版社,2007
Ma Zhongmei. microcontroller C programming [M], Beijing: Beijing Aerospace University Press, 2007
[2]李⼴弟.单⽚机基础[M],北京:北京航空航天⼤学出版社,2007
Li Guangdi. microcontroller based on [M], Beijing: Beijing Aerospace University Press, 2007
[3] 曹巧媛.单⽚机原理及应⽤[M],北京:电⼦⼯业出版社,1997.7.
Cao QiaoYuan.Microcontroller Theory and Applications [M], Beijing: Electronic Industry Press, 1997.7.
[4] 张洪润.兰清华,单⽚机应⽤技术教程[M],北京:清华⼤学出版社,1997.11.
Zhang Hongrun ,Lan Qinghua, MCU application technology tutorial [M], Beijing: Tsinghua University Press, 1997.11.