文档库 最新最全的文档下载
当前位置:文档库 › 简单计算器的汇编实现

简单计算器的汇编实现

简单计算器的汇编实现
简单计算器的汇编实现

微机原理实验报告

一、设计名称数字计算器的汇编语言实现

二、设计任务

利用8086微处理器,可编程并行通信接口芯片8255A等相关器件在proteus中设计仿真一个简单数字计算器,利用8086汇编语言编写完成加、减、乘、除、幂运算、阶乘运算、求余运算等功能,能实现键盘十进制运算表达式的输入和显示,按“=”后输出十进制表示的运算结果。

三、需求分析

(一)根据数据的输入要求对键盘(本实验中用4X5按钮阵来代替键盘)的数据读取及运算符号读取进行定义,根据8255A的相关性质对其进行编程实现,使每一个按钮对应一个十以内的整数或者某一个运算符号。

(二)根据8255A的输出性质,选择输出端口,对其进行编程,8255A为8086微处理器与外部设备之间提供并行输入/输出的通道。不用附加外部电路,并行接口是在多根数据线上,以数据字节/字与I/O设备交换信息。

(三)数据的显示有LED数码管显示,LED数码管有7个字符段和一个小数点段组成,每段对应一个二极管,当二极管点亮时,相应的的字符段点亮,可以进行数据的显示。

四、总体方案

首先利用程序不断扫描所设的按钮键盘是不是有输入,如果没有就一直扫描,如果有就调用子程序进行判断,是数值则进行存储并同时进行显示,是运算符号等就调用相应的子程序进行操作,操作后则继续利用程序不断扫描键盘是不是有输入,从而实现部分十进制数的加、减、乘、除、幂运算、阶乘运算、求最大公约数的运算。运算完成后根据程序将运算的结果储存到锁存器中并显示到

LED显示器上。

五、硬件设计

本次实验需要的元器件有:8086微处理器、可编程并行通信接口芯片8255A、输入输出锁存器74LS373、LED数码显示管、若干按钮组成的4X5矩阵按键、若干电阻、总线等。

1、8086微处理器

当引脚接高电平时,CPU工作于最小模式。此时,引脚信号24~31的含义及其功能如下:

(1)IO/M:存储器、I/O端口选择控制信号。信号指明当前CPU是选择访问存储器还是访问I/O端口。为高电平时访问存储器,表示当前要进行CPU与存储器之间的数据传送。为低电平时,访问I/O端口,表示当前要进行CPU与I/O端口之间的数据传送。

(2)WR:写信号,输出,低电平有效。信号有效时,表明CPU正在执行写总线周期,同时由信号决定是对存储器还是对I/O端口执行写操作。

(3)INTA:可屏蔽中断响应信号,输出,低电平有效。CPU通过信号对外设提出的可屏蔽中断请求做出响应。为低电平时,表示CPU已经响应外设的中断请求,即将执行中断服务程序。

(4)ALE:地址锁存允许信号,输出,高电平有效。CPU利用ALE信号可以把AD15~AD0地址/数据、A19/S6~A16/S3地址/状态线上的地址信息锁存在地址锁存器中。

(5)DT:数据发送/接收信号,输出,三态。DT/信号用来控制数据传送的方向。DT/为高电平时,CPU发送数据到存储器或I/O端口;DT/为低电平时,CPU接收来自存储器或I/O端口的数据。

(6)DEN:数据允许控制信号,输出,三态,低电平有效。信号用作总线收发器的选通控制信号。当为低电平时,表明CPU进行数据的读/写操作。

(7)HOLD:总线保持请求信号,输入,高电平有效。在DMA数据传送方式中,由总线控制器8237A发出一个高电平有效的总线请求信号,通过HOLD引脚输入到CPU,请求CPU让出总线控制权。

(8)HLDA:总线保持响应信号,输出,高电平有效。HLDA是与HOLD配合使用的联络信号。在HLDA有效期间,HLDA引脚输出一个高电平有效的响应信号,同时总线将处于浮空状态,CPU让出对总线的控制权,将其交付给申请使用总线的8237A 控制器使用,总线使用完后,会使HOLD信号变为低电平,CPU又重新获得对总线的控制权。

2、可编程并行通信接口芯片8255A

8255A可为8086微处理器与外部设备之间

提供并行输入/输出的通道。通过编程可以设置

芯片的工作方式,因此,用8255A连接外部设备

时,通常不用再附加外部电路。并行接口是在多

根数据线上,以数据字节/字与I/O设备交换信

息。

在输入过程中,输入设备把数据送给接口,

