简易计算器的设计
- 格式:doc
- 大小:173.00 KB
- 文档页数:21
单片机的简易计算器单片机简易计算器的设计与实现一、引言计算器是一种用于计算数学运算的工具,现在已经成为人们日常生活中必不可少的设备之一、在这个数字化的时代,我们经常需要进行简单的数学运算,如加、减、乘、除等。
为了满足人们的需求,我们可以使用单片机来设计和实现一个简易的计算器。
二、设计目标我们的设计目标是实现一个能够进行基本的加减乘除四则运算的简易计算器。
具体来说,我们希望计算器能够实现以下功能:1.输入两个数字进行计算,并显示结果。
2.支持加法、减法、乘法和除法运算。
3.具备简单的误操作处理能力,如输入错误提示等。
三、设计思路我们将使用8051系列单片机来设计和实现计算器。
具体的设计思路如下:1.使用矩阵键盘作为输入设备,通过扫描矩阵键盘来获取输入的数字和运算符。
2.通过数码管来显示计算结果。
3.使用中断处理器来处理键盘输入和计算结果的显示。
4.根据输入的运算符进行相应的运算,然后将结果显示在数码管上。
四、硬件设计1.选择合适的单片机,如STC89C52,AT89S52等,它们都是基于8051核心的单片机。
2.连接矩阵键盘到单片机的IO口,通过矩阵键盘的扫描来获取输入的数字和运算符。
3.连接数码管到单片机的IO口,用于显示计算结果。
五、软件设计1.在主程序中初始化单片机的IO端口和中断向量。
2.编写中断服务程序,用于处理键盘输入和计算结果的显示。
3.设计一个状态机来处理键盘输入和计算结果的显示。
4.根据状态机的状态来进行相应的运算和显示。
六、实现步骤1.编写主程序,包括对IO口和中断向量的初始化。
2.编写中断服务程序,用于处理键盘输入和计算结果的显示。
3.设计一个状态机,并实现状态机的状态转换和运算结果的计算。
4.测试并调试系统,确保计算结果的准确性。
七、总结通过使用单片机,我们成功地设计并实现了一个简易的计算器。
这个计算器不仅能够进行基本的加减乘除四则运算,还具备了简单的误操作处理能力。
在实际使用中,我们可以通过添加更多的功能和改进设计来进一步完善这个简易计算器。
简易计算器设计的课程设计一、课程目标知识目标:1. 学生能够理解简易计算器的基本原理,掌握其设计流程。
2. 学生能够运用所学编程知识,实现简易计算器的功能。
3. 学生能够了解并掌握计算器界面设计的基本原则。
技能目标:1. 学生能够运用所学的编程技能,独立完成简易计算器的设计与开发。
2. 学生能够通过编写代码,实现计算器的加、减、乘、除等基本运算功能。
3. 学生能够运用调试工具,对计算器程序进行测试和优化。
情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,增强信息素养。
2. 学生通过团队协作,培养沟通能力和团队精神,学会共同解决问题。
3. 学生在设计与开发简易计算器的过程中,体验创新实践的过程,培养创新思维和动手能力。
课程性质:本课程为信息技术课程,旨在帮助学生将所学的编程知识运用到实际项目中,提高学生的编程实践能力和创新能力。
学生特点:六年级学生具备一定的编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养创新思维。
在教学过程中,关注学生的个体差异,鼓励学生相互交流、合作,共同完成学习任务。
通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高解决问题的能力。
二、教学内容1. 计算器原理:介绍计算器的基本工作原理,包括算术运算逻辑、数据存储与处理等。
教材章节:第三章 计算机硬件基础2. 编程语言基础:回顾所学的编程语言(如Python),重点掌握变量定义、数据类型、运算符、条件语句和循环语句等。
教材章节:第二章 编程语言基础3. 界面设计:讲解计算器界面设计的原则和技巧,如布局、颜色、字体等。
教材章节:第四章 用户界面设计4. 编程实现计算器功能:引导学生运用所学知识,编写程序实现计算器的加、减、乘、除等基本运算功能。
教材章节:第五章 算法与程序设计5. 程序调试与优化:教授学生如何使用调试工具,对计算器程序进行测试、调试和优化。
简易计算器的制作在本文中,我们将介绍如何使用Visual FoxPro(VFP)制作一个简易计算器。
Visual FoxPro是一种开发工具,可以用于创建数据库应用程序和开发Windows桌面应用程序。
步骤1: 创建新的Visual FoxPro项目首先,打开Visual FoxPro并创建一个新的项目。
在“文件”菜单中选择“新建”,然后选择“项目”。
输入一个项目名称,选择一个合适的位置,然后点击“确定”。
步骤2:创建一个新的表单接下来,我们需要创建一个新的表单来作为计算器的界面。
在项目资源管理器中,右键点击“表单”文件夹,并选择“新建”。
输入一个表单名称,然后点击“确定”。
步骤3:添加控件步骤5:添加按钮事件首先,我们需要声明变量来存储用户输入的数字。
在按钮事件代码中,添加以下代码:```foxproLOCAL num1, num2, result```接下来,我们需要获取用户输入的数字。
在按钮事件代码中,添加以下代码:```foxpronum1 = VAL(Thisform.txtNum1.Value)num2 = VAL(Thisform.txtNum2.Value)```然后,我们可以执行所需的计算操作。
例如,如果我们想要添加两个数字,我们可以使用以下代码:```foxproresult = num1 + num2```最后,我们需要将结果显示在界面上。
在按钮事件代码中,添加以下代码:```foxproThisform.lblResult.Caption = STR(result)```步骤6:运行和测试完成上述步骤后,您可以保存并运行计算器。
在VFP的工具栏中,点击“运行”按钮来启动应用程序。
测试计算器,确保它可以正确执行计算操作并显示结果。
结论通过使用Visual FoxPro,我们可以轻松创建一个简易计算器。
这个计算器可以执行基本的加减乘除等操作,同时提供了一个直观的用户界面。
您可以根据需要进行自定义,添加更多功能和复杂的计算操作。
scratch 计算器教学设计标题:通过Scratch制作简易计算器引言:计算器是一种常见的工具,通过Scratch编程,我们可以制作一个简易的计算器。
本文将介绍如何使用Scratch的积木块来创建一个基本的计算器,并提供一些示例代码和使用说明,帮助读者了解如何制作自己的计算器。
1. 创建项目和界面打开Scratch并创建一个新的项目。
然后,我们需要设计计算器的界面。
我们可以使用Scratch提供的图形积木块来绘制按钮和显示屏等元素,使其看起来像一个真实的计算器。
接下来,我们需要为每个按钮和显示屏设置相应的变量和事件。
2. 设置按钮功能为了使计算器能够进行加减乘除等运算,我们需要为每个按钮设置相应的功能。
例如,我们可以为加法按钮设置一个事件,当点击该按钮时,将显示屏上的数字与另一个变量相加,并将结果显示在屏幕上。
同样,我们可以为减法、乘法和除法按钮设置类似的功能。
3. 处理用户输入为了使计算器能够接受用户的输入,我们可以使用Scratch的输入积木块来获取用户输入的数字。
例如,我们可以创建一个文本框,当用户输入数字后,将其存储到一个变量中,以便后续计算使用。
4. 进行计算并显示结果当用户点击运算符按钮后,我们可以使用相应的算术积木块来执行计算,并将结果显示在屏幕上。
例如,当用户点击加法按钮后,我们可以将存储在变量中的数字与显示屏上的数字相加,并将结果显示在屏幕上。
5. 添加功能和优化除了基本的加减乘除功能,我们还可以添加其他功能,如清除按钮、小数点按钮和百分比按钮等。
此外,我们还可以对计算器进行优化,使其更加易用和稳定。
结论:通过Scratch编程,我们可以轻松制作一个简易的计算器。
通过设计界面、设置按钮功能、处理用户输入和进行计算,我们能够实现基本的加减乘除等运算。
通过进一步添加功能和优化,我们可以使计算器更加强大和易用。
希望读者通过本文的介绍和示例代码,能够学会制作自己的计算器,并在Scratch的世界中发挥创造力。
基于51单片机设计简易计算器毕业设计论文计算器是一种广泛应用的电子设备,它能够进行数学运算、计算结果的显示和储存等功能,是人们日常生活和工作中必不可少的工具之一、随着科技的发展,计算器的功能也得到了不断的升级和改善。
本论文将基于51单片机设计一个简易的计算器,并对其硬件设计、软件设计以及实现的功能进行详细的介绍和分析。
一、引言计算器是一种电子设备,可以进行各种数学运算,如加法、减法、乘法、除法等。
随着计算机技术的发展,计算器的功能越来越强大,不仅可以进行基本的数学运算,还可以进行复杂的科学计算和运算结果的储存等。
本论文将基于51单片机设计一个简易的计算器,实现加法、减法、乘法、除法等基本运算,并对计算结果进行显示和存储。
二、设计要求1.实现基本的加法、减法、乘法、除法运算功能。
2.采用键盘输入数字和运算符。
3.采用液晶显示计算结果。
4.可以储存计算结果。
三、设计方案1.硬件设计本设计采用51单片机作为计算器的控制核心。
单片机通过与键盘和液晶屏的连接,实现对键盘输入和计算结果的显示。
键盘采用矩阵按键,通过扫描矩阵键盘的方式,检测用户的输入。
液晶屏采用4位8段数码管,可以显示计算结果。
2.软件设计计算器的软件设计主要包括键盘扫描、运算处理和液晶显示三个部分。
首先进行键盘的扫描,检测用户输入的数字和运算符。
然后进行运算处理,根据用户输入的运算符进行相应运算,并将运算结果存储起来。
最后通过液晶显示出计算结果。
四、实现和测试根据设计方案,我们完成了计算器的硬件和软件的搭建。
通过测试发现,计算器能够正确地进行加法、减法、乘法和除法运算,并将结果正确地显示出来。
此外,计算器还可以储存计算结果,并在需要的时候进行读取和显示。
综合测试结果,计算器的功能和性能均符合设计要求。
五、总结本论文基于51单片机设计了一个简易的计算器,实现了加法、减法、乘法和除法等基本运算,并将计算结果显示在液晶屏上。
通过测试发现,计算器的功能和性能均符合设计要求。
虚拟仪器实验--简易计算器设计一、实验目的1. 熟悉LabVIEW的编程环境,了解其特点。
2. 学会用LabVIEW实现简单的程序设计,了解图形化编程的方法和步骤。
3. 掌握数据对象类型、数组、簇的概念和其他基本函数,以及它们之间如何进行相互转化。
4. 掌握LabVIEW中一些函数和结构的用法。
二、实验要求编写标准计算器,实现基本的加、减、乘、除等功能,能进行简单的计算,完成源程序的编写和功能测试。
三、实验设备安装LabVIEW的计算机。
四、实验内容4.1计算器功能介绍1. 可以实现加、减、乘、除、求倒、开根、正弦等运算。
2. 可以实现连续运算。
3. 对错误输入可以借助Backspace键进行删除;运算完成后可以借助C键释放内存。
4. 对误操作进行屏蔽,如在一个数中只可能输入一个小数点。
5. 运算结果可以精确到小数点后第6位。
4.2程序变量设置及说明进入主程序,首先判断输入是数字、运算符、等号还是撤销(或清除)。
1.输入为数字。
将输入数字转换为字符并连接到原数据后显示组合后的字符串,保存该字符串。
2.输入为运算符。
判断运算符的类型,当运算符为“+”、“-”、“*”、“/”时,调用上一运算符,并保存此次输入的运算符,同时显示运算结果并保存相应的结果数据;当运算符为“1/x”、“sqrt”、“sin”时,直接对此时输入的数据进行相应的倒数、开方、正弦运算。
3.输入为等号。
执行之前保存的运算符,显示运算结果,同时结束该运算,返回初始状态。
4.输入为Backspace或C键。
Backspace键可以删除前一输入数据或运算符;C键可以清除数据并释放内存。
简易计算器程序设计框图见图1。
图1 程序设计框图4.2.1 主要程序编写及说明:1. 输入0处理显示程序模块判断Display是否是0,如果是则显示“0”,如果不是则用连接字符串函数输出显示,并相应的赋给input1或input2。
2. 小数点处理显示程序模块利用全局变量(布尔型)zeroflag作为小数点指示标志,默认为F。
学号:课程设计题目简易计算器的设计学院自动化专业电气工程及其自动化班级姓名指导教师2014 年1月9日课程设计任务书学生姓名:专业班级:指导教师:工作单位:自动化学院题目: 简易计算器的设计初始条件:用8086CPU、8255A并行通信接口、七段LED数码管接口、小键盘控制电路接口、外围电路芯片及元器件实现一个简易计算器,完成相应的程序编写。
要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)可进行2位十进制的加减乘除法运算。
(2)键盘输入数据,同时LED数码管显示,模拟计算器的工作。
(3)键盘上要求有0~9数字键,+、-、×、÷、=功能键,清除键C。
(4)撰写课程设计说明书。
内容包括:摘要、目录、正文、参考文献、附录(程序清单)。
正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。
时间安排:12月26日----- 12月 28 日查阅资料及方案设计12月29日----- 1 月 2 日编程1 月 3日----- 1 月 7日调试程序1 月 8日----- 1 月 9日撰写课程设计报告指导教师签名:年月日系主任(或责任教师)签名:年月日目录摘要 (1)1设计的任务及要求 (2)2方案的设计 (3)2.1方案设计论证 (3)2.2方案概述与原理硬件电路图 (3)3系统模块与功能 (5)3.18086CPU芯片 (5)3.2 8255A 并行通信接口芯片 (5)3.3 译码电路 (6)3.4 小键盘电路 (6)3.5 四位七段 LED 数码管显示电路 (7)4软件设计框图与程序 (8)4.1计算器系统程序总体流程图 (8)4.2 模块程序流程图与程序 (8)4.2.1流程图 (8)4.2.2键盘扫描流程图 (9)4.3输入运算 (10)4.3.1输入运算的流程图 (10)4.3.2输入运算程序 (10)4.4显示部分 (11)4.4.1显示部分流程图 (11)4.4.2显示部分程序 (12)5系统仿真 (14)6小结与体会 (15)参考文献 (16)附录:设计源程序 (17)本科生课程设计成绩评定表摘要这次微机原理的课程设计的题目是简易计算器的设计,设计一个可以实现2位十进制加减乘除运算功能的电路,并用LED显示出来。
简易的计算器课程设计一、课程目标知识目标:1. 学生能理解计算器的基本功能,掌握开关机、数字输入、基本运算符号的使用。
2. 学生能掌握计算器上各按键的功能,如清除、撤销等操作。
3. 学生了解计算器的类型,如简单计算器、科学计算器等。
技能目标:1. 学生能熟练操作计算器,完成基本的数学运算,如加减乘除、百分比等。
2. 学生能运用计算器解决实际生活中的数学问题,如购物找零、计算面积等。
3. 学生能通过计算器进行简单的数据统计和分析。
情感态度价值观目标:1. 学生培养对数学的兴趣和好奇心,认识到计算器在生活中的重要性。
2. 学生养成良好的计算习惯,尊重数学知识,注重实际应用。
3. 学生在小组合作中,学会分享和倾听,培养团队协作精神。
本课程针对小学四年级学生设计,结合学生的认知特点,注重培养实际操作能力和解决问题的能力。
课程以计算器为工具,引导学生运用数学知识解决实际问题,提高学生对数学学科的兴趣和自信心。
通过分解课程目标,教师可以更好地进行教学设计和评估,确保学生达到预期学习成果。
二、教学内容本章节教学内容主要包括以下三个方面:1. 计算器的基本操作与功能- 认识计算器的各部分名称和功能- 学习开关机、数字输入、基本运算符号的使用- 掌握清除、撤销等操作教学内容关联课本第四章第一节数学工具的使用。
2. 基本数学运算- 加减乘除四则运算- 百分数、乘方运算- 混合运算顺序与计算教学内容关联课本第四章第二节数学运算的应用。
3. 计算器在实际生活中的应用- 解决购物找零问题- 计算简单图形的面积和周长- 数据的统计与处理教学内容关联课本第四章第三节数学与生活。
教学大纲安排如下:第一课时:认识计算器及其基本操作第二课时:基本数学运算与计算器操作第三课时:计算器在实际生活中的应用教学进度根据学生的掌握情况灵活调整,确保学生充分理解和掌握教学内容。
三、教学方法针对本章节内容,采用以下教学方法:1. 讲授法:教师通过生动的语言和形象的表达,向学生介绍计算器的基本操作与功能,以及基本数学运算的规则。
基于51单片机简易计算器课程设计报告
基于51单片机简易计算器课程设计报告
1. 研究背景
•计算器是人们日常生活和工作中常用的工具之一。
•通过设计简易计算器,可以加深学生对51单片机的理解和应用。
2. 目标和需求
•设计一个基于51单片机的简易计算器,能够进行基本的四则运算和开方运算。
•要求计算器能够显示输入和计算结果。
•要求计算器具备简单的界面和操作。
3. 设计方案
•使用51单片机作为计算器的控制核心。
•通过键盘输入数字和运算符,并显示在液晶屏上。
•根据输入的运算符,进行相应的计算,并将结果显示在液晶屏上。
4. 硬件设计
•使用51单片机作为主控芯片。
•连接液晶屏模块,用于显示输入和计算结果。
•连接键盘模块,用于输入数字和运算符。
5. 软件设计
•使用C语言进行编程。
•设计主程序,包括初始化、输入处理和计算输出等功能。
•设计函数,实现基本的四则运算和开方运算。
6. 实验结果
•成功设计并实现了基于51单片机的简易计算器。
•可以正常进行基本的四则运算和开方运算。
•输入和计算结果能够准确显示在液晶屏上。
7. 总结与展望
•通过设计这个简易计算器,学生对51单片机的理解和应用能力有了提高。
•下一步可以考虑增加更多的功能,如科学计算和数据存储等。
以上是本次基于51单片机简易计算器课程设计的报告。
通过这个实验,学生对51单片机的应用能力得到了提升,进一步增强了对计算器的理解。
在未来的课程设计中,可以进一步拓展功能,提升计算器的实用性和功能性。
二进制简易计算器制作方法在计算机科学中,二进制是一种基础的数字表示方法,它由0和1组成。
二进制计算器是一种能够执行二进制加法、减法、乘法和除法等基本运算的工具。
本文将介绍如何制作一个简易的二进制计算器。
步骤一,确定功能需求。
首先,我们需要确定我们的二进制计算器要实现的功能。
通常,一个简易的二进制计算器应该能够进行二进制数字的加法和减法运算。
因此,我们的计算器将包括加法器和减法器两个基本功能。
步骤二,设计电路。
接下来,我们需要设计计算器的电路。
对于加法器,我们可以使用全加器电路来实现二进制数字的加法运算。
对于减法器,我们可以使用补码运算来实现二进制数字的减法运算。
可以使用数字集成电路或者程序设计语言来实现这些电路。
步骤三,实现电路。
一旦电路设计完成,就可以开始实现电路了。
如果选择使用数字集成电路,可以使用数字逻辑门、触发器和其他数字电路组件来搭建加法器和减法器。
如果选择使用程序设计语言,可以编写相应的程序来模拟加法和减法运算。
步骤四,测试和调试。
完成电路实现后,需要进行测试和调试。
通过输入不同的二进制数字,验证计算器的加法和减法功能是否正常。
如果发现问题,需要对电路进行调试,直到计算器能够正确执行加法和减法运算。
步骤五,优化和扩展。
一旦基本的加法和减法功能正常,可以考虑对计算器进行优化和扩展。
例如,可以添加乘法和除法功能,或者设计一个更复杂的二进制计算器,实现更多功能。
总结。
通过以上步骤,我们可以制作一个简易的二进制计算器。
这个计算器可以帮助我们理解二进制数字的运算规则,同时也可以作为一个有趣的电子项目来实现。
希望本文能够帮助你了解如何制作一个简易的二进制计算器。
简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的基本原理,掌握其功能和使用方法。
2. 学生能运用所学的数学知识,如加、减、乘、除等运算,进行计算器操作。
3. 学生了解计算器在日常生活和学习中的应用场景。
技能目标:1. 学生能够熟练操作简易计算器,完成基本的数学运算。
2. 学生通过计算器解决实际问题,提高问题解决能力和逻辑思维能力。
3. 学生通过小组合作,培养团队协作能力和沟通能力。
情感态度价值观目标:1. 学生培养对数学学习的兴趣,认识到数学与生活的紧密联系。
2. 学生在学习过程中,培养细心、耐心和严谨的学习态度。
3. 学生通过计算器的使用,认识到科技进步对生活的影响,增强科技意识。
课程性质:本课程为实践操作课程,结合数学知识,培养学生的实际操作能力和问题解决能力。
学生特点:考虑到学生所在年级的特点,课程内容难度适中,注重激发学生的学习兴趣和动手能力。
教学要求:教师应注重理论与实践相结合,关注学生的个别差异,引导他们主动探索和解决问题。
在教学过程中,将目标分解为具体的学习成果,以便进行有效的教学设计和评估。
二、教学内容1. 计算器的发展历史及分类- 了解计算器的演变过程,认识不同类型的计算器及其功能特点。
2. 简易计算器的结构组成- 学习简易计算器的按键功能、显示屏幕、电池等组成部分。
3. 基本数学运算操作- 学习运用计算器进行加、减、乘、除等基本数学运算。
4. 计算器在生活中的应用实例- 分析计算器在购物、预算、科学研究等领域的实际应用。
5. 计算器操作技巧与注意事项- 掌握计算器操作的快捷键,了解使用计算器时的注意事项。
6. 解决实际问题的方法- 结合实际问题,运用计算器进行数据计算和问题分析。
教学内容安排与进度:第一课时:计算器的发展历史及分类,简易计算器的结构组成。
第二课时:基本数学运算操作,计算器在生活中的应用实例。
第三课时:计算器操作技巧与注意事项,解决实际问题的方法。
使用VB设计一个简易计算器下面是使用VB设计一个简易计算器的代码示例:```vbPublic Class FrmCalculatorDim operand1 As DoubleDim operand2 As DoubleDim operatorFlag As StringPrivate Sub BtnNumber_Click(sender As Object, e As EventArgs) Handles Btn0.Click, Btn1.Click, Btn2.Click, Btn3.Click, Btn4.Click, Btn5.Click, Btn6.Click, Btn7.Click, Btn8.Click, Btn9.ClickDim button As Button = CType(sender, Button)TxtResult.Text += button.TextEnd SubPrivate Sub BtnOperator_Click(sender As Object, e As EventArgs) Handles BtnPlus.Click, BtnMinus.Click,BtnMultiply.Click, BtnDivide.ClickDim button As Button = CType(sender, Button)operatorFlag = button.Textoperand1 = Val(TxtResult.Text)TxtResult.Text = ""End SubPrivate Sub BtnEquals_Click(sender As Object, e As EventArgs) Handles BtnEquals.Clickoperand2 = Val(TxtResult.Text)Select Case operatorFlagCase "+"TxtResult.Text = (operand1 + operand2).ToStringCase "-"TxtResult.Text = (operand1 - operand2).ToStringCase "*"TxtResult.Text = (operand1 * operand2).ToStringCase "/"If operand2 <> 0 ThenTxtResult.Text = (operand1 / operand2).ToStringElseTxtResult.Text = "Cannot divide by zero"End IfEnd SelectEnd SubPrivate Sub BtnClear_Click(sender As Object, e As EventArgs) Handles BtnClear.ClickTxtResult.Text = ""End SubEnd Class```在上述代码中,Form上放置了一些按钮和一个文本框用于显示计算结果。
简易计算器的设计及实现随着社会经济的发展,计算器在日常生活中扮演着越来越重要的角色,成为人们学习和工作不可或缺的工具,计算器的设计无论在何时都有着很大的实际意义。
文章在分析简易计算器的主要功能和设计思路的基础上,使用C#语言对计算器进行了具体的程序开发与实现。
标签:C#;计算器;程序设计引言计算器作为必备的办公工具,渗透在人们日常生活的每个角落,特别是随着社会经济的发展,人们需要处理的数据越来越多、越来越繁杂,计算器带来的便捷也越来越明显。
虽然如今网络和市面上的计算器已非常之多,但功能过于简单的无法满足个人需求,功能过多的价格较贵且很多功能根本用不到,所以设计一款简单却实用的计算器具有很大的实际意义。
而C#是一种功能非常强大的编程语言,其易于掌握、支持跨平台、面向对象的优点使得它非常适合用来开发一些常用的界面工具,故本文介绍了简易计算器的主要功能和设计思路,并在此基础上使用C#语言进行了具体的程序开发与实现。
1 C#语言和开发工具1.1 C#简介C#是一种面向对象的程序设计语言,是专门用于.NET的编程语言,用C#编写的代码总是在.NET Framework中运行(.NET Framework简称.NET,是微软为开发应用程序创建的平台)。
使用C#可以编写传统的Windows桌面应用程序、Windows服务程序、Web应用程序、Web服务程序等。
1.2 开发工具Visual StudioVisual Studio是一套完整的开发工具集,可以用来创建Windows平台下的Windows应用程序和网络程序,也可以用来创建网络服务、智能设备应用程序和Office插件等。
Visual Studio有多种版本,本次设计使用的版本是Visual Studio 2013。
2 简易计算器的基本功能精确、便捷、高效是计算器的主要特点,考虑到生活中人们常用的数据格式和运算需求,简易计算器需要具备以下几个功能:(1)简洁直观的可操作界面;(2)基本的四则运算和清零功能;(3)支持正负数运算和小数操作;(4)支持乘方与开方运算。
吉林铁道职业技术学院毕业设计(论文)论文题目计算器的设计系别电气工程系专业班级企业供电3101班学号100040109姓名邱富君指导教师侯晓音2012年5月30日目录第一章绪论 (1)一、系统设计背景 (1)二、系统设计目的和意义 (1)三、国内外研究现状 (1)第二章方案的选择与论证 (1)一、单片机的选择方案与论证 (1)二、显示器的选择方案和论证 (1)三、按键部分的选择方案和论证 (2)第三章元件介绍 (2)一、AT89S52单片机特点及引脚图 (2)二、LCD1602液晶显示器 (3)(一)LCD1602基本组成 (3)(二)LCD1602基本参数及引脚功能 (4)(三)LCD1602的指令说明及时序 (4)第四章系统概述 (5)一、系统设计结构图 (5)二、简易计算器工作流程 (5)第五章系统硬件设计 (6)一、时钟电路 (6)二、复位电路 (7)三、键盘电路 (7)四、显示电路 (8)第六章系统软件设计 (8)总结 (10)参考文献 (11)致谢 (12)附录 (13)PCB图 (13)元器件清单 (13)源程序 (14)心得体会 (24)计算器的设计【摘要】随着经济的发展,不断推动着科技的发展,而科技的发展又带动了电子行业,各种各样的电子产品纷纷涌出。
计算器作为日常生活中常使用的电子产品之一,它的功能化、小型化、轻便化已成为未来智能化计算器的发展方向。
本设计是基于AT89S52单片机进行的简易计算器系统设计,P1口作为输入端,外接4*4矩阵式键盘,通过在4*4矩阵式键盘输入,进行加、减、乘、除简单运算,实现-2147483647到+2147483647的结果运算,并且在P0口上的LCD1602液晶显示器显示相应的计算结果。
【关键词】AT89S52、4*4矩阵式键盘、LCD1602 、计算器第一章绪论一、系统设计背景计算器是一种在日常生活中应用广泛的电子产品,无论是在超市商店,还是在办公室,或是家庭都有着它的身影。
虚拟仪器技术大作业题目:LabVIEW虚拟计算器设计专业班级:目录一、设计实现的功能 (3)二、前面板设计 ............................................................................................. . (3)三、程序框图设计 (4)1、运算变量的初始化 (4)2、“+、-、*、/”四则运算 (6)3、输出运算结果 (6)4、清零的过程 (7)5、退出操作 (7)6、程序的原理框图 (8)四、调试过程 (8)五、结论 (9)六、致谢 (10)七、参考文献 (10)附录、成绩评定表 (11)一、设计实现的功能本次课程设计是基于LabVIEW所设计的计算器,目的是为了实现两个数之间的加、减、乘、除四则运算,达到简易计算器的功能。
编程的思想是完成一种运算的完整过程是:输入第一个数,存储并显示输入要进行运算的类型并存储输入第二个数,存储并显示按“=”或则按其它运算符号“+、-、*、/”进行连续的运算时显示运算结果。
本次课程设计是基于LabVIEW虚拟仪器系统开发与实践等原理与技术而设计的计算器,可以用来模拟真实计算器而进行一些简单的基本运算。
计算器可以进行清零和关闭计算器操作、在输入数据时不慎将某个数字输错可以运用BackSpace清除该值等一些基本简单的运算。
二、前面板设计前面板是Labview的图形用户界面,在Labview环境中可以对这些对象的外观和属性进行设计,Labview提供了非常丰富的界面对象,可以方便地设计出生动、直观、操作方便的用户界面。
本系统中前面板显示程序的输入和输出对象,即,控件和显示器。
本程序中控件主要是按钮,显示器主要是文本显示。
除此之外,计算器的前面板还有程序框图中while循环的停止按钮,当按钮按下时计算器停止工作退出到LabVIEW的编辑界面。
还有指示当前信息是否为运算符和运算结果的布尔指示灯,主要用于程序框图中,同时置于前面板方便用户了解信息。
辽宁工业大学单片机原理及接口技术课程设计(论文)题目:简易计算器的设计院(系):电气工程学院专业班级:自动化132班学号: 4学生姓名:**指导教师:(签字)起止时间:课程设计(论文)任务及评语院(系):电气工程学院教研室:自动化注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算摘要计算器是日常生活中比较的常见的电子产品之一。
在各种智能化产品中也常常会用到计算器,而且在现代化系统中人们对计算器技术要求更加的严格和精确,因此计算器已成为生产中必不可少的设备。
本设计的硬件包括4*4键盘、单片机最小系统、液晶显示器,软件包括C语言编程和Keil uVision5。
简易计算器的设计使得计算器的技术更加的成熟、简单。
简易计算器设计是以AT89C52单片机为核心的,输入采用4*4矩阵键盘,简易计算器不仅可以进行加、减、乘、除带符号数字运算(八位整数),还可以进行负数运算和错误提示,并在液晶显示器LCD1602上显示操作结果。
计算器的出现不仅使计算数据越来越方便,而且在算术方面节省了大量的计算时间。
关键词:单片机;矩阵键盘;液晶显示;计算器目录第1章绪论................................ 错误!未定义书签。
第2章课程设计的方案...................... 错误!未定义书签。
概述............................................ 错误!未定义书签。
系统组成总体结构................................ 错误!未定义书签。
第3章硬件设计............................ 错误!未定义书签。
单片机最小系统设计.............................. 错误!未定义书签。
AT89S52单片机简介 .......................... 错误!未定义书签。
一、设计要求1.设计4*4的键盘,其中10个数字键0~9,第十三个键为”+“,第十五个键为”=“2 ,实现1位数的简单加运算二、硬件系统设计1、LED接口电路简易计算器需要2位8段码LED显示电路。
用LED显示器,用8255A的A口作为段码(字形代码)数据口,PB0和PB1作为位控制端口。
然后接至各数码显示器的共阴极端。
2、键盘接口电路简易计算器需要4*4的行列式键盘。
8255A的B口作为输出端,C口作为输出端。
采用的是方式0。
3、计算器逻辑电路图将LED接口电路和键盘接口电路结合到一起就是简易计算器的逻辑电路图逻辑电路结构如下:Cpu 8255 键盘三、软件设计1、LED显示程序设计LED显示器由七段发光二极管组成,排列成8字形状,因此也成为七段LED 显示器,器排列形状如下图所示:为了显示数字或符号,要为LED显示器提供代码,即字形代码。
七段发光二极管,再加上一个小数点位,共计8段,因此提供的字形代码的长度正好是一个字节。
简易计算器用到的数字0~9的共阴极字形代码如下表:0~9七段数码管共阴级字形代码2位LED显示的程序框图如下:2、读键输入程序设计为了实现键盘的数据输入功能和命令处理功能,每个键都有其处理子程序,为此每个键都对应一个码——键码。
为了得到被按键的键码,现使用行扫描法识别按键。
其程序框图如下:3、主程序设计(1)数值送显示缓冲程序设计简易计算器所显示的数值最大位为一位。
(2)运算主程序设计首先初始化参数,送LED低位显示“0”,高位不显示。
然后扫描键盘看是否有键输入,若有,读取键码。
判断键码是数字键、还是功能键(“+”“=”),是数值键则送LED显示并保存数值,是功能键则又判断是“=”还是运算键,若是“=”则计算最后结果并送LED显示,若是运算键则保存相对运算程序的首地址。
运算主程序框图如下所示:4、简易计算器源程序con8255 equ 06c6h ;8255的控制端口的物理号c8255 equ 06c4h ;C端口的端口号b8255 equ 06c2h ; B端口的端口号a8255 equ 06c0h ; A端口的端口号data segmentlist DB 3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H DB 7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H ;对应数字的显示码keycode DB 0EEH, 0DEH, 0BEH, 7EHDB 0EDH, 0DDH, 0BDH, 7DHDB 0EBH, 0DBH, 0BBH, 7BHDB 0E7H, 0D7H, 0B7H, 77H;对应键的特征值(键盘识别码)num1 dw 0 ;偏移量x DB 0FFH ;存放参与运算的第一个数y DB 0FFH ;存放运算符z DB 0FFH ;存放参与运算的第二个数re DB 0FFH ;存放运算结果data endssstack segment stackssda db 100 dup(?)sstack endscode segmentassume cs:code, ds:datastart: mov ax, datamov ds, axcall init8255 ;初始化8255 ispk:call clear ;B端口清零call ispkey ;判断是否有建按下and al, 0fhcmp al, 0fhje ispkcall findkeyboardcall dispnumcmp num1, 14je js1call cunshujmp disnum1js1: call jisuanmov x, 0ffhmov y, 0ffhmov z, 0ffhmov nUM1, 0mov re,0ffhcall dispnummov cx,1000www: loop wwwjmp ispkdisnum1:is: jmp ispkmov ah, 4chint 21hinit8255 proc near ;初始化8255 mov al, bmov dx, 06c6hout dx, alretinit8255 endpclear proc nearmov dx, b8255out dx, alclear endpispkey proc near ;判断是否有建按下mov al, 00hmov dx, a8255out dx, almov dx, c8255in al, dxretispkey endpfindkeyboard proc near ;找具体键盘按键cl1: mov al, bmov ah, alshl ah, 4mov dx, a8255 ;al传递给a端口out dx, almov dx, c8255 ;c端口读入数据赋值给alin al, dxcmp al, 0fhje cl2jmp exitkcl2: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhje cl3jmp exitkcl3: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhje cl4jmp exitkcl4: mov al, bmov ah, alshl ah, 4mov dx, a8255out dx, almov dx, c8255in al, dxand al, 0fhcmp al, 0fhexitk:add ah, al ;得到键盘识别码retfindkeyboard endpdispnum proc near ;显示数字子程序cmp ah,0b7hjnz ll2mov cl,remov ch,0mov si,offset listadd si,cxmov al,[si]mov dx,06c2hout dx,almov num1,14jmp ll3ll2: mov cx, 16mov si, offset keycodemov di, offset listmov num1, 0numl1: cmp [si], ahje exitinc siadd num1, 1loop numl1exit: add di, num1 ;显示相应数字mov al, [di]mov dx, 06c2hout dx, alll3: retdispnum endpCUNSHU PROC NEAR ;存放数据PUSH AXCMP X, 0FFHJNE Y1MOV AL, BYTE PTR NUM1MOV X, ALJMP EX1Y1: CMP Y, 0FFHJNE Z1MOV AL, BYTE PTR NUM1MOV Y, ALJMP EX1Z1:MOV AL, BYTE PTR NUM1MOV Z, ALEX1: POP AXRETCUNSHU ENDPJISUAN PROC NEAR ;计算子程序PUSH SILEA SI, KEYCODEMOV AX, 0ADD AL, XADD AL, ZADD SI, AXMOV AH, [SI]MOV RE, ALPOP SIRETJISUAN ENDPcode endsend start四、心得体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
1 / 21 第02讲 计算器 2.1 计算器简介 大家都知道,计算器是日常生活中不可缺少的一个工具,在Microsoft的Windows操作系统中,附带了一个计算器程序,有标准型和科学型两种模式。Windows XP下的标准型和科学型计算器程序分别如图2-1和图2-2所示。
图2-1 Windows XP下的标准型计算器
图2-2 Windows XP下的科学型计算器 2 / 21
Windows操作系统下附带的计算器程序功能相当的强大,本课我们将模仿Windows的计算器,使用Visual C# 2005开发平台开发一个功能相对简单的计算器应用程序,它能完成加、减、乘、除运算。 接下来详细的介绍简易计算器的设计方法和步骤。 2.2 界面设计及属性设置 用户界面设计是软件开发中非常重要的一个部分,用户界面的好坏直接影响软件的质量,本节将介绍如何设计简易计算器的用户界面以及界面上各控件的属性设置。
2.2.1 界面设计 打开Visual Studio 2005开发工具,新建一个Windows应用程序,然后在窗体上依次放置1个TextBox和17个Button控件,如图2-1所示(设置好属性后)。
图2-1 计算器用户界面 2.2.2 属性设置 窗体和各控件的属性设置如表2-1所示。 表2-1 窗体和各控件的属性 控件类型 控件名称 属性 设置结果 Form Form1 Text 计算器 StartPosition CenterScreen MaximizeBox False AutoSizeMode GrowAndShrink TextBox TextBox1 Name txtReadout ReadOnly True Button Button1 Name btnNum7 Text 7 Button2 Name btnNum8 Text 8 Button3 Name btnNum9 Text 9 Button4 Name btnAdd Text + ForeColor Red Button5 Name btnSub Text - ForeColor Red Button6 Name btnNum4 Text 4 Button7 Name btnNum5 Text 5 Button8 Name btnNum6 Text 6 Button9 Name btnMul Text * ForeColor Red Button10 Name btnDiv Text / ForeColor Red Button11 Name btnNum1 Text 1 Button12 Name btnNum2 Text 2 Button13 Name btnNum3 Text 3 Button14 Name btnNum0 Text 0 Button15 Name btnDot Text . Button16 Name btnC Text C ForeColor Red Button17 Name btnAmount Text = ForeColor Red 2.3 编写代码 本程序需要用到一些公共变量,例如用来接收操作数、运算结果,判断输入的是否为小数等,因此首先在代码的通用段声明以下变量: //****************************************************************** double num1, num2, result; // 操作数及运算结果 bool decimalFlag = false; // 判断输入的是否为小数 string myOperator; // 操作类型 //****************************************************************** 接下来编写一个名为“NumClick”的方法,单击数字按钮
时,调用NumClick方法,将输入的数字追加到文本框中,代码如下: //****************************************************************** // 单击数字按钮时,调用如下NumClick方法 //****************************************************************** public void NumClick(int myNumber) { if (decimalFlag) // 输入小数 { txtReadout.Text = txtReadout.Text + myNumber; } else { if (txtReadout.Text == "0.") // 输入整数 { // 输入的是整数的第一个数字 txtReadout.Text = myNumber + "."; } else { // 输入的不是整数的第一个数字 txtReadout.Text = txtReadout.Text.Substring (0, txtReadout.Text.Length - 1) + myNumber + "."; } } } //****************************************************************** //****************************************************************** 编写窗体的载入事件代码如下: //****************************************************************** // 窗体载入事件代码 //****************************************************************** private void Form1_Load(object sender, EventArgs e) { txtReadout.Text = "0."; // 指定文本框的对齐方式为右对齐 txtReadout.TextAlign = HorizontalAlignment.Right; } //****************************************************************** //****************************************************************** 编写数字按钮【0】~【9】的单击事件代码如下: //****************************************************************** // 数字按钮【0】~【9】的单击事件代码 //****************************************************************** private void btnNum0_Click(object sender, EventArgs e) { NumClick(0); }
private void btnNum1_Click(object sender, EventArgs e) { NumClick(1); }
private void btnNum2_Click(object sender, EventArgs e) { NumClick(2); }
private void btnNum3_Click(object sender, EventArgs e) { NumClick(3); }
private void btnNum4_Click(object sender, EventArgs e) { NumClick(4); }
private void btnNum5_Click(object sender, EventArgs e) { NumClick(5); }
private void btnNum6_Click(object sender, EventArgs e) { NumClick(6); } private void btnNum7_Click(object sender, EventArgs e) { NumClick(7); }
private void btnNum8_Click(object sender, EventArgs e) { NumClick(8); }
private void btnNum9_Click(object sender, EventArgs e) { NumClick(9); } //****************************************************************** //****************************************************************** 编写小数点按钮【.】的单击事件代码如下: //****************************************************************** // 【.】按钮的单击事件代码 //****************************************************************** private void btnDot_Click(object sender, EventArgs e) { decimalFlag = true; // 输入小数点 } //****************************************************************** //****************************************************************** 编写复位按钮【C】的单击事件代码如下: //****************************************************************** // 【C】按钮的单击事件代码 //****************************************************************** private void btnC_Click(object sender, EventArgs e) { num1 = 0; num2 = 0; txtReadout.Text = "0."; decimalFlag = false; } //****************************************************************** //****************************************************************** 编写【+】、【-】、【*】、【/】按钮的单击事件代码如下: //****************************************************************** // 【+】、【-】、【*】、【/】按钮的单击事件代码