4位数加法计算器
计算器按键的使用说明

计算器按键的使用说明.1、电源开关键:ON、OFF2、输入键:0—9、. +/—:正负转换键3、运算功能键:+ - * / (注意:加、减、乘、除键在计算时都可能代替等号键) √:开平方键,用来进行开平方运算。
先输入数字,再按下此键,不必按等号键即可得出结果。
4、等号键:=5、清除键:①C:清除键。
在数字输入期间,第一次按下此键将清除除存储器内容外的所有数值.如果是太阳能计算器,在计算器关闭状态下,按此键则开启电源,显示屏显示出“0”。
②AC或CA键:全部清除键,也叫总清除键,作用是将显示屏所显示的数字全部清除。
③→:右移键。
其功能是荧屏值向右位移,删除最右边的尾数。
④CE:部分清除键,也叫更正键。
其功能是清除当前输入的数字,而不是清除以前输入的数。
如刚输入的数字有误,立即按此键可清除,待输入正确的数字后,原运算继续进行。
如5+13,这时发现“13”输入错了,则按“CE”键就可以清除刚才的“13”,但还保留“5”这个数。
值得注意的是,在输入数字后,按“+”、“-”、“/”、“*”键的,再按“CE”键,数字不能清除。
⑤MC:累计清除键,也叫记忆式清除键。
其功能是清除储存数据,清除存储器内容,只清除存储器中的数字,内存数据清除,而不是清除显示器上的数字。
6、累计显示键:(1)M+:记忆加法键,也叫累加键。
是计算结果并加上已经储存的数;用作记忆功能,它可以连续追加,把目前显示的值放在存储器中(也就是将显示的数字与内存中已有的任何数字相加,结果存入存储器,但不显示这些数字的和)。
如去和小商贩买几种冰淇凌,买5筒五羊牌雪糕,每筒1.6元;买10筒绿色心情,每筒0.8元;买15筒蒙牛布丁,每筒0.4元。
共多少元?如先输入“5×1.6”→按“M+”键(把“5×1.6”的结果计算出来并储存起来)→然后输入“10×0.8”→按“M+”键(把“10×0.8”的结果计算出来并和前面储存的数相加)→接着输入“15×0.4”→按“M+”键(把“15×0.4”的结果计算出来并和前面储存的数相加)→最后按“MR”键(把储存的数全部取出来)→则出结果“22”(2)M-:记忆减法键,也叫累减键。
人教版数学三年级上册第四单元《第1课时加法(一)》(说课稿)

人教版数学三年级上册第四单元《第1课时加法(一)》(说课稿)一. 教材分析人教版数学三年级上册第四单元《第1课时加法(一)》的内容主要包括加法的意义、加法算式的构成以及加法的基本运算方法。
通过本节课的学习,使学生掌握加法的基本概念和运算方法,能够正确地进行加法运算,培养学生解决实际问题的能力。
二. 学情分析三年级的学生已经掌握了加减法的基本概念,具备了一定的计算能力。
但学生在进行加法运算时,仍存在一定的困难,如对加法意义的理解不深刻,对加法算式的构成理解不清晰等。
因此,在教学过程中,需要教师针对学生的实际情况进行针对性的教学。
三. 说教学目标1.知识与技能目标:学生能够理解加法的意义,掌握加法算式的构成,能够正确地进行加法运算。
2.过程与方法目标:通过观察、操作、交流等活动,培养学生解决问题的能力。
3.情感态度与价值观目标:激发学生学习数学的兴趣,培养学生的团队合作意识。
四. 说教学重难点1.教学重点:加法的意义、加法算式的构成、加法的基本运算方法。
2.教学难点:对加法意义的深刻理解,对加法算式的构成的清晰理解。
五. 说教学方法与手段本节课采用情境教学法、合作学习法、讲解法等多种教学方法,并结合多媒体课件、实物模型等教学手段,提高学生的学习兴趣和参与度。
六. 说教学过程1.导入新课:通过一个实际情境,如小明有3个苹果,妈妈又给他买了2个苹果,一共有几个苹果?引导学生思考,引出加法运算。
2.探究加法的意义:通过观察、操作、交流等活动,使学生理解加法的意义,即把两个数的数量合并在一起,求出合并后的总数量。
3.学习加法算式:讲解加法算式的构成,包括加数、和以及加号。
并通过实例演示,使学生明确加法算式的各部分组成。
4.学习加法运算方法:讲解加法的基本运算方法,包括同位数相加、进位等。
并通过练习题,使学生巩固加法运算方法。
5.解决问题:运用加法运算,解决实际问题,如购物、分配物品等。
6.总结与拓展:对本节课的内容进行总结,并进行适当的拓展,如加法的应用领域等。
4位数加法计算器要点