并且使状态线“输入准备好”有效。接口把数据

存放在“输入缓冲寄存器”中,同时使“输入回

答”线有效,作为对外设的响应。外设在收到这

个回答信号后,就撤消数据和“输入准备好”信

号。数据到达接口中后,接口会在“状态寄存器”

中设置输入准备好标志,或者向CPU发一个中断

请求。CPU可用查询方式或中断方式从接口中读

取数据。接口中的数据被读取后,接口会自动清

除状态寄存器中的标志,且撤消对CPU的中断请求。

在输出过程中,每当输出寄存器可以接收数据,接口就会将状态寄存器中“输出准备好”状态置1或向CPU发一个中断请求,CPU可用查询或中断方式向接口输出数据。当CPU输出的数据到达接口后,接口会清除“输出准备好”状态,把数据送往外设,并向外设发一个“数据输出准备好”信号。外设受到驱动后,便接收数据,并向接口电路发一个“输出回答”信号,接口收到该回答信号后,又将状态寄存器中“输出准备好”置位,以便CPU输出下一个数据。

定义工作方式控制字:

3、LED数码显示管

LED由7个字符段和一个小数点段组成,每段对应一个发光二极管,当发光二极管点亮时,相应的字符段点亮。LED有共阴极和共阳极两种供应状态。共阴极显示时,将LED显示的COM接地,将八个字符段端a、b、c、d、e、f、g、dp依次与一个8位I/O口的最低到最高位连接,当I/O给LED的哪个字符段送入一个高电平时,该段就被点亮,从而可从这7个字符段中被点亮的构成相应的字符显示出来。同理,COM阳极即将COM端接Vcc,其显示原理与COM阴极的基本相同,但I/O口送入低电平是相应的段才被点亮。

4、4×5矩阵按键

因为4×5矩阵键盘有9个管脚,于是将键盘的行接口接到8255A的PC口,列接口接到8255A的列接口。行键盘扫描一般要求有一部分的I/O口的工作方式是输入,另一部分I/O是输出,具体到4×5键盘则要求4个I/O口输入,另外4个输出,所以PC口接行。而PA、PB口要么全部输入或输出,所以PA口接列接口,而

所对应的键值=行数*5+列数,我们定义当键值在0~9之间时输入数据,当键值在10~16之间是分别实现加、减、乘、除、幂运算、阶乘、求余的运算,当键值为18时为等号,键值为19时为清零号。

(3)源代码

DATA SEGMENT X DB ?,?,?,?;存放数据的每一位X1DW ?;存放第一个数据值X2DW ?;存放第二个数据值Y DW ?;存放运算结果

S DB ?;存放运算符号值

E DB ?;按下等号键标记CC DB ?;存放运算数据位数H DB 0;存放按键行号L DB 0;存放按键列号

DISCODE DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H ;段码表DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,DATA

显示主界面,用户进行

输入

接受输入第一个十进

制数

接受输入运算符

接受输入第二个十进

制数

判断运算符号

调用运算功能模块

按下’=’键显示结果结束

MOV DS,AX

MOV AL,90H;设置为A口输入,B口输出,C口输出

OUT46H,AL

MOV DI,OFFSET X+3;DI指向X的高位KKK:CALL KEY;扫描按键

JMP KKK

;以下为按键扫描子程序,程序返回后,在变量H和L中存放当前按键的行列号

KEY PROC

CHECK:CALL DISP;等待按键按下的同时进行显示

MOV AL,0F0H;所有行输出低电平

OUT44H,AL

IN AL,40H

CMP AL,0FFH;读列值

JZ CHECK;若都为高电平则无键按下,等待

MOV CX,50

LOOP$;延时消抖

IN AL,DX;重读列值

CMP AL,0FFH

JZ CHECK;无键按下一直等待

MOV H,0;有键按下,先把行列号变量清0

MOV L,0

MOV BL,01H

MOV BH,0FEH;扫描法读键值:从第一行开始测试,即PC0输出低电平

NEXT:MOV AL,BH

OUT44H,AL

NEXTH:IN AL,40H;读列值,判断是第几列有键按下

TEST AL,BL;从第一列开始判断

JZ WAIT0

ROL BL,1

CMP BL,20H;当前行状态下没有任何列有键按下,则转为对下一行的测试

JZ NEXTL

INC H;每判断一列,列号加1

JMP NEXTH;再对下一列进行判断

NEXTL:MOV H,0

MOV BL,01H

ROL BH,1;对下一行测试,让下一个PC口输出低电平

CMP BH,0EFH

JZ EXIT

INC L

