4位数加法计算器
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
四位数加减法运算在数学中的地位 和作用
了解四位数加减法运算在小学数学中的重要地位
四位数加减法运算是基础数学 的重要组成部分,对于培养学 生的计算能力和逻辑思维能力
四位数加减法运算可以帮助学生理解数的概念,掌握数的运算规律,提高 计算能力。
四位数加减法运算可以帮助学生培养逻辑思维能力,提高分析和解决问题 的能力。
四位数加减法运算可以帮助学生培养创新意识和实践能力,提高数学素养。
分析四位数加减法运算与其他数学知识的联系和区别
四位数加减法运算是基础数学的重要组成部分,与其他数学知识如乘除法、分数、小数等有 密切联系。
用计算器计算小数加减法

定期清洁:保持计算器表面清洁避免灰尘堆积
电池更换:定期检查电池是否需要更换避免电池漏液损坏计算器
06
小数加减法计算器的优势与局限性
计算器优势
添加标题
添加标题
添加标题
添加标题
避免错误:减少手动计算可能出现的错误
提高计算效率:快速准确地进行小数加减法计算
小数点把小数分为整数部分和小数部分整数部分在左边小数部分在右边。
小数部分的位数可以是任意的但通常以两位或三位小数为常见。
小数可以表示为分数形式例如0.5可以表示为1/20.25可以表示为1/4。
小数加减法的规则
计算结果中的小数位数应与参与运算的小数位数相同。
相同位数的小数相加减将小数点对齐然后按照整数的加减法进行计算。
不同位数的小数相加减将小数点对齐然后在位数少的小数末尾补0再按照整数的加减法进行计算。
计算结果中的小数位数应与参与运算的小数位数相同。
小数加减法的运算技巧
确定小数点对齐:将小数点对齐使位数相同
逐位相加减:从左到右逐位相加减
进位处理:遇到进位将进位值加到下一位
结果处理:计算完成后检查结果是否有小数点如有保留小数点后的位数
易于使用:界面友好操作简单适合不同年龄段的用户
节省时间:节省手动计算的时间提高工作效率
计算器局限性
计算精度有限:小数加减法计算器只能处理一定范围内的小数超过这个范围可能会出现误差。
计算速度有限:小数加减法计算器的计算速度受到硬件和软件的限制可能无法满足一些高精度、高速度的计算需求。
功能有限:小数加减法计算器只能进行小数加减法运算无法进行其他类型的数学运算如乘除法、开方等。
计算器有关按键说明大全.(精选)

