简易计算器实验报告

合集下载

计算器实验报告

计算器实验报告

计算器实验报告一实验目的学习使用AT89S52单片机实现简易计算器。

二实验要求1:可以通过键盘输入,并能显示输入相对应的数字.2:能够进行加,减,乘,除准确的基本运算.3:能够进行3位或3位的以上的乘,除运算.4:自由发挥其他功能.三实验基本原理本设计利用AT89S52单片机来控制液晶显示器和矩阵式键盘,实现了简易的计算器功能。

通过键盘输入需要计算的计算式子,该式子会显示在液晶的第一行,当键入等于号后,计算结果会显示在液晶的第二行。

本设计中液晶选用1602字符型液晶显示器,显示参与运算的数字以及最终的运算结果,键盘采用 4*4 矩阵式键盘。

四实验要求实现1.硬件设计如下图:2.软件设计程序流程图:程序:#include<reg52.h>char code V[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x80,0x48,0x70,0x40,0x5c,0x0c}; // 17. 18= 19+ 20- 21x 22/char code D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xff};int temp,num,keyp,n1,n2,n3,n4,n5,n6,n7,n8,f;long tn,store;void delay(unsigned int x0); //延迟x0*2毫秒void display(long);void showError();void enter();void key();void main(){x: P0=0x00;tn=0;f=16;store=0;while(1){enter();if(num<23&&num>17){if(store>9999999||store<-999999)while(1){showError();key();if(keyp==1)goto x;}else display(store);}else display(tn);}}void delay(unsigned int x0){int x1,x2;for(x1=0;x1<x0;x1++)for(x2=0;x2<113;x2++);}void display(long disnum){if(disnum>=0){n1=disnum%10;if(disnum>9)n2=disnum/10%10;else n2=16;if(disnum>99)n3=disnum/100%10;else n3=16;if(disnum>999)n4=disnum/1000%10;else n4=16;if(disnum>9999)n5=disnum/10000%10;else n5=16;if(disnum>99999)n6=disnum/100000%10;else n6=16;if(disnum>999999)n7=disnum/1000000%10;else n7=16;}if(disnum<0){disnum=disnum*(-1);n1=disnum%10;if(disnum>9)n2=disnum/10%10;else n2=16;if(disnum>99)n3=disnum/100%10;else n3=16;if(disnum>999)n4=disnum/1000%10;else n4=16;if(disnum>9999)n5=disnum/10000%10;else n5=16;if(disnum>99999)n6=disnum/100000%10;else n6=16;n7=20;}n8=f;P0=V[n1];P2=D[0];delay(1);P2=D[8];P0=V[n2];P2=D[1];delay(1);P2=D[8];P0=V[n3];P2=D[2];delay(1);P2=D[8];P0=V[n4];P2=D[3];delay(1);P2=D[8];P0=V[n5];P2=D[4];delay(1);P2=D[8];P0=V[n6];P2=D[5];delay(1);P2=D[8];P0=V[n7];P2=D[6];delay(1);P2=D[8];P0=V[n8];P2=D[7];delay(1);P2=D[8]; }void showError(){P0=V[14];P2=D[5];delay(1);P2=D[8];P0=0x50;P2=D[4];delay(1);P2=D[8];P0=0x50;P2=D[3];delay(1);P2=D[8];P0=0x5c;P2=D[2];delay(1);P2=D[8];P0=0x50;P2=D[1];delay(1);P2=D[8];f=16;store=0;}void enter(){x1: key();if(keyp==1&&num<16&&num>=0){if(f==18){f=16;store=0;}if(tn<=999999)tn=tn*10+num;keyp=0;}if(keyp==1&&num<23&&num>17){if(f==19||f<=16)store=store+tn;if(f==20)store=store-tn;if(f==21){store=store*tn;}if(f==22){if(tn==0){while(1){showError();keyp=0;key();if(keyp==1)goto x1;}}else store=store/tn;}f=num;tn=0;keyp=0;}}void key(){P3=0xf7;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){temp=P3;keyp=1;switch(temp){case 0xe7: num=1;break;case 0xd7: num=2;break;case 0xb7: num=3;break;case 0x77: num=19;break; //+}while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}P3=0xfb;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){keyp=1;temp=P3;//num++;if(num==10)num=0;switch(temp){case 0xeb: num=4;break;case 0xdb: num=5;break;case 0xbb: num=6;break;case 0x7b: num=20;break; //- }while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}P3=0xfd;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){keyp=1;temp=P3;//num++;if(num==10)num=0;switch(temp){case 0xed: num=7;break;case 0xdd: num=8;break;case 0xbd: num=9;break;case 0x7d: num=21;break; //* }while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}P3=0xfe;temp=P3;temp=temp&0xf0;while(temp!=0xf0){delay(10);while(temp!=0xf0){keyp=1;temp=P3;//num++;if(num==10)num=0;switch(temp){case 0xee: num=0;break;case 0xde: num=17;break; //.case 0xbe: num=18;break; //=case 0x7e: num=22;break; ///}while(temp!=0xf0) //松开跳出{temp=P3;temp=temp&0xf0;}}}}五设计总结对于我们这些实践中的新手来说,设计一个简易计算器,这是一次考验。

