1、计算器毕业论文毕业设计(论文) 题 目: 基于单片机的电子计算器设计 学 院: 电子信息学院 专业班级: 测控08级1班 指导教师: 张 莉 职称: 副教授 学生姓名: 代 剑 波 学 号: 40803050104 摘 要计算器一般是指“电子计算器”,该名词由日文传入中国。计算器是能进行数学运算的手持机器,拥有集成电路芯片,结构简单,功能较弱,但由于它使用方便、操作简单、价格低廉,因而广泛运用于商业交易中,也是必备的办公用品。近年来随着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,但仅单片机
2、方面的知识是不够的,还应根据具体硬件结构、软硬件结合,来加以完善。因此,单片机的应用已经越来越贴近生活,用单片机来实现一些电子设计也变得容易起来。计算器在人们的日常中是比较的常见的电子产品之一。可是它还在发展之中,以后必将出现功能更加强大的计算器,基于这样的理念,本次设计是用单片机来设计的计算器。该设计系统是以 AT89C51 为单片机, P0 口作为输入端,外接 4X4 的键盘。通过键盘扫描来对输入数的控制,在 P1 口、P2 口接了驱动电路,用来保证 LED 的工作正常。计算器将完成的功能有加,减,乘,除等功能。关键词:计算器,单片机,LCD,矩阵键盘ABSTRACTCalculator
3、generally refers to the electronic calculator, and the term is introduced to China by the Japanese. The calculator with the IC chip, simple structure, and weak function is able to perform mathematical operations on handheld machine. But it is easy using, simple operation and low price. So it is wide
4、ly used in commercial transactions, and is also an essential office supplies. With the rapid development of science and technology in recent years, the application of SCM is the deepening and promote the traditional controlling detection technologies that are increasingly updated. In real-time detec
5、tion and automatic control of microcomputer application system, the microcontroller is often used as a core component to use, but only the knowledge of the microcontroller is not enough, and should be based on the specific hardware architecture, hardware and software combination to make it perfect.
6、So the application of SCM is more and more close to life, so using of single chip to achieve some electronic designs also become easy. In the people daily life the calculator is one of the common electronic products. But it is still in development, it will become more powerful calculator in the futu
7、re. According to such idea, the design is that SCM design calculator. The design system is based on AT89C51 microcontroller, P0 port as input, external 4X4 keyboard. In P1, P2mouth is connected with the drive circuit to ensure the normal work of LED. The calculator will complete add, subtract, multi
8、ply, divide and other function. KEYWORDS: calculator, MCU, LCD, Matrix keyboard前 言计算器(calculator;counter)一般是指“电子计算器”,该名词由日文传入中国。计算器是能进行数学运算的手持机器,拥有集成电路芯片,结构简单,功能较弱,但由于它使用方便、操作简单、价格低廉,因而广泛运用于商业交易中,也是必备的办公用品之一。计算器一般由运算器、控制器、存储器、键盘、显示器、电源和一些可选外围设备及电子配件通过人工或机器设备组成。随着科学技术的不断发展及计算器应用的普及,人们发现在工业控制中,有很多时候需要
9、在恶劣的环境中进行各种数据的采集、运算和控制。本设计是由单片机实现的模拟计算器,它不仅能实现数据的加减乘除运算,而且还能使数据及其计算结果在数码管上显示出来,能够实现0-256的数字四则运算。本设计是用单片机AT89C51来控制,采用LCD1602液晶显示读取数据,软件部分是由C语言来编写的。利用键盘和LCD1602设计一个简单的数学计算器,可以完成简单的如加,减,乘,除的四则运算,并将运算结果在LCD1602上显示出来。第1章 绪论1.1研究背景1.1.1单片机发展现状单片机的发展现状:使用寿命长;低电压与低功耗化;发展速度越来越快;从 8 位、16 位到 32 位,数不胜数,应有尽有,部分
10、与主流C51系列兼容,部分与之不兼容,它们各具特色,互补互成。纵观单片机的发展历史,其有如下发展趋势:1、大容量、高性能以往单片机内的ROM为1KB4KB,RAM 为64128B。但在需要复杂控制的场合,该存储容量是不够的,必须进行外接扩充。为了适应这种领域的要求,须运用新的工艺,使片内存储器大容量化。目前,单片机内ROM 最大可达64KB,RAM 最大为2KB。另外单片机进一步改变CPU的性能,加快指令运算的速度和提高系统控制的可靠性。采用精简指令集(RISC)结构和流水线技术,可以大幅度提高运行速度。现指令速度最高者已达100MIPS(Million Instruction Per Sec
11、onds,即兆指令每秒),并加强了位处理、中断和定时控制功能。这类单片机的运算速度比标准的单片机高出10 倍以上。由于这类单片机有极高的指令速度,可以使用软件模拟其I/O 功能,由此引入了虚拟外设的新概念。 2、串行扩展技术在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。随着低价位OTP(One Time Programble)及各种特殊类型片内程序存储器的发展,加之处围接口不断进入片内,推动了单片机“单片”应用结构的发展。特别是I2C、SPI 等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。3、低功耗CMOS化MCS-51系列
12、的8031推出时的功耗达630mW,而现在的单片机普遍都在100mW左右,随着对单片机功耗要求越来越低,现在的各个单片机制造商基本都采用了CMOS(互补金属氧化物半导体工艺)。80C51就采用了HMOS(即高密度金属氧化物半导体工艺)和CHMOS(互补高密度金属氧化物半导体工艺)。CMOS虽然功耗较低,但由于其物理特征决定其工作速度不够高,而CHMOS则具备了高速和低功耗的特点,这些特征,更适合于在要求低功耗,电池供电的应用场合。所以这种工艺将是今后一段时期单片机发展的主要途径。4、微型单片化现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)等集成在一块单一的芯片上,增
13、强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)等都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。5、主流与多品种共存现在虽然单片机的品种繁多,各具特色,但仍以80C51为核心的单片机占主流,兼容其结构和指令系统的有PHILIPS公司的产品,ATMEL公司的产品和中国台湾的Winbon
14、d系列单片机。所以C8051为核心的单片机占据了半壁江山。而Microchip公司的PIC精简指令集(RISC)也有着强劲的发展势头,中国台湾的HOLTEK公司近年的单片机产量与日俱增,与其低价质优的优势,占据一定的市场分额。此外还有MOTOROLA公司的产品,日本几大公司的专用单片机。在一定的时期内,这种情形将得以延续,将不存在某个单片机一统天下的垄断局面,走的是依存互补,相辅相成、共同发展的道路。1.1.2计算器系统现状计算器一般由存储器、键盘和机器设备等组成。键盘是计算器的输入部件,一般采用接触式或传感式。为减小计算器的尺寸,一键常常有多种功能。显示器是计算器的输出部件,有发光二极管显示
15、器或液晶显示器等。除显示计算结果外,还常有溢出指示、错误指示等。计算器电源采用交流转换器或电池,电池可用交流转换器或太阳能转换器再充电。为节省电能,计算器都采用CMOS工艺制作的大规模集成电路,并在内部装有定时不操作自动断电电路。1.1.3选题意义及现状计算器(calculator;counter)一般是指“电子计算器”,该名词由日文传入中国。计算器是能进行数学运算的手持机器,拥有集成电路芯片,结构简单,功能较弱,但由于它使用方便、操作简单、价格低廉,因而广泛运用于商业交易中,也是必备的办公用品之一。随着科学技术的不断发展及计算器应用的普及,人们发现在工业控制中,有很多时候需要在恶劣的环境中进
16、行各种数据的采集、运算和控制。1.2设计概要1.2.1设计目的通过本次毕业设计,应用单片机应用基础计算机应用基础等所学相关知识及查阅资料,完成简易计算器的设计,以达到理论与实践更好的结合、进一步综合运用所学知识设计的能力的目的。通过本次设计的训练,可以使我在基本思路和基本方法上对基于MCS-51单片机的嵌入式系统设计有一个比较感性的认识,并具备一定程度的设计能力。 1.2.2设计任务1.了解单片机的基本原理。2.学习电子计算机制作基本原理及方法。3.熟练掌握PROTEL软件。4.会用KEIL编程,具有一定的编程能力。5.设计制作电子计算器硬件及软件系统。6.撰写毕业论文。 1.3设计思路1.3
17、.1系统总体模块图 图1-1总体模块图 整个系统由电源给51单片机和LCD液晶显示提供电源使其工作,当外接按键输入有效数值和运算模式时,通过主控芯片实现整个系统的功能。1.3.2系统方案 经过反复推敲最终确定系统采用以下方案:(1)采用AT89S52作为主控芯片;(2)显示模块使用LCD1602液晶显示屏;(3)输入模块使用4*4矩阵键盘;(4)AC清零按键使用独立按键并接入单片机外部中断引脚;(5)声音提示开关按键使用独立按键并接入单片机外部中断引脚;(6)平方和开方按键由开发板上的独立按键实现;(7)电源采用LM7805稳压电路。第2章 硬件设计2.1键盘输入模块设计计算器输入数字和其他功
18、能按键要用到很多按键,如果采用独立按键的方式,在这种情况下,编程会很简单,但是会占用大量的I/O 口资源,因此在很多情况下都不采用这种方式,而是采用矩阵键盘的方案。矩阵键盘采用四条I/O 线作为行线,四条I/O 线作为列线组成键盘,在行线和列线的每个交叉点上设置一个按键。这种行列式键盘结构能有效地提高单片机系统中I/O 口的利用率。矩阵键盘的设计: 图2-1矩阵键盘图2-1矩阵键盘键值与其功能对应表如下: 表2-1按键功能对照 对照 键值 0 1 2 3 4 5 6 7 8 9 + - / = . 功能 0 1 2 3 4 5 6 7 8 9 + - / = 点 2.2 LCD显示模块设计LC
19、D1602,工业字符型液晶,能够同时显示16x02即32个字符(16列2行),故简称1602。1602LCD 液晶具有功耗低、显示内容丰富、清晰,显示信息量大,显示速度较快,界面友好等而得到广泛应用,因此使用1602液晶显示屏,可以方便的显示多种字符,特别适用于单片机计算器的双行显示。液晶显示模块的设计: 图2-2液晶显示2.3清零、音乐开关、开方和多次方运算功能模块设计本设计要求在任何时候按下AC清零键,都必须退出当前操作,数据清零,准备下一次的运算,故应采用独立键盘产生下降沿输入给单片机外部中断处理。对于声音开关按键,由于要求随时关闭或打开声音提示,本设计也采用独立按键产生下降沿输入给单片
20、机的外部中断处理。而开方或多次方运算,则可与矩阵键盘一起检测,也当做一个运算符处理。具体功能按键设计如下图: 图2-3功能按键设图中,AC为清零按键、KeyBeep为声音开关按键、KeySqrt为开方按键、KeyPow为多次方按键。2.4电源模块设计由于AT89S52和LCD1602都是采用5V供电,而且其他模块功能也采用5V电平,本系统采用LM7805作为稳压芯片,经过初级和次级的电容滤波,最终得到稳定的5V电压供给系统使用。 图2-4电源2.5主控模块设计 2.5.1 MSC-51芯片简介 MCS-51单片机内部结构: 图2-5单片机内部结构图8051的复位方式可以是自动复位,也可以是手动
21、复位。其复位电路图如下: 图2-6复位电路2.5.2 AT89S52 AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程 DIP封装Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。AT89S52的最大优点是可以在线编程,在调试程序的时候,可直接带电烧录程序,烧录完成即可自动复位运行,非常适合调试程序。而且
22、AT89S52可编程一千多次以上,的确是一种价格低廉的开发芯片。 单片机的最小系统设计: 图2-7最小系统第3章 软件设计3.1显示程序设计LCD1602在上电以后,应该先等待50毫秒左右,让其内部芯片初始化后再对其进行操作。在对其操作时,应参考其时序图,先把命令写入其内部寄存器设置它的工作方式和状态。要显示数据的时候,先设置好显示坐标,再往里面写入要显示的ASCII码,LCD则通过刷新和替换来显示新的数据。其程序流程图如下图所示: 图3-1显示程序流程图其程序位于后面附录 3.2键扫程序设计由于矩阵键盘采用4行4列的结构,每一行每一列各对应一个I/O口,故程序应该逐行查询,一旦查询到有某一行
23、的按键被按下了,则根据读取到的I/O总线口的数据即可查询到是哪一列的按键被按下了,最后对应行列返回一个按键值回主函数。其程序流程图如下: 否 否 否 否 图3-2 矩阵键盘程序流程图其程序位于后面附录3.3清零程序设计根据系统要求以及硬件结构,AC按键直接接入单片机外部中段0,则程序应使用中断来清除各数据存储变量达到清零的目的,并把清零标志位至1,在主程序中不断查询标志位,若为1,则清零后。其程序框图如下图: 图3-3清零程序流程图其程序如下:/*清零中断程序*/void EX0_int() interrupt 0 if(beepflag=1) /若开声音则每一次按键均鸣叫 beep=0; d
24、elayms(100); beep=1; lcdwrite_com(0x01); /显示清屏 lcd_setxy(0,0); lcdwrite_data(0); lcd_setxy(0,0); num=N; /数字初始化 keynum1=0,keynum2=0,sign=0; ans1=0,ans2=0,ans=0,point=0; conflag=0,newcalc=0; ac=1;3.4声音开关程序设计根据要求,声音开关使用外部中断1来处理,当按下声音开关时,触发单片机进入外部中断1,在中断程序里,通过对声音开关标志位取反,在按键扫描过程中,加入对声音标志位的判断,若为1,则发出声音,即可
25、实现声音提示功能。其程序框图如下图: 否 图3-4声音开关程序流程图其程序如下:/*声音中断程序*/void EX1_int() interrupt 2 beepflag=beepflag; if(beepflag=1) /若开声音则每一次按键均鸣叫 beep=0; delayms(100); beep=1; 3.5总体设计整体程序包括:电子计算器.C、lcd1602.C和lcd1602_8.h 本系统采用大小循环嵌套方式的软件设计思想,大循环则一直在运行,使计算器一直处于工作状态,并不断扫描按键,小循环用于识别数字是否输入完,一旦检测到输入的是运算符,则转换输入数值并储存起来,最后按下等于号
26、以后则根据运算符计算两个数值的大小,并通过LCD显示。软件系统总框图如下: 是 是 否 是 是 是 否 是 否 图3-5 总程序流程图其程序位于后面附录第4章 系统仿真及原理图4.1 Proteus仿真系统仿真图见下图: 图4-1系统仿真图 图4-2加法运算 图4-3减法运算 图4-4乘法运算 图4-5除法运算 图4-6开根号运算 图4-7幂运算 图4-8错误提示1 图4-9错误提示24.2 Protel原理图 系统原理图见下图: 图4-10系统原理图第5章 系统调试5.1问题与分析5.1.1硬件常见故障1、逻辑错误:它是由设计错误或加工过程中的工艺性错误所造成的。这类错误包括错线、开路、短路
27、等。2、元器件失效:有两方面的原因:一是器件本身已损坏或性能不符合要求;二是组装错误造成元件失效,如电解电容、集成电路安装方向错误等。3、可靠性差:因其可靠性差的原因很多,如金属化孔、接插件接触不良会造成系统时好时坏,经不起振动;走线和布局不合理也会引起系统可靠性差。4、电源故障:若样机由电源故障,则加电后很容易造成器件损坏。电源故障包括电压值不符合设计要求,电源引线和插座不对,功率不足,负载能力差等。5.1.2软件调试软件调试一般分为以下四个阶段:1、编写程序并查错;2、在 C 语言的编译系统中编译源程序3、对程序进行编译连接,并及时发现程序中存在的错误;4、改正错误。在本次调试中出现的问题
28、有:1、在程序中有的函数名未定义;2、在抄录程序时,少录入一些字符,如: ”“”“-”“;、 、等符号,而出现错误;3、有一些函数名录入时少写一个字母或顺序颠倒;4、没有注意函数名的调用及定义;5、芯片引脚定义出错而导致没有实验现象。5.2系统演示整体图的照片: 图5-1未工作时系统各项功能测试: 表5-1功能测试加法测试 减法测试 表5-2功能测试乘法测试 除法测试 表5-3功能测试开方测试 多次方运算测试 表5-4功能测试错误提示测试1 错误提示测试2 由以上测试结果可知,计算器的各项功能正常,基本能达到设计要求。下面将进行多次测试,以检验计算器的性能指标。本次对计算器的功能进行多次测量,
29、其测试结果如下表:表5-5功能多次测量次数 第一运算数 运算符号 第二运算数 运算结果 实际结果1 524 + 5624.563 6148.5629882 6148.563 2 55914 - 264.51 55649.4882811 55649.493 562 * 2 1124 11244 67 / 7.5 8.933334 8.933333335 8 (无输入) 2.828427 2.284271256 9 2 81 817 (无输入) + 19 100 1008 (无输入) (无输入) 10 109 42 / 0 math error 错误10 -64 (无输入) math error
30、错误结果分析:对比运算结果和实际结果可知,进行一般的整形运算计算器能准确无误计算出来,但是当进行浮点运算时候,会产生精度丢失或者是有尾数产生,这是因为单片机对的浮点运算功能差,而且在keil开发环境中,float型和double型浮点数的精度都是一样的,其小数点的有效数字位数都是67位,这就决定了本设计的计算器的浮点数精度有限,只能通过小数点补偿来减少浮点数运算误差。另外,由连续运算、新一轮运算测试、错误提示测试的结果以及运算过程中的AC清零、声音开关设置可见,本设计的计算器的功能基本能实现。但是,由实际操作可发现本设计存在以下不足: (1)某些按键不够灵敏,导致需要按很多次才能输入; (2)当运算式子超过屏幕范围时,不能通过移动屏幕来完全显示式子; (3)当连续出现错误操作时,如连续输入减号,程序不能自动复位,会产生连续错误; (4)没有删除输入功能,当输入出错时,只能通过清零后重新输入; (5)没有数据溢出提示功能。第6章 总结与展望6.1总结 经过多次测量与调试,本计算器基本能实现设计要求中的功能。在设计的过程中,也遇到了不少的困难,例如在LCD上显示任意位整数,显示任意位小数,在输入小数的时候小数点的处理问题,连续运算的结果保存与
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1