JMP NEXT

WAIT0:IN AL,40H;若有键按下,则等该按键松开后再

计算键值

CMP AL,0FFH

JNZ WAIT0

MOV CX,50

LOOP$;延时消抖

IN AL,40H

CMP AL,0FFH

JNZ WAIT0

CALL KEYVALUE;调计算键值子程序

EXIT:RET

KEY ENDP

;以下为计算键值子程序,通过行列号计算键值(键值=行号*5+列号)

;键值存放在DL寄存器中

KEYVALUE PROC

MOV DL,L

MOV DH,H

XOR AX,AX

MOV AL,5

MUL DL

MOV DL,AL;行号乘5

ADD DL,DH

CMP DL,9;按下的是数字键

JNG NUM_CALL

CMP DL,18

JL CONT_CALL;按下的是运算键

CMP DL,18

JZ OUTP_CALL;按下的是等于键

CMP DL,19

JZ CLR_CALL;按下的是清除键

NUM_CALL:CALL NUMBER;调数字键处理子程序

JMP EXIT1

CONT_CALL:MOV S,DL;存放运算键的键值

MOV E,0

CALL COUNT;调运算键处理子程序,计算第一个加数

JMP EXIT1

OUTP_CALL:CALL OUTP;调等号键处理子程序

JMP EXIT1

CLR_CALL:CALL CLEAR;调清除键处理子程序

EXIT1:RET

KEYVALUE ENDP

;以下为清除键处理子程序,按下清除键后,X变量全部清0

CLEAR PROC

MOV X[3],0

MOV X[2],0

MOV X[1],0

MOV X[0],0

CALL BITP

RET

CLEAR ENDP

;以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量

;并根据运算符号,调用相应的运算子程序

OUTP PROC

PUSH AX

PUSH DX

PUSH BX

INC E

CALL COUNT;调运算键处理子程序,计算第二个运算数据

CMP S,10

JZ ADD_CALL;运算符为加号,则调用加法子程序

CMP S,11

JZ SUB_CALL;运算符为减号,则调用减法子程序

CMP S,12

JZ MUL_CALL;运算符为乘号,则调用乘法子程序

CMP S,13

JZ DIVP_CALL;运算符为除号,则调用除法子程序

CMP S,14

JZ PF_CALL;运算符为求幂,则调用求幂子程序

CMP S,15

JZ JC_CALL;运算符为阶乘,则调用阶乘子程序

CMP S,16

CALL QYP;运算符为求余,则调用求余子程序ADD_CALL:CALL ADDP

JMP STORE1

SUB_CALL:CALL SUBP

JMP STORE1

MUL_CALL:CALL MULP

JMP STORE1

DIVP_CALL:CALL DIVP

JMP STORE1

PF_CALL:CALL PF

JMP STORE1

JC_CALL:CALL JCP

STORE1:MOV AX,Y

;以下程序将各运算子程序返回的运算结果,按位分解,送入X变量

CMP AX,0

JL CCC

MOV DX,0

MOV BX,1000

DIV BX

MOV X[0],AL

MOV AX,DX

JMP DDD

CCC:MOV X[0],73H

MOV AX,Y

NEG AX

DDD:MOV BL,100

DIV BL

MOV CX,Y

CMP CX,0

JNL EEE

CMP AL,0

JZ FFF

EEE:MOV X[1],AL

JMP GGG

FFF:MOV X[1],85H

GGG:MOV AL,AH

MOV AH,0

MOV BL,10

DIV BL

MOV CX,Y

CMP CX,0

JNL HHH

CMP AL,0

JZ III

HHH:MOV X[2],AL

JMP JJJ

III:MOV X[2],85H

JJJ:MOV X[3],AH

POP BX

POP DX

POP AX

RET

OUTP ENDP

;以下为运算键处理子程序,该程序将第一个运算数据的数值计算出来并存入X1变量

;或者将第二个运算数据的数值计算出来并存入X2变量

;将运算符的值存入S变量

COUNT PROC

PUSH AX

PUSH BX

PUSH DX

MOV DX,0

CALL BITP;测试X中的数据是多少位

CMP CC,4;输入的数据是4位数?

JZ C4

CMP CC,3;输入的数据是3位数?

JZ C3

CMP CC,2;输入的数据是2位数?

JZ C2

JMP C1;输入的数据是1位数?

C4:MOV AX,0

MOV AL,X[0]

MOV BX,1000

MUL BX

MOV DX,AX

C3:MOV AL,X[1]

MOV BL,100

MUL BL

ADD DX,AX

C2:MOV AL,X[2]