vb 简易计算器实验报告

vb 简易计算器实验报告

简易计算器课程设计报告一、实验目的:模拟计算器的功能。

系统启动后, 先清屏, 再在显示屏右侧显示0字样, 系统仅接收数字键、加减乘除键、退格键、C键(复位)、=或回车键、ESC键(退出系统)作为有效按键, 其余按键不响应。

按键后屏幕显示效果要达到一般计算器显示屏的同样效果。

不要求设计一般计算器上都具有的M功能。

二、实验设计内容及思想:首先, 创建一个主体框架: 建立程序的主要界面后, 系统自动生成界面的主要窗口生成代码。

对于每个按钮的的代码段中, 分别添加事件触发的处理代码。

分别设立三个显示屏, 第一个显示屏作为“被加数”框, 第二个显示屏作为“加数”框, 第三个显示屏则作为输出框。

四则运算时直接采用计算表达式。

所以, 优先级和运算规则皆宜考虑在内。

在进行除法运算时, 若遇到除数为0, 则运用条件语句执行, 并在输出显示屏上输出“E”。

三角函数、指数、对数、整除、取余等运算, 也是运用类似手法。

考虑到计算器的操作简便性, 所以加入了复位和退出按钮。

三、源程序文件:Private Sub Command1_Click()Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x + yEnd SubPrivate Sub Command10_Click()Dim x As Integerx = Text1.TextText3.Text = Cos(x)End SubPrivate Sub Command11_Click()Dim x As Integerx = Text1.TextText3.Text = Tan(x)End SubPrivate Sub Command12_Click()Dim x As Integerx = Text1.TextText3.Text = Atn(x)End SubPrivate Sub Command13_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x ^ yEnd SubPrivate Sub Command14_Click() Dim x As Integerx = Text1.TextIf x <= 0 ThenText3.Text = "输入错误"ElseText3.Text = Log(x)End IfEnd SubPrivate Sub Command15_Click() Text3.Text = "此按钮仅作装饰用" End SubPrivate Sub Command2_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x - yEnd SubPrivate Sub Command3_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x * yEnd SubPrivate Sub Command4_Click() Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextIf y = 0 ThenText3.Text = "E"ElseText3.Text = x / yEnd IfEnd SubPrivate Sub Command5_Click()Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x \ yEnd SubPrivate Sub Command6_Click()Dim x As IntegerDim y As Integerx = Text1.Texty = Text2.TextText3.Text = x Mod yEnd SubPrivate Sub Command7_Click()Text1.Text = ""Text2.Text = ""Text3.Text = " 0" End SubPrivate Sub Command8_Click()EndEnd SubPrivate Sub Command9_Click()Dim x As Integerx = Text1.TextText3.Text = Sin(x)End Sub源代码截图:四、运行结果演示: 加法演示:减法演示: 乘法演示:除法演示:能够整除: 不能够整除:除数为零:。

简易计算器报告

简易计算器报告

