简易计算器
简易计算器的课程设计
简易计算器的课程设计一、课程目标知识目标:1. 学生能理解简易计算器的内部工作原理,掌握其基本功能操作。
2. 学生能运用计算器进行基本的算术运算,包括加、减、乘、除以及百分比计算。
3. 学生理解并掌握计算器上各个按键的功能及其在数学运算中的应用。
技能目标:1. 学生能够使用计算器辅助解决实际问题,如购物找零、面积计算等。
2. 学生通过计算器的使用,提高数据输入、结果读取和运算过程纠错的能力。
3. 学生能够结合数学知识,利用计算器进行数据的简单统计分析。
情感态度价值观目标:1. 培养学生对待科学技术的积极态度,认识到计算器在日常生活和学习中的便捷性。
2. 增强学生的团队协作意识,通过小组活动,学会分享和交流使用计算器的经验。
3. 培养学生遵守计算器使用的规则,养成良好的计算器使用习惯,珍惜公共资源。
本课程设计针对的学生群体为小学高年级学生,他们已经具备了一定的数学基础和操作简单电子设备的能力。
课程性质为实用技能型,旨在通过简易计算器的教学,将理论知识与实践操作相结合,提高学生解决实际问题的能力。
在教学要求上,注重培养学生的动手操作能力和创新思维,同时强调情感态度的培养,使学生在学习技能的同时,也能形成正确的价值观。
通过具体学习成果的分解,教师可进行有针对性的教学设计和学习效果评估。
二、教学内容本章节教学内容依据课程目标,结合教材内容,科学系统地组织以下部分:1. 简易计算器基础知识:介绍计算器的发展历程、种类及简易计算器的结构组成,对应教材第二章第一节。
2. 计算器按键功能:详细讲解各按键的功能及其在数学运算中的应用,对应教材第二章第二节。
3. 基本运算操作:教授如何使用计算器进行加、减、乘、除以及百分比计算,对应教材第二章第三节。
4. 计算器在实际应用中的使用:结合实际案例,如购物找零、面积计算等,展示计算器的实用性,对应教材第二章第四节。
5. 数据的简单统计分析:利用计算器进行数据输入、处理和简单统计分析,对应教材第二章第五节。
简易计算器(源码)
简易计算器(源码)以下是一个简易计算器的Python源码,用于执行基本的加、减、乘、除运算:```python#简易计算器def add(x, y):"""相加"""return x + ydef subtract(x, y):"""相减"""return x - ydef multiply(x, y):"""相乘"""return x * ydef divide(x, y):"""相除"""if y != 0:return x / yelse:return "除数不能为零!"print("选择操作:")print("1. 相加")print("2. 相减")print("3. 相乘")print("4. 相除")choice = input("输入你的选择(1/2/3/4): ")num1 = float(input("输入第一个操作数: "))num2 = float(input("输入第二个操作数: "))if choice == '1':print(num1, "+", num2, "=", add(num1, num2))elif choice == '2':print(num1, "-", num2, "=", subtract(num1, num2)) elif choice == '3':print(num1, "*", num2, "=", multiply(num1, num2)) elif choice == '4':print(num1, "/", num2, "=", divide(num1, num2)) else:print("无效的选择")```以上代码中,我们定义了四个函数:`add`、`subtract`、`multiply`和`divide`,分别用于执行相加、相减、相乘和相除的操作。
简易计算器实验报告
简易计算器实验报告简易计算器实验报告引言:计算器是我们日常生活中常用的工具之一。
它可以帮助我们进行简单的数学运算,提高计算的效率。
在本次实验中,我们将设计并制作一台简易计算器,通过实践来掌握计算器的原理和工作原理。
实验目的:1. 了解计算器的基本原理和工作原理;2. 掌握计算器的设计和制作方法;3. 提高动手能力和创造力。
实验材料:1. 电路板;2. 按键;3. LED显示屏;4. 电容;5. 电阻;6. 电源。
实验步骤:1. 连接电路板和电源,确保电路板能够正常工作;2. 将按键连接到电路板上,用于输入数字和运算符;3. 连接LED显示屏,用于显示计算结果;4. 添加电容和电阻,用于控制电路的稳定性和电流;5. 调试电路,确保计算器能够正确运行。
实验结果:经过一番调试,我们成功制作出了一台简易计算器。
它可以进行基本的加减乘除运算,并且在LED显示屏上显示结果。
通过按键输入数字和运算符,我们可以进行各种运算,从而得到我们想要的结果。
这台计算器虽然简单,但是它的实用性和便携性都非常高。
实验分析:在本次实验中,我们主要学习了计算器的基本原理和工作原理。
计算器是通过按键输入数字和运算符,然后经过电路的计算和控制,最终在显示屏上显示结果。
在电路中,电容和电阻的作用是为了保证电路的稳定性和电流的控制。
通过这个实验,我们更加深入地了解了计算器的内部结构和工作原理。
实验总结:通过本次实验,我们成功制作了一台简易计算器,并且对计算器的原理和工作原理有了更深入的了解。
实验过程中,我们不仅提高了动手能力和创造力,还培养了解决问题的能力。
计算器作为一种常见的工具,它的设计和制作过程并不复杂,但是它的实用性和便携性却非常高,为我们的生活带来了很大的便利。
未来展望:通过这次实验,我们对计算器的原理和工作原理有了初步的了解。
在未来,我们可以进一步深入研究计算器的更高级功能和更复杂的电路设计。
同时,我们也可以将这种简易计算器的设计思想应用到其他领域,如电子设备、机器人等,从而提高我们的创造力和创新能力。
简易计算器开题报告
简易计算器开题报告简易计算器开题报告一、引言计算器是一种广泛应用于日常生活和工作中的工具,它能够帮助人们进行简单的数学运算。
然而,随着科技的不断进步,计算器也发生了很大的改变。
在这个数字化时代,我们可以看到各种各样的高级计算器和手机应用程序,它们提供了更多的功能和更方便的使用体验。
然而,对于一些特定的场景和需求,简易计算器仍然具有一定的优势。
本文将探讨开发一款简易计算器的可行性和必要性。
二、背景分析1. 简易计算器的定义简易计算器是一种功能简单、操作便捷的计算工具,通常只包含基本的四则运算和一些常用函数。
它的界面简洁明了,适合快速计算和简单操作。
2. 现有计算器的不足尽管现有的高级计算器和手机应用程序提供了更多的功能和更方便的使用体验,但在某些情况下,它们可能过于复杂,不适合快速计算。
例如,在一些会计、商务、教育等场景中,人们更倾向于使用简单的计算器进行基本运算,以提高工作效率。
3. 简易计算器的优势简易计算器相对于高级计算器和手机应用程序而言,具有以下优势:- 操作简单:简易计算器通常只有几个按键,界面简洁明了,使用起来非常方便。
- 快速计算:简易计算器专注于基本运算,因此在处理简单的数学运算时更加迅速。
- 便携性:简易计算器体积小巧,便于携带,随时随地使用。
三、开发目标基于上述背景分析,我们的开发目标是设计和开发一款简易计算器,以满足以下需求:1. 提供基本的四则运算功能,包括加、减、乘、除。
2. 支持一些常用函数,如开方、求平方、求倒数等。
3. 界面简洁明了,操作简单方便。
4. 提供快速计算的能力,以提高工作效率。
5. 考虑到便携性,计划将其设计为小巧的手持设备。
四、技术实现1. 硬件需求为了实现简易计算器的开发目标,需要以下硬件设备:- 微处理器:选择一款适合嵌入式系统的微处理器,例如ARM Cortex-M系列。
- 显示屏:选用一款小巧而清晰的显示屏,以方便用户查看计算结果。
- 按键:设计合适的按键布局,以支持用户输入数字和操作符。
简易计算器的制作
简易计算器的制作在本文中,我们将介绍如何使用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,我们可以轻松创建一个简易计算器。
这个计算器可以执行基本的加减乘除等操作,同时提供了一个直观的用户界面。
您可以根据需要进行自定义,添加更多功能和复杂的计算操作。
单片机的简易计算器
单片机的简易计算器在现代科技的不断发展中,单片机已经成为了人们生活中不可或缺的一部分,其广泛应用于各个领域中。
其中,单片机作为计算器的应用是人们最为熟悉的,本文将介绍一个基于单片机的简易计算器。
1.引言计算器作为一种广泛使用的工具,早已融入人们的生活中。
随着电子技术的不断发展,计算器逐渐从机械式逐渐转变为电子式。
而单片机作为电子计算器中的核心,因其体积小、功耗低、成本低等优点,成为了电子计算器的首选之一2.原理介绍单片机简易计算器的原理是通过单片机对输入的数字和运算符进行解析,然后利用内部的算法进行计算,最后将结果显示在输出设备上。
该计算器主要包括输入模块、解析模块、计算模块以及显示模块四个部分。
3.输入模块输入模块主要包括键盘和显示屏。
键盘用于用户输入数字和运算符,显示屏用于显示输入和计算结果。
在单片机上,键盘和显示屏一般通过矩阵按键扫描和数码管显示等方式实现。
4.解析模块解析模块负责解析用户的输入,并将其转化为内部可以处理的格式。
例如,用户输入的数字和运算符将被解析为二进制码或其他表示形式。
解析模块一般通过状态机等方式实现。
5.计算模块计算模块是单片机简易计算器的核心部分,主要负责对输入的数字和运算符进行计算,并生成计算结果。
计算模块可以使用常见的算法,如加法、减法、乘法、除法,也可以实现特殊的运算功能,如开方、幂运算等。
6.显示模块显示模块负责将计算结果显示在输出设备上。
单片机简易计算器一般采用数码管显示,可以显示整数和小数。
在显示过程中,还需要考虑显示精度和位数等问题。
7.程序设计单片机简易计算器的程序设计需要考虑输入和输出的实时性和准确性。
需要设计相应的中断处理函数,实现按键的响应和显示的更新。
程序设计还需要考虑算法的优化和计算结果的溢出等问题。
8.功能扩展单片机简易计算器还可以进行功能的扩展,如添加转换功能、存储功能等。
例如,可以添加进制转换功能,实现十进制与二进制、八进制、十六进制之间的转换;还可以添加存储功能,实现计算结果的存储和读取。
计算器课程设计--简易计算器
1 设计课题任务、功能要求说明及总体方案介绍1.1 设计课题任务课题:简易计算器任务:设计一个具有特定功能的计算器。
该计算器上电或按键复位后能自动显示系统提示界面,进入准备工作状态。
能实现基本的加、减、乘、除四则运算。
1.2 功能要求说明在本次工程实践中,主要完成如下方面的设计任务:(1)计算器上电或按键复位后能显示初始化界面(2)2秒后进入计算器界面(3)按键能进行加、减、乘、除运算并显示结果(4)按清零键后能进行下一次计算1.3 设计课题总体方案介绍及工作原理说明计算器的总体功能原理是以AT89S52单片机为主要控制核心,通过外接4*4行列式键盘作为控制信号输入源,一块12864液晶作为显示器件,通过按键控制,单片机实时地去执行,在12864液晶上显示界面。
系统控制原理图如图1所示。
图1系统控制原理图2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍2.1.1 AT89S52控制模块考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、液晶模块的显示控制、复位电路等,我们选择了AT89S52系列单片机,具有反应速度极快,工作效率特高的特点。
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。
使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。
简易计算器课程设计
山东大学控制科学与工程学院课程设计报告书课程设计名称:简易计算器班级:测控一班学号:201000171202姓名:魏凯峰一、电路工作原理该电路主要由以下几部分组成,1、51系列单片机最小系统板,由AT89C51单片机,复位电路,晶振电路(晶振频率是11.0592MHZ),这部分是控制中心,晶振电路可产生程序运行所需要的时钟频率。
2、显示部分,由8位共阴数码管和两个74HC573锁存器、排阻(1K)组成,74HC573锁存器用于动态显示数据,也有驱动显示作用,排阻是限流作用。
3、按键部分,由20位独立键盘组成,按矩阵形式连接,用到9个IO口。
原理:键盘作为数字输入,矩阵键盘的工作原理是当某个键按下时,其两端的IO口电平变化,程序中通过相应位的与或运算,就可以判断出是哪个按键被按下,单片机中的程序不断读取键盘的输入并实时显示在数码管上,数码管用段位选不断切换显示,如当位选为高电平时即为点亮,然后再输入相应的数字段码(该电路中用的是共阴极数码管的字码),这样数码管上便可以显示相应数字。
锁存器中的LE口就是段位选口,高电平有效,数码管中的A、B......G、DP是数码管中的每一段,只要某个字母为高电平,则该段二极管就会被点亮(共阴极)。
在同时显示多个数字时要利用到动态显示,视觉动态显示主要就是利用人眼的视觉感来设计的,一般来说如果显示的频率过慢,则会有断断续续的显示;如果显示的频率加快,则人眼就分辨不出这种视觉残余!二、程序简要说明从主函数开始,先是定义一些变量,然后是调用显示函数displaypro(0),先显示0,然后进入一个大循环while(1),在循环里面先检测键盘keyscan(),并把检测值赋给K,然后是段位选循环8次检测,然后用switch(k)函数来执行键盘操作,k的值从0到9表示输入数字0到9,10到13表示加减乘除,17、15分别表示十六进制和二进制,16表示小数点,14表示正负号,18表示清除,19是等于号。
简易计算器的设计与实现
简易计算器的设计与实现设计一个简易计算器涉及以下几个方面: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_()。
简单介绍简易计算器的使用方法
简单介绍简易计算器的使用方法简易计算器使用方法计算器是我们日常生活中常见的小工具之一,它能够方便快捷地完成各种数学运算。
在本文中,我们将简单介绍一下简易计算器的使用方法,帮助大家更好地利用这个小工具。
一、开机与关闭使用简易计算器之前,首先需要开机。
通常,在计算器上会有一个电源开关,打开开关后,计算器便会自动启动。
要关闭计算器,只需要将电源开关关闭即可。
二、数字输入在简易计算器上,数字输入是最基本的操作。
计算器通常会有一个数字键盘,上面标有0到9的数字。
通过按下相应的数字键,可以输入需要计算的数值。
输入多位数时,只需按照正确的顺序依次按下每个数字键。
三、基本运算简易计算器能够完成四则运算,包括加法、减法、乘法和除法。
使用计算器进行基本运算时,需要按下特定的运算符键。
1. 加法:简易计算器上通常会有一个“+”键,按下该键后,计算器会把当前输入的数值记为被加数,再输入另一个数值,按下“=”键,计算器就会显示它们的和。
2. 减法:类似地,简易计算器上通常会有一个“-”键,按下该键后,计算器会把当前输入的数值记为被减数,再输入一个数值,按下“=”键,计算器就会显示它们的差。
3. 乘法:简易计算器上通常会有一个“×”键,按下该键后,计算器会把当前输入的数值记为被乘数,再输入一个数值,按下“=”键,计算器就会显示它们的积。
4. 除法:类似地,简易计算器上通常会有一个“÷”键,按下该键后,计算器会把当前输入的数值记为被除数,再输入一个数值,按下“=”键,计算器就会显示它们的商。
四、小数与分数计算除了整数运算,简易计算器还可以进行小数和分数的计算。
对于小数的输入,直接使用数字键盘即可,对于分数的输入,则需要使用特定的输入方式。
通常,在计算器上会有一个“分数”键或“1/x”键,按下该键后,计算器会进入分数输入模式,在屏幕上显示分子和分母的输入框,通过按下数字键来输入相应的分子和分母。
输入完毕后,按下“=”键,计算器就会进行分数的计算。
基于单片机的简易计算器设计
基于单片机的简易计算器设计引言:计算器是一种广泛应用的电子设备,可以进行各种数学计算。
基于单片机的计算器是一种使用单片机作为核心处理器的计算器。
本文将介绍如何设计一个基于单片机的简易计算器。
一、设计思路:1.硬件设计:选择适合的单片机,LCD显示屏,按键开关和电源电路,将它们连接在一起组成计算器的硬件。
2.软件设计:使用单片机的编程语言编写程序,实现计算器功能,如加法、减法、乘法、除法等运算,以及清零、退格、等号等功能。
二、硬件设计:选择单片机:在设计单片机计算器时,我们可以选择MCU,如STC89C52、ATmega32等。
这些单片机性能稳定,功能强大,适合用于计算器的设计。
LCD显示屏:选择合适尺寸和接口的LCD显示屏,用于显示计算结果和输入的数字。
按键开关:选择合适的按键开关,用于接收用户的按键输入,如数字、运算符等。
电源电路:设计适合的电源电路,为计算器提供稳定的电源。
三、软件设计:1.初始化功能:启动计算器时,进行相关初始化操作,如清屏、设置计算器状态等。
2.数字输入功能:通过按键输入,将数字输入到计算器中,同时刷新LCD显示屏上的内容。
3.运算功能:根据用户输入的数字和运算符,进行相应的运算操作,如加法、减法、乘法、除法等。
4.清零功能:按下清零按钮时,将计算器的状态重置为初始状态。
5.退格功能:当用户输入错误时,可以通过按下退格按钮,删除最后一个输入的数字或运算符。
6.等号功能:用户按下等号按钮时,计算器将完成运算,并将结果显示在LCD屏上。
7.错误处理功能:当用户输入错误时,计算器应该给出合适的错误提示。
四、程序实现:1.确定单片机的引脚分配,将LCD显示屏、按键开关和单片机的引脚连接起来。
2.使用单片机的编程语言编写程序,实现计算器的功能。
3.根据运算符和数字的不同,确定相应的运算方法,并在LCD显示屏上显示结果。
4.使用条件语句和循环结构,实现计算器的控制逻辑。
5.通过编程实现按键响应功能,当用户按下相应按键时,执行相应的操作。
《制作简易计算器》课件
本PPT课件将教你如何制作简易计算器。通过简单直观的讲解和演示,你将 学会使用PPT创建一个实用的计算器应用程序。
一、引言
目的和意义
介绍制作计算器PPT的目的和意义,以及为什么学习制作计算器是有益的。
使用场景
简述计算器的使用场景,包括商务、教育、日常生活等各个方面的应用。
二、制作工具
PPT制作工具
介绍使用的PPT制作工具,包括Microsoft PowerPoint和Google Slides等。
使用PPT创作计算器
详细讲解如何使用PPT来创建一个计算器应 用程序的演示,包括界面设计和功能实现。
三、计算器的部件
计算器需要的元素
简述计算器应用程序所需的基本元素,例如 屏幕、按钮、数字键盘等。
1
实现计算器功能
2
通过演示,展示如何在代码中实现计 算器的基本功能,如加法、减法、乘
法、除法等。
计算器代码编写过程
使用步骤演示如何编写计算器应用程 序的代码,从创建项目到实现基本功 能。
六、编写计算器UI
设计计算器界面
指导如何设计计算器应用程序的用户界面,包括 布局、颜色、字体和图标等。
计算器的样式
演示如何选择合适的样式,使计算器的界面更加 美观和易于使用。
七、添加计算器所需功能
1
添加更多功能
介绍如何为计算器应用程序添加更多
演示更高级功能
2
高级功能,如求平方、开平方、百分 比等。
通过演示,向观众展示如何添加和使
用计算器应用程序的更高级功能。
八、总结
总结制作计算器PPT的过程
简要总结制作计算器PPT的整个过程和所涵盖的内容。
简易机械计算器的工作原理
简易机械计算器的工作原理简易机械计算器是一种便携式计算设备,以机械方式执行简单数学运算。
它的工作原理可以被描述为以下几个步骤:1. 输入数字和操作符简易机械计算器通常配备有一个数字键盘,用户可以通过按下数字键来输入待计算的数字。
同时,它还有一些特殊的键用于输入操作符,比如加减乘除等运算符。
2. 数字转换为机械表达式当用户按下数字键时,机械计算器会将输入的数字转换为机械表达式。
这些表达式可以是机械构件的位置或角度,用于记录数字的值。
3. 执行数学运算一旦数字和操作符都被输入并转换成相应的机械表达式,机械计算器便开始执行数学运算。
它通过旋转、滑动或摆动机械构件来模拟数学运算的过程。
4. 显示计算结果在数学运算完成后,机械计算器会将结果通过数字显示器展示给用户。
这通常是一个由机械构件组成的显示器,根据它们的位置或角度来显示数值。
5. 重置或继续计算一旦计算结果被显示,用户可以选择将计算器重置为初始状态以进行新的计算,或者保留计算结果并继续进行更多的计算。
简易机械计算器的工作原理主要基于机械构件的移动和位置记忆。
它没有使用电子元件,因此不需要电池或电源来工作,同时也避免了一些电子计算器可能出现的故障。
虽然简易机械计算器的计算速度相对较慢,但它的可靠性和耐久性更高。
它在某些环境下仍然被广泛使用,特别是在需要长时间计算并确保计算精度的场合。
总结:简易机械计算器的工作原理基于机械构件的移动和位置记忆。
通过输入数字和操作符,数字转换为机械表达式,并通过机械运动模拟数学运算。
计算结果通过数字显示器展示给用户。
这种计算器不需要电源,并且具有高可靠性和耐久性。
虽然它计算速度较慢,但在某些场合仍然得到应用。
简易计算器 带小数点
简易计算器(带小数点)一.主要实现功能1.能完成五位数以内的加减乘除运算(其中整数部分最多为3位,小数部分最多为2位,多余的输入无效)。
2.运算结果数码管显示。
3.在进行减法运算时,如果差是负数,数码管能够显示负数。
4.能及时显示输入的值和运算的结果二.操作方法(类似普通的计算器)显示板上的1--9数字键作为运算是数字的输入,上档键作为加法键,下档键作为减法键,左键作为乘法键,右键作为除法键,Esc键是取消键,用来取消上一次的操作或是返回上一状态。
Enter键在数字输入时作为小数点的键入键,当完成第二个的数输入后,Enter键则作为计算器中的“=”键,得出运算的结果,并且在数码管上显示,其余的操作步骤与方法与普通的计算器类似。
三.程序流程图1.思想从计算器的操作步骤来看,可以把计算器的输入过程分解由四个状态来实现,如下图所示第一个数的输入加减乘除键的输入Enter键得结果第二个数的输入与整数计算器不同的是,带小数的计算器要完成小数点的键入,须记录小数点后面的位数,所以我们又可以把数字的输入分为两个状态,一个是整数部分的键入,另一个是小数部分的键入。
如下所示:数字的输入整数的输入小数的输入程序流程图由程序流程图可以画出程序流程图0 1 2 3以上只是从整体把握计算器程序,也就是程序是通过几个模块实现的。
各个模块之间互不影响的。
各个模块实现的算法可以不同,加减乘除和等号的输入比较简单在这就不描述了,下面对数字的输入和显示做简要的描述,如下图所示:0 1 0 1 2开始 初始化 第一位数加减乘除的输入 第二位数等号键的输入 Num =?显示结束数字的输入Num1=? 整数的输入 小数的输入数字的显示F=?显示第一位 数显示第二位 数显示结果四.算法数字的输入与显示1>.如何从键盘上读出键入的值并且如实的表示出来?例如按顺序输入12.12,则在数码管上显示12.12,我们可设一变量th,从键盘上所读出来的值key ,th=th*10+key,如果按顺序输入1 2 .1 2 ,则th的值为1212。
基于单片机简易计算器的设计
基于单片机简易计算器的设计在我们的日常生活和工作中,计算器是一个非常实用的工具。
从简单的数学运算到复杂的科学计算,它都能为我们提供快速准确的结果。
而基于单片机设计的简易计算器,不仅具备基本的计算功能,还具有体积小、成本低、易于实现等优点。
一、设计背景随着电子技术的不断发展,单片机的应用越来越广泛。
它在控制、测量、通信等领域都发挥着重要作用。
而将单片机应用于计算器的设计,可以实现更加智能化和个性化的计算功能。
同时,对于学习电子技术的人来说,设计一个基于单片机的简易计算器也是一个很好的实践项目,可以帮助我们更好地理解单片机的工作原理和编程方法。
二、系统总体设计1、功能需求简易计算器应具备基本的四则运算(加、减、乘、除)功能,能够处理整数和小数的运算。
同时,还应具备清零、退位、等号等操作功能。
2、硬件设计硬件部分主要包括单片机最小系统、键盘输入模块、显示模块等。
单片机最小系统是整个系统的核心,负责控制和处理数据。
键盘输入模块用于接收用户的输入指令,显示模块用于显示计算结果。
3、软件设计软件部分主要采用 C 语言进行编程。
通过编写程序,实现对键盘输入的识别和处理,以及对计算结果的输出显示。
三、硬件电路设计1、单片机最小系统单片机选用常见的 STC89C52 芯片,它具有价格低廉、性能稳定等优点。
最小系统包括单片机芯片、晶振电路和复位电路。
晶振电路为单片机提供时钟信号,复位电路用于系统的初始化。
2、键盘输入模块键盘采用4×4 矩阵键盘,通过行列扫描的方式获取用户的输入信息。
键盘上的按键分别对应数字 0-9、四则运算符号、清零、退位和等号等功能。
3、显示模块显示模块选用 1602 液晶显示屏,它可以显示两行字符,每行 16 个字符。
通过单片机的控制,将计算结果和输入的算式显示在屏幕上。
四、软件程序设计1、主程序主程序主要负责初始化系统、扫描键盘、处理输入和计算结果等。
首先,对单片机的各个端口进行初始化设置,然后进入一个无限循环,不断扫描键盘,当检测到有按键按下时,根据按键值进行相应的处理。
简易计算器设计与实现
简易计算器设计与实现一、引言计算器是一种广泛应用的工具,可以进行基本的算数运算和一些科学计算,能够极大地方便人们的日常生活和工作。
本文将介绍一个简易的计算器的设计和实现方案。
二、设计思路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("无效的选择,请重新选择功能。
简易计算器实训报告(一)
简易计算器实训报告(一)简易计算器实训报告实训目的本次简易计算器实训的目的在于让学生了解python语言的基本语法和运算符,同时通过实践操作,提升学生的编程思维和实际应用能力。
实训内容本次实训内容主要包括以下方面:1.简易计算器的基本功能:加、减、乘、除。
2.计算器的界面设计与功能实现。
3.错误处理与异常捕获。
实训步骤步骤一:设计计算器界面在本次实训中,我们采用tkinter库来设计计算器的用户界面。
具体步骤如下:1.创建一个窗口;2.在窗口中添加各种按钮和文本框,用于输入和显示计算结果;3.将按钮按照功能分类,为每个按钮设置对应的事件处理函数。
步骤二:实现基本计算功能根据下拉菜单中所选的运算符,我们可以对输入的两个数进行相应的计算。
具体实现方法如下:1.在计算器窗口中添加一个下拉菜单,用于选择运算符;2.根据所选运算符,获取相应的输入数据,并调用对应的计算函数;3.将计算结果输出到窗口中。
步骤三:错误处理与异常捕获在实际应用中,我们不能保证用户输入的一定是数字,所以我们需要对输入做一些错误处理。
具体方法如下:1.在获取用户输入时,先对输入的字符串进行判断,如果用户输入不合法,弹出提示窗口;2.对于除数为0等异常情况进行相应的异常捕获处理,避免程序崩溃。
实训总结通过本次实训,我们学习了python语言的基本语法和运算符,并通过实践操作,学习了tkinter库的使用方法。
通过本次实训,我们还深入了解了计算器的界面设计和功能实现过程。
此外,我们也学会了一些常用的错误处理和异常捕获方法。
未来拓展本次实训只是简易计算器的基本实现,还有很多可以拓展的功能,如:1.添加科学记数法、三角函数、对数函数、平方根等高级数学运算;2.设计多个数字输入框,实现多操作数的计算;3.添加历史记录功能,记录用户计算过程和结果;4.将计算器移植到移动设备或网页上,提供更为便捷的计算服务。
5.添加输入历史记录及回显功能,便于用户查错和复查。
简易计算器完整课程设计
一、设计要求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四、心得体会课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。
聚合物Tg简易计算器
St
100
MMA
105
MA
8
EA
-22
BA
-54
n-BMA
20
i-BMA
48
8 丙烯酸异辛酯 9 丙烯酸月桂酯
2-EHA
-70
LA
-3
10 丙烯酸 11 甲基丙烯酸 12 丙烯酸羟乙酯 13 丙烯酸羟丙酯 14 丙烯酸羟丁酯
AA
106
MAA
185
HEA
-15
HPA
-7
4-HBA
-65
15 甲基丙烯酸羟乙酯 16 甲基丙烯酸-2-羟丙酯
HEMA
55
HPMA
26
17 甲基丙烯酸环己酯
CHMA
83
18 甲基丙烯酸异冰片酯
IBOMA 110
19 甲基丙烯酸十八烷基酯
SMA
-100
20 甲基丙烯酸缩水甘油酯
GMA
46
21 甲基丙烯酸二甲氨基乙酯 DMAEMA 18
22 α-甲基苯乙烯
MSt
192
23 丙烯腈AN97源自24 丙烯酰胺AAm
165
聚合物玻璃化温度简易计算器
单体名称
St
MMA 2-EHA BA
单体Tg/℃
100
105
-70
-54
单体质量
30
注:单体不足六个时,空缺
的质量、玻璃化温度填“0”
或不填;单体质量单位一致
附:部
分常用
20
10
10
序号
产品名称
缩写
Tg
1 苯乙烯 2 甲基丙烯酸甲酯 3 丙烯酸甲酯 4 丙烯酸乙酯 5 丙烯酸正丁酯 6 甲基丙烯酸正丁酯 7 甲基丙烯酸异丁酯
PLC控制技术 任务13 简易计算器设计
3.3 编写梯形图程序 简易计算器设计
04
PART FOUR
每课一问
简易计算器设计
教学活动4
如果要实现多个数字连加只按 一次“=”号,程序该如何修改?
简易计算器设计
05
PART FOUR
知识延伸
简易计算器设计
5.1 工作任务
► 1.BIN加一指令INC ► 1.BIN减一指令DEC
简易计算器设计
X0
按键“1”
X1
···
···
按键“9”
X11
按键“+”
X12
按键“-”
X13
按键“×”
X14
按键“÷”
X15
按键“=”
X16
按键“C”
X17
输出
数据线1
Y0
数据线2
Y1
数据线3
Y2
数据线4
Y3
个位选通线
Y4
十位选通线
Y5
百位选通线
Y6
千位选通线
Y7
简易计算器设计
3.2 设计电气原理图 简易计算器设计
按下数字键1 按下数字键2
0*10+1
D0
1
1*10+2
12
按下数字键2
12*10+2
122
简易计算器设计
2.4 编程思路 简易计算器设计
记录运算符号,为按 下“=”做好准备
将输入暂存值D0移 入D10,作为被减数、 被除数等,并对暂存 寄存器D0清零
2.4 编程思路
短按“←/C”,撤销最后输入数字
将指定源操作数地址中的数据相减,运算结 果存到目标操作数中
M8020(零标志) M8021(借位标志) M8022(进位标志)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机课程设计题目:简易计算器的设计专业:06电子信息科学与技术姓名:倪耀兴学号:060303008指导老师:蔡植善理工学院电信系设计日期:2009年5月 12日简易计算器的设计1.引言------------------------------------------------22. 设计任务和要求-------------------------------------2 2.1设计要求-------------------------------------------0 2.2设计方案的确定-------------------------------------22.3主要元器件介绍--------------------------------------------------------33.简易计算器的硬件设计--------------------------------4 3.1键盘电路的设计----------------------------------43.2显示电路的设计---------------------------------44.简易计算器的软件设计-------------------------------6 4.1简易计算器的软件规则--------------------------------6 4.2中断查键的按键程序设计-------------------------------7 4.3显示模块程序的设计----------------------------74.4主程序的设计---------------------------------------75.调试及性能分析--------------------------------------7 5.1硬件调试--------------------------------------------7 5.2软件调试--------------------------------------------7 5.3相关可靠性软件设计----------------------------------75.4完整的源程序---------------------------------------------------------8-6.关键程序的流程图-------------------------------------177.设计心得------------------------------------------198. 参考文献-----------------------------------------191.引言单片机实用接口技术是电子信息工程专业本科生的必修课程。
在完成理论学习和必要的实验后,本科学生掌握了单片机的基本原理和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。
单片机实用接口技术既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,同时学习查阅资料、参考资料的方法。
单片机实用接口技术主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试用户程序,来加深对单片机的认识,充分发挥学生的个体创新能力。
2. 设计任务和要求2.1设计要求功能要求:①可以对1000以内的正负数进行加减乘除的运算,有效位数取6位。
②用1602LCD作显示器。
③键盘为4×5,包括0~9 十个数字键以及+、-、×、÷、enter、clear、负号、光标左移、光标右移和小数点等20个键。
键盘扫描可选用非编码按键,也可用元件CH451(编码按键)。
2.2设计方案的确定在日常生活中,绝大部分的计算器都是由按键控制模块、LCD液晶显示模块两个模块组成。
按照2.1的设计要求,本课题需要使用LCD1602液晶显示和CH451键盘扫描4*5键盘.4*5键盘定义十个数字键,十个功能键,使用串行静态显示显示运算结果。
主程序进行初始化,采用中断扫描查键,每次按键后调用显示子程序。
设计总框图如下:2.3主要元器件介绍1、LCD液晶显示模块:现在的字符型液晶模块已经是单片机应用设计中最常用的信息显示器件了。
专门用于显示字母、数字、符号等点阵式LCD。
1602型LCD显示模块具有体积小,功耗低,显示内容丰富等特点。
1602型LCD可以显示2行16个字符,有8位数据总线D0~D7和RS,R/W,EN三个控制端口,采用A T89C51单片机控制。
2、按键控制模块:CH451 是一个的整合了数码管显示驱动和键盘扫描控制及μP 监控的多功能外围芯片。
CH451 内置RC振荡电路,可以动态驱动8位数码管或者64位LED,具有BCD译码、闪烁、移位等功能;同时还可以进行64 键的键盘扫描;CH451 通过可以级联的串行接口与单片机等交换数据;并且提供上电复位和看门狗等监控功能。
另外,其内置64 键键盘控制器,键盘中断,低电平有效输出。
还提供按键释放标志位,可供查询按键按下与释放。
上图是在未启用键盘扫描功能时时序下图为单片机从CH451获得按键代码的过程是:①输出一位数据,即向DIN输出读取按键代码命令的最低位数据B0,并向DCLK输出低电平脉冲;②以同样的方式,输出读取按键代码命令的位数据B1~B11;③向LOAD 输出低电平脉冲,其中包括一个上升沿使CH451 加载串行数据,CH451 分析出是读取按键代码命令,立即在DOUT 输出按键代码的最高位数据K6;④读取一位数据,即从DOUT 输入按键代码的最高位数据K6,并向DCLK 输出低电平脉冲;⑤以同样的方式,输入按键代码的位数据K5~K0。
3.简易计算器的硬件设计简易计算器主要包括:键盘电路,显示电路。
3.1键盘电路的设计键盘可分为两类:编码键盘和非编码键盘。
编码键盘是较多按键(20个以上)和专用驱动芯片的组合,当按下某个按键时,它能够处理按键抖动、连击等问题,直接输出按键的编码,无需系统软件干预。
通用计算机使用的标准键盘就是编码键盘。
在单片机设计中,使用CH451芯片可以组成编码键盘,同时还可以兼顾LCD的显示驱动,其相关的接口电路和接口软件均可在芯片资料中得到。
当系统功能比较复杂,按键数量很多时,采用编码键盘可以简化软件设计。
本课题需要的是20个按键,故选择用编码键盘,分别由SEG0-7、DIG0-7端口控制,低电平有效。
在键盘扫描期间,DIG7~DIG0 引脚用于列扫描输出,SEG7~SEG0 引脚都带有内部下拉电阻,用于行扫描输入;当启用键盘扫描功能后,DOUT引脚的功能由串行接口的数据输出变为键盘中断以及数据输出。
CH451 定期在显示驱动扫描过程中插入键盘扫描,并实行两次扫描,只有当两次键盘扫描的结果相同时,按键才会被确认有效。
3.2显示电路的设计根据任务的要求,采用LCD数码管进行显示是一种经济实用的方法,1602型LCD的显示由单片机的P0口驱动,由于是P0口驱动,需加一个排阻增大其驱动电流。
P1口控制LCD的数据/命令、读/写和使能信号。
最终电路如下图所示:设计的PCB图:4.简易计算器的软件设计4.1简易计算器的软件规则简易计算器的程序主要包括以下功能模块:1、中断查键模块,分为读键程序、判键程序段、运算操作子程序等部分;2、基于LCD的静态显示模块;3、主模块,为系统的初始化。
4.2中断查键的按键程序设计进入外部中断0的中断程序后,首先重新付初值,然后调用读键程序,如果有键按下,则判断按键是否与上次按键相同,如果相同则判断按键相应位是否为1,如果不为1,说明这不是持续按键导致的按键相应,并且进行相应的程序。
如果不是则退出中断程序。
数字键按下则将相应的数字送入缓存区,功能键按下则执行相应的程序。
首先对数字键的程序段进行相应的设计,如果运算键(+、-,×,÷)响应标志不为1,则将输入的数字送入第一个操作数缓存区,并且清空所有的响应位。
否则送入第二个操作数缓存区。
其次对功能键的程序段进行相应的设计。
如果运算键(+、-,×,÷)第一次被按下,则置相应的标志位为1,并且将运算键响应标志位置1,清空第二个操作数的缓存区,为输入操作数做准备,如果是第二次按下则先调用运算操作子程序,执行上次按下的运算键的运算,置相应的标志位为1,并且将运算键响应标志位置1,清空第二个操作数的缓存区,为输入操作数做准备。
如果是’=’键按下,则调用运算操作子程序。
从上面的设计中我们可以看到,本程序段需要八个输入缓存区,其中四个为第一个操作数BCD码缓存区,另外四个为第二个操作数BCD码缓存区,需要五个标志位,一个为运算键响应标志位,另外四个为运算符号标志位,分别为加法响应标志位、减法响应标志位、乘法响应标志位和除法响应标志位。
并且调用了一个运算操作子程序,对此我们进行如下的子程序设计。
首先将第二个操作数的BCD码进行转换,得到相应的二进制数,并且放入相应的缓存区,判断结果响应位是否为1,如果不为1,则将第一个操作数的BCD码进行转换,得到相应的二进制数,并且放入相应的缓存区,按照运算符号响应标志位执行相应的程序,并将运算结果放入相应的缓存区,并且将结果响应标志位置1,将其它响应标志位置0;如果结果响应位为1,则将上次的运算结果存入第一个操作数缓存区,再执行相应的操作,最后将得到的运算结果放入相应的缓存区,并且将其它响应标志位置0。
运算操作子程序需要十个缓存区,两个为第一个操作数的二进制数,两个为第二个操作数的二进制数,两个为结果的二进制数,四个为结果的BCD码缓存区,一个标志位,为结果响应标志位。
如果要支持负运算,只要在定义一个标志位:负数标志位,并将运算操作子程序作一定的修改,首先考虑到负数是运算减法时产生的(键盘上没有负数输入键),所以运算减法时,如果负数标志为0时,当第一个操作数比第二个操作数小时,则将两个操作数互换相减,并置负数标志位为1;如果为1,则将两个操作数相加,并置负数标志位为1。
运算加法时,如果负数标志位为1,则先比较两个操作数大小,如果第一个操作数大,则将第一个操作数减去第二个操作数,并置负数标志位为1,否则将第二个操作数减去第一个操作数,并将负数标志位置0。
乘法与除法运算是不需要考虑负数的影响的,故不需要更改。
4.3显示模块程序的设计由于使用的是静态显示,故先要对SCON进行相关设置,让串口工作在方式0下,设置1602为8位的数据接口,两行显示,5、10点阵字符,显示打开,光标开并不闪烁。
4.4主程序的设计主程序主要是用来进行初始化的,调用自检程序,清空各个标志位,清空缓存区,给定外部中断0工作方式。