MOV BL,10

MUL BL

ADD DX,AX

C1:MOV AL,X[3]

MOV AH,0

ADD DX,AX

CMP E,1

JNZ X1_S

MOV X2,DX;按下的是等号,则将第二个运算数据的值存入X2变量

JMP EXIT3

X1_S:MOV X1,DX;按下的是运算符号,则将第一个运算数据的值存X1变量

MOV X[3],0;清空X变量

MOV X[2],0

MOV X[1],0

MOV X[0],0

EXIT3:POP DX

POP BX

POP AX

RET

COUNT ENDP

;以下为数字键处理子程序

;该程序,将输入的数据按位存放在X变量中,并由CC记录数据的位数NUMBER PROC

CMP E,1

JNZ CONTINUE

MOV E,0

CALL CLEAR

CONTINUE:CMP CC,0;目前数据为0位,即没有数据,则转到SSS

JZ SSS

;若已有数据,以下程序将X左移8位。

;例如:先输入“1”,当再输入2时,

;先要将“1”从个位移到十位,然后再将“2”存放到个位

PUSH AX

PUSH DX

MOV AL,X[3]

MOV AH,X[2]

MOV DL,X[1]

MOV DH,X[0]

MOV CX,8

LL:SHL AX,1

RCL DX,1

LOOP LL

MOV X[3],AL

MOV X[2],AH

MOV X[1],DL

MOV X[0],DH

POP DX

POP AX

SSS:MOV[DI],DL;将当前键入的数据存放到X的最低位

INC CC;数据位数加1

CMP CC,4;判断数据位数

JNG EXIT2

MOV CC,0;如果数据超过4位,重新从最低位开始存放

MOV X[2],0

MOV X[1],0

MOV X[0],0

EXIT2:CALL DISP;调显示子程序,显示输入的数据

RET

NUMBER ENDP