tong datain[35..0]
dataout[27..0]
inst9
XOR inst19
模块说明: 当乘法符号的上升沿的时候读入反馈的结果 (包括数据及正负号) 并输出到
data1 、data1_pn; 当乘法符号的下降沿的时候读入数据 (包括数据及正负号) 并输出到 data2 、
data2_pn 。并进行计算,结果的数据由乘法器计算得到;结果的正负号即为两个 相乘数据的正负号取异或。
data1_pn:outstd_logic; data2_pn:outstd_logic
); end entity mul; architecturebehaveof mul is signal temp1:std_logic; signal temp2:std_logic; begin process(reset,clk) begin if(reset='0')then
data2_pn 。并进行计算,结果的数据由除法器计算得到;结果的正负号即为两个 相除数据的正负号取异或。
数据为保留两位小数,输出的当成被除数的数乘上 100。
3.乘或除数据选择输出模块:
7
tt
reset pn1 pn2 res1[27..0] res2[27..0] clk1 clk2
inst6
6.加减运算模块:
add
clk reset data[27..0] data_pn
dout[27..0] dout_pn
inst11
模块说明:
由于上一级已考虑加减情况,此模块只需实现加法运算。 A+B 有四种情况:
1、A>0,B>0 输出数据 A+B,正负号为正

数电实验二:简易计算器(设计报告)

数电实验二:简易计算器(设计报告)

数电实验2设计报告实验名称:简易计算器 实验目的:1.熟练掌握综合逻辑电路的设计方法及调试方法2.掌握Verilog HDL 数字系统设计方法3.熟悉PLD 实验箱的结构和使用及QuartusII 软件的基本操作4.掌握采用Quartus II 软件和实验箱设计实现逻辑电路的基本过程设计任务及要求:利用LPM 例化元件和适当的中小规模时序、组合逻辑电路设计一个4位简易计算器,实现2个4位二进制数的加、减、乘、除运算,完成主要模块的波形仿真,并将设计下载到实验箱进行功能测试。

要求:1、 用8个开关分别作为2个4位输入数据2、 运算结果用数码管显示电路设计过程:1、 设定加、减、乘、除四个LPM 例化元件加法器:2个四位二进制输入(加数、被加数),1个4位二进制输出(和)减法器:2个四位二进制输入(减数、被减数),1个4位二进制输出(差)乘法器:2个四位二进制输入(乘数、被乘数),1个8位二进制输出(积)除法器:24位二进制输出(分别代表商和余数)2、加入组合逻辑电路和4选一数据选择器,控制进行运算的种类(1)组合逻辑电路输入:功能:为了利用矩阵键盘对计算器对输入数字的加减乘除进行控制,我们画了这个组合逻辑电路,将矩阵键盘的行管脚和列管脚分别为输入后,当(1,1)位置的按键按下,则输出端输出2位2进制数11(控制减法操作),当(2,2)位置的按键按下,则输出端输出2位2进制数10(控制加法操作),当(3,3)位置的按键按下,则输出端输出2位2进制数01(控制乘法操作),当所有按键都没有按下时,输出默认为00,即控制除法操作。

(2)4选一数据选择器功能X1,y1为想要计算的两个4位2进制数,当S0,S1为11的时候,将X1,y1送入减法器输入端,当S0,S1为10的时候,将X1,y1送入加法器输入端,当S0,S1为01的时候,将X1,y1送入乘法器输入端,当S0,S1为00的时候,将X1,y1送入除法器输入端。

简单计算器—实训报告

简单计算器—实训报告

Linux应用与编程实习报告学院名称专业班级学生姓名学号指导教师山东科技大学一、实习题目: B2-简单计算器二、实习时间:19周~ 20周实习地点: J13- 128三、实习任务:实现一个简单计算器,计算器包括加、减、乘、除四种运算。

用户通过鼠标进行数据输入,输入的数据以及计算结果显示在文本框中四、小组分工说明:独立完成五、实习成绩六、指导教师对实习的评语:指导教师(签章):2015年月日目录1. 概述 -------------------------------------------------------- 42. 相关技术 -------------------------------------------------- 42.1 QT中信号和槽 -------------------------------------- 42.2 字符串输出数据组 -------- 错误!未定义书签。

3. 需求分析 -------------------------------------------------- 54. 总体设计与详细设计 ----------------------------------- 54.1 系统模块划分 --------------------------------------- 54.2 主要功能模块 --------------------------------------- 55. 编码实现 -------------------------------------------------- 6 6.测试情况说明------------------------------------------- 157. 实训中遇到的主要问题及解决方法 ---------------- 168. 实训收获与体会 ---------------------------------------- 161. 概述1.1 实训项目简介本次实训项目是应用Linux系统中的QT编译器编写一个界面简洁,操作简单的简易计算器。

