电子计算器设计范文
NTC计算器范文

NTC计算器范文NTC(Negative Temperature Coefficient)计算器是一种用于温度测量的电子设备。
它采用了负温度系数的热敏电阻作为传感器,并通过计算电阻值与温度之间的关系来准确测量温度。
NTC计算器通常具有简单易用、高精度、快速响应和便携等特点,广泛应用于工业自动化、电子仪表、医疗设备等领域。
NTC计算器的基本工作原理是利用热敏电阻电阻值与温度呈负相关的特性。
当热敏电阻受到温度变化时,其电阻值会发生相应的变化。
NTC计算器通过测量热敏电阻的电阻值,并利用预先设定的温度-电阻曲线,计算出当前温度值。
测量模块是NTC计算器的核心部件,它包含一个热敏电阻传感器和相关的电路。
热敏电阻是一个特殊的电阻,在不同的温度下具有不同的电阻值。
测量模块的电路会读取热敏电阻的电阻值,并将其转换为相应的温度值。
显示模块用于显示测量结果,通常采用数字显示器或液晶屏。
它将计算出的温度值以数字或图像的形式呈现给用户。
控制模块用于控制和管理NTC计算器的各种功能。
通过控制模块,用户可以设置温度单位、调整亮度、选择需要显示的温度范围等。
电源模块则用于为NTC计算器提供电力需求。
常见的电源方式有内置电池、充电电池、外接电源等。
电源模块通常还具备低电量提醒、充电提示等功能。
使用NTC计算器非常简单。
首先,将NTC计算器置于欲测量的物体或环境中,确保热敏电阻能够与环境充分接触。
接下来,打开NTC计算器的电源并等待一段时间,以使热敏电阻达到与环境温度一致的稳定状态。
最后,查看NTC计算器的显示屏,即可读取到当前的温度值。
如果需要切换温度单位,NTC计算器通常会提供相应的按钮或菜单选项。
用户可以按下按钮或选择对应的选项,将温度单位从摄氏度切换为华氏度或其他单位。
1.精度高:NTC计算器采用了负温度系数的热敏电阻,能够实现高精度的温度测量。
2.响应快:NTC计算器具有快速响应的特点,能够即时反映环境温度的变化。
3.便携方便:NTC计算器通常体积小巧,便于携带和使用。
基于51单片机的简易计算器论文设计

基于51单片机的简易计算器论文设计摘要:计算器是一种常见的电子设备,用于数学计算。
随着科技的迅速发展,计算器不再是一种巨大且笨重的机械设备。
相反,它们变得迷你、便携且功能强大。
本论文旨在设计和实现一种基于51单片机的简易计算器。
该设计利用了51单片机的优点,如低功耗、成本低廉和易于学习等特点。
本论文介绍了设计和实现的过程,包括硬件电路设计、软件程序编写以及性能测试等方面。
1.引言计算器广泛应用于日常生活和学习中,人们常常需要进行加减乘除等简单的数学计算。
为了提供便捷的计算功能,传统计算器使用专用的集成电路设计。
然而,这种计算器成本较高,体积较大,且功能有限。
为了满足市场需求,我们设计了一款基于51单片机的简易计算器。
2.硬件电路设计2.1键盘模块键盘模块采用矩阵键盘设计,包括数字键0-9、运算符键+、-、*、/以及等于键=。
采用矩阵建构可以减少IO口资源的使用,并简化设计。
2.2显示模块显示模块采用液晶显示器,能够清晰地显示数字、运算符和结果。
为了实现更好的用户交互体验,还可以添加背光模块。
2.3控制电路控制电路由51单片机和其他常用电子元件组成,可以通过编程控制键盘的输入和显示模块的输出。
其中,51单片机充当了控制中心的作用,负责接收键盘输入、解析用户命令、进行数学计算和控制显示模块的显示。
2.4电源电路电源电路用于提供稳定的电源给整个计算器系统。
电源电路由电池、稳压电路和滤波电路组成,能够为计算器提供稳定的电压和电流。
3.软件程序设计软件程序设计是整个计算器系统的核心。
主要功能包括接收键盘输入、解析输入、进行数学计算、控制显示模块的显示和处理异常情况。
3.1键盘输入接收软件程序通过扫描键盘矩阵来接收键盘输入。
当用户按下一些键时,软件程序会检测到相应的按键信号,并将其转换为数值或运算符。
3.2输入解析软件程序能够解析用户的输入,判断用户输入的是数字还是运算符,并将其保存在相应的变量中。
同时,软件还可以处理异常输入,如除以零等情况。
NPV计算器范文