4位数加法计算器要点1.输入界面设计在设计4位数加法计算器的输入界面时,应该考虑到用户的使用习惯和操作体验。
界面应该简洁明了,避免过多的功能按钮和复杂的操作步骤。
主要包括两个输入框,用于输入两个4位数的数值,以及一个“计算”按钮用于开始计算。
2.数字输入检查在进行数字输入时,应该对输入的数据进行检查,确保输入的是正确的4位数。
可以对输入框设置限制,只允许输入0-9范围内的数字,并限制输入长度为4位数。
同时,还可以加入实时的输入验证功能,当输入不符合要求时,给予提示,并阻止继续输入。
3.数据计算在进行数据计算时,需要对两个4位数进行相应的运算。
可以采用逐位相加的方式进行计算,从最低位开始相加,逐位向前进位。
可以使用循环的方式进行计算,每次计算一位数的和,并记录进位值。
最后将各位数值和进位值相加,得到最终的结果。
4.精度处理在进行数值计算时,应该考虑到可能存在的相加溢出情况。
当两个4位数相加后超过了4位数的范围,会产生溢出。
在计算过程中,需要判断每一位数相加是否有进位,并将进位值累加到高位上。
最终的结果应该是一个5位数,其中第一位是进位值,后四位是相加的结果。
需要将最终结果进行处理,截取后四位数作为输出结果。
5.输入提示与结果显示在使用4位数加法计算器时,应该给予用户清晰的输入提示和结果显示。
当用户输入完毕后,可以在相应的位置显示用户输入的数值,以便核对和验证。
当用户点击“计算”按钮后,应该将计算结果显示在指定的位置上,并提醒用户计算完成。
同时,还可以增加重置按钮,用于清空输入和结果,方便用户进行下一次计算。
6.错误处理在输入和计算过程中,可能会出现一些错误情况,如输入非法字符、输入不完整等。
在设计4位数加法计算器时,应该考虑到这些错误情况,并进行相应的处理。
可以在出现错误时,给予用户明确的提示信息,并阻止继续计算,直到错误被修正。
综上所述,设计一个功能完善的4位数加法计算器需要注意以上要点。
通过合理的界面设计、输入检查、数据计算、精度处理、输入提示与结果显示以及错误处理,可以实现一个方便、准确、易用的4位数加法计算器。
小学数学四位数的加减法运算

练习题4:8765 - 4321 + 1234 = 5688
练习题5:1234 + 5678 4321 + 8765 = 10666
练习题6:8765 - 4321 + 1234 - 5678 = 831
掌握检查运算结果的方法
加法运算:检 查结果是否符 合加法法则, 如进位、借位 等
减法运算:检 查结果是否符 合减法法则, 如借位、进位 等
位规则。
掌握四位数加减法的借位规则
进位规则:当某一位上的 数大于或等于10时,需要
向前一位进位。
借位规则:当某一位上的 数小于或等于0时,需要
向后一位借位。
进位和借位的顺序:从左 到右,依次进行进位和借
位。
进位和借位的标记:在进 位和借位的位置上标记一 个箭头,表示进位或借位
的方向。
通过实例理解进位和借位在实际计算中的应用
实例四:计算56784567时,容易出现的 错误是忘记减去百位 上的数字,导致结果 错误。纠正方法是在 计算时注意减去百位 上的数字,确保计算 准确。
01
02
03
04
05
四位数加减法运算在数学中的地位 和作用
了解四位数加减法运算在小学数学中的重要地位
四位数加减法运算是基础数学 的重要组成部分,对于培养学 生的计算能力和逻辑思维能力
四位数加减法运算可以帮助学生理解数的概念,掌握数的运算规律,提高 计算能力。
四位数加减法运算可以帮助学生培养逻辑思维能力,提高分析和解决问题 的能力。
四位数加减法运算可以帮助学生培养创新意识和实践能力,提高数学素养。
分析四位数加减法运算与其他数学知识的联系和区别
四位数加减法运算是基础数学的重要组成部分,与其他数学知识如乘除法、分数、小数等有 密切联系。
16位超前进位加法器

