ImageVerifierCode 换一换
格式:DOCX , 页数:24 ,大小:93.68KB ,
资源ID:18437007      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-18437007.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易计算器的设计与实现.docx)为本站会员(b****0)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

简易计算器的设计与实现.docx

1、简易计算器的设计与实现沈阳航空航天大学课 程 设 计 报 告课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现院(系): 专 业: 班 级:学 号:姓 名: 指导教师: 完成日期: 第1章 总体设计方案 11.1 设计内容 11.2 设计原理 11.3 设计思路 21.4 实验环境 2第2章 详细设计方案 32.1 硬件电路设计 32.2 主程序设计 72.2 功能模块的设计与实现 8第3章 结果测试与分析 113.1 结果测试 113.2 结果分析 11参考文献 12附 录1 元件清单 13附 录2 总电路图 14附 录3 程序代码 15第1章总体设计方案1.1 设计内

2、容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用44矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以与高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用99涉与硬件电路。1.2 设计原理在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和

3、一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理与功能做详细介绍和说明。 1)提出方案以8751为核心,和数码管以与键盘用实验箱上已有的器件实现计算器的功能。2) 总体方案实现(1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测就是延时10再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码查表可的键值。并且将键值送入缓冲区。(2)计算。从缓冲区中取出数据按照

4、括号配匹算法解决符号优先级问题,如果有键值为“F”则清空缓冲区跳至开始处,否则调用汇编指令进行计算,结果送入缓冲区。(3)显示。从缓冲区中取出数据查找段码表,将段码送入段码管。1.3 设计思路采用汇编语言程序设计的方法结合硬件电路设计方法,利用6000实验箱上已有芯片来实现计算器的各项功能。 1.4 实验环境硬件环境:6000实验箱,机。软件环境:应用软件。第2章 详细设计方案2.1 硬件电路设计1)单片机8751P0口作为存储器地址线的低8位,p2口作为地址线的高8位,采用定时器0作为键盘抖动时的10延时,采用外部设备与存储器统一编制方式。如图2.1所示。图2.1 单片机8751图2)8段共

5、阳极数码管图为八段共阳极数码管的引脚图,从左到右数码管的段码分别为和小数点,高电平时点亮,这八位分别74374的Q07接,作为数码管的段码锁存器,其访问地址位09004。下边为位选端和阳极端,6个位选端分别与另一片74374的Q05,与此同时为了体现总线的复用性和硬件电路的简单性这6位位选线作为键盘的列线,访问地址为09002H。如图2.2所示。图2.2 共阳极8段数码管图3)键盘键盘可分为两类:编码键盘和非编码键盘。编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。通用计算机使用的标准键盘就是编码键盘

6、。当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。但大多数智能仪器和电子产品的按键数目都不太多(20个以内),为了降低成本和简化电路通常采用非编码键盘。非编码键盘的接口电路有设计者根据需要自行决定,按键信息通过接口软件来获取。本课题需要的是16个按键,故选择用非编码键盘。键盘的行线与一片74245相连接作为键盘的扫描码,其访问地址09001H。如图2.3所示。图2.3 简易计算器数据输入键盘图4)7437474374是地址锁存器,一片用来锁存键盘,数码管的地址,另一片用来锁存数码管的段码。如图2.4所示。图2.4 74374图5)7424574245用来读取键盘的行码A03分

7、别与键盘的行线相连接;B07分别与数据总线相连接。如图2.5所示。图2.5 74245图6)2003A2003A相当于7个非门输入输出,其中端接键盘的列线,端接数码管。如图2.6所示。图2.6 2003A图2.2 主程序设计主程序模块是边检测边显示的模块,一旦有按键按下(无论是按键抖动还是真的有按键按下)就转入键值读取模块,如果没有按键按下或是已经从键值读取模块返回,就继续从一个以30H为首地址的缓冲区中取出数据并转换成数码管的段码显示出来。主模块是一个死循环函数没有结束直至人为终止。主程序流程图如图2.7所示。 图2.7 主程序流程图2.2 功能模块的设计与实现1)键值读取模块。键只读取模块

