计算器键盘按键显示

计算器键盘按键显示
计算器键盘按键显示

计算器键盘按键显示

摘要

为了满足利用AT89C51单片机结合12864LCD显示器设计计算器4*4键盘按键的要求,我设计了利用AT89C51控制整个电路显示12864LCD显示器设计计算器键盘按键的系统。系统主要包括硬件和软件两部分。其中包括各模块的器件选择和电路设计。将计算器按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显示于12864LCD液晶显示屏上,包含复位、定时电路。通过在proteus和keil仿真软件联合仿真环境下,系统达到了通过按键显示计算器键盘按键的需求,12864LCD 精准的显示了按键信息,达到了目的。

关键字:计算器键盘、液晶显示屏、按键、复位、定时

一、系统方案论证与选择

根据题目要求,系统可以分为定时电路模块、复位电路模块、液晶显示电路模块、键盘模块、控制电路模块,控制电路是以AT89C51为主控芯片,其他电路模块都是由控制电路模块AT89C51芯片进行控制。

如图1,为系统总电路模块框图。

定时

图1 系统总框图

1.1系统基本方案论证

为实现各模块的功能,分别论证了几种不同的设计方案并进行了讨论,并且就各方案的优缺点进行了方案选择。

1.1.1液晶显示电路的选择

方案一:选用LCD1602液晶显示器,LCD1602是字符型的模组,为16字乘2行字符型。但只能显示数字与字符,不可以显示汉字。不能显示出题目目的的汉字字符。

方案二:选用LCD12864液晶显示器,12864屏幕为64行,每行显示128个字符,是点阵型显示器。可根据需求任意显示字符、数字 、汉字、图形,LCD12864

是图形型的模组。显示器控制器接口信号说明如表1所示。

表1 控制器借口信号说明

RS R/W 功能说明

L L MPU写指令到IR

L H 读出BF及AC状态

H L MPU写数据到DR

H H MPU从DR读出数据

综上所述,配合我的AT89C51控制系统和液晶显示系统,我选择方案二,达到了我需要显示汉字、符号、数字的要求。

1.1.2控制电路的选择

方案一:选用PIC、或AVR、或凌阳SPCE061A等作为控制核心;这些单片机资源丰富,可以实现复杂的逻辑功能,功能强大,完全可以实现对小车的控制。但对于本题目而言,其优势资源无法得以体现,且成本稍高。

方案二:采用AT89C5高速单片机来作为整机的控制单元。AT89C51与MCS-51 兼容;4K字节可编程闪烁存储器;寿命:1000写/擦循环;数据保留时间:10年;全静态工作:0Hz-24MHz;三级程序存储器锁定;128×8位内部RAM;32可编程I/O线;两个16位定时器/计数器;5个中断源;可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。此系统比较灵活,采用软件方法来解决复杂的硬件电路部分,使系统硬件简洁化,各类功能易于实现,能很好地满足实际的需要。

综上所述,配合循迹探测系统,我们选择采用方案二,达到了用软件方法解决硬件电路系统的目的。

1.2系统各模块的最终方案

经过仔细分析和论证,决定了系统各模块的最终方案如下:

(1)液晶显示模块:采用LCD12864为系统显示器

(2)控制模块:采用AT89C51单片机

二、系统的硬件设计与实现

2.1系统硬件的基本组成部分

通过AT89C51芯片PO口与键盘相接,键盘中的键就是一个行列开关,该开关位于行列的交点处,通过按下某个键,该交点的行线和列线联通,相应的行列电平发生变化,从而可以确定按下的功能键。读取P0的值就可以确定按键,再由AT89C51芯片读取按键的值通过P1口和P2口显示在LCD12864上,每显示一个按键值LS1发出声音。接P3.7口,判断键盘是否按下,一旦键盘某个键按下,此元件会发出声音。如图2,为系统总体电路图。

图2 系统总电路图

2.2 主要单元电路的设计

2.2.1时钟电路

时钟电路由AT89S51得18、19引脚的时钟端(XTL1及ATAL 2)以及12MHZ 晶振、47pF的电容C1、C2组成,采用片内振荡方式。其时间周期为1/12us,机

器周期为1s。单片机的外部晶振电路如图3所示。AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成振荡器。振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平。

图3 时钟电路图

2.2.2 复位电路

复位电路采用简单的上位电路,由1K电阻及22uF电容接至 AT89S52的RST 复位端电阻给电容充电,电容的电压缓慢上升直到vcc,没到vcc时芯片复位脚近似低电平,于是芯片复位,接近vcc时芯片复位脚近高电平,于是芯片停止复位,复位完成。按键后电容器被短路放电、RST直接和VCC相连,就是高电平,此时进入“复位状态”。松手后电源开始对电容器充电,此时,充电电流在电阻上,形成高电平送到RST,仍然是“复位状态”,稍后,充电结束,电流降为0,电阻上的电压也将为0,RST降为低电平,开始正常工作。

如图4 ,为复位电路截图。

图4复位电路图

2.2.3 按键电路

键盘电路的设计原理首先行列式键盘中的键实际上就是一个机械开关,该开关位于行线和列线的交点处,通过按键加以连接。当按下某个键时,该交点的行线和列线接通,相应行线或列线上的的电平发生变化,从而可以确定被按下的功能键其次运用线翻转法判断有无键按下:键盘的高4位用于列控制,低4位用于行控制,并将全部行线Y0~Y3置低电平,然后再检查列线电平的状态。只要其中有一列电平为低,则表示右键按下,并且被按下的键位于低电平和4根行线交叉的某一个按键中。

如图5,为4*4按键电路图。

图5 4*4按键电路图

三、系统软件设计

3.1主程序流程图

如图6,为系统主流程图,程序开始启动显示器,单片机判断是否有按键按下,如果有进行按键扫描,否则一直进行检测直到按键按下。

3.2 按键操作子函数流程图

当按键程序启动的时候,通过扫描按键,判断有误按键按下,如果有按键按下,则进行数据处理、显示处理,否则一直判断是否有按键按下。

如图7,为按键操作流程图。

Ke

图7 按键操作流程图

四、系统测试

4.1测试仪器

表2 测试使用的仪器设备

序号名称、型号、规格数量备注

1 UNI-T数字万用表 1

2 秒表精度0.01s 1

4.2指标测试

4.2.1 硬件调试

硬件调试分为静态调试和动态调试,对于硬件调试而言,只要认真焊接,硬件一般不会出现什么问题的。静态调试一般采用的工具是万用表,它是在用户系统未工作时的一种硬件检测。动态调试是在用户系统工作的情况下发现和排查错误的一种硬件检测。调试步骤是:首先把电路分为若干模块,调试过程中与该模块无关的元件可以不加考虑,这样可把故障限定在一定的范围内;故障清除后,把各个模块合在一起进行联调,即可完成整个硬件调试工作。

4.2.2 软件调试

软件调试是通过对程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。

调试过程:1、代码录入完成进行调试。

2、在Keil uVision3中检测查找错误。

3、检测过程中总是有一处错误无法解决。

4、最后把原程序分开逐个调试,检查每段程序的错误,修正每个代码错误。

5、这种分开调试方法的效率还是很不错的,经过几次修改就完成了程序的调试,运行结果没有错误,电路显示也完全正确。

