基于MSC-51单片机计算器_毕业设计论文
- 格式:doc
- 大小:2.23 MB
- 文档页数:61
基于51单片机简易计算器设计引言计算器(Calculator)是微型电子计算机的一种特殊类型。
它与一般通用计算机的主要区别在于程序输入方式的不同。
计算器的程序一般都已经固定,只需按键输入数据和运算符号就会得出结果,很容易就能掌握。
而一般计算机的程序可以根据需要随时改动,或重新输入新的程序。
简易计算器主要用于加减乘除;科学计算器,又增添了初等函数运算(有的还带有数据总加、求平均值等统计运算)。
现代电子计算器首次问世是1963年。
那时的计算器是台式的,在美国波士顿的电子博览会上展出过。
与计算机相比,它小巧玲珑,计算迅捷,一般问题不必事先编写复杂的程序。
随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数器、并行和串行接口、看门狗、前置放大器、A/D转换器、D/A转换器等多种电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。
这种技术促使机器人技术也有了突飞猛进的发展,目前人们已经完全可以设计并制造出具有某些特殊功能的简易智能机器人。
随着社会需求,计算器也从原有单一的数字加减计算演变为复杂的多种运算。
现在不在单一的在某一方面而是涉及到生活的方方面面.由于我对知识掌握的不够熟练,重点不够清楚,导致在重点与非重点处花费的时间不成比例,进度缓慢,这是设计没能全部完成的部分原因。
目前只做到按键与显示的结合(即在显示器上可以显示数字键还有命令键+-*/ =清零);加法子程序已经编写成功并严整无误,但在整体调试中未能圆满实现,本部分正在调试中。
等调试成功后,其它运算子程序的问题将迎刃而解。
1.简易计算器的设计方案1.1硬件部分设计方案1 单片机部分单片机以AT89C51来做为核心元器件。
2 按键部分设计思路:采用4*4行列式键盘,分别设定数字键和功能键,采用查询方式,每次有键按下时,先判断是实数字键还是功能键。
但是这种方式采用了大量的I/O口线。
基于51单片机的计算器设计计算器作为一种常用的电子设备,广泛应用于各个领域。
在本文中,我们将基于51单片机来设计一个简单的计算器,并对其进行详细介绍。
一、设计目标我们所设计的计算器需要具备以下功能:1.实现基本的算术运算,包括加、减、乘、除等;2.具备显示功能,能够将输入和运算结果以数字的形式显示在液晶屏上;3.提供清零和删除功能,方便计算器的操作;4.具备较高的计算精度和稳定性。
二、硬件设计计算器的硬件设计主要包括键盘输入、液晶屏输出和计算程序控制三个部分。
1.键盘输入为了简化设计的复杂度,我们采用矩阵键盘来实现输入功能。
矩阵键盘由多个行和多个列交叉连接而成,通过扫描行和列的方式来检测键盘输入的按键信息。
2.液晶屏输出我们选择16x2字符液晶显示屏来作为计算结果的输出设备。
这种液晶屏可以显示16个字符,每个字符由5x8像素点阵组成,具备较好的显示效果。
3.计算程序控制我们将基于51单片机来编写计算器的计算程序,并通过电路连接键盘输入和液晶屏输出设备。
通过读取键盘输入的按键信息,计算程序能够判断用户输入的数字和操作符,并进行相应的计算操作。
最后,计算结果将以数字的形式显示在液晶屏上。
三、软件设计计算器的软件设计主要包括键盘扫描与输入处理、计算程序控制和液晶屏显示三个模块。
1.键盘扫描与输入处理通过循环扫描矩阵键盘的行和列,可以得到按键信息。
根据按键信息的不同,我们可以判断用户输入的数字和操作符,并将其传递给计算程序模块进行处理。
同时,我们需要对一些特殊按键(如清零和删除)做特殊处理。
2.计算程序控制计算程序模块将根据键盘输入的数字和操作符,进行相应的算术运算。
我们可以采用栈的数据结构来处理运算符和运算数,以实现复杂的算术运算。
3.液晶屏显示计算结果将以数字的形式显示在液晶屏上。
我们可以通过51单片机的GPIO口控制液晶显示屏的操作,包括写入指令和写入数据。
通过设定光标位置及写入数字数据,可以将计算结果显示在液晶屏的指定位置上。
基于51单片机的简易计算器论文设计摘要:计算器是一种常见的电子设备,用于数学计算。
随着科技的迅速发展,计算器不再是一种巨大且笨重的机械设备。
相反,它们变得迷你、便携且功能强大。
本论文旨在设计和实现一种基于51单片机的简易计算器。
该设计利用了51单片机的优点,如低功耗、成本低廉和易于学习等特点。
本论文介绍了设计和实现的过程,包括硬件电路设计、软件程序编写以及性能测试等方面。
1.引言计算器广泛应用于日常生活和学习中,人们常常需要进行加减乘除等简单的数学计算。
为了提供便捷的计算功能,传统计算器使用专用的集成电路设计。
然而,这种计算器成本较高,体积较大,且功能有限。
为了满足市场需求,我们设计了一款基于51单片机的简易计算器。
2.硬件电路设计2.1键盘模块键盘模块采用矩阵键盘设计,包括数字键0-9、运算符键+、-、*、/以及等于键=。
采用矩阵建构可以减少IO口资源的使用,并简化设计。
2.2显示模块显示模块采用液晶显示器,能够清晰地显示数字、运算符和结果。
为了实现更好的用户交互体验,还可以添加背光模块。
2.3控制电路控制电路由51单片机和其他常用电子元件组成,可以通过编程控制键盘的输入和显示模块的输出。
其中,51单片机充当了控制中心的作用,负责接收键盘输入、解析用户命令、进行数学计算和控制显示模块的显示。
2.4电源电路电源电路用于提供稳定的电源给整个计算器系统。
电源电路由电池、稳压电路和滤波电路组成,能够为计算器提供稳定的电压和电流。
3.软件程序设计软件程序设计是整个计算器系统的核心。
主要功能包括接收键盘输入、解析输入、进行数学计算、控制显示模块的显示和处理异常情况。
3.1键盘输入接收软件程序通过扫描键盘矩阵来接收键盘输入。
当用户按下一些键时,软件程序会检测到相应的按键信号,并将其转换为数值或运算符。
3.2输入解析软件程序能够解析用户的输入,判断用户输入的是数字还是运算符,并将其保存在相应的变量中。
同时,软件还可以处理异常输入,如除以零等情况。
51单片机简易计算器论文摘要:本篇论文基于51单片机设计并实现了一款简易计算器。
该计算器具有基本的加、减、乘、除四则运算功能,并支持小数点运算和括号运算。
通过设计合理的菜单界面和使用者友好的操作方式,使得计算器更加易用。
本文介绍了计算器的硬件设计和软件设计,并对其进行了功能测试和性能评估。
实验结果表明,该计算器具有较好的计算精度和运算速度,能够满足一般计算需求。
关键词:51单片机,简易计算器,四则运算,菜单界面1.引言随着计算机技术的发展和普及,计算器作为一种便携式计算工具得到了广泛应用。
无论是学生、工程师还是商务人士,都离不开计算器的帮助。
本文旨在设计一款基于51单片机的简易计算器,以满足用户日常计算需求。
2.硬件设计本文采用51单片机作为计算器的主控芯片,搭配LCD显示屏、按键和外部存储器等外围电路。
通过合理的电路连接和引脚设置,实现计算器的功能。
3.软件设计3.1主程序设计计算器的主程序采用C语言编写。
主程序主要包括菜单界面设计、按键响应和运算处理等功能。
通过LCD显示屏输出菜单选项,并通过按键输入执行相应的功能。
3.2加法运算加法运算是计算器最基本的功能之一、在软件设计中,通过读取按键输入的数值,并使用加法运算符将数值累加,最后显示结果。
3.3减法运算减法运算与加法运算类似,通过读取按键输入的数值,并使用减法运算符将数值相减,最后显示结果。
3.4乘法运算乘法运算是计算器的扩展功能之一、在软件设计中,定义乘法运算函数,通过读取按键输入的数值,并使用乘法运算符将数值相乘,最后显示结果。
3.5除法运算除法运算也是计算器的扩展功能之一、在软件设计中,定义除法运算函数,通过读取按键输入的数值,并使用除法运算符将数值相除,最后显示结果。
3.6小数点运算和括号运算为了提高计算器的实用性,本文还添加了小数点运算和括号运算功能。
在软件设计中,通过读取按键输入的数值,并进行相应的运算处理和显示结果。
4.功能测试和性能评估为了验证计算器的功能和性能,本文进行了一系列的功能测试和性能评估。
摘要近几年单片机技术的发展很快,其中电子产品的更新速度迅猛。
计算器是日常生活中比较的常见的电子产品之一。
如何才能使计算器技术更加的成熟,充分利用已有的软件和硬件条件,设计出更出色的计算器呢。
本设计是以AT89S52单片机为核心的计算器模拟系统设计,输入采用4×4矩阵键盘,可以进行加、减、乘、除4位带符号数字运算,并在LCD1602上显示操作过程。
科技的进步告别了以前复杂的模拟电路,一块几厘米平方的单片机可以省去很多繁琐的电路。
现在应用较广泛的是科学计算器,与我们日常所用的简单计算器有较大差别,除了能进行加减乘除,科学计算器还可以进行正数的四则运算和乘方、开方运算,具有指数、对数、三角函数、反三角函数及存储等计算功能。
计算器的未来是小型化和轻便化,现在市面上出现的使用太阳能电池的计算器,使用ASIC设计的计算器,如使用纯软件实现的计算器等,未来的智能化计算器将是我们的发展方向,更希望成为应用广泛的计算工具。
[关键词] AT89S52 LCD1602 计算器矩阵键盘目录第一章前言 (1)1.1 系统开发背景 (1)1.2 系统开发意义 (1)1.3 设计目的 (1)第二章方案论证 (2)2.1 方案构思 (2)2.2 方案比较与选择 (2)第三章系统硬件设计及说明 (3)3.1系统组成及总体框图 (3)3.2元件简介 (3)3.2.1 AT89S52特点 (3)3.2.2 LCD1602液晶显示屏 (9)第四章设计原理分析 (12)4.1 设计方案的确定 (13)4.2计算器硬件方案及硬件资源分配 (13)4.2.1 硬件资源分配 (15)4.2.2 系统的硬件设计 (13)4.2.3 键盘电路的设计 (16)4.2.4 显示电路的设计 (16)第五章计算器的软件设计 (17)5.1计算器的软件规划 (17)5.2 键盘扫描的程序设计 (16)5.3 显示模块的程序设计 (18)5.4 主程序的设计 (19)5.5 软件的可靠性设计 (19)结束语 (19)参考文献 (20)第一章前言1.1 系统开发背景随着社会的发展,科学的进步,人们的生活水平在逐步的提高,尤其是微电子技术的发展,犹如雨后春笋般的变化。
南昌工程学院毕业设计 (论文)机械与电气工程学院(院)系电气工程及其自动化专业毕业设计(论文)题目基于单片机设计的计算器(硬件)学生姓名班级学号指导教师完成日期 2010 年 6 月 18 日基于单片机设计的计算器(硬件)The calculator based on the design of MCU (hardware)总计毕业设计(论文) 34 页表格 6 个插图 18 幅摘要近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,近年来随着计算机在社会领域的渗透和大规模集成电路的发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域。
作为微型机的一个主要分支,单片机在结构上的最大特点是把CPU、RAM和ROM存储器、定时器和多种I/O接口电路集成在一块超大规模集成电路芯片上。
从它的组成和功能来看,一块单片机芯片其实就是一台计算机。
本次设计是采用MSC-51单片机来设计的六位数计算器, 采用C语言进行程序编写实现计算器功能。
外接4X5的键盘,通过键盘扫描来完成输入数的控制,输出采用1602液晶显示,并设有清零键可随时完成计算与显示的清零。
计算器将完成的0至99999整数的加/减/乘/除运算。
关键字:单片机AT89S52 1602液晶矩阵键盘 C语言AbstractIn recent years, as computer penetration in the social field and large-scale development of integrated circuits, microcontroller applications are continually deepening, because of its powerful function, small size, low power consumption, cheap, reliable, easy to use, etc. therefore particularly suitable for systems with control of more and more widely used in automatic control, intelligent instruments, meters, data acquisition, military products and home appliances fields.As one of the main branch of microcomputer, microcontroller in the structure of the biggest feature is the CPU, RAM and ROM memory, timer and multiple I / O interface circuit integrated on a VLSI chip. The composition and function from its point of view, a single chip isactually a computer.This design is the use of MSC-51 microcontroller to design the six-digit calculator, using C programming language to achieve calculator functions. 4X5external keyboard, the keyboard scan to finish by the number of control values and the 1602 output with human-type liquid crystal to achieve,and has cleared at any time to complete key calculation and display clear. Calculator to complete from 0 to 99999 plus / minus / multiply / divide.Key words: MCU AT89S52; LCD1602; Matrix Keyboard; C language目录摘要 IABSTRACT II第一章引言 11.1 选题的依据及课题的意义 11.2 研究概况及发展趋势综述 11.3 实验设计要求 21.4.总体设计思路 2第二章设计方案论证与选择 32.1 控制部分的设计方案论证与选择 32.2 显示电路的设计方案论证与选择 42.3 单片机电源部分的设计方案论证与选择 6 2.4 键盘设计方案论证与选择 82.5 单片机复位电路的设计方案论证与选择 9 2.6 系统组成 10第三章重要器件的知识介绍 113.1 单片机的知识介绍 113.1.1单片机功能特性 113.1.2单片机各引脚功能说明 113.1.3单片机时钟电路 133.1.4 LED提示电路 143.2 1602液晶显示资料 15第四章计算器的软件编程 164.1 程序设计思想 164.2 4*5键盘扫描程序 174.3 1602液晶显示程序 18第五章计算器使用说明 19结语 20参考文献 21致谢 22附录 23第一章引言单片机设计的计算器在人们的日常中是比较的常见的电子产品之一。
华侨大学厦门工学院单片机控制系统课程设计报告题目:基于51单片机的简易计算器专业、班级:通信3班学生姓名:学号:指导教师:2014年月日目录一、设计任务目的 (2)二、计任务要求 (2)三、设计方案选取与论证 (2)四、电路设计 (3)4.1总体电路图 (3)4.2 硬件设计 (4)4.2.1 矩阵按键 (4)4.2.2 STC89C52主芯片 (4)4.2.3 LCD显示 (6)4.3软件设计 (7)4.3.1 键盘模块 (7)4.3.2 计算模块 (8)4.3.3 显示模块 (9)五.制作及调试过程 (9)5.1 制作过程 (10)5.2 软件调试 (10)5.3 硬件调试 (11)结论 (12)致谢 (13)参考文献 (13)附件 (14)附录1.程序代码 (14)附录2.元器件清单 (22)一、设计任务目的设计一个计算器,可以进行简易的四则运算。
二、计任务要求1、能够进行简单的四则运算,包括带负数的运算。
用LCD显示数据和结果(6位即可)2、采用键盘输入方式,键盘包括数字键(0~9)、符号(+、-、×、÷)、清除键(c)和等号键(=),故只需要16 个按键即可。
3、在执行过程中,开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。
4、错误提示:当计算器执行过程中有错误时,会在LCD上显示相应的提示,如:当输入的数值或计算得到的结果大于计算器的表示范围时,计算器会在LCD 上提示OV;当除数为0时,计算器会在LCD上提示ERR。
三、设计方案选取与论证根据功能和指示要求,本系统选用51单片机为主控机。
通过扩展必要的外围电路接口实现计算的设计。
具体如下:1、由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD显示数据和结果。
湖南机电职业技术学院毕业设计说明书课题名称: 基于51单片机简易的计算器制作院、系:电气工程学院专业:机电一体化学生班级:机电1211 学生姓名:成超强指导教师:李婕妤完成日期: 2021.10毕业设计任务书题目:基于51单片机的简易计算器制作任务与要求:在生活当中我们经常需要进行加减乘除计算,随着科技的开展,电子计算器代替心算和笔算已经相当普及。
但目前市面上有些电子计算器的功能设计过于复杂,功能简易实用的电子计算器反而更加适用于老人和小孩,且本钱低廉,存在一定的市场需求。
因此本设计制作一款适用于老人和小孩的简易电子计算器。
基于51单片机的简易计算器应用AT89C51单片机,通过4*4矩阵键盘设计计算器需要的数字键和功能键,用4个数码管来显示运算过程和结果。
此计算器由于受数码管个数限制,只能进行0-999内的加减乘除计算,显示结果只显示整数局部。
1.设计任务设计简易计算器的硬件电路,绘制PCB板,组装简易计算器,并完成计算器的C语言程序设计。
2.要求:1、计算器需设计0-9、+、—、*、%、=、去除共16个按键。
2、计算器带4位数码管显示。
3、计算器能实现3位数内的加减乘除计算。
4、计算器硬件应包含程序下载电路。
毕业设计(论文)进度方案表目录毕业设计任务书 (2)毕业设计(论文)进度方案表 (2)第一章单片机介绍 (6)1单片机及其应用 (6)1.1 单片机介绍 (6)1.2 单片机的应用 (7)第二章元件介绍 (7)单片机介绍 (8)第三章系统设计 (10)单片机简易的计算器制作 (10)数码管显示 (11)矩阵按键 (11)第四章系统硬件的设计与介绍 (12)复位电路的设计 (12)时钟震荡电路的设计 (13)输入电路的设计 (14)输出电路的设计 (16)第五章系统程序的设计与介绍 (18)显示程序流程图设计 (18)读键输入程序流程图 (20)主程序设计 (21)仿真与调试 (22)第六章心得体会 (24)结语........................................................................................ 错误!未定义书签。
(完整)基于51单片机的简易计算器设计基于51单片机的简易计算器设计计算器作为一种常见的电子设备,既能满足日常生活的计算需求,又能帮助人们提高工作效率。
本文将介绍基于51单片机的简易计算器的设计。
该计算器具备加减乘除的基本计算功能,并支持用户输入和结果显示。
下面将从材料准备、电路连接和程序设计三个方面详细介绍该计算器的设计。
一、材料准备在设计计算器之前,我们需要准备以下材料:1. 51单片机开发板:用于控制计算器的整个运行过程;2. 液晶显示屏:用于显示用户输入的数字和计算结果;3. 数字按键:用于用户输入数字和运算符;4. 连接线:用于连接51单片机开发板、液晶显示屏和数字按键。
二、电路连接1. 连接液晶显示屏和51单片机开发板:将液晶显示屏的VCC、GND、SCL和SDA引脚分别与开发板上对应的引脚连接。
2. 连接数字按键和51单片机开发板:将数字按键的引脚依次与开发板上的IO口引脚连接,其中有一根引脚需要连接到开发板的中断口。
三、程序设计1. 初始化设置:在程序开始时,进行液晶显示屏和数字按键的引脚初始化设置,以及相应的中断设置。
2. 输入处理:通过数字按键输入,获取用户输入的数字和运算符,并将其保存到相应的变量中。
3. 运算处理:根据用户输入的运算符,对相应的数字进行加、减、乘、除的运算,并将结果保存到一个变量中。
4. 结果显示:将运算结果显示在液晶显示屏上,以便用户查看计算结果。
5. 重置处理:在每次运算结束后,对相关变量进行重置,以便下一次计算。
通过以上程序设计,我们可以完成基于51单片机的简易计算器的设计。
在实际使用过程中,用户只需要通过数字按键输入相应的数字和运算符,计算器就可以自动进行运算,并将结果显示在液晶显示屏上,方便用户进行查看。
总结本文介绍了基于51单片机的简易计算器的设计。
通过合理的材料准备、电路连接和程序设计,我们可以实现一个具备加减乘除功能的计算器。
该计算器不仅能满足人们日常的计算需求,还能帮助提高工作效率。
本科毕业论文题目:基于51单片机简易计算器的设计毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:日期:指导教师签名:日期:使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:日期:学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:日期:年月日导师签名:日期:年月日注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
哈尔滨远东理工学院学士学位论文题目: 基于MSC-51单片机计算器分院: 工学院专业: 电子信息工程二0 年月日毕业设计(论文)评语及成绩是否同意参加答辩:指导教师签字:20 年月日二.评阅人评语:是否同意参加答辩:评阅教师签字:20 年月日是否建议授予学士学位:答辩委员会成员签字:1. 2. 3.4. 5. 6.7. 8. 9.20 年月日四.答辩委员会主任单位答辩委员会主任职称答辩委员会主任签字20 年月日五.毕业设计(论文)成绩:学生所在分院盖章: 20 年月日哈尔滨远东理工学院毕业设计(论文)任务书学生姓名学号分院专业任务起止时间: 年月日至年月日毕业设计(论文)题目:毕业设计(论文)工作内容:毕业设计(论文)进度安排:1.查阅中外文文献资料,写出文献综述阶段:2012年12月10日——2013年1月10日2.调查.设计.实验.研究阶段:2013月1 月11日——2013年3月31日3.设计(论文)撰写与整理阶段:2013年4 月1 日——2013年5月31日指导教师意见与要求:签字:年月日主任意见:签字:年月日近年来,伴随着计算机在大规模集成电路的发展和社会领域的渗透,单片机应用正在不断地走向深入.由于它具有功能强,体积小,功耗低,性价比高,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领域.作为微型机的一个主要分支,单片机在结构上的最大特点是把CPU.RAM和ROM存储器.定时器和多种I/O接口电路集成在一块超大规模集成电路芯片上.从它的组成和功能来看,一块单片机芯片其实就是一台计算机.本次设计是采用MSC-51单片机来设计的四位数计算器, 采用C语言进行程序编写实现计算器功能.外接4X4的键盘,通过键盘扫描来完成输入数的控制,利用驱动电路使数值与结果在七段共阴极数码管上正常显示,并设有清零键可随时完成计算与显示的清零.计算器将完成的0至9999整数的一次加/减/乘/除运算.关键词:MSC-51单片机四位数计算器 C语言In recent years, along with the penetration of computer LSI development and social fields, SCM applications are constantly deepening. Because of its strong function, small size, low power consumption, cost-effective, easy to use features, it is particularly suitable in relation to the control of the system, more and more widely used in automatic control, intelligent instruments, instrumentation, data acquisition, military products as well as household appliances and other fields.The most important feature of the microcontroller on the structure as a major branch of the microcomputer, CPU, RAM and ROM memory, timers, and multiple I / O interface circuit integrated in a VLSI chip. From its composition and function of a single chip is actually a computer.The design is a four-digit calculator MSC-51 microcontroller design, using C language programming calculator function. External 4X4 keyboard, the keyboard scan to complete control of the number of input by the drive circuit to the numerical results on the seven-segment common cathode LED display properly, and has cleared the clear key at any time to complete the calculation and display. Calculator will be completed 0-9999 integer add / subtract / multiply / divide operations.Keywords: MSC-51 single-chip four-digit calculator C language目录摘要 (I)Abstract (II)目录 (III)第1章绪论 (1)1.1 单片机的发展历史和趋势 (1)1.1.1发展历史 (1)1.1.2 发展趋势 (1)1.2 MCS-51单片机系统简介 (2)1.2.1 单片机的基本特点 (2)1.2.2 单片机的组成 (3)1.3 本章小结 (3)第2章MCS-51单片机计算器总体方案 (4)2.1 设计任务 (4)2.2 方案设计 (4)2.2.1 主程序方案 (4)2.2.2 按键显示方案 (4)2.2.3 设计难点 (4)2.3 本章小结 (4)第3章MCS-51单片机计算器硬件设计 (6)3.1 主要元件介绍与选择 (6)3.1.1 电阻 (6)3.1.2 电容器 (6)3.2各硬件的功能与连接 (6)3.2.1 AT89S51单片机 (6)3.2.2七段数码管 (8)3.2.3 按键 (9)3.2.4 矩阵式键盘设定 (9)3.2.5 复位.时钟电路设计 (9)3.3 本章小结 (10)第4章MCS-51单片机计算器软件设计 (12)4.1 软件设定 (12)4.1.1 程序规划 (12)4.1.2 程序设定 (12)4.1.3 数码管显示程序设计 (13)4.1.4 键盘程序设计 (14)4.2 程序总编 (15)4.2.1 主要变量 (15)4.2.2 程序模块 (16)4.3 本章小结 (16)第5章实验环境与调试 (17)5.1 软件实验方法 (17)5.2 实际焊接及其注意事项 (18)5.3 本章小结 (18)结论 (19)致谢 (20)参考文献 (21)附录A (23)附录B (30)附录C (34)附录D (37)第1章绪论1.1 单片机的发展历史和趋势1.1.1发展历史继1971年微处理器的研制成功不久以后,就出现了单片机,但最早的单片机是1位的,当时因为工艺限制,单片机采用双片的形式而且功能比较简单.如果我们以8位单片机的推出作为起点,那么单片机的发展历史大致可分为以下几个阶段.[1]1.第一阶段(1976-1978)单片机的初级阶段.以Intel公司的MCS–48为代表.MCS–48的推出是在工业控制领域的控索,参与这一控索的公司还有Motorola .Zilog等,都取得了满意的效果.这就是SCM的诞生年代,―单机片‖一词即由此而来.2.第二阶段(1978-1982)单片机的完善阶段.Intel公司在MCS–48 基础上推出了完善的.典型的单片机系列MCS –51.它在以下几个方面奠定了典型的通用总线型单片机体系结构.①完善的外部总线.MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线.16位地址总线.控制总线及具有很多机通信功能的串行通信接口;②CPU外围功能单元的集中管理模式;③体现工控特性的位地址空间及位操作方式;④指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令.3.第三阶段(1982-1990)8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段.Intel公司推出的MCS–96系列单片机,将一些用于测控系统的模数转换器.程序运行监视器.脉宽调制器等纳入片中,体现了单片机的微控制器特征.随着MCS–51系列的广应用,许多电气厂商竞相使用8051为内核,将许多测控系统中使用的电路技术.接口技术.多通道A/D转换部件.可靠性技术等应用到单片机中,增强了外围电路路功能,强化了智能控制的特征.4.第四阶段(1990—现在)微控制器的全面发展阶段.随着单片机在各个领域全面深入地发展和应用,出现了高速.大寻址范围.强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机.[2]1.1.2 发展趋势目前,单片机正朝着高性能和多品种方向发展趋势将是进一步向着CMOS化.低功耗.小体积.大容量.高性能.低价格和外围电路内装化等几个方面发展.下面是单片机的主要发展趋势.CMOS化:近年来由于CHMOS技术的进小,大大地促进了单片机的CMOS 化.CMOS芯片除了低功耗特性之外,还具有功耗的可控性,使单片机可以工作在功耗精细管理状态.这也是今后以80C51取代8051为标准MCU芯片的原因.因为单片机芯片多数是采用CMOS(金属栅氧化物)半导体工艺生产.CMOS电路的特点是低功耗.高密度.低速度.低价格.采用双极型半导体工艺的TTL电路速度快,但功耗和芯片面积较大.随着技术和工艺水平的提高,又出现了HMOS(高密度.高速度MOS)和CHMOS工艺.CHMOS和HMOS工艺的结合.目前生产的CHMOS 电路已达到LSTTL的速度,传输延迟时间小于2ns,它的综合优势已在于TTL电路.因而,在单片机领域CMOS正在逐渐取代TTL电路.低功耗化:单片机的功耗已从Ma级,甚至1uA以下;使用电压在3~6V之间,完全适应电池工作.低功耗化的效应不仅是功耗低,而且带来了产品的高可靠性.高抗干扰能力以及产品的便携化.低电压化:几乎所有的单片机都有WAIT.STOP等省电运行方式.允许使用的电压范围越来越宽,一般在3~6V范围内工作.低电压供电的单片机电源下限已可达1~2V.目前0.8V供电的单片机已经问世.低噪声与高可靠性:为提高单片机的抗电磁干扰能力,使产品能适应恶劣的工作环境,满足电磁兼容性方面更高标准的要求,各单片厂家在单片机内部电路中都采用了新的技术措施.大容量化:以往单片机内的ROM为1KB~4KB,RAM为64~128B.但在需要复杂控制的场合,该存储容量是不够的,必须进行外接扩充.为了适应这种领域的要求,须运用新的工艺,使片内存储器大容量化.目前,单片机内ROM最大可达64KB,RAM最大为2KB.高性能化:主要是指进一步改进CPU的性能,加快指令运算的速度和提高系统控制的可靠性.这类单片机的运算速度比标准的单片机高出10倍以上.由于这类单片机有极高的指令速度,就可以用软件模拟其I/O功能,由此引入了虚拟外设的新概念.小容量.低价格化:与上述相反,以4位.8位机为中心的小容量.低价格化也是发展动向之一.这类单片机的用途是把以往用数字逻辑集成电路组成的控制电路单片化,可广泛用于家电产品.外围电路内装化:这也是单片机发展的主要方向.随着集成度的不断提高,有可能把众多的各种处围功能器件集成在片内.除了一般必须具有的CPU.ROM.RAM.定时器/计数器等以外,片内集成的部件还有模/数转换器.声音发生器.监视定时器.液晶显示驱动器.彩色电视机和录像机用的锁相电路等.串行扩展技术:在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构.随着低价位OTP(One Time Programble)及各种类型片内程序存储器的发展,加之处围接口不断进入片内,推动了单片机―单片‖应用结构的发展.特别是IC.SPI等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化.1.2 MCS-51单片机系统简介1.2.1 单片机的基本特点由于单片机的这种结构形式及它所采取的半导体工艺,使其具有很多显著的特点,因而在各个领域都得到了迅猛的发展.单片机主要有如下特点:①有优异的性能价格比;②集成度高.体积小.有很高的可靠性.单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力.另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作;③ 控制功能强.为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令.I/O 口的逻辑操作以及位处理功能.单片机的逻辑控制功能及运行速度均高于同一档次的微机.;④ 低功耗.低电压,便于生产便携式的产品.;⑤ 外部总线增加了IC (Inter-Integrated Circuit )及SPI (Serial Peripheral Interface )等串行总线方式,进一步缩小了体积,简化了结构;⑥单片机的系统扩展和系统配置较典型.规范,容易构成各种规模的应用系统.[3]1.2.2 单片机的组成图1.1为单片机的典型功能结构框图.由图可见,它通过内部总线把计算机的各主要部件连接为一体,其内部总线包括地址总线.数据总线和控制总线.其中,地址总线的作用是在进行数据交换时提供地址,CPU 通过它们将地址输出到存储器或I/O 接口;/数据总线的作用是在CPU 与存储器或I/O 接口之间,或存储器与外设之间交换数据;控制总线包括CPU 发出的控制信号线和外部送入CPU 的应答信号线等.[4]图1.1 MSC-51单片机功能结构框图1.3 本章小结本章详细讲述了单片机的发展过程,介绍了MSC-51单片机的基本结构.一方面对本设计的意义作了阐释,令一方面也为后面的理论知识展开进行铺垫.单片机的使用体现在我们生活中的方方面面,几乎很难找到哪个领域没有单片机的踪迹,认识它的历史和了解其未来的发展,更能拓展我们的视野和知识.可以说,单片机现在仍然处于成长阶段,但是它已经在不断促进整个世界前进的步伐,我们对于电子技术的研究,特别是微电子技术方向的学习,一定是需要与单片机密切联系的.振荡器及CPU 程序存储器4KB 数据存储器256B 2个16位定时器/计数器64K 总线扩展控制可编程I/O 可编程全双工串行口第2章MCS-51单片机计算器总体方案2.1 设计任务按照任务书大纲和自己的理解,所设计的单片机计算器需满足以下要求:①扩展一个4*4的键盘,其中包括10个数字键,5个功能键以及1个清零键;②完成基本的十进制的四则运算(即加.减.乘.除);③使用使用keil C软件编写和调试程序;④计算器可显示4位数字.其中,系统划分为显示模块.键盘模块.处理程序三个模块.显示模块实现将CUNZHI中的值进行动态数码显示,包括:P0口送显示码,P2口为公共端扫描;键盘模块进行键盘扫描;处理程序模块实现计算器加减乘除运算.[5]2.2 方案设计2.2.1 主程序方案①方案一将显示处理程序置于定时中断程序中实现其功能,主程序为键盘扫描程序.[6]②方案二利用主程序为显示处理程序键盘扫描程序.取消定时中断的使用.在方案比较中,方案一效率低,单片机的反应无法进行运行,方案二虽未能解决按键长按无显示的缺点,但其运算速度快.最终选定为方案二.2.2.2 按键显示方案因为计算器至少需要显示4位数字,开机运行时,只有数码管最低位显示为“0”,其余位全部不显示;当键盘第一次按下时,数码显示“D1”,第二次按下时,显示出“D1D2”,第三次按下时,显示“D1D2D3”.四个全显示完毕,再按下按键下时,输入的第五个数不接收.可以对计算结果小于9999的两个无符号数进行+.-.*./运算,并显示计算结果,如果输入的预计算的数超过9999,则运算时报错,在‖D5‖上显示“E”,以提示使用者输入错误,可按清零键清零,重新输入数据,运算过程中,如果运算的表达式是加.减.乘.除混合运算,需分步先按等号键,再继续进行运算.2.2.3 设计难点本设计的难点是键盘识别和数值显示,因为这里边涉及到键盘输入的数值在内部要转换成10进制运算,运算结果要转换成各个位的显示数字输出.2.3 本章小结本章对单片机计算器的设计进行了预先分析,为具体的操作和实现定下总纲,,简单的说明了设计上的规划和步骤.为以后的硬件部分和软件部分设计指明了方向.初次接触一个需要由理论结合实际的设计,并将其具体实现,不是一件容易的事情.明确此次设计的目标要求,实施方法,重点难点,可以不至于难于入手.参考一些技术文献,对应自己的计划,各个环节分步研究,最终结合在一起就可达到要求.第3章MCS-51单片机计算器硬件设计3.1 主要元件介绍与选择3.1.1 电阻通常分为三大类:固定电阻,可变电阻,特种电阻.该设计上电阻的选择主要为固定电阻.一般电阻上面都有不同的色环,国际上惯用"色环标注法".表3.1 测量的电阻数值电阻理论值实际值R1 10K 10.5KR2 4.7k 4.65k3.1.2 电容器电容的基本单位为法拉,由两个金属极,中间夹有绝缘材料(介质)构成.由于绝缘材料的不同,所构成的电容器的种类也有所不同:按介质材料可分为:气体介质电容,液体介质电容,无机固体介质电容,有机固体介质电容电解电容.本设计主要选用的就是电解电容.电容在电路中具有隔断直流电,通过交流电的作用,因此常用于级间耦合.滤波.去耦.旁路及信号调谐.[7]表3.2 测量的电容数值电容理论值实际值C1 104pF 104.32pFC5 30 pF 32.451pFC13 100uF 103.75uF3.2各硬件的功能与连接3.2.1 AT89S51单片机1.AT89S51介绍AT89S51是由近年来美国ATMEL公司生产的一种低功耗.高性能CMOS8位微控制器,总共具有8K的系统可编程Flash存储器.与工业80C51 产品指令和引脚完全兼容.在单芯片上,AT89S51拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S51为众多嵌入式控制应用系统提供高灵活.有效的解决方案.AT89S51具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2个数据指针,三个16 位定时器/计数器,一个5向量两级中断结构,全双工串行口,为片内晶振及时钟电路,支持2种软件可选择节电模式.空闲模式下,CPU 停止工作,允许RAM.定时器/计数器.串口.中断继续工作.掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止.与AT89C51相比,二者都是都是8051的内核.但是AT89S51比AT89C51增加了一个16位的计数器T2,相应的内存也128字节提高到了256字节,ROM的容量从2K提高到了4K,可以装下更大的程序,另外AT89S51比AT89C51增加了ISP功能,即在线可编程功能.[8]2.AT89S51单片机的各主要引脚功能VCC:电源GND:地P0 口:P0口是一组8位漏极开路型双向I/0口,也即地址/数据总线复用口.作为输出口用时,每位能驱动8个TTL逻辑门电路,对端口写“l”可作为高阻抗输入端用.在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻.在F1ash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻.P1 口:P1口是一个具有内部上拉电阻的8 位双向I/O口,p1 输出缓冲器能驱动4 个TTL 逻辑电平.对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用.Flash编程和程序校验期间,Pl接收低8位地址.P2 口:基本与P1口相同.但是在Flash编程或校验时,P2接收高位地址和其它控制信号.图3.1 AT89S51单片机引脚图P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个TTL 逻辑电平.对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用.作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(I IL).P3口除了作为一般的I/0口线外,更重要的用途是它的第二功能.RST:复位输入.晶振工作时,RST脚持续2个机器周期,高电平将使单片机复位.ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8 位地址的输出脉冲.在flash编程时,此引脚(PROG)也用作编程输入脉冲.在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用.PSEN:外部程序存储器选通信号.当AT89S51从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活.EA/VPP:访问外部程序存储器控制信号.为使能从0000H 到FFFFH的外部程序存储器读取指令,EA必须接GND.为了执行内部程序指令,EA应该接VCC.在flash编程期间,EA也接收12伏VPP电压.XTAL1:振荡器反相放大器和内部时钟发生电路的输入端.XTAL2:振荡器反相放大器的输出端.[9]3.2.2七段数码管1.数码管使用条件①段及小数点上加限流电阻②使用电压:段,根据发光颜色决定;小数点:根据发光颜色决定.③使用电流:静态:总电流80mA(每段10mA);动态:平均电流4-5mA,峰值电流100mA图3.2 7段数码管结构图2.连接方式LED显示器由七段发光二极管组成,排列成8字形状,因此也称为七段LED 显示器.为了显示数字或符号,要为LED显示器提供代码,即字形代码.七段发光二极管,再加上一个小数点位,共计8段.本设计采用两个4位七段数码管连接AT89S51.其中采用共阴极接法,使用时,公共阴极接地,在阳极端输入高电平,发光二极管就导通发光.3.2.3 按键键盘可分为两类:编码键盘和非编码键盘.编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动.连击等问题,直接输出按键的编码,无需系统软件干预.通用计算机使用的标准键盘就是编码键盘.但大多数智能仪器和电子产品的按键数目都不太多(20个以内),为了降低成本和简化电路,我们采用非编码键盘.非编码键盘的接口电路由设计者根据需要自行决定,按键信息通过接口软件来获取. 本设计需要的是16个按键,故选择用非编码键盘,为了减少所占用的端口,由P1口采用4*4矩阵式键盘外接.图3.3 4*4矩阵式键盘结构3.2.4 矩阵式键盘设定按照预定的设定方案,本次设计的计算器将通过按键输入数字和运算符,利用单片机不断扫描键盘.其中数字键0~9 共十个,接下来依次是加号键(+).减号键(-).乘号键(*).除号键(/).等于号(=).清除键.操作设备是四行四列共16键的简单键盘.第一行从左至右分别为F(清除键).E(等号键).D(除号键).C(乘号键),第二行从左至右分别为B(减号键).A(加号键).9.8,第三行分别为7.6.5.4,第四行从左至右分别为3.2.1.0,―清除键‖表示程序初始化,为下次输入准备.3.2.5 复位.时钟电路设计XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空.当使用内部振荡电路时,XTAL1.XTAL2引脚外接石英晶体和微调电容,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz.MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器.任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作.如何进行复位呢?只用在单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即可对单片机实现复位操作,且复位操作不会对内部RAM有所影响.3.3 本章小结本章详细介绍了MCS-51单片机计算器设计的硬件元件选择以及各类主要硬件的功能结构.对单片机计算器的组成和工作原理进行了分析.更为后面的难点软件设计部分做好了充分的准备.综合来看,一个单片机计算器的组成并不复杂,但是如何将所有部件连接在一起并正常工作,这是在设计过程要一直不断思考的问题.图3-4 晶振连接的内部.外部方式图图3.5 常用复位电路图第4章MCS-51单片机计算器软件设计4.1 软件设定4.1.1 程序规划该计算器的程序主要包括以下功能模块:①主模块,为系统的初始化.②显示与读键模块,分为显示子程序,判键程序段.运算操作子程序部分;图4.1 软件设计流程图主程序主要是用来进行初始化的,调用其他子程序,清空各个标志位,清空缓存区,读取键码,判断功能,在LED上作出回应.[10]4.1.2 程序设定①数字送显示程序设计简易计算器所显示的数值最大位为四位.要显示数值,先判断数值大小和位数,如果是输入超过四位或大于9999,将不显示数字.需重新输入数字,再次计算.该程序输入同时输入四个定点数,设定运算符号有:A为加,B为减,C为乘,D为除,E等于,输出计算结果.数据输入采用规范化输入,即输入〈=3个数才算完成一个运算数的输入,两个运算数之间输入运算符A.B.C或者D,输入完成按E显示计算结果.②运算程序的设计首先初始化参数,送LED低位显示―0‖,高位不显示.然后扫描键盘看是否有键输入,若有,读取键码.判断键码是数字键.清零键还是功能键,是数值键则送LED显示并保存数值,是清零键则做清零处理,是功能键则又判断是―=‖还是运算键,若是―=‖则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址.F为清零重启,任何时候按下F将重新开始.[11]4.1.3 数码管显示程序设计本设计的,显示程序是这样设计的,因为考虑到显示程序的通用性,在接通电源后不进行输入时显示为0,输入时显示输入的数字或运算结果,而且要使8个数码管同时显示不同的数字,选用动态显示应是最佳的.开始对数码管进行初始化,从按键程序和运算程序中接收数据,通过显示程序处理数码管显示否判断显示是否完毕是返回图4.1 显示扫描程序流程图数码管用到的数字0~9的共阴极字形代码如表4.3:LED用于显示十进制数字,要将0~9的数字用7段显示,必须将数字转换为LED对应七段码的信息,比如,要显示“0”,就是让a.b.c.d.e和f段发光,显示―1‖,让b和c段发光,如表所示.然后根据LED是共阴极还是共阳极接法确定LED各输入端应接逻辑1还是逻辑0,本设计选用的是共阴接法,要显示―0‖ 时,a.b.c.d.e和f段就要输入逻辑1,即其段码为3F, 将待显示内容―翻译‖为LED段码的过程,可以由软件查表方法实现译码.[12]。