NPV计算器范文NPV(Net Present Value)是一种投资评估的方法,用于衡量投资项目的价值和可行性。
NPV计算器是一种工具,用于计算NPV值.以下是一个关于NPV计算器的详细介绍,共计1200字。
第一部分:介绍NPV计算器是一种计算NPV值的工具。
NPV是一种评估投资项目的方法,它通过将项目的现金流量与折现率相结合,计算项目的净现值。
具体来说,NPV计算器可以帮助投资者在决策投资时,估计投资项目的生产力和可行性。
第二部分:NPV的计算公式NPV是通过项目的现金流量以及折现率来计算的。
NPV的计算公式如下:NPV = (CF1 / (1+r)^1) + (CF2 / (1+r)^2) + (CF3 / (1+r)^3) + ... + (CFn / (1+r)^n) - Initial Investment其中,NPV代表净现值,CF代表现金流量,r代表折现率,n代表现金流量发生的时间。
第三部分:NPV计算器的功能1.输入现金流量:NPV计算器允许用户输入投资项目的现金流量,以及折现率。
用户需要根据投资项目的不同时间点的现金流量输入相应的数值。
2.计算净现值:NPV计算器通过使用输入的现金流量和折现率,计算投资项目的净现值。
计算结果将显示在计算器的屏幕上。
3.比较不同投资项目:NPV计算器允许用户比较不同投资项目的净现值。
用户可以输入多个投资项目的现金流量和折现率,并计算它们的净现值。
计算器将显示每个投资项目的净现值,以便用户可以更好地比较它们的价值和可行性。
4.灵活的折现率设置:NPV计算器允许用户设置灵活的折现率。
用户可以根据具体的投资项目和市场情况,自由选择合适的折现率。
第四部分:NPV计算器的应用场景1.投资项目评估:NPV计算器可以帮助投资者评估各种投资项目的价值和可行性。
通过计算不同投资项目的净现值,投资者可以对项目的潜在回报和风险有更清晰的认识。
2.决策支持:NPV计算器可以作为决策支持工具,帮助管理层评估不同决策对组织的影响。
下浮率计算器范文

下浮率计算器范文在中国,房屋抵押贷款通常采用LPR(贷款市场报价利率)作为基准利率,并根据借款人的信用状况和借款金额确定利率折扣。
下浮率是指相对于LPR基准利率进行的利率优惠,借款人可以根据自身情况和市场需求进行谈判以获取更有利的下浮利率。
下面是一个简单的下浮率计算器示例,可以帮助借款人快速计算出实际支付利率和每月还款额。
假设LPR为4.65%,借款金额为100万元,下浮率为10%:步骤1:计算实际支付利率实际支付利率=LPR*(1-下浮率)实际支付利率=4.65%*(1-10%)=4.65%*0.9=4.185%步骤2:计算每月还款额假设贷款期限为20年,还款方式为等额本息,则每月还款额可以使用等额本息还款公式计算:每月还款额=贷款本金*月利率*(1+月利率)^还款月数/((1+月利率)^还款月数-1)月利率=实际支付利率/12还款月数=还款年数*12假设还款年数为20年:还款月数=20*12=240月利率=4.185%/12=0.3492%每月还款额=100万元*0.3492%*(1+0.3492%)^240/((1+0.3492%)^240-1)根据上述公式计算,可以得到每月还款额。
除了以上的计算步骤,下浮率计算器还可以提供一些附加功能,用于帮助借款人更好地理解贷款相关的费用和条件。
例如,它可以计算出贷款期间总还款额、总支付利息、还款计划表、可接受的最大房贷利率等。
这些功能可以帮助借款人更全面地了解贷款费用和条件,做出更明智的决策。
另外,下浮率计算器还可以允许用户进行自定义参数设置,如贷款金额、贷款期限、还款方式、利率浮动范围等,从而满足不同借款人的个性化需求。
总而言之,下浮率计算器对于房屋抵押贷款借款人来说是一种非常有用的工具。
它可以帮助借款人快速计算出实际支付利率和每月还款额,为借款人提供更准确的贷款费用估算,并支持个性化设置和附加功能,帮助借款人做出更明智的贷款决策。
51单片机简易计算器论文