4.2.3 软硬件调试

软硬件联调是指把调试无误的软件程序烧制进单片机芯片内部,通上电源后,检查硬件工作是否有预期的效果,如果没有则需要检测软件是否在实现功能上有欠缺。若有错误,通过改写软件来调试,直至达到预期效果,则设计圆满成功。

参考文献

[1]范立南,谢子殿等.单片机原理及应用教程[M].

北京大学出版社

[2] 马忠梅,籍顺心,张凯等.单片机的C语言应用程序设计[M].

北京航空航天大学出版社,2006.

[3] 张毅刚,彭喜元,董继成.《单片机原理及应用》

高等教育出版社,2003.

[4] 谭浩强《C语言程序设计(第二版)》

清华大学出版社 1999年12月第二版 2005年1月第58次印刷

[5] 王丽娟,徐军,戴宝华,荣政《C程序设计》

西安电子科技大学出版社 2003年6月第五版 2000年8月出版

[6]彭伟《单片机C语言程序设计实训100例》

电子工业出版社 2012年6月第六次印刷

附录1:程序代码

//12864LCD显示计算器键盘按键实验源代码

#include

#include

#define uchar unsigned char

#define uint unsigned int

//定义DotMatri.c 中的点阵,数字,符号等编码

extern uchar code Word_String[][32];

extern uchar code Keyboard_Chars[][16];

extern uchar code KeyPosTable[];

extern uchar KeyScan();// keypad.c中的键盘扫描函数

//定义在LCP_12864.c中的相关液晶显示函数

extern LCD_Initialize();

void Display_A_Char(uchar,uchar,uchar*);

void Display_A_WORD(uchar,uchar,uchar*);

void Display_A_WORD_String(uchar,uchar,uchar,uchar*); //键盘扫描开启标志,其值由外部中断0控制

bit KeyPressDown = 0;

uchar T_Count = 0;

sbit SPK = P3^7;

//Keybord_Chars中数字与符号编码与键盘按键对照表

uchar code KeyPosTable[]=

{

7,8,9,10,

4,5,6,11,

1,2,3,12,

15,0,14,13

};

//蜂鸣器发声

void Beep()

{

uchar i,x=20;

while (x--)

{

for(i=0;i<120;i++); SPK=~SPK;

}

}

//主程序

void main()

{

uchar i;

LCD_Initialize(); //初始化LCD

for (i=0;i<7;i++) //从第一页开始,左边距16点,显示7个16*16点阵的中文提示信息

Display_A_WORD_String (1,16*(i+1),1,Word_String[i]);

P1=0x0f;

IE=0x83; //允许外部0和定时器0中断

IT0=1; //设为下降沿中断方式,外部中断0用于启停键盘扫描处理

TH0=(65536-5000)/256;//50ms定时

TL0=(65536-5000)%256;

while(1)

{

//如果有按键按下则处理按键

if(KeyPressDown==1)

{

Beep();

KeyPressDown=0;

Display_A_Char(4,55,Keyboard_Chars

[KeyPosTable[KeyScan()] ]);

TR0=0;

}

}

}

//外部中断0控制消抖延时

void EX0_INT() interrupt 0

{

TR0=1;//开启定时器0,延时300ms消抖

}

//定时器用于消抖并确认有键按下,启动主程序中的按键扫描

void T0_INT() interrupt 1

{

if(++T_Count==6) //50*6=300ms延时抖动{

T_Count=0;

KeyPressDown=1; //确定有键按下

}

TH0=(65526-50000)/256; //50ms定时

TL0=(65526-50000)%256;

}

//---------------------------------------------LCD_12864.C----------------------------------------------

//名称:12864LCD显示驱动程序(不带字库)

//---------------------------------------------------------------------------------------------------------

#include

#include

#define uchar unsigned char

#define uint unsigned int

#define LCD_DB_PORT P0 //液晶DB0~DB7

#define LCD_START_ROW 0xC0 //起始行

#define LCD_PAGE 0xB8 //页指令

#define LCD_COL 0x40 //列指令

//液晶引脚定义

sbit DI=P2^0;

sbit RW=P2^1;

sbit E=P2^2;

sbit CS1=P2^3;

sbit CS2=P2^4;

sbit RST=P2^5;

//检查LCD是否忙

bit LCD_Check_Busy()

{

LCD_DB_PORT=0xFF;

RW=1;_nop_();DI=0;

E=1;_nop_();E=0;

return (bit)(P0 & 0X80);

}

//向LCD发送命令

void LCD_Write_Command(uchar c)

{

while (LCD_Check_Busy());

LCD_DB_PORT=0xFF;RW=0;_nop_();DI=0;

LCD_DB_PORT=c;E=1;_nop_();E=0;

}

//向LCD发送数据

void LCD_Write_Data(uchar d )

{

while (LCD_Check_Busy());

LCD_DB_PORT=0xFF;RW=0;_nop_();DI=1;

LCD_DB_PORT=d; E=1;_nop_();E=0;

}

//初始化LCD

void LCD_Initialize()

{

CS1=1; CS2=1;

LCD_Write_Command(0x38); //8位形式,2行字符

LCD_Write_Command(0x0F); //开显示

LCD_Write_Command(0x01); //清屏

LCD_Write_Command(0x06); //画面不动光标右移

LCD_Write_Command(LCD_START_ROW); //设置起始行

}

//通用显示函数

//从第P页第L列开始显示W字节数据,数据在r所指向的缓冲

//每字节8位是垂直显示的,高位在下,低位在上

//每个8*128的矩形区域为一页(每页分左半页与右半页)

//整个LCD又由64*64的左半习工和64*64的右半屏构成

void Common_Show(uchar P,uchar L,uchar W,uchar *r)