8、是,当主模块中有按键时,才被调用的。其功能是首先延时10已消除键盘抖动,继续读写,若读得的数据与主模块中的键值一样则真的有按键按下,若是“F”键则清空缓冲区若是“E”键则调用计算模块,否则将键值写入缓冲区返回主函数。流程图如2.8所示。图2.8 键值读取模块图2)计算模块 计算模块是从缓冲区中取得数据并且压栈,如遇到“*”或是“/”就出栈同时进行乘除运算;至到遇到等号为止,再从栈中取得数据进行加减运算。并将计算的结果送入缓冲区中。具体流程图如图2.9所示。图2.9 计算模块图第3章 结果测试与分析3.1 结果测试 计算器实现了0 F内的加减乘除法运算,并将表达式以与结果显示在六位八段数码管上,

9、其中A键 为加号,B键为减号,C键为乘号D键为除号,F键为清零,还可以实现表达式的运算,例如1+2*3/4-52.75的表达式。 3.2 结果分析键值的读取是本次课程设计最关键的一部分,因为只有从键盘取得数据才能进行计算和显示,否则该题目无法继续进行下去,按键的读取逻辑方面并不是很难,但是边读取边显示就显得不那么简单了,所以存在一个延时问题。延时得当则读取和显示可完美结合。计算也是一个很关键部分,本来想做一个任意位数的任意数学表达式的计算器可是由于时间限制,只能完成了计算任意数学表达式计算器。显示模块比较简单实现起来也比较容易。参考文献1王爱英.计算机组成与设计 M. 北京:教育出版社,200

10、32杨素行.微型计算机系统原理与应用 M. 北京:清华大学出版社,19963张雪兰.汇编语言程序设计 M. 北京:清华大学出版社,20064龚尚福.微机原理与接口技术 M. 西安:西安电子科技大学出版社,20035王中民.微型计算机原理 M. 西安:西安电子科技大学出版社,20036沈美明,温冬婵汇编语言程序设计M. 北京:清华大学出版社,2001附 录1 元件清单名称数量(个)型号备注电阻68段数码管6开关24单片机18751与非门3电源3电容330(2个),10(1个)晶振1芯片574系列2003A74138,74245,74373(2)74374附 录2 总电路图附 录3 程序代码 00

11、00H 000 00: R730H R600H : 7 R0 R101H 06H 6 .7 6 00H 6 R3 5: R306H5: 0 R5 1 A R1 R0 R35: 09004H 00H R100H 0 : R2 0 : R10: 2 1 A R1 : 2: 0 3 23: : 00H R500H4: A R4 1 4 A 0 : R5 5 4: 5 R4: 09002H 1 09004H 4 R20 R2,$: 09002H 1 09001H R0: R7 7 R0 5 R6 0 5 0 5 0 M M: : : 03 00B0H 01H 0 0 0,$ : 0: 00,00,00

12、,0F70,00,00,0F70 007H,007H,0F707H,007H,00,00,00 0F70,00: 3,06H, 5,4,66H,6,7,07H 7,6,77H, 7,39H,5,79H,71H: R031H R150H: 0 0 0 0 0 0 0 1 R0 R1 : 0 R3 R1 1 R2 R0 0 R0 R4 5 1 R1 5 1 : 3 0 3 0 3 0 : 2 4 R5 : 2 4 R5 : 2 4 R5: R0 0 1 R150H8: 1 0 1 R1 1 0 1 R1 1 R2 R1 1 R3 R1 1 R4 5 1 81: R1 1 0 R7 R6课程设计总结

13、: 通过这次课程设计,我进一步加深了对单片机的了解。并进一步熟练了对和软件的操作。在编写程序的过程中,遇到了很多问题,例如键值的读入问题,数码管的动态显示问题。经过几天的努力,在老师同学们的帮助下终于完成了本次课程设任务。通过这次的设计,进一步了解了单片微型计算机与应用原理,收获很大,对软件编程、排错调试、查阅资料等方面得到较全面的锻炼和提高。 同时通过本次课程设计的学习,掌握了51系列单片机和其工作环境,可以进行一些简单的编程,我还深深的体会到设计课的重要性和目的性所在。为了完成课程设计的任务,在网络上找到了许多相关的资料,大大扩充自己的知识面,使许多以前想解决却无法解决的困难迎刃而解。将书本上的理论知识和实际有机地结合起来,从理论中得出结论。锻炼了实际分析问题和解决问题的能力,提高了适应实际的能力,为今后的学习和实践打下了良好的基础。此次课设还巩固和综合运用所学过的原理知识,从而提高自己的实际动手能力和独立思考的能力。指导教师评语:指导教师(签字): 年 月 日课程设计成绩

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

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