简易计算器的设计
简易计算器的课程设计
![简易计算器的课程设计](https://img.taocdn.com/s3/m/404dd06fef06eff9aef8941ea76e58fafab045b2.png)
简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的内部工作原理,掌握其基本功能操作。
2. 学生能运用计算器进行基本的算术运算,包括加、减、乘、除以及百分比计算。
3. 学生理解并掌握计算器上各个按键的功能及其在数学运算中的应用。
技能目标:1. 学生能够使用计算器辅助解决实际问题,如购物找零、面积计算等。
2. 学生通过计算器的使用,提高数据输入、结果读取和运算过程纠错的能力。
3. 学生能够结合数学知识,利用计算器进行数据的简单统计分析。
情感态度价值观目标:1. 培养学生对待科学技术的积极态度,认识到计算器在日常生活和学习中的便捷性。
2. 增强学生的团队协作意识,通过小组活动,学会分享和交流使用计算器的经验。
3. 培养学生遵守计算器使用的规则,养成良好的计算器使用习惯,珍惜公共资源。
本课程设计针对的学生群体为小学高年级学生,他们已经具备了一定的数学基础和操作简单电子设备的能力。
课程性质为实用技能型,旨在通过简易计算器的教学,将理论知识与实践操作相结合,提高学生解决实际问题的能力。
在教学要求上,注重培养学生的动手操作能力和创新思维,同时强调情感态度的培养,使学生在学习技能的同时,也能形成正确的价值观。
通过具体学习成果的分解,教师可进行有针对性的教学设计和学习效果评估。
二、教学内容本章节教学内容依据课程目标,结合教材内容,科学系统地组织以下部分:1. 简易计算器基础知识:介绍计算器的发展历程、种类及简易计算器的结构组成,对应教材第二章第一节。
2. 计算器按键功能:详细讲解各按键的功能及其在数学运算中的应用,对应教材第二章第二节。
3. 基本运算操作:教授如何使用计算器进行加、减、乘、除以及百分比计算,对应教材第二章第三节。
4. 计算器在实际应用中的使用:结合实际案例,如购物找零、面积计算等,展示计算器的实用性,对应教材第二章第四节。
5. 数据的简单统计分析:利用计算器进行数据输入、处理和简单统计分析,对应教材第二章第五节。
简易计算器 (1)
![简易计算器 (1)](https://img.taocdn.com/s3/m/59d95bff998fcc22bdd10d15.png)
目录第一章:设计目的11.1课程设计目的.................................................................................. 错误!未定义书签。
1.2简易计算器设计的意义 (1)1.3系统的基本要求 (1)1.4功能设计 (3)第二章:功能描述 (3)2.1功能模块框图 (3)2.2相关功能介绍.................................................................................. 错误!未定义书签。
2.1系统模块机构框图 (4)第三章:总体设计 (5)3.1系统流程图 (3)3.2模块描述 (5)3.3函数声明 (5)第四章:程序实现 (5)4.1界面设计 (10)4.2计算界面 (11)4.3退出界面 (12)第五章:课程设计的结果展示 (13)第六章:参考文献................................................................................................. - 15 -第七章:课程设计总结......................................................................................... - 16 -第一章课程设计目的1.通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。
特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。
通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用;最后还可以熟悉四则运算﹑三角函数等经典算法。
2.通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等手段学到一些新知识,比如画图函数,颜色填充函等。
简易计算器设计的课程设计
![简易计算器设计的课程设计](https://img.taocdn.com/s3/m/f759b41e32687e21af45b307e87101f69e31fb3e.png)
简易计算器设计的课程设计一、课程目标知识目标:1. 学生能够理解简易计算器的基本原理,掌握其设计流程。
2. 学生能够运用所学编程知识,实现简易计算器的功能。
3. 学生能够了解并掌握计算器界面设计的基本原则。
技能目标:1. 学生能够运用所学的编程技能,独立完成简易计算器的设计与开发。
2. 学生能够通过编写代码,实现计算器的加、减、乘、除等基本运算功能。
3. 学生能够运用调试工具,对计算器程序进行测试和优化。
情感态度价值观目标:1. 学生在课程学习中,培养对编程的兴趣和热情,增强信息素养。
2. 学生通过团队协作,培养沟通能力和团队精神,学会共同解决问题。
3. 学生在设计与开发简易计算器的过程中,体验创新实践的过程,培养创新思维和动手能力。
课程性质:本课程为信息技术课程,旨在帮助学生将所学的编程知识运用到实际项目中,提高学生的编程实践能力和创新能力。
学生特点:六年级学生具备一定的编程基础,对新鲜事物充满好奇心,喜欢动手实践。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养创新思维。
在教学过程中,关注学生的个体差异,鼓励学生相互交流、合作,共同完成学习任务。
通过本课程的学习,使学生能够将所学知识运用到实际项目中,提高解决问题的能力。
二、教学内容1. 计算器原理:介绍计算器的基本工作原理,包括算术运算逻辑、数据存储与处理等。
教材章节:第三章 计算机硬件基础2. 编程语言基础:回顾所学的编程语言(如Python),重点掌握变量定义、数据类型、运算符、条件语句和循环语句等。
教材章节:第二章 编程语言基础3. 界面设计:讲解计算器界面设计的原则和技巧,如布局、颜色、字体等。
教材章节:第四章 用户界面设计4. 编程实现计算器功能:引导学生运用所学知识,编写程序实现计算器的加、减、乘、除等基本运算功能。
教材章节:第五章 算法与程序设计5. 程序调试与优化:教授学生如何使用调试工具,对计算器程序进行测试、调试和优化。
单片机的简易计算器毕业设计
![单片机的简易计算器毕业设计](https://img.taocdn.com/s3/m/58e7168f0408763231126edb6f1aff00bed570c0.png)
单片机的简易计算器毕业设计简易计算器是一种基本、常见的电子设备,它能够对数字进行简单的加减乘除运算。
单片机作为一种小型、低功耗的微型计算机,非常适合用于设计和实现计算器的功能。
在本文中,我们将以单片机为基础,设计和实现一个简易计算器。
一、设计思路1.硬件设计:-使用单片机作为主控制器。
-接入键盘矩阵和显示器。
-使用LED灯作为指示灯,用于显示运算符和结果。
2.软件设计:-通过键盘输入数字和运算符。
-将输入的数字和运算符转换成相应的控制信号。
-进行运算,并将结果显示在屏幕上。
3.功能实现:-实现加法、减法、乘法和除法运算。
-提供清零、退格和等号等功能。
-支持小数和负数的输入和运算。
-提供错误提示功能,例如除数不能为零等。
二、具体实现1.硬件实现:-将键盘矩阵的行和列与单片机的IO口相连,通过扫描来检测按键的输入。
-将显示器与单片机的IO口相连,通过控制引脚来发送和接收数据。
-将LED灯与单片机的IO口相连,设置相应的引脚状态来显示不同的指示信号。
2.软件实现:-使用C语言编写程序,通过中断和轮询的方式,实现键盘输入的检测和数据的读取。
-将读取到的数据进行解析,并根据不同的按键进行相应的操作。
-根据输入的数字和运算符,进行相应的运算并输出结果。
3.功能实现:-加法、减法、乘法和除法运算可以通过相应的算法实现,例如加法可以通过循环和位运算来实现。
-清零功能可以将运算结果和输入的数字都清零,退格功能可以删除输入的最后一个数字或运算符。
-支持小数运算可以在运算过程中进行进位和进位操作,支持负数运算可以通过判断运算符来进行相应的处理。
-错误提示功能可以通过对输入的数据进行检查和判断来实现,例如判断除数是否为零。
三、总结通过上述的设计和实现,我们可以成功地设计和制作一个单片机的简易计算器。
通过这个计算器,用户可以进行简单的加减乘除运算,同时还具备清零、退格、小数和负数等功能。
这个计算器可以应用在日常生活中的计算场景,方便用户进行各种简单的运算操作。
基于51单片机的简易计算器设计
![基于51单片机的简易计算器设计](https://img.taocdn.com/s3/m/b2dcf2bd8662caaedd3383c4bb4cf7ec4afeb6c1.png)
基于51单片机的简易计算器设计基于51单片机的简易计算器设计一、引言随着微电子技术和嵌入式技术的发展,越来越多的智能化设备被应用于日常生活中。
其中,基于51单片机的简易计算器设计具有广泛的应用价值。
本文将介绍如何使用51单片机设计一个简易计算器,实现加减乘除的基本运算功能。
二、设计方案1.硬件组成:本设计采用51单片机作为主控芯片,与键盘、显示器等外围设备相连。
键盘用于输入数字和运算符,显示器则用于显示运算结果。
2.软件设计:软件部分包括主程序和子程序。
主程序负责初始化硬件、读取键盘输入和显示运算结果。
子程序包括加减乘除的运算子程序,可根据输入的运算符和操作数进行相应的运算。
3.算法实现:在加减乘除的运算子程序中,采用基本的数学运算方法实现。
对于加法,直接将两个操作数相加;对于减法,将两个操作数相减;对于乘法,采用循环相乘的方法;对于除法,采用循环相除的方法。
三、实验结果在实验中,我们成功地使用51单片机设计了一个简易计算器,实现了加减乘除的基本运算功能。
在测试过程中,我们输入了不同的数字和运算符,得到了正确的运算结果。
同时,我们也测试了计算器的稳定性,发现其在连续运算时表现良好,没有出现明显的误差或故障。
四、结论基于51单片机的简易计算器设计具有简单易行、实用性强等优点。
通过实验测试,我们验证了其可行性和稳定性。
此外,该设计还可以根据需要进行扩展和优化,例如增加更多的运算功能、优化算法等。
未来,我们可以进一步研究如何提高计算器的运算速度和精度,以及如何将其应用于更多的实际应用场景中。
五、改进意见与展望1.增加更多的运算功能:例如实现括号、开方、指数等高级运算,满足更复杂的数学计算需求。
2.优化算法:针对现有的加减乘除运算算法进行优化,提高运算速度和精度。
例如采用更高效的除法算法,减少运算时间。
3.增加存储功能:在计算器中加入存储单元,使得用户可以在多个步骤之间进行数据传递和保存。
4.增强人机交互界面:优化显示器的显示效果,增加用户输入的便捷性,提高用户体验。
简易计算器的设计与实现
![简易计算器的设计与实现](https://img.taocdn.com/s3/m/8222087882c4bb4cf7ec4afe04a1b0717fd5b389.png)
简易计算器的设计与实现设计一个简易计算器涉及以下几个方面:1.需求分析:-定义计算器的功能-确定计算器支持的数学运算,如加法、减法、乘法、除法等2.用户界面设计:-设计计算器的界面布局,包括数字按键、运算符按键、等号按键等-考虑使用框架或库来构建用户界面3.输入处理:-设计解析用户输入的算式-处理用户点击按键时的输入4.运算处理:-实现各种数学运算的算法-将用户输入的算式传入运算处理函数进行计算5.显示结果:-将计算结果显示在计算器的界面上下面是一个简易计算器的实现示例,使用Python语言和PyQt库来构建:```pythonimport sysfrom PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QGridLayout, QPushButton, QLineEdit class Calculator(QWidget):def __init__(self):super(.__init__self.setWindowTitle("简易计算器")yout = QVBoxLayoutself.input_box = QLineEdityout.addWidget(self.input_box)self.buttons =['7','8','9','/'],['4','5','6','*'],['1','2','3','-'],['0','.','=','+']self.grid_layout = QGridLayoutfor i in range(4):for j in range(4):button = QPushButton(self.buttons[i][j])button.clicked.connect(self.button_clicked)self.grid_layout.addWidget(button, i, j)yout.addLayout(self.grid_layout)self.setLayout(yout)self.equal_clicked = Falsedef button_clicked(self):button = self.sendertext = button.textif text == '=':self.calculateelse:self.input_box.setText(self.input_box.text( + text) def calculate(self):expression = self.input_box.texttry:result = eval(expression)self.input_box.setText(str(result))except Exception as e:self.input_box.setText("错误:{}".format(e))if __name__ == '__main__': app = QApplication(sys.argv) calculator = Calculator calculator.showsys.exit(app.exec_()。
简易的计算器课程设计
![简易的计算器课程设计](https://img.taocdn.com/s3/m/cede0245b6360b4c2e3f5727a5e9856a561226d7.png)
简易的计算器课程设计一、课程目标知识目标:1. 学生能理解计算器的基本功能,掌握开关机、数字输入、基本运算符号的使用。
2. 学生能掌握计算器上各按键的功能,如清除、撤销等操作。
3. 学生了解计算器的类型,如简单计算器、科学计算器等。
技能目标:1. 学生能熟练操作计算器,完成基本的数学运算,如加减乘除、百分比等。
2. 学生能运用计算器解决实际生活中的数学问题,如购物找零、计算面积等。
3. 学生能通过计算器进行简单的数据统计和分析。
情感态度价值观目标:1. 学生培养对数学的兴趣和好奇心,认识到计算器在生活中的重要性。
2. 学生养成良好的计算习惯,尊重数学知识,注重实际应用。
3. 学生在小组合作中,学会分享和倾听,培养团队协作精神。
本课程针对小学四年级学生设计,结合学生的认知特点,注重培养实际操作能力和解决问题的能力。
课程以计算器为工具,引导学生运用数学知识解决实际问题,提高学生对数学学科的兴趣和自信心。
通过分解课程目标,教师可以更好地进行教学设计和评估,确保学生达到预期学习成果。
二、教学内容本章节教学内容主要包括以下三个方面:1. 计算器的基本操作与功能- 认识计算器的各部分名称和功能- 学习开关机、数字输入、基本运算符号的使用- 掌握清除、撤销等操作教学内容关联课本第四章第一节数学工具的使用。
2. 基本数学运算- 加减乘除四则运算- 百分数、乘方运算- 混合运算顺序与计算教学内容关联课本第四章第二节数学运算的应用。
3. 计算器在实际生活中的应用- 解决购物找零问题- 计算简单图形的面积和周长- 数据的统计与处理教学内容关联课本第四章第三节数学与生活。
教学大纲安排如下:第一课时:认识计算器及其基本操作第二课时:基本数学运算与计算器操作第三课时:计算器在实际生活中的应用教学进度根据学生的掌握情况灵活调整,确保学生充分理解和掌握教学内容。
三、教学方法针对本章节内容,采用以下教学方法:1. 讲授法:教师通过生动的语言和形象的表达,向学生介绍计算器的基本操作与功能,以及基本数学运算的规则。
基于QT简易计算器的设计
![基于QT简易计算器的设计](https://img.taocdn.com/s3/m/a2de334e77c66137ee06eff9aef8941ea76e4b3f.png)
基于QT简易计算器的设计设计一个基于QT的简易计算器,实现基本的四则运算功能。
本文将从需求分析、界面设计、功能实现等方面进行详细介绍。
一、需求分析根据题目要求,设计一个简易计算器,需具备以下功能:1.实现基本的四则运算功能,包括加减乘除;2.支持连续多次运算,即连续按下等号键后可以继续进行后续的运算;3.支持小数点的输入,并可以进行小数运算;4.支持括号的输入,并按照正确的优先级进行计算;5.提供清空按钮,可以清空当前输入的算式;6.提供删除按钮,可以删除当前输入的最后一个字符。
二、界面设计基于QT的图形界面设计,可以使用QGridLayout布局管理器来布局计算器的主要组件。
具体界面设计如下:1. 显示屏:使用一个QLineEdit控件用于显示计算结果,并设置只读属性;2. 数字键:使用QPushButton控件实现数字键,并根据需要设置对应的信号槽;3. 功能键:使用QPushButton控件实现功能键,如加减乘除等,并根据需要设置对应的信号槽;4. 清空和删除键:使用QPushButton控件实现清空和删除键,并根据需要设置对应的信号槽;5.等号键:使用QPushButton控件实现等号键,并根据需要设置对应的信号槽。
三、功能实现2. 信号槽的连接:根据界面设计,将按钮的clicked信号连接到槽函数,实现按钮的点击响应;3.数字键的实现:将数字键的文本值追加到显示屏的文本末尾;4.加减乘除键的实现:将加减乘除键的文本值追加到显示屏的文本末尾;5.小数点键的实现:判断显示屏的文本中是否已经存在小数点,如果不存在,则将小数点追加到文本末尾;6.清空键的实现:清空显示屏的文本内容;7.删除键的实现:删除显示屏文本的最后一个字符;8.等号键的实现:获取显示屏的文本内容,并使用计算表达式的eval函数进行求值,将结果显示在显示屏上。
四、例子演示下面以一个例子进行简单演示:1.界面设计:在界面上设计一个显示屏(QLineEdit控件),以及数字键、加减乘除键和等号键(QPushButton控件),清空和删除键(QToolButton控件)。
51单片机简易计算器设计报告(一)
![51单片机简易计算器设计报告(一)](https://img.taocdn.com/s3/m/5c4f86045b8102d276a20029bd64783e09127d31.png)
51单片机简易计算器设计报告(一)背景介绍在数字化时代,计算器作为一种简单易用的工具,越来越得到人们的关注和热爱。
而基于51单片机的简易计算器,不仅可以成为一种学习电子技术的手段,还具有满足简单计算需求的实用性。
设计思路本计算器采用键盘输入和数码管输出的电路设计,为用户提供加、减、乘、除、小数点、退位以及等于等功能。
1.键盘输入采用矩阵键盘的方式,将所有按键按行列排列,并利用51单片机中断方式来读取键值。
2.计算处理通过编写相应的程序代码,计算出用户输入的两个数值及操作符的结果,并将结果存储在数据缓存器中,最后将其输出至数码管。
3.数码管显示根据计算结果的数据类型,将其经过相应的转换处理后,通过数码管将结果输出至用户。
设计技术1.软件编写软件编写方面,采用汇编语言进行编写,代码总长度为2.2KB 左右。
其中,以中断方式读取键值、实现数值存储与判断、计算处理、数码管的结果输出等作为关键点进行编写。
2.硬件搭建硬件搭建方面,需要按照电路图进行搭建,并将51单片机与相关周边电路进行连接。
根据设计思路,将键盘、数码管、电源、指示灯等设备按照需求进行连接。
可改进之处虽然 51单片机的简易计算器的搭建能够满足基本计算需求,但其在以下几方面还有可改进之处:•添加计算科学函数,如三角函数、对数函数等。
•改进操作方式,使其更加符合人体工程学原理。
•添加储存器,使用户能够将计算结果进行存储和调用。
总结通过本次对基于51单片机的简易计算器的设计与实现,我们深入了解了电子技术的基本概念和硬件搭建原理,并了解到了简单嵌入式系统的工作原理。
虽然该计算器在功能和效率方面还有待改进,但对于初学者来说,其对于电子技术的学习和实验还是很有价值和意义的。
•编写的汇编代码过于繁琐,可考虑使用高级语言编写以提高效率和易读性。
•在电路搭建时需注意布线的合理性,尽量避免出现干扰和信号损失的问题。
综上所述,基于51单片机的简易计算器的设计和实现虽存在一些不足,但还是很有价值的。
实验01 简易计算器设计
![实验01 简易计算器设计](https://img.taocdn.com/s3/m/5d10cf6433d4b14e8424684b.png)
实验1简易计算器设计一、实验目的1、掌握事件结构的编程2、掌握字符串与数字的相互转化3、掌握条件结构的编程4、生成exe文件二、实验要求利用LabVIEW的事件结构编写一个简单的计算器程序,实现加、减、乘、除等运算,并能对计算结果进行清除,前面板按钮及布局如下图所示。
图1 计算机界面要求最后创建项目,生成exe可执行文件。
三、实验设备1、计算机2、安装LabVIEW软件(版本不限,本实验指导书以2018版为例)四、实验说明1、程序流程图图2 程序流程图2、设计思路计数器界面中每个按键相当于一个布尔输入控件,共17个;计算结果的显示为一个字符串显示控件。
每次按键触发一个按键事件,利用LabVIEW的事件响应结构对每个按键进行响应,实现要求的简易计算器功能。
表1 布尔输入控件的说明前面板除了17个布尔输入控件外,还包含输入数据的输入临时值控件、输入1、输入2、存储操作运算符的运算符临时值控件、运算结果和过程显示,过程显示充当计算器的显示器。
3、算法流程图包括程序初始化、运算符判断、数据存储与运算、显示等。
图3 算法流程图五、实验过程1、前面板设计打开IabVIEW2018软件,新建一个VI,并命名为虚拟计算器。
在前面板上右击,在布尔控件中选择“确定按钮”;右击,打开显示项,去掉标签;调整按键到合适的大小;再拷贝16个按键,排列好,C键和±键还需要调整一下大小;修改各按键的布尔文本;双击各按键到后面板中修改各自的标签,例如将布尔文本为1的按键标签改为“数字1”,将布尔文本为+的按键标签改为“加”,以方便编程时识别各按键。
再设置一个字符串显示控件,用来显示运算数值、运算符号和运算结果,修改标签为“过程显示”;还需要设置5个字符串显示控件,标签分别为“输入临时值”、“输入1”、“输入2”、“运算符临时值”、“运算结果”。
得到如下图所示的计算器前面板、后面板。
图4 前面板布局图图4 后面板2、初始化将前面板中的各个显示控件初始化,如图5所示。
基于单片机简易计算器的设计
![基于单片机简易计算器的设计](https://img.taocdn.com/s3/m/ca230b1eb207e87101f69e3143323968011cf40f.png)
基于单片机简易计算器的设计在我们的日常生活和工作中,计算器是一个非常实用的工具。
从简单的数学运算到复杂的科学计算,它都能为我们提供快速准确的结果。
而基于单片机设计的简易计算器,不仅具备基本的计算功能,还具有体积小、成本低、易于实现等优点。
一、设计背景随着电子技术的不断发展,单片机的应用越来越广泛。
它在控制、测量、通信等领域都发挥着重要作用。
而将单片机应用于计算器的设计,可以实现更加智能化和个性化的计算功能。
同时,对于学习电子技术的人来说,设计一个基于单片机的简易计算器也是一个很好的实践项目,可以帮助我们更好地理解单片机的工作原理和编程方法。
二、系统总体设计1、功能需求简易计算器应具备基本的四则运算(加、减、乘、除)功能,能够处理整数和小数的运算。
同时,还应具备清零、退位、等号等操作功能。
2、硬件设计硬件部分主要包括单片机最小系统、键盘输入模块、显示模块等。
单片机最小系统是整个系统的核心,负责控制和处理数据。
键盘输入模块用于接收用户的输入指令,显示模块用于显示计算结果。
3、软件设计软件部分主要采用 C 语言进行编程。
通过编写程序,实现对键盘输入的识别和处理,以及对计算结果的输出显示。
三、硬件电路设计1、单片机最小系统单片机选用常见的 STC89C52 芯片,它具有价格低廉、性能稳定等优点。
最小系统包括单片机芯片、晶振电路和复位电路。
晶振电路为单片机提供时钟信号,复位电路用于系统的初始化。
2、键盘输入模块键盘采用4×4 矩阵键盘,通过行列扫描的方式获取用户的输入信息。
键盘上的按键分别对应数字 0-9、四则运算符号、清零、退位和等号等功能。
3、显示模块显示模块选用 1602 液晶显示屏,它可以显示两行字符,每行 16 个字符。
通过单片机的控制,将计算结果和输入的算式显示在屏幕上。
四、软件程序设计1、主程序主程序主要负责初始化系统、扫描键盘、处理输入和计算结果等。
首先,对单片机的各个端口进行初始化设置,然后进入一个无限循环,不断扫描键盘,当检测到有按键按下时,根据按键值进行相应的处理。
(完整)基于51单片机的简易计算器设计
![(完整)基于51单片机的简易计算器设计](https://img.taocdn.com/s3/m/ae72d671e418964bcf84b9d528ea81c758f52e9c.png)
(完整)基于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单片机的简易计算器的设计。
通过合理的材料准备、电路连接和程序设计,我们可以实现一个具备加减乘除功能的计算器。
该计算器不仅能满足人们日常的计算需求,还能帮助提高工作效率。
简易计算器设计与实现
![简易计算器设计与实现](https://img.taocdn.com/s3/m/75f2506f59fb770bf78a6529647d27284a733759.png)
简易计算器设计与实现一、引言计算器是一种广泛应用的工具,可以进行基本的算数运算和一些科学计算,能够极大地方便人们的日常生活和工作。
本文将介绍一个简易的计算器的设计和实现方案。
二、设计思路1.功能选择:通过提供菜单供用户选择,以实现计算器常见功能如加法、减法、乘法、除法等。
2.输入输出处理:用户通过键盘输入待计算的数字和操作符,计算器将结果输出到屏幕上。
3.算术运算:根据用户选择的功能,进行相应的算术运算,如加法、减法、乘法、除法等。
4.错误处理:对于非法的输入,如除数为0,需要给出错误提示。
三、详细设计1.界面设计:计算器通过命令行界面展示,用户通过菜单选择功能。
界面可以提供以下功能选择菜单:1)加法2)减法3)乘法4)除法5)退出2.输入输出处理:在命令行界面上提示用户输入数字和操作符,并读取用户输入的数据。
用户输入格式为两个数字和一个操作符,操作符为"+","-","*"或"/"。
3.算术运算:a)加法运算:将两个数字相加,得到结果。
b)减法运算:将第一个数字减去第二个数字,得到结果。
c)乘法运算:将两个数字相乘,得到结果。
d)除法运算:将第一个数字除以第二个数字,得到结果。
在执行除法运算前,需要检查除数是否为0,如果为0,则给出错误提示。
4.错误处理:在用户选择除法运算时,需要检查除数是否为0。
如果为0,则输出错误提示信息,提示用户输入合法操作数。
五、实现以下为Python语言实现的简易计算器代码示例:```pythondef add(a, b):return a + bdef subtract(a, b):return a - bdef multiply(a, b):return a * bdef divide(a, b):if b == 0:raise ValueError("除数不能为0")return a / bdef calculator(:while True:print("请选择功能:")print("1) 加法")print("2) 减法")print("3) 乘法")print("4) 除法")print("5) 退出")choice = int(input()if choice == 1:a = float(input("请输入第一个数字:"))b = float(input("请输入第二个数字:")) result = add(a, b)print("计算结果:%f" % result)elif choice == 2:a = float(input("请输入第一个数字:"))b = float(input("请输入第二个数字:")) result = subtract(a, b)print("计算结果:%f" % result)elif choice == 3:a = float(input("请输入第一个数字:"))b = float(input("请输入第二个数字:")) result = multiply(a, b)print("计算结果:%f" % result)elif choice == 4:a = float(input("请输入第一个数字:"))b = float(input("请输入第二个数字:")) try:result = divide(a, b)print("计算结果:%f" % result)except ValueError as e:print("错误:%s" % str(e))elif choice == 5:breakelse:print("无效的选择,请重新选择功能。
基于51单片机的简易计算器设计
![基于51单片机的简易计算器设计](https://img.taocdn.com/s3/m/d6e4710df6ec4afe04a1b0717fd5360cba1a8d33.png)
基于51单片机的简易计算器设计设计一个基于51单片机的简易计算器,主要功能包括加减乘除四则运算和百分数计算。
下面是设计的详细步骤:1.硬件设计:-使用51单片机作为主控芯片。
-连接16x2的LCD显示屏,用于显示输入和计算结果。
-连接16个按键开关,用于输入运算符和数字。
-连接4个LED灯,用于指示四则运算的选择。
2.软件设计:-初始化LCD显示屏,并显示欢迎信息。
-监听按键输入,在接收到输入后,根据输入的按键值判断操作类型。
-如果按键值对应数字键,保存输入的数字,并在LCD上显示当前输入的数字。
-如果按键值对应四则运算符(+、-、*、/),保存当前输入的数字,并保存运算符。
-如果按键值对应等号(=),根据保存的数字和运算符进行相应的运算,计算结果保存并显示在LCD上。
-如果按键值对应清零(C),将所有保存的数据清空,并显示初始状态。
-如果按键值对应百分号(%),将当前数字除以100并显示在LCD上。
3.主要函数说明:- void init_lcd(:初始化LCD显示屏。
- void display_lcd(char* str):将指定字符串显示在LCD上。
- void clear_lcd(:清空LCD显示屏。
- char get_key(:获取按键输入的值。
- void calculate(:根据保存的数字和运算符进行计算。
- void add_digit(char digit):将输入的数字添加到当前数字中。
- void set_operator(char op):保存运算符。
- void clear_data(:清空所有保存的数据。
4.主要流程:-初始化LCD显示屏并显示欢迎信息。
-在循环中监听按键输入,并根据输入的按键值进行相应的操作。
-根据不同的按键值,调用不同的函数进行处理。
-最后计算结果显示在LCD上。
以上是基于51单片机的简易计算器设计的详细步骤和主要函数说明。
你可以根据这个设计框架进行具体的代码实现。
简易计算器的设计
![简易计算器的设计](https://img.taocdn.com/s3/m/8dae7e2349d7c1c708a1284ac850ad02df800741.png)
简易计算器的设计一、引言计算器是一种常见的电子设备,用于进行数学运算。
然而,现在的计算器功能复杂,有时不易使用。
因此,为了满足用户的需求,我设计了一款简易计算器,以提供简单、直观和用户友好的界面。
二、设计目标1.提供基本数学运算功能,包括加、减、乘、除。
2.确保用户友好的界面设计,使用户易于操作。
3.提供结果的显示,并能够滚动以适应较长的计算结果。
4.支持清零功能,以便用户开始新的计算。
三、设计方案1.界面设计(1)计算器外观:采用手持式设计,与传统计算器外观类似,包括一个屏幕和一组按键。
(2)屏幕设计:使用液晶显示屏,具有高分辨率和抗眩光功能。
屏幕的大小根据实际需求来确定。
2.功能设计(1)基本运算功能:设计四个基本运算按键(加、减、乘、除)和一个等于键用于运算结果的计算。
(2)数字输入:提供0-9数字按键,以(3)小数点输入:提供小数点按键,以便用户输入小数。
(4)清零功能:提供一个清零键,以便用户能够轻松开始新的计算。
(5)结果显示:设计一个屏幕用于显示计算结果,并且能够滚动显示较长的结果。
3.系统设计(1)按钮交互:当用户按下数字、运算符或者清零键时,系统会根据不同按键的输入执行相应的操作。
(2)数学运算:系统在接收到运算符时,会将当前数字和运算符保存起来,当接收到等于键时,执行相应的数学运算并将结果显示在屏幕上。
(3)界面更新:系统根据用户输入时时更新屏幕上的数字和运算符。
四、流程图1.设计输入部分的流程图:(系统等待用户输入)↓(用户输入数字和运算符)↓(显示用户输入的结果)2.设计运算部分的流程图:(系统等待用户输入)↓(用户输入数字和运算符)↓(按下等于键)↓(执行数学运算)↓(显示计算结果)3.设计清零部分的流程图:(系统等待用户输入)↓(用户按下清零键)↓(清除屏幕上的显示内容)五、功能展示```_________________________________________ 2024计算器________________7,8________,________4,5________,________1,2________,________0,.________,________+,-________,________*,/________,________=,C____________,________,________,__________。
简易计算器设计PPT
![简易计算器设计PPT](https://img.taocdn.com/s3/m/ee8e4b17f18583d0496459c5.png)
4 1
5 2
6 3
/
=
C
× 0
计算器工作原理
• 1、不停的进行键盘扫描使其输入数据及控 制键 • 2、通过几个控制键调用控制键下的子程序 进行加减乘除运算 • 3、通过数码管进行数据显示
数码管显示原理
• 数码管是一类显示屏 通过对其不同的管脚 输入相对的电流,会 使其发亮,从而显示 出数字 • 本实验所用数码管为6 位8段数码管
• • • • • •
符号键值获取
• 定义symbol作为符号按键的返回值 • case KEY_3: symbol=0; • • • if(sum0>=0) add_sum0(); show_zero();
计算输入数值
• void add_sum0() //计算当前数码管上显示的 数值 • { • sum0=0; • for(i=0;i<=5;i++) • { • sum0+=uiData[i]*tenDecimal[i]; • *P_Watchdog_Clear = 0x0001; • } • }
显示 输出 结果
• • • • • • • • • • • • • • • • • • • • • •
if(sum0>=0) show_sum0=sum0; else
//对数值的输出处理; show_sum0=sum0*(-1); uiData[0] =show_sum0/100000; uiData[1]=(show_sum0%100000)/10000; uiData[2]=(show_sum0%10000)/1000; uiData[3]=(show_sum0%1000)/100; uiData[4]=(show_sum0%100)/10; uiData[5]=show_sum0%10; if(sum0<0) { //若小于0,找出负号的位置; for(i=0;i<=5;i++) if(uiData[i]>0) break; uiData[i-1]=10; for(j=0;j<=i-2;j++) uiData[j]=11;
基于51单片机的简易计算器设计
![基于51单片机的简易计算器设计](https://img.taocdn.com/s3/m/b38cef65492fb4daa58da0116c175f0e7dd1194d.png)
基于51单片机的简易计算器设计一、引言计算器是一种执行基本数学运算的电子设备,现在市面上有各种类型的计算器,从小型的手持计算器到大型的科学计算器。
本设计基于51单片机设计了一种简易计算器,可以实现加法、减法、乘法和除法等基本运算。
二、设计思路1.系统硬件设计本设计使用的51单片机芯片选择了常用的STC89C52芯片,具有强大的功能和稳定性。
外设有键盘、数码管和LCD液晶显示屏。
2.系统软件设计系统的软件设计基于C语言进行,使用51单片机的汇编语言和C语言进行编程。
软件主要分为键盘输入处理、运算处理和结果显示三个部分。
三、系统硬件设计1.键盘输入部分使用4x4矩阵键盘作为输入设备,将键盘的4行4列分别接入到51单片机的4个IO口上,通过行列扫描的方式来检测按键的状态。
2.数码管显示部分使用共阳极的数码管来显示结果,通过提供适当的电压和信号控制来显示所需的数字。
3.LCD液晶显示屏为了方便用户查看输入和结果,本设计还使用了LCD液晶显示屏。
通过串口通信将结果传输到液晶显示屏上进行显示。
四、系统软件设计1.键盘输入处理通过行列扫描的方式检测键盘的按键状态,当检测到按键按下时,将对应的按键值存储起来。
2.运算处理根据用户的输入进行相应的运算处理。
根据检测到的按键值进行不同的运算操作,如加法、减法、乘法和除法。
3.结果显示将运算的结果通过串口通信传输到LCD液晶显示屏上进行显示。
五、系统实现1.硬件连接将键盘的行列引脚接到51单片机的对应IO口上,数码管和LCD液晶显示屏也分别连接到单片机的IO口上。
2.软件编码通过C语言编写系统软件,包括键盘输入处理、运算处理和结果显示三个模块。
3.调试测试将编写好的软件烧录到单片机上,通过键盘输入进行测试,并观察数码管和LCD液晶显示屏上的输出结果。
六、总结本设计基于51单片机实现了一个简易计算器,通过键盘输入进行基本的运算操作,并将结果通过数码管和LCD液晶显示屏进行显示。
单片机的简易计算器毕业设计
![单片机的简易计算器毕业设计](https://img.taocdn.com/s3/m/f52fdabb900ef12d2af90242a8956bec0975a5a2.png)
单片机的简易计算器毕业设计设计题目:基于单片机的简易计算器设计目的和意义:计算器是人们日常生活中必不可少的工具之一、通过设计一个基于单片机的简易计算器,可以帮助学生更好地理解计算机的原理和工作原理,同时也能提高他们的计算能力和逻辑思维能力。
此外,通过此设计可以加深对单片机的了解,并能提高学生的动手实践能力。
设计内容和要求:1.设计一个基于单片机的简易计算器,能完成基本的四则运算;2.能够输入和显示数字和运算符号;3.根据输入的数字和运算符号进行运算,得到正确的计算结果;4.能够处理异常情况,如除数为零等;5.设计一个简单的界面,使用户能够方便地进行操作;6.设计合理的电源管理系统,能够延长电池寿命;7.系统要求具有一定的误差范围,能够容忍一定的计算误差。
设计原理和方法:1.首先,选择一个合适的单片机作为主控制器,例如常用的51单片机;2.设计合适的输入和输出电路,使用户能够方便地输入和显示数字和运算符号;3.利用单片机的IO口进行数字和运算符号的输入和输出控制;4.设计算法,根据输入的数字和运算符号进行正确的四则运算,并得到正确的计算结果;5.根据实际情况进行运算结果的显示和存储,可以使用LCD液晶显示模块或LED数码管进行显示;6.设计异常处理程序,处理除数为零等异常情况;7.设计合理的电源管理系统,合理利用低功耗模式和休眠模式,延长电池寿命;8.对计算结果进行一定的误差范围控制,使其能够容忍一定的计算误差。
设计步骤和流程:1.确定设计的硬件平台和软件开发环境;2.进行电路设计,包括输入和输出电路的设计;3.进行程序开发,包括输入和输出控制、四则运算和异常处理程序的编写;4.进行整体系统调试,测试输入和输出的功能是否正常;5.进行算法调试,测试四则运算的正确性;6.进行界面设计,设计一个简单易用的用户界面;7.进行电源管理系统的设计和调试,测试功耗和电池寿命;8.完善设计文档,撰写设计报告。
设计结果和展示:通过以上设计,完成了一个基于单片机的简易计算器。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、功能实现:利用1602液晶显示器实现整数和小数的加法、减法、乘法、除法、开根号的运算。
第一行显示输入的数据,第二行显示运算结果。
二、Proteus仿真图三、操作说明:每次运算完后必须按一下清零键,该系统才会重新开始执行。
四、程序:#include<reg52.h>#include<math.h>#define int unsigned int#define char unsigned charvoid inti(); //初始化void delay(); //延时void anjian(); //按键显示数字和符号,第一个数存在a内void sheji(); //设计显示完后的参数void jsab(); //存储两个输入数void jisuanxs(); //计算显示void chufa(); //除法计算部分void chengfa(); //乘法计算部分void jianfa(); //减法计算部分void jiafa(); //加法计算部分void kaigenhao(); //开根号运算部分void benshenxs(); //一个数本事显示void leijixiaoshudian(); //小数点的累计void fenli(); //计算后的结果分离,以便于显示void ql(); //清屏void xshuju(char shuju); //写数据void xzhiling(char zhiling); //写指令//char num[]="I LOVE YOU"; 显示在屏幕上int sz[]={'0','1','2','3','4','5','6','7','8','9','+','-','*','/','=','.'};char xs[]="ENRRO";sbit e=P2^2;sbit rs=P2^0;sbit rw=P2^1;sbit key0=P2^6;sbit key1=P2^7;sbit key2=P3^0;sbit key3=P3^1;sbit key4=P3^2;sbit key5=P3^3;sbit key6=P3^4;sbit key7=P3^5;sbit key8=P3^6;sbit key9=P3^7;sbit key10=P1^3;sbit key11=P1^4;sbit key12=P1^5;sbit key13=P1^6;sbit key14=P1^7;sbit qingling=P1^0;sbit key15=P1^1;sbit key16=P1^2;int fuhao,num,m,n,q,w,s,fuhao1,fuhao2,fuhao3,fuhao4,fuhao5,xiaoshu,cishu1,cishu2; int i,g,j,p;int t,f,h;float a,b,c,d;void main(){inti();a=0;b=0;c=1.0;d=1.0;q=0;fuhao=0;xiaoshu=0;cishu1=0;cishu2=0;num=0;xzhiling(0x80+0x01); /*第一行初始地址为80H,后面加03H是指在距屏幕的起始处3空格出开始显示,第二行的初始地址为80H+40H */while(1){while(fuhao==0) //没有计算过程,输入数据后,按等于号即输出结果{anjian();benshenxs();}while(fuhao1==1) //加法{anjian();jiafa();}while(fuhao2==1) //减法{anjian();jianfa();}while(fuhao3==1) //乘法{anjian();chengfa();}while(fuhao4==1) //除法{anjian();chufa();}while(fuhao5==1) //开根号{ anjian();kaigenhao();}ql(); //清零}}void inti() //初始化{e=0;xzhiling(0x38); //功能设定,根据所用的液晶显示器来决定的,即开显示xzhiling(0x0f); //0x0f设置显示功能开,有光标且闪烁,如为0x0e则为光标不闪,如为0x0c则无光标xzhiling(0x06); //光标设置为写入字符后自动右移一位,和整屏左移xzhiling(0x01); //清屏}void delay() //延时{int i,j;for(i=5;i>0;i--)for(j=110;j>0;j--);}void xzhiling(char zhiling) //写指令{rs=0;rw=0;e=0;P0=zhiling;delay();e=1;delay();e=0;}void xshuju(char shuju) //写数据{rs=1;rw=0;e=0;P0=shuju;delay();e=1;delay();e=0;}void anjian() //按键显示数字和符号,第一个数存在a内{if(key0==0) //0 { delay();if(key0==0){xshuju(sz[0]);delay();while(!key0);num=0;jsab();leijixiaoshudian();}}if(key1==0) //1{ delay();if(key1==0){xshuju(sz[1]);delay();while(!key1);num=1;jsab();leijixiaoshudian();}}if(key2==0) //2{ delay();if(key2==0){xshuju(sz[2]);delay();while(!key2);num=2;jsab();leijixiaoshudian();}}if(key3==0) //3{ delay();if(key3==0){xshuju(sz[3]);delay();while(!key3);num=3;leijixiaoshudian();}}if(key4==0) //4{ delay();if(key4==0){xshuju(sz[4]);delay();while(!key4);num=4;jsab();leijixiaoshudian();}}if(key5==0) //5{ delay();if(key5==0){xshuju(sz[5]);delay();while(!key5);num=5;jsab();leijixiaoshudian();}}if(key6==0) //6 { delay();if(key6==0){xshuju(sz[6]);delay();while(!key6);num=6;jsab();leijixiaoshudian();}}if(key7==0) //7 { delay();if(key7==0){xshuju(sz[7]);while(!key7);num=7;jsab();leijixiaoshudian();}}if(key8==0) //8 { delay();if(key8==0){xshuju(sz[8]);delay();while(!key8);num=8;jsab();leijixiaoshudian();}}if(key9==0) //9 { delay();if(key9==0){xshuju(sz[9]);delay();while(!key9);num=9;jsab();leijixiaoshudian();}}if(key10==0) //加{ delay();if(key10==0){xshuju(sz[10]);delay();fuhao=1;xiaoshu=0;num=0;fuhao1=1;while(!key10);}}if(key11==0) //减{ delay();if(key11==0){xshuju(sz[11]);delay();fuhao=1;xiaoshu=0;num=0;fuhao2=1;while(!key11);}}if(key12==0) //乘{ delay();if(key12==0){xshuju(sz[12]);delay();fuhao=1;xiaoshu=0;num=0;fuhao3=1;while(!key12);}}if(key13==0) //除{ delay();if(key13==0){xshuju(sz[13]);delay();fuhao=1;xiaoshu=0;fuhao4=1;num=0;while(!key13);}}if(key15==0) //小数点{delay();if(key15==0){xiaoshu=1;xshuju(sz[15]);delay();while(!key15);}}if(key16==0) //开根号{delay();if(key16==0){xshuju(0xe8);delay();fuhao5=1;fuhao=1;while(!key16);}}}void jsab() //存储两个输入数{if(fuhao==0){a=a*10+num;}else{b=b*10+num;}}void fenli() //计算后的结果分离,以便于显示{if(q>=0&&q<10){q=q;}if(q>=10&&q<100){m=q/10;n=q%10;}if(q>=100&&q<1000){m=q/100;n=q%100/10;s=q%10;}}void jisuanxs() //计算显示{if(key14==0){delay();if(key14==0){xzhiling(0x80+0x40);if(q<10&&q>=0){xshuju(sz[q]);delay();sheji();}if(q>=10&&q<100){xshuju(sz[m]);delay();xshuju(sz[n]);delay();sheji();}if(q>=100&&q<1000){xshuju(sz[m]);delay();xshuju(sz[n]);delay();xshuju(sz[s]);delay();sheji();}xzhiling(0x0c);}}}void ql() //清屏{if(qingling==0){xzhiling(0x01); //清屏fuhao1=0;fuhao2=0;fuhao3=0;fuhao4=0;fuhao5=0;fuhao=0;xiaoshu=0;cishu1=0;cishu2=0;a=0;b=0;q=0;c=1.0;d=1.0;xzhiling(0x0f);}}void sheji() //设计显示完后的参数{fuhao1=0;fuhao2=0;fuhao3=0;fuhao4=0;fuhao=1;}void benshenxs() //一个数本事显示{if(key14==0){delay();if(key14==0){if(cishu1!=0){for(j=cishu1;j>0;j--){c=c*0.1;}a=a*c;q=(int) a;t=(int)(a/0.01);h=t%100/10;f=t%10;if((h!=0)||(f!=0)) //判断小数部分不为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();xzhiling(0x0c);}else //小数部分为0时,显示{xzhiling(0x80+0x40);fenli();jisuanxs();}}if(cishu1==0){q=a;xzhiling(0x80+0x40);fenli();jisuanxs();delay();}ql();}}}void jiafa() //加法计算部分{if(key14==0){delay();if(key14==0){if((cishu1!=0)||(cishu2!=0)){for(j=cishu1;j>0;j--){c=c*0.1;}a=a*c;for(p=cishu2;p>0;p--){d=d*0.1;}b=b*d;q=(int)(a+b);t=(int)((a+b)/0.01);h=t%100/10;f=t%10;if((h!=0)||(f!=0)) //判断小数部分不为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();xzhiling(0x0c);}else //小数部分为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();}}if((cishu1==0)&&(cishu2==0)){q=a+b;xzhiling(0x80+0x40);fenli();jisuanxs();delay();}ql();}}}void jianfa() //减法计算部分{if(key14==0){delay();if(key14==0){if((cishu1!=0)||(cishu2!=0)){for(j=cishu1;j>0;j--){c=c*0.1;}a=a*c;for(p=cishu2;p>0;p--){d=d*0.1;}b=b*d;q=(int)(a-b);t=(int)((a-b)/0.01);h=t%100/10;f=t%10;if((h!=0)||(f!=0)) //判断小数部分不为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();xzhiling(0x0c);}else //小数部分为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();}}if((cishu1==0)&&(cishu2==0)){q=a-b;xzhiling(0x80+0x40);fenli();jisuanxs();delay();}ql();}}}void chengfa() //乘法计算部分{if(key14==0){delay();if(key14==0){if((cishu1!=0)||(cishu2!=0)){for(j=cishu1;j>0;j--){c=c*0.1;}a=a*c;for(p=cishu2;p>0;p--){d=d*0.1;}b=b*d;q=a*b;t=(int)((a*b)/0.01);h=t%100/10;f=t%10;if((h!=0)||(f!=0)) //小数部分不为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();xzhiling(0x0c);}else //小数部分为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();}}if((cishu1==0)&&(cishu2==0)){q=a*b;xzhiling(0x80+0x40);fenli();jisuanxs();delay();}ql();}}}void chufa() //除法计算部分{if(key14==0){delay();if(key14==0){if((cishu1!=0)||(cishu2!=0)){for(j=cishu1;j>0;j--){c=c*0.1;}a=a*c;for(p=cishu2;p>0;p--){d=d*0.1;}b=b*d;q=a/b;t=(int)((a/b)/0.01);h=t%100/10;f=t%10;if((h!=0)||(f!=0)) //小数部分不为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();xzhiling(0x0c);}else //小数部分为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();}}if((cishu1==0)&&(cishu2==0)){q=a/b;t=(int)((a/b)/0.01); //小数部分保留两位h=t%100/10; //分离小数部分f=t%10;if(key14==0){delay();if(key14==0){if((h!=0)||(f!=0)){xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();xzhiling(0x0c);}else{xzhiling(0x80+0x40);fenli();jisuanxs();delay();}ql();}} //小数分离显示部分if(b==0) //分母为0时,显示ENRRO表示出错了{ if(key14==0){delay();if(key14==0){xzhiling(0x80+0x40);for(g=0;g<5;g++){xshuju(xs[g]);xzhiling(0x0c);sheji();}ql();}}}}ql();}}}void kaigenhao() //开根号运算部分{if(key14==0){delay();if(key14==0){if(cishu2!=0){for(p=cishu2;p>0;p--){d=d*0.1;}b=b*d;q=(int)(sqrt(b));t=(int)((sqrt(b))/0.01);h=t%100/10;f=t%10;if((h!=0)||(f!=0)) //小数部分不为0时显示{xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();while(qingling==1); //起到锁存的作用将上面的显示锁定,如果没有该语句则会出错xzhiling(0x0c);}}if(cishu2==0){q=(int)(sqrt(b));t=(int)((sqrt(b))/0.01); //小数部分保留两位h=t%100/10; //分离小数部分f=t%10;if((h!=0)||(f!=0)){xzhiling(0x80+0x40);fenli();jisuanxs();xshuju(sz[15]);delay();xshuju(sz[h]);delay();xshuju(sz[f]);delay();xzhiling(0x0c);}else{xzhiling(0x80+0x40);fenli();jisuanxs();delay();sheji();}}}}ql();}void leijixiaoshudian() //小数点的累计{if((xiaoshu==1)&&(fuhao==0)){cishu1++;}if((xiaoshu==1)&&(fuhao==1)){cishu2++;}}。