计算器有关按键说明大全一、基本按键ON 开机OFF 关机AC 总清,清除所有存储和显示数值(又:CA,All ClearC 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/C CE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry⌫清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insertREPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼◄►SHIFT 转换,上档选择(又:2ndF、2nd、2nd(第二功能选择,Second Function)、ALT,按键设定为与其同色的功能ALPHA 阿尔法,字母,按键设定为与其同色的功能MODE 方式、模式,用于模式切换(不同的计算器有所不同,常用的见下表:对于数值计数法有:Norm(normal)标准计数法Fix(fixed)固定小数点Eng(engineering)工程计数法Sci(scientific)科学计数法Inv 反、倒置,用于使用其它有关按键的相反功能,多用于电子计算器。
如ln键变为e x键,sin键变为sin-1键,lsh键变为rsh键等EXP 以科学记数法输入数字,即表示以10为底的方幂(又:EE,英文名Exponent说明:科学记数法:将一个数字表示成a×10的n次幂的形式,其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
如:5EXP2即5×102,就是500F-E 科学记数法开关,显示方式转换作用:十进制浮点(Floating Point)与科学记数法(Exponent)显示转换S⇔D 数值在标准形式(Standard)和小数形式(Decimalfraction)之间转换作用:分数与小数显示转换Ran# 随机数(又:RAND、RND、Rnd#,英文名Random, : 分隔符,用于输入方程式之间、坐标数据之间分隔用∠角,用于标识极坐标数据的角度数据或复数的虚数二、基础运算0、00、1、2、3、4、5、6、7、8、9 数字A、B、C、D、E、F 十六进制数字或存储单元. 十进制小数点+-×(*)÷(/)四则运算符注:-有的作为负号=等号+/-正负转换,负号(又:、±(-)()括号,(称为始括号或左括号,)称为末括号或右括号注:=前的)键操作可省略a、d/c 分数输入或将计算结果在小数值和分数值之间变换注:一般结果为小数,如果其绝对值大于或等于1,按一次d/c 以假分数形式显示,再按一次d/c则以带分数形式显示;如果其绝对值小于1,则两次均以真分数形式显示% 百分号,关于百分比的计算方法见下表百分比计算说明公式计算式操作求比例a的百分之b是多少a·b%=□a×=□a×b%=求比率b的百分之几是a·100%=□% ×100=□(%)a÷b%=求增额a增加百分之b是多少a+a·b%=□或a·(1+ b%)=□a+a×=□或a×(1+)=□a+b%=求减额a减少百分之b是多少a-a·b%=□或a·(1- b%)=□a-a×=□或a×(1-)=□a-b%=注:以上实物计算器不按等号,不同的计算器定义不同,按其实际运算规则。
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、添加其他功能。
计算器有关按键说明大全

计算器有关按键说明大全一、基本按键ON 开机OFF 关机AC 总清,清除所有存储和显示数值(又:CA, All ClearC 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/CCE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry⌫清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insertREPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼◄►SHIFT 转换,上档选择(又: 2ndF、2nd、2nd(第二功能选择,Second Function)、ALT,按键设定为与其同色的功能ALPHA 阿尔法,字母,按键设定为与其同色的功能MODE 方式、模式,用于模式切换(不同的计算器有所不同,常用的见下表:对于数值计数法有:Norm(normal)标准计数法Fix(fixed)固定小数点Eng(engineering)工程计数法Sci(scientific)科学计数法Inv 反、倒置,用于使用其它有关按键的相反功能,多用于电子计算器。
如ln键变为e x键,sin键变为sin-1键,lsh键变为rsh键等EXP 以科学记数法输入数字,即表示以10为底的方幂(又:EE,英文名Exponent说明:科学记数法:将一个数字表示成a×10的n次幂的形式,其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
如:5EXP2即5×102,就是500F-E 科学记数法开关,显示方式转换作用:十进制浮点(Floating Point)与科学记数法(Exponent)显示转换S⇔D 数值在标准形式(Standard)和小数形式(Decimal fraction)之间转换作用:分数与小数显示转换Ran# 随机数(又:RAND、RND、Rnd#,英文名Random, : 分隔符,用于输入方程式之间、坐标数据之间分隔用∠角,用于标识极坐标数据的角度数据或复数的虚数二、基础运算0、00、1、2、3、4、5、6、7、8、9 数字A、B、C、D、E、F 十六进制数字或存储单元. 十进制小数点+-×(*)÷(/)四则运算符注:-有的作为负号=等号⁄、±(-)+/-正负转换,负号(又:+−()括号,(称为始括号或左括号,)称为末括号或右括号注:=前的)键操作可省略a b c⁄、d/c 分数输入或将计算结果在小数值和分数值之间变换注:一般结果为小数,如果其绝对值大于或等于1,按一次d/c 以假分数形式显示,再按一次d/c则以带分数形式显示;如果其绝对值小于1,则两次均以真分数形式显示% 百分号,关于百分比的计算方法见下表注:以上实物计算器不按等号,不同的计算器定义不同,按其实际运算规则。
计算器有关按键说明大全

计算器有关按键说明大全一、基本按键ON 开机OFF 关机AC 总清,清除所有存储和显示数值(又:CA, All ClearC 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/CCE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry⌫清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insertREPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼◄►SHIFT 转换,上档选择(又: 2ndF、2nd、2nd(第二功能选择,Second Function)、ALT,按键设定为与其同色的功能ALPHA 阿尔法,字母,按键设定为与其同色的功能MODE 方式、模式,用于模式切换(不同的计算器有所不同,常用的见下表:对于数值计数法有:Norm(normal)标准计数法Fix(fixed)固定小数点Eng(engineering)工程计数法Sci(scientific)科学计数法Inv 反、倒置,用于使用其它有关按键的相反功能,多用于电子计算器。
如ln键变为e x键,sin键变为sin-1键,lsh键变为rsh键等EXP 以科学记数法输入数字,即表示以10为底的方幂(又:EE,英文名Exponent说明:科学记数法:将一个数字表示成a×10的n次幂的形式,其中1≤|a|<10,n表示整数,这种记数方法叫科学记数法。
如:5EXP2即5×102,就是500F-E 科学记数法开关,显示方式转换作用:十进制浮点(Floating Point)与科学记数法(Exponent)显示转换S⇔D 数值在标准形式(Standard)和小数形式(Decimal fraction)之间转换作用:分数与小数显示转换Ran# 随机数(又:RAND、RND、Rnd#,英文名Random, : 分隔符,用于输入方程式之间、坐标数据之间分隔用∠角,用于标识极坐标数据的角度数据或复数的虚数二、基础运算0、00、1、2、3、4、5、6、7、8、9 数字A、B、C、D、E、F 十六进制数字或存储单元. 十进制小数点+-×(*)÷(/)四则运算符注:-有的作为负号=等号+/-正负转换,负号(又:、±(-)()括号,(称为始括号或左括号,)称为末括号或右括号注:=前的)键操作可省略a、d/c 分数输入或将计算结果在小数值和分数值之间变换注:一般结果为小数,如果其绝对值大于或等于1,按一次d/c 以假分数形式显示,再按一次d/c则以带分数形式显示;如果其绝对值小于1,则两次均以真分数形式显示% 百分号,关于百分比的计算方法见下表××+×-注:以上实物计算器不按等号,不同的计算器定义不同,按其实际运算规则。
EDA实验报告 4位全加器,16位频率计数器

实验课程名称:EDA技术与应用实验项目名称4位全加器实验实验成绩实验者专业班级组别同组者实验日期一、实验目的1.进一步加深理解全加器的工作原理及电路组成,加深对EDA技术的掌握。
2.熟悉利用Quartus Ⅱ的原理图输入方法设计简单组合电路,掌握层次化设计的方法,并通过一个四位全加器的设计把握原理图输入方式设计的详细流程。
二、实验内容实验内容1:按照书本4.5.1节完成半加器和1位全加器的设计,包括用原理图输入,编译,综合,适配,仿真,实验板上的硬件测试,并将此全加器电路设置成一个元件符号入库。
实验内容2:建立一个更高层次的原理图,利用以上获得的1位全加器构成4位全加器,并完成编译,综合,适配,仿真和硬件测试。
三、实验仪器1.计算器及操作系统2.Quartus II软件四、实验原理一个4位全加器可以由4个1位全加器构成,加法器间的进位可以串行方式实现,即将低位加法器的进位输出cout与相邻的高位加法器的最低进位输入信号cin相接。
1、半加器描述根据半加器真值表可以画出半加器的电路图。
a b so Co0 0 0 00 1 1 01 0 1 01 1 0 1表1半加器h_adder真值表图1 半加器h_adder电路图2、1位全加器描述一位全加器可以由两个半加器和一个或门连接而成,因而可以根据半加器的电路原理图或真值表写出1位全加器的VHDL 描述。
图2 1位全加器电路图3、4位全加器设计描述4位全加器可以看做四个1位全加器级联而成,首先采用基本逻辑门设计一位全加器,而后通过多个1位全加器级联实现4位全加器。
其中,其中cin 表示输入进位位,cout 表示输出进位位,输入A 和B 分别表示加数和被加数。
S 为输出和,其功能可用布尔代数式表示为:S=A+B+Ciii i i o ABC ABC ABC ABC C +++=首先根据一位全加器的布尔代数式应用基本逻辑门设计一位全加器,而后仿真验证一位全加器设计,准确无误后生成元件,供4位全加器设计用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
安庆师范大学2014级单片机原理与应用课程设计报告课题名称4位数加法计算器的设计姓名吴昊天、伍浩然、王鹏、万吉学号070814018 070814008 070814005 070814001 院、系、部计算机学院物联网工程专业物联网工程指导教师汪文明2016 年6月6日一、设计任务及要求:设计任务:1、通过4*4矩阵键盘输入数字及运算符;2、可以进行4位十进制数以内的加法预算。
如果计算结果超出四位数,则全部显示“ E ;3、可以进行加减乘除所有运算;4、添加其他功能。
要求:首先进行预设计,根据设计的任务要求,先确定设计的硬件电路方案,然后进行硬件电路的初步设计,在计算机上画出硬件电路图,在老师的指导下进行修正硬件电路图,并对所涉及的参数进行计算。
在确定硬件的基础上,要进行软件的总体设计,包括软件主流程的设计以及各子程序的设计,同时,要写出详细的操作说明,如时间的调整方法,显示窗口的时间切换等,以配合软件的设计。
然后进入硬件的调试及编程工作,设计组内的同学可根据任务分工,有调试硬件各功能模块的,如键盘子程序、显示子程序等,有进行整体程序的编制的,各模块的编制过程中要注意资源的衔接。
最后进入联机调试,联机调试的原则也要采用分步走的原则,各个功能模块要逐步套入,通过一个再增加一项功能,从而达到设计的总体要求,不要上来编制个最大的程序,最后无法查找错误。
最后写出设计报告。
指导教师签名:2016年6月6日、成绩指导教师签名:年月曰一、绪言 (1)二、系统设计 (1)2.1设计任务 (1)2.2方案比较与论证 (1)2.2.1系统整体流程图 (2)222单片机的选择方案论证 (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.1Keil 调试 (19)6.2Proteus 调试 (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屏幕上。
223单片机的选择方案论证方案一:采用可编程逻辑期间CPLD作为控制器。
CPL可以实现各种复杂的逻辑功能、规模大、密度高、体积小、稳定性高、I/O资源丰富、易于进行功能扩展。
采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模控制系统的控制核心。
但本系统不需要复杂的逻辑功能,对数据的处理速度的要求也不是非常高,且从使用及经济的角度考虑我们放弃了此方案方案二:采用Atmel公司的AT89C5单片机作为控制器。
AT89C5是一个低功耗,高性能的51内核的CM08位单片机,片内含8k空间的可反复擦些1000次的Flash只读存储器,具有256 bytes的随机存取数据存储器(RAMI,32个双向I/O 口,2个16位可编程定时计数器。
综合考虑,选择方案二,采用Atmel公司的AT89C5单片机作为控制器。
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',通过逐行扫描函数来确定按下的键位。
£rj> .■:■□1 r21=!7R11k►XTAL1POCVADQ POP0 2/AO2 XTAL2poa/Am PO 型AD4P05/AD5 RSTPOWADfe PO 7/AD7P2 WASP2 1M9 P2 2TA10PSENP2.3/A11 ALE P24fAl2 E A P2.S/ABP2.如 4 P1 0/T2 P1 1/T2EXP2.7/A15P3.0/RXD P3 I/TXD pi 9P3.2/KT0 P3.4/TD pa.srriPI a PI d P1 5 P1 &P1 7F-2 7/RDAT09CSLCD 1602U1MJE35QLMJ16LBEEPI17TJJ —45ac■ i: E* L7 01013 15 ij .q图3键盘电路3.3 LCD1602显示电路的设计LCD1602液晶屏采用LM016L型号元件,其电路如图3所示。
3.4蜂鸣器驱动电路的设计蜂鸣器的驱动采用PNPE极管来驱动,低电平有效。
其电路如图5所示4RPPPQI■LV■[177FRZ1■11MJE3501<L /v 1 nU13.5主要元器件选择主要元器件选用型号和数量如表 1所示:表1主要元器件清单-►XT AL 1 PO O/ADOPO.1/AD1 PO.2/AD2 ・ XTAL2PO3/AD3 P0.4/AW PO.5/AD5 PO.6/AD6 ・RSTPO.7/AD7P2.Q/A8 P2.1/A9P2.2/A10-PSEN P2.3/A11图5蜂鸣器电路图R11kT-21 le!2 leLCD 液晶屏显不五C 语言程序设计#in elude <reg51.h> #in elude vintrin s.h>#defi ne uehar un sig ned char #defi ne uint un sig ned int sbit leden=P2A1; //定义 E 口 sbit lcdrs=P2A0; //定义 RS 口sbit beep=P2A2;II 定义蜂鸣器uehar code table[]={'0','1','2',3,'4','5','6',四、程序流程图蜂鸣器发 出响声II 创建键位数组,数字,运算符号,等于号,清零(小数点)7','8',9,'+','-','*',7','=','.'};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;P仁cmd;delay(5);lcde n=1;delay(4);lcde n=0;}void write_data(uchar date) // 写数据函数{lcdrs=1;P仁date;delay(5);lcde n=1;delay(5);lcde n=0;}void init() //LCD初始化函数{lcde n=0;write_cmd(0x38); // 设置16x2 显示,8 位数据接口write_cmd(0x0c); //设置开显示,不显示光标(关显示是write_cmd(0x06); II 写一个字符后地址指针加 10x08)write_cmd(0x01); II 清屏}void keysca n(){uchar temp,uu=0xf7;uint i;for(i=0;i<4;i++){uu=_crol_(uu,1); II 左移P3=uu;temp=P3;temp=temp&0 x0f;if(temp!=OxOf){delay(10);temp=P3;temp=temp&O x0f;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&0 x0f;}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++)a仁a1*10;s仁s1+a[j]*a1;a1=1;}for(j=k1+1;j<k2+1;j++) // 存放第二操作数{for(i=0;i<k2-j;i++)b仁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{c仁(Io ng in t)(s*1000)%10; if(c1>=5)s=s+0.01;temp1=(lo ng in t)(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 mai n(){uchar i,j;in it();write_cmd(0x80); //将液晶指针定位在第key=15;i=0;flag 仁0;while(1)//运算结果小数的处理行第一个单元keysca n();if(flag 仁=1){if(key==15) 〃判断为清零操作{write_cmd(OxO1);i=0; for(j=0;j<20;j++){a[j]=0;b[j]=0;}k仁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;else〃判断为等于操作k2=i-1;write_cmd(0x80+0x40); jscl();}flag 仁0;}}}6.计算器仿真在完成了计算器硬件设计和软件设计以后,便进入系统的调试阶段。