;加法子程序(文档由爱奇艺播放器https://www.wendangku.net/doc/c83621588.html,/分享)

ADDP PROC

PUSH AX

MOV AX,X1

ADD AX,X2

MOV Y,AX

POP AX

RET

ADDP ENDP

;减法子程序

SUBP PROC

PUSH AX

MOV AX,X1

SUB AX,X2

MOV Y,AX

POP AX

RET

SUBP ENDP

;乘法子程序

MULP PROC

PUSH AX

PUSH DX

MOV AX,X1

MOV DX,X2

MUL DX

MOV Y,AX

POP DX

POP AX

RET

MULP ENDP

;除法子程序

DIVP PROC

PUSH AX

PUSH BX

PUSH DX

MOV DX,0

MOV AX,X1

MOV BX,X2

DIV BX

MOV Y,AX

POP DX

POP BX

POP AX

RET

DIVP ENDP

;求幂子程序

PF PROC

PUSH AX

PUSH DX

PUSH CX

MOV CX,X2

MOV DX,X1

MOV AX,X1

DEC CX

LOP:MUL DX

MOV DX,X1

LOOP LOP

MOV Y,AX

POP CX

POP DX

POP AX

RET

PF ENDP

;阶乘子程序

JCP PROC

PUSH AX

PUSH BX

PUSH CX

MOV CX,X1

MOV AX,X1

MOV BX,AX

DEC BX

DEC CX

BEGIN:MUL BX

DEC BX

LOOP BEGIN

MOV Y,AX

POP CX

POP BX

POP AX

RET

JCP ENDP

;求余子程序

QYP PROC

PUSH AX

PUSH BX

PUSH DX

MOV DX,0

MOV AX,X1

MOV BX,X2

DIV BX

MOV Y,DX

POP DX

POP BX

POP AX

RET

QYP ENDP

;显示子程序,将X中的数值按位显示出来

DISP PROC

PUSH BX

PUSH AX

MOV BH,0

LEA SI,DISCODE

CALL BITP;测试X位数

CMP CC,4

JZ QIAN

CMP CC,3

JZ BAI

CMP CC,2

JZ SHI

CMP CC,1

JMP G

JMP NONE

QIAN:MOV AH,11100000B;从第4位开始显示MOV AL,AH

OUT44H,AL

MOV BL,X[0]

MOV AL,[SI+BX]

OUT42H,AL

CALL DELY

MOV AL,0

OUT42H,AL

BAI:MOV AH,11010000B;从第3位开始显示

MOV AL,AH

OUT44H,AL

MOV BL,X[1]

MOV AL,[SI+BX]

OUT42H,AL

CALL DELY

MOV AL,0

OUT42H,AL

SHI:MOV AH,10110000B;从第2位开始显示

MOV AL,AH

OUT44H,AL

MOV BL,X[2]

MOV AL,[SI+BX]

OUT42H,AL

CALL DELY

MOV AL,0

OUT42H,AL

G:MOV AH,01110000B;从第1位开始显示

MOV AL,AH

OUT44H,AL

MOV BL,X[3]

MOV AL,[SI+BX]

OUT42H,AL

CALL DELY

JMP EXIT4

NONE:MOV AL,0;X中没有数据,不显示

OUT42H,AL

EXIT4:POP AX

POP BX

RET

DISP ENDP

;分析数据位数子程序

BITP PROC

CMP X[0],0;如果X[0]不为0,则数据为4位数

JNZ FOURBIT

CMP X[1],0;如果X[1]不为0,则数据为3位数

JNZ THREEBIT

CMP X[2],0;如果X[2]不为0,则数据为2位数

JNZ TOWBIT

CMP X[3],0;如果X[3]不为0,则数据为1位数

JNZ ONEBIT

JMP ZER0BIT;否则,没有数据

FOURBIT:MOV CC,4

JMP EXIT5

THREEBIT:MOV CC,3

JMP EXIT5

TOWBIT:MOV CC,2

JMP EXIT5

ONEBIT:MOV CC,1

JMP EXIT5

ZER0BIT:MOV CC,0

EXIT5:RET

BITP ENDP

;延时子程序

DELY PROC

PUSH CX

MOV CX,100

LOOP$

POP CX

RET

DELY ENDP

CODE ENDS

END START

七、调试与测试

(1)任意四位十进制的加法。

输入X1=321;X2=567

(2)任意四位十进制的减法。

输入X1=321;X2=567

(3)任意四位十进制的乘法。

输入X1=21;X2=4

(4)任意四位十进制的除法。

输入X1=39;X2=3

(5)任意有效位十进制的求幂。

输入X1=3;X2=4

(6)任意有效位十进制的阶乘。

输入X1=4;

(7)任意有效位十进制的求余。

输入X1=9;X2=4

八、关键技术

(1)、通过按键扫描程序,来确定输入的字符类型(数字、运算符、等号、清除),并通过判断语句将输入存入相应的位置;

(2)、一般减法无法将小数减大数的结果正确显示,本设计通过部分关键子程序可以实现负数的显示;

(3)、在完成各项功能时应确保各个子程序模块的协调调用,互不影响。

九、实际完成的功能

(1)加法功能

当输入X1、X2和加法运算符时,进行加法子程序调用,完成加法功能。

(2)减法功能

1、当输入X1>=X2时,输入乘法运算符,实现X1-X2的运算,完成减法功能,将结果输出。

2、当输入X1

(3)乘法功能

当输入X1、X2和乘法运算符时,调用乘法子程序,完成乘法功能,并对结果进行输出。

(4)除法功能

当输入X1、X2且满足X1大于X2,X1为X2(X2!=0)的整数倍时,输入除法运算符,调用除法子程序,完成除法功能,并对结果进行输出。(注意:若不能整除,则结果只显示商的整数部分。

(5)幂运算功能

当输入X1、X2、幂运算符时,调用幂运算子程序,完成X1的X2次幂的运算,并对结果进行输出。

(6)阶乘运算功能

当输入X1和阶乘运算符时,调用阶乘运算子程序,完成X1的阶乘运算,并对结果进行输出。

(7)求余运算功能

当输入X1、求余运算符和X2时,调用求余运算子程序,完成求余功能,并对结果进行输出。

(8)清除功能

当按下清除键时,将数据清零。

十、总结

1、任务分工

高康:主要负责部分代码的编写和实验报告的完成

姜达:主要负责部分代码的编写和总体的调试与测试

李晓辉:主要负责部分代码的编写和相关资料的收集

2、遇到的问题及解决方法

(1)、问题:按键的扩展。最初考虑扩展时,增加一行按键,但由于C 口为输出,且PC4、PC5、PC6、PC7控制数码管的输出位数,因此

不能正常进行按键扫描。

解决方法:增加一列按键,通过A口控制,实现了4X5的按键功能

扩展。

(2)、问题:在实现负数的输出时,若为一位负数,百位和十位的0会显示(如为-1,则输出为-001)。

解决方法:对输出部分子程序进行修改,加入判断语句,需要注意

的是,在修改过程中必须有清晰的思路,否则会比较混乱。

3、未解决的问题

简易计算器的实现(JSP)

用JSP编写的一个简易计算器实现代码如下: <%@ page contentType="text/html;charset=gb2312"%>

简易计算器


<% //接收第一个数 String num1=request.getParameter("numb1"); //接收第二个数 String num2=request.getParameter("numb2");

//接收运算符号 String oper=request.getParameter("op"); Double dnum1=0.0; Double dnum2=0.0; Double result=0.0; //java中String -> int if(num1!=null&&num2!=null&&oper!=null) { dnum1=Double.parseDouble(num1); dnum2=Double.parseDouble(num2); //计算 if(oper.equals("+")) { //加 result=dnum1+dnum2; } else if(oper.equals("-")) { //减 result=dnum1-dnum2; } else if(oper.equals("×")) { //乘 result=dnum1*dnum2; } else { //除 result=dnum1/dnum2; } } %>

请输入第一个数: 请输入第二个数: 请选择运算符:

简易计算器的设计与实现

沈阳航空航天大学 课程设计报告 课程设计名称:单片机系统综合课程设计课程设计题目:简易计算器的设计与实现 院(系): 专业: 班级: 学号: 姓名: 指导教师: 完成日期:

沈阳航空航天大学课程设计报告 目录 第1章总体设计方案 (1) 1.1设计内容 (1) 1.2设计原理 (1) 1.3设计思路 (2) 1.4实验环境 (2) 第2章详细设计方案 (3) 2.1硬件电路设计 (3) 2.2主程序设计 (7) 2.2功能模块的设计与实现 (8) 第3章结果测试及分析 (11) 3.1结果测试 (11) 3.2结果分析 (11) 参考文献 (12) 附录1 元件清单 (13) 附录2 总电路图 (14) 附录3 程序代码 (15)

第1章总体设计方案 1.1 设计内容 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除1位无符号数字的简单四则运算,并在6位8段数码管上显示相应的结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的8751单片机,输入采用4×4矩阵键盘。显示采用6位8段共阳极数码管动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,最终选用汇编语言进行编程,并用protel99se涉及硬件电路。 1.2 设计原理 在该课程设计中,主要用到一个8751芯片和串接的共阳数码管,和一组阵列式键盘。作为该设计的主要部分,下面将对它们的原理及功能做详细介绍和说明。 1)提出方案 以8751为核心,和数码管以及键盘用实验箱上已有的器件实现计算器的功能。 2) 总体方案实现 (1)要解决键值得读入。先向键盘的全部列线送低电平,在检测键盘的行线,如果有一行为低电平,说明可能有按键按下,则程序转入抖动检测---就是延时10ms再读键盘的行线,如读得的数据与第一次的相同,说明真的有按键按下,程序转入确认哪一键按下的程序,该程序是依次向键盘的列线送低电平,然后读键盘的行线,如果读的值与第一次相同就停止读,此时就会的到键盘的行码与列码