16位超前进位加法器设计目录摘要 (1)1需求分析1.1加法器的发展........................................................................ 错误!未定义书签。
1.2几种串行加法器性能比较 (3)1.2.1串行进位加法器 (3)1.2.1超前进位加法器 (3)2主要内容 (4)2.1设计原理 (6)2.2设计思路 (4)3 设计思想 (5)4 实现方法 (6)4.1顶层方案图的设计与实现 (6).4.1.1顶层方案的整体设计 (6)4.1.2元器件选择和引脚锁定 (7)4.2功能模块的设计与实现 (8)4.2.1设计描述 (8)4.2.2创建RTL代码并得到电路图....................................................... .94.3功能仿真 (11)4.4编程与下载 (12)4.5硬件仿真结果 (12)5小结 (13)参考文献 (13)附录 (14)摘要:加法运算是最重要最基本的运算,所有的其他基本算术运算乘除等都最终可以用加法运算来表示在不同的场合对加法器的要求不同,要的要求速度快有的要求面积小超前进位加法器相比于串行进位加法器是一种快速加法运算器,根据用户的要求追求速度与面积的平衡。
关键词:超前进位加法器串行进位加法器速度面积1需求分析1.1 加法器的发展加法运算是最基本的运算,所有其他基本算术运算都是以加法运算为基础。
但因为加法运算存在进位问题,使得某一位计算结果的得出和所有低于他的位相关,因此,为了减少进位传输所耗的时间提高计算速度人们设计了多种类型的加法器。
如跳跃进位加法器,进位选择加法器,超前进位加法器等他们都是利用各位之间的状态来预先产生高位进位信号从而减少进位从低位到高位的传递时间1.2 几种加法器的性能比较1.2.1串行进位加法器串行进位加法器的每一位加和值都依赖于上一位进位信号,即进位信号是串行的经过加法器的每一位。
三位数的加法运算

三位数的加法运算123 + 456 = 579加法运算是数学中最基本、最常见的运算之一。
在加法中,我们将两个或多个数字相加,得出它们的和。
本文将探讨三位数的加法运算,了解它的规则和方法。
三位数加法运算的规则很简单,我们将两个三位数相加,从各位开始逐位相加,当某一位的和大于9时,需要进位到更高一位。
下面我们来看一个具体的例子:例如,计算123 + 456的和。
我们按照以下步骤进行计算:123+ 456------579首先,我们从个位开始相加,3 + 6 = 9,个位的和是9。
接下来,我们将十位的数字相加,2 + 5 = 7,再加上进位数1,得到7 + 1 = 8,所以十位的和是8。
最后,百位的数字相加,1 + 4 = 5,没有进位,所以百位的和是5。
将三个位数的和排列在一起,得到的结果是579,即123 + 456 = 579。
在进行三位数加法运算时,需要注意以下几点:1. 从低位到高位逐位相加。
2. 当某一位相加的和大于9时,需要进位到更高一位。
3. 最后将各位的和排列在一起,得到最终的结果。
在实际的计算中,可以使用竖式或列式的方法进行三位数的加法运算。
这种方法能够清晰地展示每一位的运算过程,有助于避免出错。
除了使用竖式或列式的方法,还可以使用计算器等工具进行三位数的加法运算。
这些工具能够快速准确地计算出结果,提高计算效率。
总结起来,三位数的加法运算是一种基本的数学运算,通过逐位相加并进位,得出最终的结果。
在计算过程中,我们可以使用竖式、列式或计算器等方法,选择适合自己的方式进行计算。
通过反复练习,我们可以提高加法运算的熟练度,并在解决实际问题时灵活应用。
四年级教案