51单片机简易计算器论文摘要:本篇论文基于51单片机设计并实现了一款简易计算器。
该计算器具有基本的加、减、乘、除四则运算功能,并支持小数点运算和括号运算。
通过设计合理的菜单界面和使用者友好的操作方式,使得计算器更加易用。
本文介绍了计算器的硬件设计和软件设计,并对其进行了功能测试和性能评估。
实验结果表明,该计算器具有较好的计算精度和运算速度,能够满足一般计算需求。
关键词:51单片机,简易计算器,四则运算,菜单界面1.引言随着计算机技术的发展和普及,计算器作为一种便携式计算工具得到了广泛应用。
无论是学生、工程师还是商务人士,都离不开计算器的帮助。
本文旨在设计一款基于51单片机的简易计算器,以满足用户日常计算需求。
2.硬件设计本文采用51单片机作为计算器的主控芯片,搭配LCD显示屏、按键和外部存储器等外围电路。
通过合理的电路连接和引脚设置,实现计算器的功能。
3.软件设计3.1主程序设计计算器的主程序采用C语言编写。
主程序主要包括菜单界面设计、按键响应和运算处理等功能。
通过LCD显示屏输出菜单选项,并通过按键输入执行相应的功能。
3.2加法运算加法运算是计算器最基本的功能之一、在软件设计中,通过读取按键输入的数值,并使用加法运算符将数值累加,最后显示结果。
3.3减法运算减法运算与加法运算类似,通过读取按键输入的数值,并使用减法运算符将数值相减,最后显示结果。
3.4乘法运算乘法运算是计算器的扩展功能之一、在软件设计中,定义乘法运算函数,通过读取按键输入的数值,并使用乘法运算符将数值相乘,最后显示结果。
3.5除法运算除法运算也是计算器的扩展功能之一、在软件设计中,定义除法运算函数,通过读取按键输入的数值,并使用除法运算符将数值相除,最后显示结果。
3.6小数点运算和括号运算为了提高计算器的实用性,本文还添加了小数点运算和括号运算功能。
在软件设计中,通过读取按键输入的数值,并进行相应的运算处理和显示结果。
4.功能测试和性能评估为了验证计算器的功能和性能,本文进行了一系列的功能测试和性能评估。
课程设计——电子计算器设计1

××大学××学院××系××课程设计电子计算器设计学生姓名学号所在系专业名称班级指导教师成绩××大学××学院二○一二年七月摘要:智能仪器是计算机技术与测量技术以及仪器仪表技术相结合的产物。
它具有传统仪器无法比拟的优点。
在精度,可靠性方面都有了本质性的改变。
仪器硬件都趋于采用嵌入式系统、片上系统等结构。
电子计算器是能进行数学运算的手持机器,拥有集成电路芯片,采用来实现电子计算器的各个功能。
该电子计算器由按键输入的数值显示在7段数码管上,但只限4位数;按加、减、乘、除键时,第一次输入的值被存放在缓冲区中,当做被加、减、乘、除数,且加、减、乘、除相对的运算指示灯会亮;接着输入一个数,之后若是按下“=”键,则此加、减、乘、除数被存放于另一个缓冲区中,与刚才输入的数做运算,且相对应的运算指示灯熄灭;运算结果显示在7段数码管上。
关键字:智能仪器片上系统电子计算器集成电路芯片缓冲区Abstract:Intelligent instrument is the computer technology and measurement technology and instrumentation technology combined with the product. It has the incomparable advantage of traditional instruments. In the accuracy, reliability are all essential changes. Instrument hardware are tending to use embedded system, system on chip structure. An electronic calculator is able to perform mathematical operations on handheld machine, has integrated circuit chip, used to realize each function of the electronic calculator. The electronic calculator from the key input values displayed in the7digital tube, but only4 digits; according to plus or minus, multiplication, addition to the key, the first input value is stored in the buffer, as is plus or minus, multiplication, addition, subtraction, division, and, in addition to take relative operation indicator light; and then enter a number, then press" if = " button, the plus, minus, multiplication, the divisor is stored in a buffer, and just the number of inputs to do arithmetic, and the corresponding operation indication lamp is extinguished; calculation results in the7 digital tube on.Key words: Intelligent instrument system on chip electronic calculator integrated circuit chip buffer目录前言 (1)1. 概述 (1)1.1 应用背景 (1)1.2 课题设计目标 (1)1.3 课题设计任务与思路 (1)2. 设计方案论述 (2)2.1 系统总体方案设计 (2)2.2 系统设计框图 (2)3. 系统硬件设计 (3)3.1 单片机最小系统 (3)3.2 矩阵键盘 (3)3.3 显示部分 (4)4. 程序设计 (4)4,1 具体设计内容 (5)4.1.1 四则运算 (5)4.1.2 键盘 (5)4.1.3 执行过程 (5)4.1.4 错误提示 (5)4.2 主程序流程图 (5)4.3 算数运算程序设计 (7)5.系统调试 (7)6. 设计总结 (8)7. 参考文献 (9)附录 (9)前言智能仪器是一种先进的技术产品,是计算机技术与测试技术相结合的产物,仪器内部带有处理能力很强的智能软件。
使用计算器计算范文