用计算器计算

用计算器计算 用计算器计算教学内容:用计算器计算教材第113 页例4 ,练习二十六8 - 12 题与13*。 教学目的:使学生掌握用计算器计算小数加、减的计算方法,能正确地用计算器进行小数加、减法的计算。教学重、难点:用计算器计算小数加、减法的计算方法。熟悉键盘和数据的录入的方法。教学过程 一、复习准备1.用计算器计算。 1234 + 3649 = 7208 - 376 = 1845 + 365 = 1452 - 786 = 649 + 9818 = 7000 - 2047 = 2.提问:用计算器计算整数加、减法时,你是怎么操作的?说说你的计算方法。 二、揭示课题以前,我们学习了用计算器计算整数加、减法,掌握了它们的计算方法,那么用计算器计算小数加、减又是怎样计算的呢?这节课我们就来学习这个内容。 板书课题:用计算器计算小数加、减法 三、教学新课 1 .让学生看例4 上面的图和一段话,在计算器上找到小数点键,了解用计算器计算小数加、减法的方法。 2.教学例4 用计算器计算18.7 + 3.96 。 (1)清屏,键入“ 18.7 ”。(注意:有没有显示小数点)(2)对照表中的按键过程录入。(注意显示器的显示内容)(3)核对计

算结果。 (4)说明:以后遇到比较复杂的计算可以使用计算器。 3.补充例题:用珠算计算25.4 +13.58 +43.12 (1)让学生试着用计算器计算。 (2)说一说用计算器计算的操作过程和方法。 四、尝试练习练习二十六的第8 题。 五、巩固练习 1.练习二十六的第9 题。 (1)让学生说说表的意思? (2)用什么方法可计算出9月2日的结存金额?为什么? (3)以下各栏的结存金额该怎样计算?为什么? (4)本月合计栏该怎样填?让学生完成本题。2.练习二十六的第12 题。 (1)地球表面除了陆地就是什么? (2)怎样求海洋的面积? (3)怎样求海洋面积比陆地面积多多少亿平方千米? 5.1 - 1.49 - 1.49 =3.61 - 1.49 =2.12 (亿平方千米) 3.练习二十六的第13* 题。 (1)“a - 34.6 + 7.2 ”与“ a - 34.6 + 72 ”中的a 是否相同?