四年级教案四年级数学教案教学目标1.熟悉四位数的概念,能正确读写四位数;2.掌握四位数的比大小和数与数之间的关系;3.能灵活运用四位数进行加减法运算。
教学准备1.教学课件、黑板、白板、粉笔/白板笔2.四位数卡片、计数器、拼图、小计算器教学过程第一节:认识四位数1.让学生观察和描述四位数的特点,并与三位数进行比较。
–四位数由千位、百位、十位、个位组成,每一位从0至9的数字都能出现。
–与三位数相比,增加了千位的数字。
2.向学生展示不同的四位数卡片,让他们识别并读出卡片上的数字。
–给出数字7264,学生读为”七千二百六十四”。
–给出数字4052,学生读为”四千零五十二”。
–给出数字8326,学生读为”八千三百二十六”。
–给出数字1902,学生读为”一千九百零二”。
3.小组活动:将四位数卡片按从小到大的顺序排列。
–学生分成小组,根据教师布置的卡片,利用计数器或拼图卡片,将数字排序并核对结果。
–提醒学生注意每一位数字的大小关系。
第二节:四位数的比大小1.复习四位数的读法,快速读出以下数字:–7902, 6284, 4765, 1938, 8610。
2.引导学生发现并掌握比较四位数大小的方法:–从最高位(千位)开始比较,大的数字较大,小的数字较小。
–若千位数字相同,则依次比较百位、十位、个位数字的大小。
3.练习比大小:–给出多组四位数,让学生通过比较大小,标出较大和较小的数字。
–提醒学生注意每一位数字的大小关系。
第三节:四位数的加减运算1.复习三位数的加减法运算,例如:345+198、。
2.引导学生理解四位数的加减法运算:–需要将同一位上的数字进行竖式加减运算,注意进位和借位的情况。
–可以从个位开始计算,逐位相加或相减。
3.练习加法运算:–随机出示两个四位数的加法题目,学生用计算器或笔算计算结果。
–鼓励学生自己检查答案的正确性,并解释计算过程。
4.练习减法运算:–随机出示两个四位数的减法题目,学生用计算器或笔算计算结果。
4位数加法计算器

