欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的计算器设计.docx

    • 资源ID:4065792       资源大小:841.36KB        全文页数:20页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的计算器设计.docx

    1、基于单片机的计算器设计2.4 矩阵按键键盘是单片机系统中最常用的人机对话输入设备,用户通过键盘向单片机输入数据或指令。键盘控制程序需完成的任务有:监测是否有键按下,有键按下时,若无硬件去抖动电路时,应用软件延时方法消除按键抖动影响;当有多个键同时按下时,只处理一个按键,不管一次按键持续多长时间,仅执行一次按键功能程序。矩阵按键扫描程序是一种节省I/O口的方法,按键数目越多节省I/O口就越可观,思路:先判断某一列(行)是否有按键按下,再判断该行(列)是哪一只键按下。但是,在程序的写法上,采用了最简单的方法,使得程序效率最高。本程序中,如果检测到某键按下了,就不再检测其它的按键,这完全能满足绝大多

    2、数需要,又能节省大量的CPU时间。2.5 计算器设计总体思想根据功能和指示要求,本系统选用以MCS-51单片机为主控机。通过扩展必要的外围接口电路,实现对计算器的设计。具体设计如下:1、由于要设计的是简单的计算器,可以进行四则运算,为了得到教好的显示效果,采用LCD显示数据和结果。2、另外键盘包括数字键(0-9)、符号键(+、-、*、/)、清除键和等号键,故只需要16个按键即可,设计中采用集成的计算机键盘。3、执行程序:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值后将显示键入的数值,按等号就会在LCD上

    3、输出运算结果。4、错误提示:当单片机执行程序中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算器得到的结果大于计算器的显示范围时,计算器会在LCD上提示溢出;当除数为0时,计算器会在LCD上提示错误。 第三章 硬件系统设计硬件系统是指构成微机系统的实体和装置,通常由运算器、控制器、存储器、输入接口电路和输入设备、输出接口电路和输出设备等组成。单片机实质上是一个硬件的芯片,在实际应用中,通常很难直接和被控对象进行电气连接,必须外加各种扩展接口电路、外部设备、被控对象等硬件和软件,才能构成一个单片机应用系统。本设计选用以AT89S51单片机为主控单元。显示部分:采用LCD静态显示。按键

    4、部分,采用4*4键盘。 硬件电路原理图如图3.1所示:图3.1 硬件电路原理图3.1 键盘接口电路计算机输入数字和其他功能按键时要用到很多按键,在这种情况下,编程会很简单,但是会占用大量的I/O口资源,因此在很多情况下都不采用这样的方式,而是采用矩阵键盘的方式。矩阵键盘采用四条I/O线作为行线,四条I/O线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的数量就为4*4个。这样行列式键盘结构能有效的提高单片机系统中I/O口的利用率。计算器的键盘布局如图3.2所示:一般有16个键组成,在单片机中正好有一个P端口实现16个按键功能,这种形式在单片机系统中最常用。图3.2 矩

    5、阵键盘内部电路3.2 LCD显示模块本设计采用LCD液晶显示器来显示输出数据。LCD的特性有:1、+5V电压,对比可调度;2、内含复位电路;3、提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能;4、有80字节显示数据存储器DDRAM;5、内建有160个5X7点阵的字型的字符发生器CGROM;6、8个可由用户自定义的5X7的字符发生器CGRAM。本设计通过D0-D7引脚向LCD写指令字或写数据以使LCD实现不同的功能或显示相应的数据。其接口电路如图3.3所示。 图3.3 LCD接口电路LCD的引脚说明如表3.1所示: 表3.1 LCD的引脚说明符号引脚说明符号引脚说明VSS电源

    6、地DB4Data I/OVDD电源正极(+5V)DB5Data I/OV0液晶显示偏压输入DB6Data I/ORS数据/命令选择端(H/L)DB7Data I/OR/W读写控制信号(H/L)CS1片选IC1信号E使能信号CS2片选IC2信号DB0Data I/ORST复位端(H:正常工作,L:复位)DB1Data I/OVEE负电源输出(-10V)DB2Data I/OBLA背光源正极(+4.2)DB3Data I/OBLK背光源正极3.3 运算模块MCS-51单片机是在一块芯片中集成了CPU、RAM、ROM、定时器/计数器和多功能I/O等计算机所需要的基本功能部件。如果按功能划分,它由以下

    7、功能部件组成,即微处理器(CPU),数据存储器(RAM),程序存储器(ROM/EPROM),并行I/O口,串行口,定时器/计数器,中断系统及特殊功能寄存器(SFR)。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的一些功能,通过使用单片机编写的程序可以实现高智能、高效率以及高可靠性,因此采用单片机作为计算器的主要功能部件,可以很快的实现运算功能。运算模块由键盘和显示屏组成。单片机通过按键来实现输入数据和操作方式的控制,在运算过程中,对所设的数据进行四则运算时,要先确定选用的是哪一个运算符,若是+或*,则要判断结果是否会溢出,溢出则显示错误提示,没有溢出则显示运算结

    8、果,若是/,则要判断除数是否为零,为零时显示错误提示,不为零显示运算结果。第四章 软件设计4.1 汇编语言和C语言的特点及选择本设计是硬件电路和软件编程相结合的设计方案,选择合适的编程语言是一个重要的环节。在单片机的应用系统程序设计时,常用的是汇编语言和C语言。机硬件,程序可读性和可移植性比较差。而C语言虽然执行效率没有汇编语言高,但语言简洁,使用方便,灵活,运算丰富,表达化类型多样化,数据结构类型丰富,具有结构化的控制语句,程序设计自由度大,有很好的可重用性,可移植性等特点。由于现在单片机的发展已经达到了很高的水平,内部的各种资源相当的丰富,CPU的处理速度非常的快。用C语言来控制单片机无疑

    9、是一个理想的选择。所以在本设计中采用C语言编写软件程序。主程序的设计详见附录三。 4.2 键扫程序设计键扫程序的过程为:开始时,先判断是否有键闭合,无键闭合时,返回继续判断,有键闭合时,先去抖动,然后确定是否有键按下,若无键按下,则返回继续判断是否有键闭合,若有键按下,则判断键号,然后释放,若释放按键完毕,则返回,若没有释放按键,则返回继续释放。其流程图如图4.1所示。图4.1 键扫程序流程图 4.3 算术运算程序设计算术运算程序的过程为:先判断输入的运算符是+、-、*、/ 中的哪一个,若是+或-,则要判断运算结果是否溢出,溢出则显示错误信息,没溢出就显示运算结果,若是/,则要先判断除数是否为

    10、零,为零就显示错误信息,不为零则显示运算结果,若是-,则直接显示运算结果。其流程图如图4.2所示。图4.2 算术运算程序设计流程图4.4 显示程序设计显示程序的过程为:显示开始时,先进行LCD的初始化,判断是否显示汉字或ACSII码或图形,若不显示,则返回,若显示的是汉字或ACSII码,则进行相应功能的设置,然后送地址和数据,再判断是否显示完,显示完则返回,没有显示完则继续送地址,若显示的是图形,则先进行相应功能的设置,再送行地址和列地址,然后送数据,最后判断是否显示完,显示完则返回,没有显示完则继续送行地址和列地址。其流程图如图4.3所示。图4.3 显示程序流程图第五章 系统调试与存在的问题

    11、5.1 硬件调试常见故障:1、逻辑错误:它是由设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线、开路、短路等。2、元器件失效:有两方面的原因:一是器件本身已损坏或性能不符合要求;二是组装错误造成元件失效,如电解电容、集成电路安装方向错误等。3、可靠性差:因其可靠性差的原因很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;走线和布局不合理也会引起系统可靠性差。4、电源故障:若样机由电源故障,则加电后很容易造成器件损坏。电源故障包括电压值不符合设计要求,电源引线和插座不对,功率不足,负载能力差等。调试方法:包括多级调试和联机调试。在调试过程中要针对可能出现的故障认真分析,直

    12、至检查出原因并排除。本次硬件调试过程中,对所出现的问题进行了认真的分析和改正,最后能够很好的达到设计要求的效果。5.2 软件调试软件调试一般分为以下四个阶段:1、 编写程序并查错;2、在C语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。在本次调试中出现的问题有:1、在程序中有的函数名未定义;2、在抄录程序时,少录入一些字符,如:“;”、“”、“-”等符号,而出现错误;3、有一些函数名录入时少写一个字母或顺序颠倒;4、没有注意函数名的调用及定义;5、芯片引脚定义出错而导致没有实验现象。在软件调试过程中,对出现的错误进行了认真的分析和修改,多次调试成功后

    13、,能够很好的达到既定的设计效果。总 结我的题目是简易计算器的设计,对于我们这些实践中的新手来说,这是一次考验。怎样才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多在书本上没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知

    14、识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,例如对以前所学过的知识理解得不够深刻,掌握得不够牢固,对C语言掌握得不够好等。这次毕业设计的完成要特别感谢我的导师马磊娟老师,在教学繁忙、事务缠身的情况下,马老师多次抽出时间,对我的论文进行悉心的指导,从论文的选题到论文的总体框架,再到论文撰写过程中的语言组织,她都进行了细致的批阅,使得我的论文越来越规整,更加符合标准。在这里真诚地对所有关心我、帮助我、鼓励我的老师、同学、朋友道声:“谢谢!”参考文献1徐爱钧.智能化测量控制仪表原理与设计(第二版)北京航

    15、天航空大学出版社,2004.9 2孙育才等.MCS-51系列单片微型计算机及其应用(第4版)东南大学出版社,2004.33李萍等.智能仪器实验指导书大连交通大学,2007.94单片机应用技术(C语言).中国劳动社会保障出版社,2006.65武庆生,仇梅等著.单片机原理与应用.电子科技大学出版,1998.12 6朱定华著.单片机原理与接口技术.电子工业出版社,2001.4 7王宜怀,刘晓升等著.嵌入式应用技术基础教程.北京清华大学出版社,2005.7 8王威著.HCS12微控制器原理及应用.北京航空航天大学出版社,2007.10 9龚运新著.单片机C语言开发技术.北京清华大学出版社,2006.1

    16、0 10周立功.单片机实验与实践.北京航空航天大学出版社,2004.3附 录附录一:计算器硬件连线图附录二:元器件清单8051芯片1个LCD显示屏1个三极管7个1K电阻20个电容3个晶振1个按键20个排插及排线5对开关1个电源接口1个附录三:源程序str6=str5=str4=str3=str2=str1=10;str16=str15=str14=str13=str12=str1#include /51单片机基本定义头文件#include #include /循环位移头文件#define uchar unsigned char /宏定义#define uint unsigned intsbit

    17、 P1_4=P14; /I/O端口定义(矩阵扫描后4位端口)sbit P1_5=P15;sbit P1_6=P16;sbit P1_7=P17;uchar i,num s;uchar wei,wei 2,ss,ss1,ss2,str=0,0,0,0,0,0,0;long temp,temp1,str=10,10,10,10,10,10,10;uchar code dutable= /段位编码0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e;uchar code wetable=0xfe

    18、,0xfd,0xfb,0xf7,0xef,0xdf;void init(); /函数声明void panduan();void display();void delay(uint z);void shaomiao();void main() /主函数init(); /调用变量初始化函数while(1) /大循环shaomiao(); /调用矩阵扫描加处理函数diaplay(); /调用显示函数void init()ss2=0;wei2=1;temp1=0;ss=0;ss1=0;temp=0;wei=0;num=0;void delay(uint z) /延时函数(单位ms)uchar i;ui

    19、nt j;for(j=z;j0;j-)for(i=114;i0;i-);void shaomiao() /扫描加处理函数for(i=0,s=0xfe;i4;i+) /低四位端口依次赋值1P1=s; /对P1口赋值panduan(); /调用判断处理函数s=_crol_(s,1); /s循环位左移s=sl0xf0; /进行位或运算(使高4位复原)void panduan()uchar n;if(P1_4=0|P1_5=0|P1_6=0|P1_7=0)delay(10);P1=sl0xf0;if(P1_4=0|P1_5=0|P1_6=0|P1_7=0)if(P1_4=0)n=1;num=i*4+n

    20、-1;else if(P1_5=0)n=2;num=i*4+n-1;else if(P1_6=0)n=3;num=i*4+n-1;else if(P1_7=0)n=4;num=i*4+n-1;if(num=10)wei=0;if(num=10)temp=0;l1=0;wei=0;temp1=0;ss=0;wei2=1;if(ss1=0&num=11|(ss1=0&ss2!=0&num11&num999999)temp=0;ss1=1;if(num=12)temp1=temp;ss=1;ss1=1;ss2=1;if(num=13)temp1=temp;ss=2;ss1=1;ss2=1;if(nu

    21、m=14)temp1=temp;ss=3;ss1=1;ss2=1;if(num=15)ss=4;ss1=1;ss2=1;str16=temp/100000;str15=temp%100000/10000;str14=temp%10000/1000;str13=temp%1000/100;str12=temp%100/10;str11=temp%10/1;if(str11!=0)wei2=1;if(str12!=0)wei2=2;if(str13!=0)wei2=3;if(str14!=0)wei2=4;if(str15!=0)wei2=5;if(str16!=0)wei2=6;while(P1_4=0|P1_5=0|P1_6=0|P1_7=0);void display()char i1;for(i1=1;i1wei2+1;i1+)P2=wetable0;P3=dutable14;elseP2=wetablei1-1;P3=dutablestr1i1;delay(10);P3=0xff;


    注意事项

    本文(基于单片机的计算器设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开