使用计算器计算范文计算器是一种用来进行数学计算的电子设备。
它能够进行基本的四则运算,同时还能完成一些复杂的科学和统计计算。
计算器的使用方便快捷,无论是在学习、工作还是日常生活中都起到了重要的作用。
计算器可以完成四则运算,即加减乘除。
例如,计算1+2,只需要在计算器上按下1、加号和2,然后按下等号即可得到结果。
对于较复杂的运算,如9×8-6÷3,也可以轻松完成。
计算器还可以进行多次运算,如计算1+2+3+4+5,只需要按下1、加号、2、加号、3、加号、4、加号、5,最后按下等号即可得到结果。
计算器还可以进行科学计算,如幂运算、开方、三角函数等。
这对于物理学、化学、工程学等科学领域的学习和实践非常有帮助。
例如,计算2的平方,只需要按下2、平方的符号,然后按下等号即可得到4、计算器还可以计算三角函数,如正弦、余弦、正切等。
例如,计算30°的正弦值,只需要按下30、sin的符号,然后按下等号即可得到0.5除了基本的数学计算,计算器还可以进行统计计算。
它可以计算一组数据的平均值、标准差、方差等。
这对于统计分析和数据处理非常有用。
例如,计算一组数字的平均值,只需要将这些数字输入到计算器中,然后按下对应的计算键即可得出结果。
计算器还具有存储和回溯功能。
这意味着用户可以将中间结果存储起来,然后在需要时回溯使用。
例如,计算一个长方形的面积,用户可以先将长和宽存储在计算器中,然后按下面积的计算键得出结果。
计算器还可以存储多个中间结果,这对于复杂的计算非常有帮助。
计算器还具有显示功能,它可以显示输入的数字和运算过程中的中间结果。
这使得计算器的使用更加方便和直观。
有些计算器还具有背光显示和大屏幕设计,这使得在光线不好的环境下和老年人使用更加方便。
总而言之,计算器是一种非常实用的工具,它可以进行基本的四则运算、科学计算和统计计算。
它的使用方便快捷,对于学习、工作和日常生活都起到了重要的作用。
简易计算器设计范文