安庆师范大学2014级单片机原理与应用课程设计报告课题名称4位数加法计算器的设计姓吴昊天、伍浩然、王鹏、万吉名学0、0、0、0号院、系、计算机学院物联网工程部专物联网工程业指导教汪文明师2016年 6月 6日目录一、绪言 (1)二、系统设计 (1)设计任务 (1)方案比较与论证 (1)系统整体流程图 (2)单片机的选择方案论证 (2)键盘选择方案论证 (2)显示模块的选择方案论证 (2)蜂鸣器的选择方案论证 (2)三、硬件电路设计 (2)计算器的控制电路图 (2)矩阵键盘的设计 (3)LCD1602显示电路的设计 (3)蜂鸣器驱动电路的设计 (4)主要元器件选择 (4)四、程序流程图 (5)五、c语言程序设计 (5)六、计算器的仿真 (19)Keil调试 (19)Proteus调试 (19)七、结束语 (20)八、参考文献 (21)一、绪言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。
本设计采用AT89C52单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
二、系统设计设计任务1、通过4*4矩阵键盘输入数字及运算符;2、可以进行4位十进制数以内的加法预算。
如果计算结果超出四位数,则全部显示“E”;3、可以进行加减乘除所有运算;4、添加其他功能。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安庆师范大学2014级单片机原理与应用课程设计报告课题名称4位数加法计算器的设计姓名吴昊天、伍浩然、王鹏、万吉学号070814018、070814008、070814005、070814001 院、系、部计算机学院物联网工程专业物联网工程指导教师汪文明2016年 6月 6日目录一、绪言 (1)二、系统设计 (1)2.1设计任务 (1)2.2方案比较与论证 (1)2.2.1系统整体流程图 (2)2.2.2单片机的选择方案论证 (2)2.2.3键盘选择方案论证 (2)2.2.4显示模块的选择方案论证 (2)2.2.5蜂鸣器的选择方案论证 (2)三、硬件电路设计 (2)3.1计算器的控制电路图 (2)3.2矩阵键盘的设计 (3)3.3 LCD1602显示电路的设计 (3)3.4蜂鸣器驱动电路的设计 (4)3.5主要元器件选择 (4)四、程序流程图 (5)五、c语言程序设计 (5)六、计算器的仿真 (19)6.1 Keil调试 (19)6.2 Proteus调试 (19)七、结束语 (20)八、参考文献 (21)一、绪言近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月异更新。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。
电子时钟是现代社会中的主要计时工具之一,广泛应用于手机,电脑,汽车等社会生活需要的各个方面,及对时间有要求的场合。
本设计采用AT89C52单片机作为主要核心部件,附以上电复位电路,时钟电路及按键调时电路组成。
数字钟已成为人们日常生活中:必不可少的必需品,广泛用于个人家庭以及车站、码头、剧场、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。
由于数字集成电路技术的发展和采用了先进的石英技术,使数字钟具有走时准确、性能稳定、携带方便等优点,它还用于计时、自动报时及自动控制等各个领域。
二、系统设计2.1 设计任务1、通过4*4矩阵键盘输入数字及运算符;2、可以进行4位十进制数以内的加法预算。
如果计算结果超出四位数,则全部显示“E”;3、可以进行加减乘除所有运算;4、添加其他功能。
2.2 方案比较与论证2.2.1 系统整体流程图图1 系统整体流程图2.2.2 计算器的控制方案论证用4*4的矩阵键盘组成0-9数字键及加、减、乘、除、等于、清零按键,LCD屏幕实时显示输入的数字和运算符号,每按下一个按键都有蜂鸣器发出的响声。
从矩阵键盘输入一个数字,选择运算符,再输入一个数字,然后按下“等于”键,最后的计算结果会呈现在LCD 屏幕上。
2.2.3 单片机的选择方案论证方案一:采用可编程逻辑期间CPLD 作为控制器。
CPLD可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。
但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑我们放弃了此方案方案二:采用Atmel公司的AT89C52单片机作为控制器。
AT89C52是一个低功耗,高性能的51内核的CMOS 8位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256 bytes的随机存取数据存储器(RAM),32个双向I/O口,2个16位可编程定时计数器。
综合考虑,选择方案二,采用Atmel公司的AT89C52单片机作为控制器。
2.2.4 键盘选择方案论证方案一:采用独立式键盘。
由于各键相互独立,每个按键各接一根输入线,通过检测输入线的电平状态可以很容易的判断哪个按键被按下。
此种键盘适用于按键较少或操作速度较高的场合。
但本题发挥部分要求16个功能键,按键数目较多,这就需要较多的输入口线,而且电路结构复杂。
故此方案不可取。
方案二:采用矩阵键盘。
它由行和列组成,按键位于行列的交叉点上,行线信号和列线信号分别通过两个接口和CPU相连,通过行列扫描法判定按键的位置,此方案适用于按键较多的场合。
通过对4位数加法计算器题目的分析,采用4*4行列式键盘。
2.2.5 显示模块的选择方案论证方案一:采用带字库LCD模块显示。
能显示复杂的信息,具有质量轻,体积小,功耗低,指令功能强,接口简单,可靠性强等优点,显示内容丰富,图形美观,易于人机交流。
但是价格昂贵。
方案二:采用LED数码管显示。
数码管能显示数字和符号,但是占用I/O口资源较多,对于简单的电路可以选用此方案。
计算器,需要较为强大的人机交互界面,故选用方案一,显示所需信息。
2.2.6 蜂鸣器的选择方案论证方案一:采用有源蜂鸣器。
有源蜂鸣器内部带震荡源,只要一通电就会发出响声。
方案二:采用无源蜂鸣器。
无源蜂鸣器内部不带震荡源,所以用直流信号无法令其鸣叫,必须用2K~5K的方波去驱动它。
综合考虑,为了程序控制的方便,选用了方案一。
三硬件电路设计3.1 计算器控制电路图图2 计算器控制线路图3.2 矩阵式键盘的设计键盘电路如图3所示。
设计数字键0~9 的键号依次为0~9,运算符号分别为“+”、“-”、“*”、“/”,以及“=”和清零“C”,通过逐行扫描函数来确定按下的键位。
图3 键盘电路3.3 LCD1602显示电路的设计LCD1602液晶屏采用LM016L型号元件,其电路如图3所示。
图4 LCD1602显示电路3.4 蜂鸣器驱动电路的设计蜂鸣器的驱动采用PNP三极管来驱动,低电平有效。
其电路如图5 所示。
图5 蜂鸣器电路图3.5 主要元器件选择主要元器件选用型号和数量如表1所示:序号材料名称规格型号数量元件代号1 单片机AT89C52 1 U12 晶振12MHz 1 X13 三级管MJE350 1 Q14 键盘4*4 165 LCD1602 LM016L 1 LCD16026 蜂鸣器 1 BEEP7 电阻1k 1 R1表1 主要元器件清单四、程序流程图五 C语言程序设计#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit lcden=P2^1; //定义E口sbit lcdrs=P2^0; //定义RS口sbit beep=P2^2; //定义蜂鸣器uchar code table[]={'0','1','2','3','4','5','6', //创建键位数组,数字,运算符号,等于号,清零(小数点)'7','8','9','+','-','*','/','=','.'};uchar key,flag1,js,k1,k2;uchar a[20],b[20];float jieguo=0;void delay(uchar z) //延迟函数{uchar x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}void write_cmd(uchar cmd) //写命令函数{lcdrs=0;P1=cmd;delay(5);lcden=1;delay(4);lcden=0;}void write_data(uchar date) //写数据函数{lcdrs=1;P1=date;delay(5);lcden=1;delay(5);lcden=0;}void init() //LCD初始化函数{lcden=0;write_cmd(0x38); //设置16x2显示,8位数据接口write_cmd(0x0c); //设置开显示,不显示光标(关显示是0x08)write_cmd(0x06); //写一个字符后地址指针加1write_cmd(0x01); //清屏}void keyscan(){uchar temp,uu=0xf7;uint i;for(i=0;i<4;i++){uu=_crol_(uu,1); //左移P3=uu;temp=P3;temp=temp&0x0f;if(temp!=0x0f){delay(10);temp=P3;temp=temp&0x0f;if(temp!=0x0f){temp=P3;switch(temp){case 0xee:key=1;beep=0;delay(200);beep=1;break; //延迟200响声case 0xde:key=2;beep=0;delay(200);beep=1;break;case 0xbe:key=3;beep=0;delay(200);beep=1;break;case 0x7e:key=10;beep=0;delay(200);beep=1;break;case 0xed:key=4;beep=0;delay(200);beep=1;break;case 0xdd:key=5;beep=0;delay(200);beep=1;break;case 0xbd:key=6;beep=0;delay(200);beep=1;break;case 0x7d:key=11;beep=0;delay(200);beep=1;break;case 0xeb:key=7;beep=0;delay(200);beep=1;break;case 0xdb:key=8;beep=0;delay(200);beep=1;break;case 0xbb:key=9;beep=0;delay(200);beep=1;break;case 0x7b:key=12;beep=0;delay(200);beep=1;break;case 0xe7:key=0;beep=0;delay(200);beep=1;break;case 0xd7:key=15;beep=0;delay(200);beep=1;beep=0;delay(200);beep=1;beep=0;delay(200);beep=1;break; //清零长响声case 0xb7:key=13;beep=0;delay(200);beep=1;break;case 0x77:key=14;beep=0;delay(180);beep=1;delay(100);beep=0;delay(180);beep=1;break; //等于按键两声短响,中间较短间隔}while(temp!=0x0f){temp=P3;temp=temp&0x0f;}flag1=1;}}}}void jscl() //计算显示函数{uchar i,j,n;float s,temp2;long int s1,s2,a1,b1,c1,temp1;a1=1;b1=1;s1=0;s2=0;s=0;if(k2!=0){for(j=0;j<k1+1;j++) //存放第一操作数{for(i=0;i<k1-j;i++)a1=a1*10;s1=s1+a[j]*a1;a1=1;}for(j=k1+1;j<k2+1;j++) //存放第二操作数{for(i=0;i<k2-j;i++)b1=b1*10;s2=s2+a[j]*b1;b1=1;}if(js==10) //判断运算符号{s=s1+s2;}if(js==11){s=s1-s2;}if(js==12){s=s1*s2;}if(js==13){s=(s1*0.1)/(s2*0.1);}jieguo=s;}elses=jieguo;if(jieguo>9999||s>=9999){write_data('E');else //运算结果小数的处理{c1=(long int)(s*1000)%10;if(c1>=5)s=s+0.01;temp1=(long int)(s);temp2=s-temp1;n=0;while(temp1){b[n]=temp1%10;temp1=temp1/10;n++;}b[n]=temp2*10;b[n+1]=(uchar)(temp2*100)%10;for(i=n;i>0;i--){write_data(table[b[i-1]]);}if(jieguo<1){write_data(table[0]);write_data(table[15]);write_data(table[b[n]]);write_data(table[b[n+1]]);}else{write_data(table[15]);write_data(table[b[n]]);write_data(table[b[n+1]]);}}}void main(){uchar i,j;init();write_cmd(0x80); //将液晶指针定位在第一行第一个单元key=15;i=0;flag1=0;while(1)keyscan();if(flag1==1){if(key==15) //判断为清零操作{write_cmd(0x01);i=0;for(j=0;j<20;j++){a[j]=0;b[j]=0;}k1=0;k2=0;}else if(key<10) //判断为数字{write_data(table[key]);a[i]=key;i++;}else if(key<14) //判断为运算符号{write_data(table[key]);k1=i-1;js=key;}else //判断为等于操作{write_data(table[key]);if(i==0)k2=0;elsek2=i-1;write_cmd(0x80+0x40);jscl();}flag1=0;}}}6.计算器仿真在完成了计算器硬件设计和软件设计以后,便进入系统的调试阶段。