C课程设计简易计算器实验报告

C课程设计简易计算器实验报告

《程序设计基础》(C++)课程设计报告计算器姓名:班级:学号:指导教师:成绩:完成时间:完成地点:计算器1 基本功能描述计算器包含基本的四则运算、开方、倒数、相反数(正负)等运算。

可对输入任意操作数,包括小数和整数及正数和负数进行以上的所有运算。

同时包含清除功能。

2 设计思路如图1是计算器总流程图,输完第一个操作数后,若点击双目运算符,则把m_edit 传递给op1,并传递给变量calculator相对运算符对应的值,输入的第二个操作数传递给op2,点击等号根据calculator的值进行相应运算并输出结果。

若点击的是单目运算符,则直接对其处理得出结果。

若点击清零,则m_edit等于0。

设计思路流程图如下(见下页)。

图1 计算器设计思路总流程图3 软件设计3.1 创建步骤打开Microsoft Visual C++ 6.0,选择新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名Calculator及其所在位置。

将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成。

MFC AppWizard建立基于对话窗口的程序框架。

3.2 界面设计1、创建控件在对话框上的合适的位置画出编辑框和下压式按钮。

如图2所示。

图2 绘制编辑框在按钮和编辑框属性对话框中输入控件的ID值和标题属性。

如图3所示。

图3 Push Button属性按照上面的操作过程编辑其他按钮和编辑框等对象的属性。

表1 各对象属性对象ID 标题或说明编辑框IDC_EDIT1 结果显示按钮IDC_BUTTON0 0按钮IDC_BUTTON1 1按钮IDC_BUTTON2 2按钮IDC_BUTTON3 3按钮IDC_BUTTON4 4按钮IDC_BUTTON5 5按钮IDC_BUTTON6 6按钮IDC_BUTTON7 7按钮IDC_BUTTON8 8按钮IDC_BUTTON9 9按钮IDC_ BUTTONneg +/-按钮IDC_ BUTTONpot .按钮IDC_ BUTTONadd +按钮IDC_BUTTONsub -按钮IDC_BUTTONmul *按钮IDC_BUTTONdiv /按钮IDC_BUTTONsqrt sqrt按钮IDC_BUTTONCE CE完成后界面如图4所示。

简单计算器实验报告

简单计算器实验报告

简单计算器实验报告
《简单计算器实验报告》
实验目的:通过使用简单计算器进行数学运算,探究其在日常生活中的实际应用价值。

实验材料:简单计算器、纸笔
实验步骤:
1. 使用简单计算器进行加法、减法、乘法和除法运算,记录运算过程和结果。

2. 尝试使用计算器进行复杂运算,如求平方根、求倒数等。

3. 计算器的功能和使用方法的讨论。

实验结果:
通过实验,我们发现简单计算器在日常生活中有着非常重要的应用价值。

它可以帮助我们快速准确地进行数学运算,节省时间和精力。

同时,计算器还具有一些高级的功能,如求平方根、求倒数等,这些功能在科学计算和工程计算中也具有很大的作用。

结论:
简单计算器是我们日常生活中必不可少的工具之一,它的实际应用价值是非常高的。

通过这次实验,我们更加深入地了解了计算器的功能和使用方法,对于我们的学习和工作都有着重要的帮助。

通过这次实验,我们不仅对计算器有了更深入的了解,也增加了对数学运算的兴趣,希望我们在日常生活中能够更加灵活地运用计算器,提高我们的数学运算能力。

计算器实验报告

计算器实验报告

计算器实验报告一,实验目的1、学习按键扫描及LED数码管显示的设计方法。

2、设计任务及要求利用实验平台上8个LED数码管,设计可以通过键盘输入,并能显示输入相对应的数字、能够进行加,减,乘,除准确的基本运算、能够进行3位或3位的以上的乘,除运算.二,实验要求基本要求:1、可以通过键盘输入,并能显示输入相对应的数字.2、能够进行加,减,乘,除准确的基本运算、3、能够进行3位或3位的以上的乘,除运算.三,实验基本原理利用单片机实现简单计算器的加减乘除,通过键盘输入数据并在数码管上显示出数据,然后按下加减乘除任意一个键,再输入第二个数并显示,再按下等于号时,执行第一次输入的数与第二个数的加减乘除函数,并显示出最终结果。