HTML5+css+JavaScript进行四则运算简易计算器(用按钮实现)

HTML5+JavaScript: js简易计算器

/* 动画所用图片元素,可自行更换*/

1小数用计算器计算教案+反思

用计算器计算 [教学内容] 四年级上册第100~101页例1,“试一试”和“想想做做”。 [教学目标] 1.使学生在具体的活动中了解计算器的结构和基本功能,能正确地运用计算器进行较大数目的一、两步式题的计算。 2.能用计算器探索一些基本的教学规律、解决一些简单的实际问题。初步感受应根据计算的需要灵活确定不同的计算方式。 3.是学生体验用计算器进行计算的优点,进一步培养对数学学习的兴趣,感受用计算器计算在人类生活和工作中的价值。 [教学重点] 使学生了解计算器的基本功能,会使用计算器进行大数目的计算。 [教学难点] 使学生通过计算探索发现一些简单的数学规律。 [教学过程] 一、小组合作,认识计算器。 1、谈话:同学们对计算器熟悉吗?今天我们就来探讨计算器的有关知识。 小组交流: (1)在哪见到过计算器?已经了解计算器的哪些知识? (2)计算器的外部特征、构造及基本功能? (3)计算器主要键的作用、功能及操作方法? 2、学生汇报、操作: (1)对以上问题进行汇报。 (2)学生尝试开机、关机。 (3)同桌互相说一说自己已经了解的按键的作用,并可以动手试一试。 二、自主探索,会用计算器。 1、小试牛刀。 谈话:我们对计算器已经有了一些认识,下面就让我们尝试用它去计算吧。 投影出示:计算下面各题。 38+27= 30×18= 3028-2965= 41600÷128= 816÷68×27= 126×7÷18= 交流计算结果,并介绍操作过程。主要让学生感受计算的顺序。同级运算的

两步计算题,根据运算顺序从左往右,直接按键算出结果。 小结:通过你刚才的操作,你能说说使用计算器计算有哪些优点吗? (速度快、正确率高等) 2、龟兔赛跑。 谈话:现在我们使用计算器已经比较熟练了,接下来男、女生来场比赛怎么样?男生用计算器计算,女生不能使用计算器。 电脑出示: 125×8×7= 669+75+125= 32÷4= 36×99≈ 学生谈谈比赛感想。 小结:一般在进行比较复杂的计算时使用计算器,像一些能口算、估算或简便计算的题目,不需要使用计算器计算,要灵活选择计算工具和方法。 三、联系生活,乐用计算器。 有一个没有关紧的水龙头。 (1)每天大约滴水16千克,照这样计算,一年(按365天计算)要浪费()千克水。 (2)把这些水装入饮水桶,若每桶装25千克,需要()只这样的桶。 16×365=5840(千克) 5840÷25≈234(只) 谈话:看到这些数据,同学们有没有什么想说的? 仅仅一个水龙头没有关紧,一年就要浪费那么多水,所以,请大家一定要节约用水,并请大家说说节约用水的妙招,如:洗衣服的水可以用来冲马桶,洗碗时要用盆接水等等。 四、探索规律,巧用计算器。 1、谈话:数学中存在很多有趣的现象,现在我们就用手中的计算器来探索一下。 142857×1= 142857×4= 142857×2= 142857×5= 142857×3= 142857×6= 提问:先用计算器计算出上面各题的积,再找找有什么规律。 2、谈话:今天同学们表现太出色了,可是老师这还有一道既有趣又有难度的题目,不知你们有没有信心解决呢? 计算: 111111111×111111111

C语言简易计算器的实现

目录 一.课程设计目的 (1) 二.设计环境 (1) 三.设计内容 (1) 四.设计说明 (2) 五.设计程序流程图 (2) 六.调试 (4) (1)错误原因分析一 (4) (2)语法错误 (5) (3)逻辑错误 (5) 七. 调试结果图 (6) 八. 结论与心得体会 (7) 九.附录 (8) 具体代码实现 (8) 十.参考文献 (18)