{

uchar i;

if(L<64) //显示在左半屏或右半屏

{

CS1=1;CS2=0;

LCD_Write_Command(LCD_PAGE+P);

LCD_Write_Command(LCD_COL+L);

if(L+W<64) //全部显示在左半屏

{

for(i=0;i

}

else //如果越界则跨越左右半屏显示

{

for(i=0;i<64-L;i++) LCD_Write_Data(r[i]); //左半屏显示

CS1=0; CS2=1; //右半屏显示

LCD_Write_Command(LCD_PAGE+P);

LCD_Write_Command(LCD_COL);

for(i=64-L;i

}

}

else //全部显示在右半屏

{

CS1=0;CS2=1;

LCD_Write_Command(LCD_PAGE+P);

LCD_Write_Command(LCD_COL+L-64);

for(i=0;i

}

}

//显示一个8*16点阵字符(字符上半部分与下半部分分别处在相邻两页中) void Display_A_Uchar(uchar P,uchar L,uchar *M)

{

Common_Show(P,L,8,M);

Common_Show(P+1,L,8,M+8);

}

//显示一个16*16点阵汉字(汉字上半部分与下半部分分别处在相邻两页中)void Display_A_WORD(uchar P,uchar L,uchar *M)

{

Common_Show(P,L,16,M); //显示汉字上半部分

Common_Show(P+1,L,16,M+16); //显示汉字下半部分

}

//显示一串16*16点阵汉字

void Display_A_WORD_String(uchar P,uchar L,uchar C,uchar *M)

{

uchar i;

for (i=0;i

Display_A_WORD(P,L+i*16,M+i*32);

}

//-------------------------------DotMatrix.c--------------------------

//本例中相关汉字与数字的点阵编码

//--------------------------------------------------------------------#define uchar unsigned char

#define uint unsigned int

//中文提示(16*16点阵)

uchar code Word_String[][32]=

{

{

0x10,0x28,0xE7,0x24,0x24,0xC2,0xB2,0x8E,0x10,0x54,0x54,0xFF,0x54, 0x7C,0x10,0x00,

0x01,0x01,0x7F,0x21,0x51,0x24,0x18,0x27,0x48,0x89,0x89,0xFF,0x89, 0xCD,0x48,0x00

},

{

0x20,0x20,0x20,0xFE,0x22,0x22,0xAB,0x32,0x22,0x22,0x22,0xFF,0x22, 0x30,0x20,0x00,

0x40,0x42,0x7D,0x44,0x44,0x7C,0x44,0x45,0x44,0x7D,0x46,0x45,0x7C, 0x40,0x40,0x00

}

};

//键盘数字与符号点阵(8*16点阵)

uchar code Keyboard_Char[][16]=

{

{0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20 ,0x10,0x0f,0x00},

{0x00,0x00,0x00,0x00,0x80,0x60,0x18,0x04,0x00,0x60,0x18,0x60,0x01 ,0x00,0x00,0x00},

{0x40,0x40,0x80,0xF0,0x80,0x40,0x40,0x00,0x02,0x02,0x01,0x0f,0x01 ,0x01,0x01,0x01},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0x01 ,0x01,0x01,0x01},

{0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0x00,0x01,0x01,0x01,0X1F,0x01 ,0x01,0x01,0x00},

{0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00,0x04,0x04,0x04,0x04 ,0x04,0x04,0x00},

{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00},

};

//-------------------------KeyPad.c-------------------------

//键盘扫描程序

#include

#define uchar unsigned char

#define uint unsigned int

//扫描键盘时发送到0~3列上的扫描

uchar KeyboardScanCode[4]={0xEF,0xDF,0xBF,0x7F};

//扫描键盘并返回按键在键盘上的位置序号

uchar KeyScan ()

{

uchar Row=0,Col=0,Temp;

EX0=0; //防抖关闭

for(Col=0;Col<4;Col++) //扫描各列

{

P1=KeyboardScanCode[Col]; //输出扫描位

Temp=P1 & 0x0F; //读取扫描位

if(Temp!=0x0F)

{

switch(Temp) //判断第i列是否有按键下

{

case 0x0E: Row=0;break;//得到对应的行号

case 0x0D: Row=1;break;

case 0x0B: Row=2;break;

case 0x07: Row=3;break;

}

break;

}

}

P1=0x0F;

EX0=1; //重新许可按键中断

return Row*4+Col; //返回按键位置序号0~15

}

附录2、 电路原理图

D0D1D2D3D4D5D6D7D 0D 1D 2D 3D 4D 5D 6D 7

DI R W E RST

CS1CS2C S 1C S 2

D I R W

E D 0D 1D 2D 3D 4D 5D 6D 7R S T XTAL218

XTAL1

19

ALE 30EA

31

PSEN 29RST

9

P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78

P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD

17

P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1

AT89C51

234567891

RP1

RESPACK-8

LS1

SOUNDER

C S 11C S 22G N

D 3V C C 4V 05D I 6R /W 7

E 8D B 09D B 110D B 211D B 312D B 413D B 514D B 615D B 716R S T 17-V o u t

18

LCD1

LGM12641BS1R

1

2365489=

7+

C

ON

A

B

C

D

1

2

4

3

A B C 2

3

4D 1

U2

AND_4

A

INT0

B C

D INT0

A B C D 1234

C1

22PF

C2

22PF

C3

10uF

X1

12M

R1

10k

电脑计算器里面的“科学型”的里面所有的按键的功能

下表描述了计算器的功能: 按钮功能 % 按百分比的形式显示乘积结果。输入一个数,单击“*”,输入第二个数,然后单击“%”。例如, 50 * 25% 将显示为12.5。也可执行带百分数的运算。输入一个数,单击运算符(“+”、“-”、“*” 或“/”),输入第二个数,单击“%”,然后单击“=”。例如,50 + 25%(指的是50 的25%) = 62.5。 ( 开始括号的新层。当前的层数显示在“)”按钮上方的框中。括号的最多层数为25。 ) 结束括号的当前层。 * 乘法。 + 加法。 +/- 改变显示数字的符号。 - 减法。 . 插入小数点。 / 除法。 0–9 将此数字置于计算器的显示区。 1/x 计算显示数字的倒数。 = 对上两个数字执行任意运算。若要重复上一次的运算,请再次单击“=”。 A–F 在数值中输入选中字母。只有在十六进制模式为开启状态时该按钮才可用。 And 计算按位AND。逻辑运算符在执行任何按位运算时将截断数字的小数部分。 Ave 计算“统计框”对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave”。只有先 单击“Sta”,该按钮才可用。 Backspace 删除当前显示数字的最后一位。 站将显示数字转换为二进制数字系统。最大的无符号二进制数值是将64 位全都设置为1。 C 清除当前的计算。 CE 清除显示数字。 cos 计算显示数字的余弦。若要计算反余弦,请使用“Inv”+“cos”。若要计算双曲余弦,请使用“Hyp”+“cos”。若要计算反双曲余弦,请使用“Inv”+“Hyp”+“cos”。cos 只能用于十进制数字 系统。 Dat 在“统计框”对话框内输入显示的数字。只有先单击“Sta”,该按钮才可用。 十进制将显示数字转换为十进制数字系统。 度数在十进制模式下将三角函数输入设置为度数。 dms 将显示数字转换为度-分-秒格式(假设显示数字是用度数表示的)。若要将显示数字转换为用度数表示的格式(假设显示数字是用度-分-秒格式表示的),请使用“Inv”+“dms”。dms 只能用 于十进制数字系统。 Exp 允许输入用科学计数法表示的数字。指数限制为四位数。指数中只能使用十进制数(键0-9)。 Exp 只能用于十进制数字系统。 F-E 打开或关闭科学计数法。大于10^32 的数总是以指数形式表示。F-E 只能用于十进制数字系统。 梯度在十进制模式中,将三角函数输入设置为梯度。 十六进制将显示数字转换为十六进制数字系统。最大的无符号十六进制数值是将64 位全都设置为1。 Hyp 设置“sin”、“cos”和“tan”的双曲函数。完成一次计算后自动关闭双曲函数功能。 Int 显示十进制数值的整数部分。若要显示十进制数值的小数部分,请使用“Inv”+“Int”。 Inv 设置“sin”、“cos”、“tan”、“PI”、“x^y”、“x^2”、“x^3”、“ln”、“log”、“Ave”、“Sum” 和“s”的反函数。完成一次计算后自动关闭反函数功能。

计算器使用说明书

计算器使用说明书 This model paper was revised by the Standardization Office on December 10, 2020

计算器使用说明书目录 取下和装上计算器保护壳 (1) 安全注意事项 (2) 使用注意事项 (3) 双行显示屏 (7) 使用前的准备 (7) k模式 (7) k输入限度 (8) k输入时的错误订正 (9) k重现功能 (9) k错误指示器 (9) k多语句 (10) k指数显示格式 (10) k小数点及分隔符 (11)

k计算器的初始化 (11) 基本计算 (12) k算术运算 (12) k分数计算 (12) k百分比计算 (14) k度分秒计算 (15) kMODEIX, SCI, RND (15) 记忆器计算 (16) k答案记忆器 (16) k连续计算 (17) k独立记忆器 (17) k变量 (18) 科学函数计算 (18) k三角函数/反三角函数 (18) Ch。6 k双曲线函数/反双曲线函数 (19)

k常用及自然对数/反对数 (19) k平方根﹑立方根﹑根﹑平方﹑立方﹑倒数﹑阶乘﹑ 随机数﹑圆周率(π)及排列/组合 (20) k角度单位转换 (21) k坐标变换(Pol(x, y)﹐Rec(r, θ)) (21) k工程符号计算 (22) 方程式计算 (22) k二次及三次方程式 (22) k联立方程式 (25) 统计计算 (27) 标准偏差 (27) 回归计算 (29) 技术数据 (33) k当遇到问题时...... (33) k错误讯息 (33) k运算的顺序 (35)

计算器的使用方法 计算器小知识

计算器的使用方法计算器小知识 普通的计算器如得力计算器与晨光计算器的一些普通功能相信大家都会用,大家经常用来加减乘除,快速计算结果。有些小小的功能键能事半功倍,而这些功能可能有很多人从未使用过,石家庄办公用品批发网小编找了些资料,又根据自己实际经验,把那些个功能键的作用及使用方法给整理了一下。 M+:把目前显示的值放在存储器中,是计算结果并加上已经储存的数,(如屏幕无"M"标志即存储器中无数据,则直接将显示值存入存储器)。 M-:从存储器内容中减去当前显示值,是计算结果并用已储存的数字减去目前的结果,如存贮器中没有数字,按M-则存入负的显示屏数字。 MS:将显示的内容存储到存储器,存储器中原有的数据被冲走。 MR:按下此键将调用存储器内容,表示把存储器中的数值读出到屏幕,作为当前数值参与运算。 MC:按下时清除存储器内容(屏幕"M"标志消除)。 MRC:第一次按下此键将调用存储器内容,第二次按下时清除存储器内容。 GT:GT=Grand Total 意思是总数之和,即按了等号后得到的数字全部被累计相加后传送到GT存储寄存器。按GT后显示累计数,再按一次清空。 MU(Mark-up and Mark-down键):按下该键完成利率和税率计算,详见例3; CE:清除输入键,在数字输入期间按下此键将清除输入寄存器中的值并显示"0",可重新输入; AC:是清除全部数据结果和运算符。 ON/C:上电/全清键,按下该键表示上电,或清除所有寄存器中的数值。 使用举例: 例1. 先按32×21,得数是672。然后按下“M+”,这样就可以把这个答案保存下来,然后我们按“8765-”,再按“MR”就可以把刚才的672调出来了,最后我们就可以得到答案8093。 例2. 在计算时使用记忆键能够使操作简便,例如计算5.45×2+4.7×3可以这样做:按5、.、4、5、×、2、=,会显示出10.9,按M+(记忆10.9),按4、.、7、×、3、=,会显示出14.1,按M+(记忆14.1),按MR 会显示出25(呼出记忆的两个数相加后的结果)。 例3、 MU(Mark-up and Mark-down键):按下该键完成利率和税率计算. 关于"MU"的加减乘除四项功能用法如下: 乘法A×B MU 相当于A+(A+B%) 用途1、知道本年数额与增长率,求预计明年数额。如今年销售收入100,预计增长率为2.5%,求明年数。按100 X 2.5 MU 即出结果为102.5 用途2、计算增值税,由不含税价计算含税价。如不含税销售收入3500元,计算含税销售收入,假定税率为17%,按3500 X 17 MU 即出结果4095 减法A-B MU 相当于(A-B)/B 的百分比 用途知道当年收入与去年收入求增长率。如今年3000,去年2800,计算增长率,按3000-2800 MU 即出结果7.142857 当然结果是百分比 除法A÷B MU 相当于A/(1-B%) 用途1、求成本为120,销售利润率为25%,求销售收入,按120÷25 MU 即出结果160 (看清了,不是成本利润率,成本利润率公式是A x(1+B%)) 用途2、计算消费税组成计税价格,由不含税计算含税价,如不含税1200,适用税率30%,计算含税,按

计算器有关按键说明大全

计算器有关按键说明大全 一、基本按键 ON 开机 OFF 关机 AC 总清,清除所有存储和显示数值(又:CA, All Clear C 清除所有显示和当前运算、归零(又:CLR、Esc,英文名Clear 注:以上又有组成组合键的情况为ON/OFF、ON/AC、ON/C CE 清除输入,清除当前输入数据中最后一个不正确的输入数据并显示“0”,可重新更正输入(英文名Clear Error或Clear Entry ?清除光标前一字符(又:←、Backspace、BS、DEL(delete) INS 改写模式,从当前位置插入(英文名insert REPLAY 指令状态移动方向,上下查记录,左右移动当前表达式中光标(一般此键上有成十字排列的方向标识:▲▼?? 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,就是500 F-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 数字

计算器功能键介绍

M+是计算结果并加上已经储存的数;M-是计算结果并用已储存的数字减去目前的结果;MR是读取储存的数据;MC是清除储存数据;AC,CE归零是有一个是清除现有数据重新输入,另一个是清除全部数据结果和运算符. 按钮功能 % 按百分比的形式显示乘积结果。输入一个数,单击“*”,输入第二个数,然后单击“%”。例如,50 * 25% 将显示为 12.5。也可执行带百 分数的运算。输入一个数,单击运算符(“+”、“-”、“*”或“/”), 输入第二个数,单击“%”,然后单击“=”。例如,50 + 25%(指的 是 50 的 25%)= 62.5。 1/x 计算显示数字的倒数。 A–F 在数值中输入选中字母。只有在十六进制模式为开启状态时该按钮才可用。 And 计算按位 AND。逻辑运算符在执行任何按位运算时将截断数字的小数部分。 Ave 计算“统计框”对话框中显示数值的平均值。若要计算平均方值,请使用“Inv”+“Ave”。只有先单击“Sta”,该按钮才可用。Backspace 删除当前显示数字的最后一位。 站将显示数字转换为二进制数字系统。最大的无符号二进制数值是将 64 位全都设置为 1。 C 清除当前的计算。 CE 清除显示数字。 cos 计算显示数字的余弦。若要计算反余弦,请使用“Inv”+“cos”。若要计算双曲余弦,请使用“Hyp”+“cos”。若要计算反双曲余弦,请 使用“Inv”+“Hyp”+“cos”。cos 只能用于十进制数字系统。 Dat 在“统计框”对话框内输入显示的数字。只有先单击“Sta”,该按钮才可用。 十进制将显示数字转换为十进制数字系统。 度数在十进制模式下将三角函数输入设置为度数。 dms 将显示数字转换为度-分-秒格式(假设显示数字是用度数表示的)。 若要将显示数字转换为用度数表示的格式(假设显示数字是用度-分- 秒格式表示的),请使用“Inv”+“dms”。dms 只能用于十进制数字 系统。 Exp 允许输入用科学计数法表示的数字。指数限制为四位数。指数中只能使用十进制数(键 0-9)。Exp 只能用于十进制数字系统。 F-E 打开或关闭科学计数法。大于 10^32 的数总是以指数形式表示。F-E 只能用于十进制数字系统。 梯度在十进制模式中,将三角函数输入设置为梯度。 十六进制将显示数字转换为十六进制数字系统。最大的无符号十六进制数值是将 64 位全都设置为 1。 Hyp 设置“sin”、“cos”和“tan”的双曲函数。完成一次计算后自动关闭双曲函数功能。 Int 显示十进制数值的整数部分。若要显示十进制数值的小数部分,请使用“Inv”+“Int”。 Inv 设置“sin”、“cos”、“tan”、“PI”、“x^y”、“x^2”、“x^3”、

计算器按键的使用说明

计算器按键的使用说明 . 1、电源开关键: ON、 OFF 2、输入键: 0— 9、. +/ —:正负转换键 3、运算功能键: + - * / ( 注意 : 加、减、乘、除键在计算时都可能代替等号键 ) √:开平方键,用来进行开平方运算。先输入数字,再按下此键,不必按等号键即可得 出结果。 4、等号键:= 5、清除键: ①C:清除键。在数字输入期间 , 第一次按下此键将清除除存储器内容外的所 有数值 . 如果是太阳能计算器,在计算器关闭状态下,按此键则开启电源,显示 屏显示出“ 0”。 ②AC或 CA键:全部清除键,也叫总清除键,作用是将显示屏所显示的数 字全部清除。 ③→:右移键。其功能是荧屏值向右位移,删除最右边的尾数。 ④CE:部分清除键,也叫更正键。其功能是清除当前输入的数字,而不是清除 以前输入的数。如刚输入的数字有误,立即按此键可清除,待输入正确的数字后,原运算继续进行。如 5+13,这时发现“ 13”输入错了,则按“ CE”键就可以清除 刚才的“ 13”,但还保留“ 5”这个数。值得注意的是,在输入数字后,按“ +”、“- ”、“/ ”、“* ”键的,再按“ CE”键,数字不能清除。 ⑤MC:累计清除键,也叫记忆式清除键。其功能是清除储存数据,清除存储 器内容,只清除存储器中的数字,内存数据清除,而不是清除显示器上的数字。 6、累计显示键: (1)M+:记忆加法键,也叫累加键。是计算结果并加上已经储存的数;用 作记忆功能,它可以连续追加,把目前显示的值放在存储器中(也就是将显示的 数字与内存中已有的任何数字相加,结果存入存储器,但不显示这些数字的和)。 如先输入“ 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-:记忆减法键,也叫累减键。是计算结果并用已储存的数字减去目前 的结果;从存储器内容中减去当前显示值(也就是将显示的数字与内存中已有 的任何数字相减,结果存入存储器,但不显示这些数字的差). 计算“ 50- (23+4)”时→先输入“ 50”→按“ M+”(把“ 50”储存起来)→再输入“ 23+4”→按“ M-”键(计算结果是“ 27”)→再按“ MR”(用储存的“ 50”减去目前的结果“ 27”)→则出结果“ 23” 7、存储读出键: MR MRC GT ①MR:存储读出键。表示用存储器中数值取代显示值。按下此键后,可使存储在“ M+”或“ M-”中的数字显示出来或同时参加运算,数字仍保存在存储器中,在未按“ MC”键以前有效。 MR调用存储器内容,读取储存的数据。如有三组数字不连续在一起相加的时候,则用这个“ MR”键。举例:如输入“ 3+2”时,按“ M+”键,再输入“ 6+7”时,按“ M+”键,再输入“8+9”时按“ M+”键,然后再按“MR”,则三组数字的总和“ 35”就出来了。 ②MRC:MR和 MC功能的组合,即存储读出和清除键。按一次为 MR功能, 即显示存储数,按第二次为 MC功能,即清除存储数。

06 12864LCD显示计算器键盘按键实验

目录 1 课程设计概述和要求 (1) 1.1 课程设计要求与任务 (2) 1.2 课程设计思路 (2) 1.3 课程设计需要配置的环境 (3) 2 系统设计 (3) 2.1 设计框图 (3) 2.2 元件解析 (3) 2.2.1 LCD12864芯片……………………………………………………………4 2.2.2 AT89C51芯片 (5) 2.2.3 其他部件 (6) 2.2.4 电路分析 (7) 3 软件设计 (12) 3.1 程序流程图 (12) 3.2 程序代码 (12) 4 系统的仿真与调试 (13) 4.1 硬件调试 (13) 4.2 软件调试 (14) 4.3 软硬件调试 (14) 5 总结 (14) 附录1:程序代码 附录2:12864LCD显示计算器键盘按键实验Proteus仿真图

1 课程设计概述和要求 1.1 课程设计任务与要求 设计任务:利用AT89C51单片机结合12864LCD显示器设计计算器键盘按键。 设计要求1:本设计实现一个12864LCD显示12864LCD显示器设计计算器键盘按键 2.利用AT89C51控制整个电路来实现. 显示12864LCD显示器 设计计算器键盘按键,系统主要包括硬件和软件两部分。重点就 是各部分硬件的连接设计以及程序的编写。本章讲述的就是系统 硬件的设计,其中包括各模块的器件选择和电路设计。将计算器 按键上的信息传送至AT89C51主芯片之中,利用P2端口使之显 示于12864LCD液晶显示屏上。 1.2 课程设计目的思路 1、先把与题目有关的芯片资料找到,熟悉一下芯片资料 2、把此程序的电路图看懂,了解一下它的实现原理,以及实现的功能。 3、分析一下此程序的各部分的功能,各零件的工作原理。 4、对程序进行调试,分析调试结果,观察并得出结论。 1.3 课程设计需要配置的环境 1、一台主机,一台显示器 2、Keil uVision3/Keil uVision4 应用程序软件 3、ISIS 7 Professional 仿真软件 4、老师交给的仿真电路图,及案例 5、纸张,以及一些参考资料 2 系统设计 2.1.设计框图 框图设计是为了能够从整体上把握系统的各个大的模块以及各个模块之间的联系。同时罗列出需要主要使用到的各个器件,以方面系统开发中器件的选取。通过框图设计,让设计者从整体上把握系统的开发。 12864LCD显示计算器键盘按键实验设计框图如下所示

计算器使用说明书

计算器使用说明书目录 取下和装上计算器保护壳 (1) 安全注意事项 (2) 使用注意事项 (3) 双行显示屏 (7) 使用前的准备 (7) k模式 (7) k输入限度 (8) k输入时的错误订正 (9) k重现功能 (9) k错误指示器 (9) k多语句 (10) k指数显示格式 (10) k小数点及分隔符 (11) k计算器的初始化 (11) 基本计算 (12) k算术运算 (12) k分数计算 (12) k百分比计算 (14) k度分秒计算 (15) kMODEIX, SCI, RND (15) 记忆器计算 (16) k答案记忆器 (16) k连续计算 (17) k独立记忆器 (17) k变量 (18) 科学函数计算 (18) k三角函数/反三角函数 (18) Ch。6 k双曲线函数/反双曲线函数 (19) k常用及自然对数/反对数 (19) k平方根﹑立方根﹑根﹑平方﹑立方﹑倒数﹑阶乘﹑ 随机数﹑圆周率(π)及排列/组合 (20) k角度单位转换 (21) k坐标变换(Pol(x, y)﹐Rec(r, θ)) (21) k工程符号计算 (22) 方程式计算 (22) k二次及三次方程式 (22) k联立方程式 (25) 统计计算 (27)

标准偏差 (27) 回归计算 (29) 技术数据 (33) k当遇到问题时 (33) k错误讯息 (33) k运算的顺序 (35) k堆栈 (36) k输入范围 (37) 电源(仅限MODEx。95MS) (39) 规格(仅限MODEx。95MS) (40) 取下和装上计算器保护壳 ?在开始之前 (1) 如图所示握住保护壳并将机体从保护壳抽出。 ?结束后 (2) 如图所示握住保护壳并将机体从保护壳抽出。 ?机体上键盘的一端必须先推入保护壳。切勿将显示屏的一端先推入保护壳。 使用注意事项 ?在首次使用本计算器前务请按5 键。 ?即使操作正常﹐MODEx。115MS/MODEx。570MS/MODEx。991MS 型计算器也必须至少每3 年更换一次电池。而MODEx。95MS/MODEx。100MS型计算器则须每2 年更换一次电池。电量耗尽的电池会泄漏液体﹐使计算器造成损坏及出现故障。因此切勿将电量耗尽的电池留放在计算器内。 ?本机所附带的电池在出厂后的搬运﹑保管过程中会有轻微的电源消耗。因此﹐其寿命可能会比正常的电池寿命要短。 ?如果电池的电力过低﹐记忆器的内容将会发生错误或完全消失。因此﹐对于所有重要的数据﹐请务必另作记录。 ?避免在温度极端的环境中使用及保管计算器。低温会使显示画面的反应变得缓慢迟钝或完全无法显示﹐同时亦会缩短电池的使用寿命。此外﹐应避免让计算器受到太阳的直接照射﹐亦不要将其放置在诸如窗边﹐取暖器的附近等任何会产生高温的地方。高温会使本机机壳褪色或变形及会损坏内部电路。 ?避免在湿度高及多灰尘的地方使用及存放本机。注意切勿将计算器放置在容易触水受潮的地方或高湿度及多灰尘的环境中。因如此会损坏本机的内部电路。 双行显示屏

计算器按键的使用说明

计算器按键的使用说明. 1、电源开关键:ON、OFF 2、输入键:0—9、. +/—:正负转换键 3、运算功能键:+ - * / (注意:加、减、乘、除键在计算时都可能代替等号键) √:开平方键,用来进行开平方运算。先输入数字,再按下此键,不必按等号键 即可得出结果。 4、等号键:= 5、清除键: ①C:清除键。在数字输入期间,第一次按下此键将清除除存储器内容外的所 有数值.如果是太阳能计算器,在计算器关闭状态下,按此键则开启电源,显示 屏显示出“0”。 ②AC或CA键:全部清除键,也叫总清除键,作用是将显示屏所显示的数字 全部清除。 ③→:右移键。其功能是荧屏值向右位移,删除最右边的尾数。 ④CE:部分清除键,也叫更正键。其功能是清除当前输入的数字,而不是清 除以前输入的数。如刚输入的数字有误,立即按此键可清除,待输入正确的数字后,原运算继续进行。如5+13,这时发现“13”输入错了,则按“CE”键就可 以清除刚才的“13”,但还保留“5”这个数。值得注意的是,在输入数字后,按“+”、“-”、“/”、“*”键的,再按“CE”键,数字不能清除。 ⑤MC:累计清除键,也叫记忆式清除键。其功能是清除储存数据,清除存储 器内容,只清除存储器中的数字,内存数据清除,而不是清除显示器上的数字。6、累计显示键: (1)M+:记忆加法键,也叫累加键。是计算结果并加上已经储存的数;用 作记忆功能,它可以连续追加,把目前显示的值放在存储器中(也就是将显示的 数字与内存中已有的任何数字相加,结果存入存储器,但不显示这些数字的和)。 如先输入“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-:记忆减法键,也叫累减键。是计算结果并用已储存的数字减去目 前的结果;从存储器内容中减去当前显示值(也就是将显示的数字与内存中已有 的任何数字相减,结果存入存储器,但不显示这些数字的差). 计算“50-(23+4)”时→先输入“50”→按“M+”(把“50”储存起来)→ 再输入“23+4”→按“M-”键(计算结果是“27”)→再按“MR”(用储存的“50”减去目前的结果“27”)→则出结果“23” 7、存储读出键:MR MRC GT ①MR:存储读出键。表示用存储器中数值取 代显示值。按下此键后,可使存储在“M+”或“M-”中的数字显示出来或同时 参加运算,数字仍保存在存储器中,在未按“MC”键以前有效。MR调用存储器 内容,读取储存的数据。如有三组数字不连续在一起相加的时候,则用这个“MR”键。举例:如输入“3+2”时,按“M+”键,再输入“6+7”时,按“M+”键,再 输入“8+9”时按“M+”键,然后再按“MR”,则三组数字的总和“35”就出来了。 ②MRC:MR和MC功能的组合,即存储读出和清除键。按一次为MR功能,即 显示存储数,按第二次为MC功能,即清除存储数。

学生专用计算器使用说明书

目录 取下和装上计算器保护壳 (1) 安全注意事项 (2) 使用注意事项 (3) 双行显示屏 (7) 使用前的准备 (7) k模式 (7) k输入限度 (8) k输入时的错误订正 (9) k重现功能 (9) k错误指示器 (9) k多语句 (10) k指数显示格式 (10) k小数点及分隔符 (11) k计算器的初始化 (11) 基本计算 (12) k算术运算 (12) k分数计算 (12) k百分比计算 (14) k度分秒计算 (15) kMODEIX, SCI, RND (15) 记忆器计算 (16) k答案记忆器 (16) k连续计算 (17) k独立记忆器 (17) k变量 (18) 科学函数计算 (18) k三角函数/反三角函数 (18) Ch。6 k双曲线函数/反双曲线函数 (19) k常用及自然对数/反对数 (19) k平方根﹑立方根﹑根﹑平方﹑立方﹑倒数﹑阶乘﹑ 随机数﹑圆周率(π)及排列/组合 (20) k角度单位转换 (21) k坐标变换(Pol(x, y)﹐Rec(r, θ)) (21) k工程符号计算 (22) 方程式计算 (22) k二次及三次方程式 (22) k联立方程式 (25) 统计计算 (27) 标准偏差 (27) 回归计算 (29) 技术数据 (33) k当遇到问题时 (33)

k错误讯息 (33) k运算的顺序 (35) k堆栈 (36) k输入范围 (37) 电源(仅限MODEx。95MS) (39) 规格(仅限MODEx。95MS) (40) 双行显示屏 双行显示屏可同时显示计算公式及其计算结果。 ?上行显示计算公式。 ?下行显示计算结果。 当尾数的整数部分多于三数字时﹐每隔三位便会有一个分隔符。使用前的准备 模式 在开始计算之前﹐您必须先进入下表所列的适当的模式。 ?下表所示的模式及所需的操作仅适用于MODEx。95MS。其他型号的用户请参阅“用户说明书2(追加功能)”之手册来 寻找有关其模式及模式选择方法的说明。 MODEx。95MS 型号的模式 按键两次以上将调出追加设置画面。有关设置画面的 说明将在其实际需要使用以改变计算器设置的章节里进行 阐述。 ?在本说明书中﹐有关为进行计算而需要进入的各模式的说

计算器的使用方法

我们使用到的计算模式只有2种: COMP :基本算术运算 SD :标准差 下列介绍中一至八使用的是COMP 模式,九使用的是SD 模式 模式选择按键过程: MODE CLR 1 (此时选择的是COMP :基本算术运算模式) MODE CLR 2 (此时选择的是SD :标准差模式) 一、分数:需使用 ab/c 健 1、例如计算:5 231+ 按键过程为:1 ab/c 3 + 2 ab/c 5 = 2、例如计算:5 231? 按键过程为:1 ab/c 3 ? 2 ab/c 5 = 二、小数换成分数 1、例如0.68换成分数 按键过程为:0.68 = ab/c = 三、指数 1、例如计算5 8 按键过程为: 8 =∧5 2、例如计算()42- 按键过程为:( (-)2 )=∧4 3、例如计算2 3-

按键过程为:3∧ ( (-)2 )= (注:此时结果显示的是小数,按ab/c 转换成分数) 4、例如计算3227 按键过程为:27∧( 2 ab/c3 )= 四、对数:常规计算器只有g l 即以10为底的对数,在计算时需用到换地公式 b a b c c a log log log = 例如计算:2log 8 按键过程为:log2 ÷ log8 = (注:此时结果显示的是小数,按ab/c 转换成分数) 五:开方 1、 计算 9 按键过程为: 9= 2、 计算38 按键过程为:SHIFT 3 8 = 3、 计算416 按键过程为:4 SHIFT x 16= 六、计算组合数:使用nCr 健 1、计算4 10c 按键过程为:10 nCr 4=

4X4按键实现计算器功能

;4X4按键实现计算器功能 ;当按0-9时显示数值 ;当按A-F时将其除以10 ;如商为0就是0-9数字输入 ;如商为1就是+,-,*,/,= ;跟据余数转到相应的功能处 ;因为8位数最取值为255 ;可扩展到16位或32位 ; ok ;硬件连接 POUT EQU P2 KPIN EQU P1 PDIG1 EQU P3.0 V AL DATA 30H KID DATA 31H KTMP DATA 32H PDIG EQU P3 NO EQU 4 ;N位要显示的数 ;内部使用的变量 DIG DATA 33H; DID DATA 34H KFH DATA 35H DA T1 DATA 36H DA T2 DATA 37H BUF DATA 38H MTM EQU 1000 MTH EQU HIGH(65536-MTM) MTL EQU LOW(65536-MTM) MSYS BIT 2FH.0 KEFL BIT 20H.0 ;************************** ;主调度程序 ;每1MS中断一次,所有程序都在期间执行 ;主程序调度标志位:MSYS

;************************** ORG 0000H SJMP MAIN ORG 0BH SJMP MTM0 ORG 30H MAIN: ACALL MINIT MLP:JNB MSYS,$ CLR MSYS ACALL KEYS ACALL DISP SJMP MLP MINIT: ;用户变量初始化 CLR MSYS MOV R0,#30H MOV R2,#16 CLR A MILP:MOV @R0,A INC R0 DJNZ R2,MILP MOV DIG,#0FEH CLR KEFL ;系统变量初始化,并开启定时器0 MOV SP,#60H MOV IE,#82H MOV TMOD,#01H MOV TH0,#MTH MOV TL0,#MTL SETB TR0 RET ;定时器0中断程序,置系统标志为1 MTM0: MOV TH0,#MTH MOV TL0,#MTL SETB MSYS RETI

计算器——概要设计说明书

计算器 概要设计说明书 1、引言 1.1编写目的 在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。在程序设计中,可以用两种方法解决问题:一是传统的结构化程序设计方法,二是更先进的面向对象程序设计方法。而在面向对象程序设计中关键是如何将问题域中的实体(即日常所见的概念)抽取出来,作为JAVA程序中的类,而属性与行为作为类的两类要素通常是必不可少的,甚至还应考虑类必须满足的约束。 1.2项目背景 计算器是日常生活中十分便捷有效的工具,能实现加、减、乘、除、开方、求倒数等简单运算的工具。要实现计算功能,可以用JAVA 的知识编写程序来解决此问题。该计算器大大的降低了数字计算的难度及提高了计算的准确度和精确度。该计算器使用非常简单和方便,对广大中小学生的学习有巨大帮助作用,也对在职人员的工作有点帮助作用。 在课程设计中,系统开发平台为Windows 7,程序设计设计语言采用JAVA,在程序设计中,采用了结构化与面向对象两种解决问题的方法。 1.3定义

事务流:数据进入模块后可能有多种路径进行处理。 系统:若未特别指出,统指本系统。 1.4参考资料 [1]钱银中,眭碧霞.Java程序设计案例教程 [2]道客巴巴:https://www.360docs.net/doc/8c6119039.html,/p-642874533756.html 2、运行环境 操作系统:Windows 2000﹑Windows XP Professional、Windows 2000 Server或者window 7.0操作系统. 3、总体设计 3.1 系统设计流程 系统设计主要有五部分组成:需求分析、概要设计、详细设计、编写代码和系统测试。如下图所示: ⑴需求分析 这次课程设计的题目是实现简单计算器的功能。实现功能:加,减,乘,除,可加其它运算功能;还要实现数据的输入,输出,计算,显示及清除等功能。 ⑵概要设计 计算器包含的功能有:加、减、乘、除、清除。计算器的屏显为JFrame控件,左侧的数字、操作符按键、右侧的功能为BUTTON控件。输入的原始数据、运算中间数据和结果在顶部的TEXTBOX 控件显示。每种计算功能均为独立设计算法。 ⑶详细设计 详细设计部分则是在概要设计的基础上对计算器的功能实现作出更为详细

矩阵键盘简易计算器要点

《微处理器系统与接口技术》课程实践报告 计算器 班级: 学号: 学生姓名: 指导老师: 日期: 2014.7.5 ******电子与信息工程学院

目录 1、设计题目:计算器 (3) 2、设计目的 (3) 3、计算器总体设计框图 (3) 4、计算器详细设计过程 (4) 4.1输入模块 (4) 4.2键盘输入电路 (5) 4.3主程序模块 (6) 5、分析与调试 (6) 7、运行结果 (8) 8、结束语 (8) 8、参考文献 (8) 9、源程序附录 (9) 9.1主程序 (9) 9.2延时函数delay (12) 9.3显示函数display (12) 9.4键盘扫描函数 (14) 9.5预定义函数 (15)

1、设计题目:计算器 2、设计目的 此次课程实践题目是基于单片机简单计数器的设计,本此设计使用的是Intel公司MCS-51系列的8051AH单片机。设计的计算器可以实现2位小数的加、减、乘、除运算以及整数的乘方运算,其中用4*4矩阵键盘来输入待参与运算的数据和运算符;八位数码管动态显示输入待参与运算的数据以及运算后产生的结果,每个硬件模块的调用过程中涉及到了函数入口及出口参数说明,函数调用关系描述等。 3、计算器总体设计框图 计算器以MCS-51系列的8051AH单片机作为整个系统的控制核心,应用其强大的I/O功能和计算速度,构成整个计算器。通过矩阵键盘输入运算数据和符号,送入单片机进行数据处理。经单片机运算后控制LED数码管的输出。整体框图如图1所示: 图3 整体框图 本系统硬件主要由矩阵键盘、独立键盘I/O输入输出、数码管显示等主要部分组成。各模块的主要功能如下: (1)矩阵键盘将十六进制编码的数字送到单片机。 (2) 单片机扫描键盘信号并接收,对输入的键盘信号进行处理 (3) LED以动态扫描的方式移位显示每次输入的数据和最后的运算结果。实践设计的具体流程图如下图2所示:

常用计算器使用说明

常用计算器使用说明 M+是计算结果并加上已经储存的数;M-是计算结果并用已储存的数字减去目前的结果;MR是读取储存的数据;MC是清除储存数据;AC,CE归零是有一个是清除现有数据重新输入,另一个是清除全部数据结果和运算符. 例如,计算5÷(4+2)。步骤如下: 按“4”、“+”、“2”、“M+”; 再按“5”、“÷”、“MR” 再按“GT”; 最后按别忘了按“MC”。 M+是计算结果并加上已经储存的数;用作记忆功能,它可以连续追加,把目前显示的值放在存储器中,中断数字输入. M-是计算结果并用已储存的数字减去目前的结果;从存储器内容中减去当前显示值;中断数字输入. MU是内存数据显示键.. MR调用存储器内容,读取储存的数据,调用M+最后的一次记忆 MC是清除储存数据,清除存储器内容,内存数据清除 ON/AC是归零键,上电/全清键,清除现有数据重新输入,按下该键表示上电,或清除所有寄存器中的数值. MRC:第一次按下此键将调用存储器内容,第二次按下时清除存储器内容. CE是清除输入键,清除全部数据结果和运算符,在数字输入期间按下此键将清除输入寄存器中的值并显示"0" C清除键:在数字输入期间,第一次按下此键将清除除存储器内容外的所有数值. GT=Grand Total 意思是总数之和,是用来计算总和的。即你按了等号后得到的数字全部被累计,按GT后显示累计数,再按一次清空。按AC或C键消除GT 显示标。 √平方根:显示一个输入正数的平方根. MU(Mark-up and Mark-down键):按下该键完成利率和税率计算. 例1:计算5÷(4+2)。步骤如下: 按“4”、“+”、“2”、“M+”; 再按“5”、“÷”、“MR” 再按“GT”; 最后按别忘了按“MC”。 例2:按出1*2=显示结果应该为2 再计算:2*2=显示结果应该为4 然后按GT.显示结果就是6(2+4)的结果. 例3:算350*25-389*66 我可以先算389*66得出的结果用M+记忆, 然后计算器清零再算350*25得出的结果减掉MR就是最终结果了

计算器说明书

1 设计课题任务、功能要求说明及总体方案介绍 1.1 设计课题任务 课题:简易计算器 任务:设计一个具有特定功能的计算器。该计算器上电或按键复位后能自动显示系统提示界面,进入准备工作状态。能实现基本的加、减、乘、除四则运算。 1.2 功能要求说明 在本次工程实践中,主要完成如下方面的设计任务: (1)计算器上电或按键复位后能显示初始化界面 (2)2秒后进入计算器界面 (3)按键能进行加、减、乘、除运算并显示结果 (4)按清零键后能进行下一次计算 1.3 设计课题总体方案介绍及工作原理说明 计算器的总体功能原理是以AT89S52单片机为主要控制核心,通过外接4*4行列式键盘作为控制信号输入源,一块12864液晶作为显示器件,通过按键控制,单片机实时地去执行,在12864液晶上显示界面。系统控制原理图如图1所示。 液晶 显示电路AT89S52 电源电路 复位电路 下载电路 键盘电路图1系统控制原理图

2 设计课题硬件系统的设计 2.1 设计课题硬件系统各模块功能简要介绍 2.1.1 AT89S52控制模块 考虑到设计功能需要,控制器的功能用于外部键盘信号的接收和识别、液晶模块的显示控制、复位电路等,我们选择了AT89S52系列单片机,具有反应速度极快,工作效率特高的特点。 AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。 2.1.2 12864液晶模块 FYD12864-0402B是一种具有4位/8位并行,2线或3线串行多种接口方式,内含国家一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128*64,内置8192个16*16点汉字,和128个16*8点ASCⅡ字符集。利用该模块灵活的接口和简单、方便的操作指令,可构成全中文人机交互图形界面。12864液晶的控制口线主要接在AT89S52单片机的P0和P3的部分口线上,可以显示8×4行,16×16点阵的汉字。低压低功耗是其又一显著特点。与同类液晶模块相比,无论硬件电路或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的液晶模块。

科学计算器的使用方法

一、计算器使用的状态 对于两类计算器来说,使用的是数值计算,所采用的状态是十进制状态: 1、学生计算器(KDT 第一次屏幕显示 第二次屏幕显示 按2次,再按1,则进入十进制计算状态,这时在屏幕上会出现D的标志。 2、普通计算器(价格10元以内):按键 直接按键,依次在屏幕上会分别显示:DEG、RAD、GRAD,表示十进制、弧度、百分率。要选择DEG,即在屏幕上看到DEG的标志。 二、角度的输入与计算 两种计算器都可以进行角度的运算以及转换: 1、学生计算器(KDT (1 例如输入129°59′26″,操作如下: 输入1295926 这时屏幕的第二行显示:129°59°26°,说明已经将角度输入 (2)角度经过三角函数的计算之后,显示的角度是十进制,即129°59′26″屏幕上显示129.353336,这时需要将十进制的角度转换回六十进制。 按129.353336→129°59°26°。 2 (1)角度的输入:输入角度要以六十进制输入,度和分秒以小数点隔开, 可将六十进制的角度值转换成十进制,用于角度计算或三角函数计算。

具体操作如下:输入129.5926 这时屏幕上显示结果129.9905556,可以进行角度的加减或三角函数计算。 (2)计算结果显示:当角度计算完毕后,需要显示角度的结果,即六十进制的角度结果, 按 具体操作如下:129.9905556→按 这时屏幕上显示计算结果129.592600,可以将成果记录下来。 三、测量误差的精度评定(统计计算) 两种计算器都可以进行标准偏差统计计算: 1、学生计算器(KDT科灵通科学计算器):在标准偏差统计模式下 (1 示 ) 其中n x x2m,即中误差。(2)统计数据输入以及查看、修改: 依次输入数据:-1.4→按-0.8→按+3.4→按-3.0→按-2.3→ 按+4.1 如果输入过程中,某个数据输入错误并且已经存储在计算器中,可以用 一个输入的数据。 (3)查看计算结果: 查看输入数据的个数n n=6; 查看输入数据和∑x:按x=0; 查看输入数据的平方和∑x2x2=45.26; 查看输入数据的统计结果s,即中误差m s=3.00865418418。 2、普通计算器:在标准偏差统计模式下 (1)进入标准偏差统计计算模式: 说明已经进入该计算模式; 其中

相关文档
最新文档