简易计算器设计范文首先,我们需要决定计算器的基本功能。
一个简易计算器通常应该具备加法、减法、乘法和除法的功能。
此外,我们还可以添加开方、求平方以及取模等功能。
在设计计算器之前,我们需要确定用户界面。
对于一个简易计算器来说,我们可以使用命令行界面或者图形用户界面。
在本文中,我们将使用命令行界面。
接下来我们需要设计计算器的算法。
为了实现加、减、乘、除这些基本运算,我们可以编写四个函数来完成。
比如,加法函数可以接收两个数并返回它们的和,减法函数可以接收两个数并返回它们的差,乘法函数可以接收两个数并返回它们的乘积,除法函数可以接收两个数并返回它们的商。
同时,我们还需要添加一些辅助函数来处理开方、求平方以及取模等功能。
比如,开方函数可以接收一个数并返回它的平方根,求平方函数可以接收一个数并返回它的平方,取模函数可以接收两个数并返回它们的余数。
在设计计算器时,我们还要考虑到用户输入的错误处理。
如果用户输入无效的操作或者除数为零,我们需要给出错误的提示信息。
接下来,我们来设计主要的程序流程。
首先,我们需要显示一个欢迎信息,告诉用户如何使用计算器。
然后,在一个循环中,我们会要求用户输入要执行的操作,然后读取用户输入的操作和操作数。
根据用户的选择,我们会调用相应的函数来执行计算,并输出结果。
接着,我们会继续询问用户是否要继续进行计算。
如果用户选择退出,我们会结束循环并显示一个退出信息。
最后,我们需要编写测试用例来确保计算器的功能正常。
我们可以输入一些固定的操作和操作数,然后验证计算器返回的结果是否正确。
如果测试用例中出现错误,我们需要进行修复。
在编写代码之前,我们还需要选择一个编程语言。
对于一个简易计算器来说,Python是一个非常适合的选择。
Python具有简单易读的语法,能够轻松地实现我们的设计。
下面是本文的设计示例:```python#导入所需的库import math#加法函数def add(x, y):return x + y#减法函数def subtract(x, y):return x - y#乘法函数def multiply(x, y):return x * y#除法函数def divide(x, y):if y == 0:raise ValueError("除数不能为零") return x / y#开方函数def square_root(x):if x < 0:raise ValueError("不能对负数开方") return math.sqrt(x)#求平方函数def square(x):return x ** 2#取模函数def modulo(x, y):if y == 0:raise ValueError("除数不能为零") return x % y#欢迎信息print("欢迎使用简易计算器!")print("请按以下方式输入操作:")print("加法:'a 数1 数2'")print("减法:'s 数1 数2'")print("乘法:'m 数1 数2'")print("除法:'d 数1 数2'")print("开方:'r 数'")print("求平方:'q 数'")print("取模:'o 数1 数2'")#主程序循环while True:#用户输入operation = input("输入操作:")data = operation.splitif data[0] == "a":result = add(float(data[1]), float(data[2])) print("结果为:", result)elif data[0] == "s":result = subtract(float(data[1]), float(data[2])) print("结果为:", result)elif data[0] == "m":result = multiply(float(data[1]), float(data[2])) print("结果为:", result)elif data[0] == "d":try:result = divide(float(data[1]), float(data[2])) print("结果为:", result)except ValueError as e:print("错误:", str(e))elif data[0] == "r":try:result = square_root(float(data[1]))print("结果为:", result)except ValueError as e:print("错误:", str(e))elif data[0] == "q":result = square(float(data[1]))print("结果为:", result)elif data[0] == "o":try:result = modulo(float(data[1]), float(data[2]))print("结果为:", result)except ValueError as e:print("错误:", str(e))else:print("无效的操作")#判断是否继续计算choice = input("是否继续计算?(y/n)")if choice == "n":breakprint("谢谢使用,再见!")```通过以上设计,我们可以在命令行中使用这个简易计算器来执行加、减、乘、除、开方、求平方和取模等操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电子计算器设计组员:陆鹏飞(组长)谭义严广信电学院电气10-9班目录1. 课题任务…………………………………………………………………………2. 方案比较与选择………………………………………………………………3. 电路设计………………………………………………………………………4. 程序设计………………………………………………………………………………5.测试方案………………………………………………………………………………6. 系统调试……………………………………………………………………………7. 数据测试与处理………………………………………………………………8.总结……………………………………………………………………………………9.参考文献………………………………………………………………………………10.附录……………………………………………………………………………………1.课题任务本次设计是用AT89S51单片机、LCD显示器、控制按键为元件来设计的计算器。
利用此设计熟悉单片机微控制器及C语言编程,对其片资源及各个I/O端口的功能和基本用途的了解。
掌握keil应用程序开发环境,常用的LCD显示器的使用方法和一般键盘的使用方法。
本次设计的电子计算器主要完成加/减/乘/除运算,使用1602LCD显示器显示数据,具体如下:1.具备删除功能:如数字输入错误,可以通过删除键,对错误的数字进行删除操作。
2.具备括号内运算功能:如((1+2)*3+4)/53.具备连续计算的功能,可以使得计算具有一定的方便性。
4.具备日期时钟显示功能5.具备蜂鸣器按键提示功能6.计算结果可保留至小数点后六位7.具备复位功能8.可进行小数运算22.方案比较与选择根据本次课题设计任务与目标,我们小组选用AT89S51单片机、LCD显示器、控制按键为元件来设计电子计算器。
2.1 系统总体设计方案本设计以AT89C51型号单片机为控制核心进行设计。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
结果显示采用LCD1602液晶,也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。
液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。
软件设计采用C语言编程实现,使用Keil开发环境,Keil C51是美国Keil Software 公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
2.2 系统设计框图为体现总体设计方案,我们绘制了如图1的系统设计框图,在设计中,单片机处理从键盘输入的数字并进行计算,计算结果显示在LCD上。
LCD1602液晶4图1 系统设计框图3.电路设计3.1单片机最小系统本系统以AT89C51型号单片机为控制核心, AT89C51是一种可编程可擦除的低电压,高性能8位微处理器,由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,AT89C51是一种高效微控制器,其最小系统电路如图2所示。
图2单片机最小系统3.2矩阵键盘 AT89C51单片机 电 源 矩阵键盘在按键输入方面,我们采用4*5的矩阵键盘来实现,具体连接电路如图3所示。
通过基于状态机的按键扫描程序设计可实现4*5矩阵键盘的按键监控。
图3 LCD1602连接图3.3显示部分在显示计算结果上,我们采用字符型液晶LCD1602来显示结果,LCD1602能够同时显示16x2即32个字符(16列2行),LCD1602的使用很普遍了,市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此HD44780写的控制程序可以很方便地应用于市面上大部分字符型液晶。
字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)地线GND(16脚),其控制原理与14脚的LCD完全一样。
其连接电路如图4所示。
图4 LCD1602连接图4.程序设计系统的软件设计采用C语言编写,对单片机进行编程实现各功能。
程序是在Wnidows 环境下采用Keil uVision4编写的,软件的设计主要完成以下的功能: 计算模块:主要实现计算器的所有数据计算功能。
按键模块:主要是实现按键的输入功能,并根据按键值选择相应的操作。
显示模块:主要是对输出的结果在LCD屏上的显示功能。
4.1 具体设计内容4.1.1 四则运算:由于要设计的是简单的计算器,可以进行四则运算,为了得到较好的显示效果,采用LCD 显示数据和结果。
4.1.2 矩阵键盘:另外键盘包括数字键(0~9)、符号键(+、-、×、÷)、小数点、删除键、左括号、右括号、复位键和等号键,故只需要20个按键即可。
4.1.3 执行过程:开机显示零,等待键入数值,当键入数字,通过LCD显示出来,当键入+、-、*、/运算符,计算器在内部执行数值转换和存储,并等待再次键入数值,当再键入数值后将显示键入的数值,按等号就会在LCD上输出运算结果。
4.2主程序流程图6图5主程序流程图如图5所示为主程序流程:当电源打开的时候,CPU进行复位,寄存器清零,接着LCD显示清零,这时候我们可以输入数值、功能键,数据送到CPU进行运算,再转换成BCD码送到显示部分。
这时候程序循环检测是否有按键信号,如果矩阵键盘中有任意键按下,再将数据传送至CPU运算,再将结果送至LCD显示,如此循环下去。
4.3算数运算程序设计5.测试方案2 用Proteus 对于本设计的仿真操作步骤如下:(1)进入proteus ISIS 集成环境,在工作前,在systerm菜单下设置界面的颜色、图形界面大小等项目,也可采用了系统默认值。
(2)通过工具栏中的(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件到编辑区并调整其相对位置,进行元件参数设置,元器件间连线。
(3)连线并加上设置参数,并完成仿真原理图,如图5-2所示。
(4)加载程序。
将编译调试完成的简易计算器机器码程序(hex文件)加载到AT89C51单片机中。
(5)单击仿真工具栏中的仿真键,观察仿真结果。
可以按暂停、继续、单步、等按钮,查看效果。
图7系统仿真截图操作说明:1) 本计算器实现4位数的加减,2位数乘除运算。
2)按下数值键,显示按下的“数字”,按运算符,显示符号,按第2个操作数,显示,按“=”键,得到运算结果。
3)按“清零”键清除运算结果,可重新开始。
(6)调试与思考86.系统调试调试步骤1. 采用KEIL 开发的89c51单片机应用程序调试步骤:(1)在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)(2)用uVision 的文本编辑器编写源文件,可以是汇编文件(.ASM),也可以使C语言文件(扩展名.C),并将该文件添加到项目中去。
一个项目文件可以包含多个文件,除了源程序文件外,还可以是库文件、头文件或文本说明文件。
(3)通过uVision 2 的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。
(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目。
7.数据测试与处理8.总结在大家不断努力下,我们终于圆满完成了这次设计!每一次的课程那个设计都是在让我不断的提升自己亲自动手解决问题的能力,充分运用理论和实践相结合的锻炼.随着科学技术发展的日新日异,片上系统已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握智能仪器的开发技术是十分重要的。
这一次的课程设计,无论是选题还是写稿,从理论到实践,学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
在刚接触无从下手到后来逐步完善,时刻在每道工序上的不放弃,要求做到自己最好,这一些都得到了回报。
一个人能力与精力是有限的,但是团队则不一样,我们小组齐心协力也让我们更轻松来做,培养我们的团队合作意识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,不仅要掌握理论知识,而且要把理论和实践相结合起来,从理论中得出结论,才能学好这技能,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,以后一定会努力学习。
本课题的重点、难点是:(1)对电子计算器的原理、结构、应用等各方面从头开始琢磨;(2)以单片机为控制核心,采用矩阵键盘输入数据,LCD显示结果;(3)软件仿真做实验;这次系统的开发可能该系统还存在着许多不尽如人意的地方,尤其是对于以前学过得知识遗忘了很多,在综合应用上面也缺乏练习,有待进一步改善。
9.参考文献[1] 李群芳,张士军,黄建(编著).单片微型计算机与接口技术,北京:电子工业出版社,2008[2] 《例说51单片机(C语言版)》张义和、王敏男等人民邮电出版社 2003.4[3] 《单片机原理与接口技术》(第3版)李朝青编著北京航空航天大学出版社 2007.6[4] 《MCS-51 系列单片机应用系统设计系统配置与接口技术》何利民北京航空航天大学出版社[5] 《MCS-51 系列单片机接口电路与应用程序实例》沈德金北京航空航天大学出版社 1999.8[6] 《C语言程序设计》黄明大连理工大学出版社1997:201-211[7] 王选民.智能仪器原理及设计北京:清华大学出版社,200810.程序附录:/****************************************************************//计算程序,完成带括号的四则运算,返回计算结果****************************************************************/10#include"lcd.h"extern unsigned char l_tmpdata[30]; extern unsigned char n,token; extern unsigned char ac;//extern display(char *temp); double exp();double term();double factor();char ggetchar(){return l_tmpdata[n++];}void gungetc(){n--;}int panduan(char ch){if(ch=='.')return -1;if(ch>='0'&&ch<='9')return ch-47;return 0;}double getdb(){int t=0,tp,flag=0;int r=1;double s;char ch;while(1){ch=ggetchar();tp=panduan(ch);if(tp==0) break;if(tp<0){flag=1;continue;}if(flag) r*=10;t=t*10+tp-1;}gungetc();s=(double)t/(double)r;return s;}char gisalnum(char ch){if(ch>='0'&&ch<='9')return 1;return 0;}void error(){display("error!");ac=1;}void match( char expectedToken ){if ( token == expectedToken )token=ggetchar();12elseerror();}double factor( void ){double temp;if(ac==1) return 0;if ( token == '(' ){match( '(' );if(ac==1) return 0;temp = exp();match(')');if(ac==1) return 0;}else if ( gisalnum(token)) {gungetc();temp=getdb();token=ggetchar();}else{error();return 0;}return temp;}double term( void ){double div,temp;if(ac==1) return 0;temp = factor();while (( token == '*' ) || ( token == '/' ))switch ( token ){case '*':match('*');if(ac==1) return 0;temp *= factor();break;case '/':match('/');if(ac==1) return 0;div = factor();if ( div == 0 ){error();return 0;}temp /= div;break;}return temp;}double exp(void){double temp ;if(ac==1) return 0;temp = term();14while (( token == '+' ) || ( token == '-' ))switch ( token ){case '+':match('+');if(ac==1) return 0;temp += term();break;case '-':match('-');if(ac==1) return 0;temp -= term();break;}return temp;}/*####################################################LCD显示1, 初始化设置:lcden=0;//默认开始状态为关使能端,见时序图lcdrw=0;//选择状态为写write_com(0x38);//显示模式设置,默认为0x38,不用变。