四,实验设计分析针对要实现的功能,采用AT89S52单片机进行设计,AT89S52 单片机是一款低功耗,高性能CMOS8位单片机,片内含4KB在线可编程(ISP)的可反复擦写1000次的Flash只读程序存储器,器件采用高密度、非易失性存储技术制造,兼容标准MCS- 51指令系统及80C51引脚结构。

这样,既能做到经济合理又能实现预期的功能。

在程序方面,采用分块设计的方法,这样既减小了编程难度、使程序易于理解,又能便于添加各项功能。

程序可分为按键扫描、数码管显示输入数据、加减乘除函数,延时程序等。

运用这种方法,关键在于各模块的兼容和配合,若各模块不匹配会出现意想不到的错误。

首先,在编程之前必须了解硬件结构尤其是各引脚的用法,以及内部寄存器、存储单元的用法,否则,编程无从下手,电路也无法设计。

这是前期准备工作。

第二部分是硬件部分:依据想要的功能分块设计设计,比如输入需要键盘扫描,输出需要显示驱动电路和数码管电路等。

第三部分是软件部分:先学习理解汇编语言的编程方法再根据设计的硬件电路进行分块的编程调试,最终完成程序设计。

第四部分是软件画图部分:设计好电路后进行画图,包括电路图和仿真图的绘制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易计算器实验报告
简易计算器实验报告
引言:
计算器是我们日常生活中常用的工具之一。

它可以帮助我们进行简单的数学运算,提高计算的效率。

在本次实验中,我们将设计并制作一台简易计算器,通过实践来掌握计算器的原理和工作原理。

实验目的:
1. 了解计算器的基本原理和工作原理;
2. 掌握计算器的设计和制作方法;
3. 提高动手能力和创造力。

实验材料:
1. 电路板;
2. 按键;
3. LED显示屏;
4. 电容;
5. 电阻;
6. 电源。

实验步骤:
1. 连接电路板和电源,确保电路板能够正常工作;
2. 将按键连接到电路板上,用于输入数字和运算符;
3. 连接LED显示屏,用于显示计算结果;
4. 添加电容和电阻,用于控制电路的稳定性和电流;
5. 调试电路,确保计算器能够正确运行。

实验结果:
经过一番调试,我们成功制作出了一台简易计算器。

它可以进行基本的加减乘
除运算,并且在LED显示屏上显示结果。

通过按键输入数字和运算符,我们可
以进行各种运算,从而得到我们想要的结果。

这台计算器虽然简单,但是它的
实用性和便携性都非常高。

实验分析:
在本次实验中,我们主要学习了计算器的基本原理和工作原理。

计算器是通过
按键输入数字和运算符,然后经过电路的计算和控制,最终在显示屏上显示结果。

在电路中,电容和电阻的作用是为了保证电路的稳定性和电流的控制。


过这个实验,我们更加深入地了解了计算器的内部结构和工作原理。

实验总结:
通过本次实验,我们成功制作了一台简易计算器,并且对计算器的原理和工作
原理有了更深入的了解。

实验过程中,我们不仅提高了动手能力和创造力,还
培养了解决问题的能力。

计算器作为一种常见的工具,它的设计和制作过程并
不复杂,但是它的实用性和便携性却非常高,为我们的生活带来了很大的便利。

未来展望:
通过这次实验,我们对计算器的原理和工作原理有了初步的了解。

在未来,我
们可以进一步深入研究计算器的更高级功能和更复杂的电路设计。

同时,我们
也可以将这种简易计算器的设计思想应用到其他领域,如电子设备、机器人等,从而提高我们的创造力和创新能力。

结语:
通过本次实验,我们不仅学习了计算器的原理和工作原理,还提高了动手能力和创造力。

计算器作为一种常见的工具,它的设计和制作并不复杂,但是它的实用性和便携性却非常高。

希望通过这次实验,我们能够更加深入地了解计算器的内部结构和工作原理,为我们的生活带来更多的便利。

相关文档
最新文档