一.课程设计目的 1.通过一个学期的学习,我认为要学号C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践来巩固我 们的知识,特别是学计算机专业的,我们更应该注重这一环节, 只有这样我们才能成为一个合格的计算机人才。通过这一个课程 设计,进一步来巩固所学的语句,如:循环,和分支结构的运用。还要熟悉四则运算和函数的算法。 2.通过这次课程设计扩展自己的知识面,课本上的东西是远 远不够的,可以通过上网或去图书馆查资料等方式得到一些新的 知识, 3.通过课程设计,加深对课程化设计思想的理解,能进行一 个系统功能分析,并设计一个合理的模块化结构,提高程序开发 能力。 二.设计环境 1.硬件:一台完整的电脑,包括键盘、鼠标,最小硬盘空间1GHz 2.软件:安装有Microsoft visual c++6.0 三.设计内容 以简易计算器为例,通过对简单应用软件计算器的设计,编制、调试,实现

简单的加,减,乘,除等运算,以学习应用MFC库类编写对话框的原理,加深对C++类的学习及应用。 (1)定义一个结构体类型数组,输入0~9及+、--、*等符号的信息,将其信息存入文件中; (2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果; (3)画出部分模块的流程图; (4)编写代码; (5)程序分析与调试。 四.设计说明 1)包含的功能有:加、减、乘、除运算,开方、平方等功能。 (2)计算器上数字0—9为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。 (3)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。 (4)计算功能基本上是用系统内部函数。 (5)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。 (6)“CE”按钮可以清除所有已输入的数据从头计算 五.设计程序流程图

沪教版三年级下册数学4.4使用计算器计算教案 (2)

使用计算器计算 教学目标: 1.知识目标: 能够使用简单计算器进行较大数的加、减、乘、除等基本的一步运算。能够使用计算器对计算结果进行验算。 2.能力目标: 使用计算器探究一些数学规律,发现一些有规律的数的计算,丰富学生的数感。会借助计算器来解决简单的实际问题。 3.情感目标: 让学生体验使用计算器进行计算的方便与快捷,感受计算器在人们生活和工作中的价值。增强学生的环保意识。 教学重点: 能够使用简单计算器进行较大数的加、减、乘、除等基本的一步运算。 教学难点: 使用计算器探究一些数学规律,发现一些有规律的数的计算,丰富学生的数感。 教学过程: 一、比赛引入 1. 师生比赛。 (出示P52第5题)老师用计算器计算,你们用笔计算。我和你们比一比,谁算得最快最准。 (也许学生会说这不公平,比赛停止。) 2. 引入课题。 今天我们就来学习使用计算器计算。 【说明:设计“比赛”这个教学内容,可以让学生体验使用计算器进行计算的方便与快捷,进一步培养学生学习数学的兴趣,感受计算器的作用与价值。】 二、体验探究 1. 你们已经知道了哪些有关计算器的知识?(学生各抒己见。)

2. 分组探究。 四人一组,合作完成P51题1和题2。 3. 反馈解疑。 你是怎样使用计算器计算“2587+9604”? 你是怎样使用计算器计算“80738-31927”? 使用计算器计算时要注意什么?(每次计算前要清0;不能按错键。) 你们小组还有什么疑问? 4. 集体小结。 使用计算器计算一步式题时,只要按照算式中从左到右的顺序依次按键,就能够得到正确的结果。 【说明:计算器作为计算工具,对学生来说并不陌生。学生在前一课时已经认识了计算器,在现实生活中,他们对计算器也有着不同程度的了解,有的学生甚至已经能熟练操作了。因此,应从尊重他们的生活经验和认知基础出发,让他们说说自己已经知道了哪些有关计算器的知识,然后引导学生通过自学教材、组内互助以及教师解疑等活动,进一步完善学生已有的认知结构,从而掌握正确操作和使用计算器的方法。】 三、巩固练习 1. P51题3。 用计算器计算。(同桌核对) 如果两人的计算结果不一致,你们是怎样判断谁对谁错的呢?(重新计算;用加减法之间的关系验算。) 2. P52题6。 你们会使用计算器进行乘除法运算吗?说说操作顺序。 每人选乘法和除法式题各一道,先用竖式计算,再用计算器检验。 3. P52题5。 刚才的比赛怎样比才算公平?(都可以使用计算器) 比一比,赛一赛,看谁做得又快又准。 【说明:在学生掌握了使用计算器计算的基本方法后,采用多种教学形式,让学生进行巩固练习,锻炼了学生正确、快速使用计算器进行计算的能力,并会使用计算器对计算结果进行两种方法的验算。】

使用js,css,html做的web版的计算器

jsq.html