当前位置:文档之家› 数据结构课程设计-特殊矩阵计算器

数据结构课程设计-特殊矩阵计算器

数据结构课程设计-特殊矩阵计算器
数据结构课程设计-特殊矩阵计算器

特殊矩阵计算器

1、特殊矩阵计算器

问题描述:创建两个特殊矩阵 A 和 B,计算 A+B、A-B、A*B、B*A、A(或 B)的逆、A(或 B)的转置、A(或 B)的行列式等,具体要求如下:① A、B 均是压缩存储的特殊矩阵,如上/下三角矩阵、对称矩阵、对角矩阵、单位矩阵等。

② A、B 的矩阵类型、行列数、各位置的元素值等信息均在运行时指定(对于不同类型的矩阵,要求输入的数据也不尽相同)。③各运算若可行,则打印结果;若不可行,则给出提示信息。④各运算需自己实现,禁止调用语言内建或第三方类库的矩阵 API。

涉及算法及知识:特殊矩阵的压缩存储、矩阵相关运算。

#include<>

#include<>

#define max 100

typedef struct{

int row,col;//定义矩阵行数、列数

int a[max][max];

}Matrix; //存储结构

typedef struct{

int array[max];

int n; //定义矩阵的阶

}M;

Matrix A,B,C,D;

M p;

//*************矩阵的压缩存储*********************//

int CompressMatrix(int m,int i,int j,int n){

int k;

if(m==1){

if(i<=j)

k=(2*n-i+1)*i/2+(j-i)+1;

else

k=0;

return k;

}

if(m==2){

if(i>=j)

k=i*(i+1)/2+j+1;

else

k=0;

return k;

}

if(m==3){

if(i>=j)

k=i*(i+1)/2+j;

else

k=j*(j+1)/2+i;

return k;

}

if(m==4){

if(i!=j)

k=0;

else

k=i+1;

return k;

}

if(m==5){

if(i==j)

return 1;

else

return 0;

}

return 0;

}

//*************矩阵定义*********************//

//上三角矩阵 //

void CreateMatrixUppertri(M &a,Matrix &A)

{

int i,j,t,n;

printf("请输入上三角矩阵的行数和列数(行数与列数相同):");

scanf("%d%d",&,&;

n=;

=n;

printf("请输入%d个数:",n*(n+1)/2);

[0]=0;

for(i=1;i<=n*(n+1)/2;i++)

scanf("%d",&[i]);

for(i=0;i

for(j=0;j

t=CompressMatrix(1,i,j,n);

[i][j]=[t];

}

}

//下三角矩阵

void CreateMatrixLowertri(M &a,Matrix &A){

int i,j,t,n;

printf("请输入下三角矩阵的行数和列数(行数与列数相同):");

scanf("%d%d",&,&;

n=;

=n;

printf("请输入%d个数:",n*(n+1)/2);

[0]=0;

for(i=1;i<=n*(n+1)/2;i++)

scanf("%d",&[i]);

for(i=0;i

for(j=0;j

t=CompressMatrix(2,i,j,n);

[i][j]=[t];

}

}

//对称矩阵

void CreateMatrixSymmetry(M &a,Matrix &A){

int i,j,t,n;

printf("请输入对称矩阵的行数和列数(行数与列数相同):");

scanf("%d%d",&,&;

n=;

=n;

printf("请输入%d个数:",n*(n+1)/2);

for(i=0;i

scanf("%d",&[i]);

for(i=0;i

for(j=0;j

t=CompressMatrix(3,i,j,n);

[i][j]=[t];

}

}

//对角矩阵

void CreateMatrixDiagonal(M &a,Matrix &A){

int i,j,t,n;

printf("请输入对角矩阵的行数和列数(行数与列数相同):");

scanf("%d%d",&,&;

n=;

=n;

printf("请输入%d个数:",n);

[0]=0;

for(i=1;i<=n;i++)

scanf("%d",&[i]);

for(i=0;i

for(j=0;j

t=CompressMatrix(4,i,j,n);

[i][j]=[t];

}

}

//单位矩阵

void CreateMatrixUnit(M &a,Matrix &A){

int i,j,t,n;

printf("请输入单位矩阵的行数和列数(行数与列数相同):");

scanf("%d%d",&,&;

n=;

=n;

[0]=0;

[1]=1;

for(i=0;i

for(j=0;j

t=CompressMatrix(5,i,j,n);

[i][j]=[t];

}

}

//*************矩阵运算*********************//

//矩阵加法

int Add(Matrix A,Matrix B,Matrix &C)

{

int i,j;

if!=

return 0;

else

{

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

下表描述了计算器的功能: 按钮功能 % 按百分比的形式显示乘积结果。输入一个数,单击“*”,输入第二个数,然后单击“%”。例如, 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”的反函数。完成一次计算后自动关闭反函数功能。

数据结构课程设计-特殊矩阵计算器

特殊矩阵计算器 1、特殊矩阵计算器 问题描述:创建两个特殊矩阵 A 和 B,计算 A+B、A-B、A*B、B*A、A(或 B)的逆、A(或 B)的转置、A(或 B)的行列式等,具体要求如下:① A、B 均是压缩存储的特殊矩阵,如上/下三角矩阵、对称矩阵、对角矩阵、单位矩阵等。 ② A、B 的矩阵类型、行列数、各位置的元素值等信息均在运行时指定(对于不同类型的矩阵,要求输入的数据也不尽相同)。③各运算若可行,则打印结果;若不可行,则给出提示信息。④各运算需自己实现,禁止调用语言内建或第三方类库的矩阵 API。 涉及算法及知识:特殊矩阵的压缩存储、矩阵相关运算。 #include<> #include<> #define max 100 typedef struct{ int row,col;//定义矩阵行数、列数 int a[max][max]; }Matrix; //存储结构 typedef struct{ int array[max]; int n; //定义矩阵的阶 }M; Matrix A,B,C,D; M p; //*************矩阵的压缩存储*********************// int CompressMatrix(int m,int i,int j,int n){ int k;

if(m==1){ if(i<=j) k=(2*n-i+1)*i/2+(j-i)+1; else k=0; return k; } if(m==2){ if(i>=j) k=i*(i+1)/2+j+1; else k=0; return k; } if(m==3){ if(i>=j) k=i*(i+1)/2+j; else k=j*(j+1)/2+i; return k; } if(m==4){ if(i!=j) k=0; else k=i+1;

计算器有关按键说明大全

计算器有关按键说明大全 一、基本按键 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 数字

扫描矩阵键盘简介以及其FPGA设计思路

扫描键盘的设计思想和代码技巧非常值得学习。 首先扫描键盘可以节省FPGA 的引脚资源,例如一个4x4的扫描键盘有16个按键,如果不用扫描方式而是直接把16跟控制线接入FPGA ,就要16个引脚,而用扫描方式只需要4+4=8个引脚。尤其是随着键盘的增大,比如8x9=72的键盘,用扫描方式只需要17个引脚。 要想了解扫描键盘的原理,首先要知道矩阵键盘的电路结构。 如上图所示,矩阵键盘的某一个按钮按下会使对应的一条行线和列线导通,为了便于分析扫描过程做如下简化: 3.3v Row0 Row1 Row2 Row3 Col 0 Col 1 Col 2 Col 3 Row0 Row1 Row2 Row3 Col 0 Col 1 Col 2 Col 3 3 5 A E D C 2 B 9 8 F 4 6 0 1 7 接高电平 由FPGA 输出给键盘高低电平的组合,即是扫描码 键盘行线 高低电平的变化输入给FPGA

扫描键盘的工作状态分为两种: 第一种状态是判断是否有键按下,该状态下四根列线对应的电平状态是{col 0,col 1,col 2,col 3}=0000 。四根行线左端都接高电平,没有键被按下时,四根行线右端的状态是{row0,row1,row2,row3}=1111 。假如上图中按键3被按下了,也就是说row0和col 0接通了。那么四根行线右端的状态将会是{row0,row1,row2,row3}=0111 。也就是说,在第一种状态下,只要键盘行线输入FPGA的状态不是1111,就说明有键被按下了。马上进入第二状态。 第二种状态是判断具体哪个键被按下了。该状态下四根行线左端接高电平不变,四根列线对应的电平状态不断变化,由FPGA的输出的扫描码控制四根列线的电平状态。由第一状态的行线输入已经可以确定按键所处的行了。接下来只要再确定按键所处的列就可以确定到底哪个键被按下了。 如何根据行线的输入确定按键所处的列,奥妙就在于扫描码了。让列线以1000、0100、0010、0001的电平状态不断循环。假设上一状态确定按键处于row0行,那么随着扫描的进行,行线输入的变化规律如下表: 1000 0100 0010 0001 1000 0100 0010 0001 1000 0100 0010 0001 扫描 码 Row0 1 0 0 0 1 0 0 0 1 0 0 0 Row1 1 1 1 1 1 1 1 1 1 1 1 1 Row2 1 1 1 1 1 1 1 1 1 1 1 1 Row3 1 1 1 1 1 1 1 1 1 1 1 1 观察上表可以发现,在row0是1的时候与之对应的扫描码可以体现出按键所在列。 一个随之而来的设计思路是在第一状态确定按键所在行,然后在第二状态捕捉特定行是高电平的时候所对应的扫描码。 但是这里有一个不可避免的实际问题,那就是机械键盘的抖动!这种抖动主要体现在两个方面:第一,我们手指按某个键的时候可能由于接触面积大无意中碰到周围的键。第二,在按着一个键的时候由于力度不均或者接触不良,行线和列线并不能时刻保持接通的状态。下图来自网络上,描述的是单片机的机械键盘,借用一下。

卡西欧计算器fx-991CN X科学函数计算器(六)

卡西欧计算器fx-991CN X科学函数计算器(六) 矩阵是高等代数中常用的工具,在天体物理、量子力学等领域有着广泛运用,学习对高中理科生以及大学生都有非常重要的作用。卡西欧fx-991CN X是卡西欧第三代新型函数计算器,具备矩阵、计算、复数、统计、表格、方程/函数、向量等10种计算模式,能支持4×4矩阵计算,能够复制以及编辑矩阵变量。 一、基本操作 在卡西欧fx-991CN X科学函数计算器矩阵模式中,可以设置矩阵变量(MatA、MatB、MatC、MatD),指定、编辑变量以及矩阵元素,复制矩阵,并进行矩阵运算。 1.设置矩阵变量 进入矩阵模式后,选择1(MatA),根据需求设置矩阵的行与列。同理可设置MatB、MatC、MatD三个矩阵。

2.指定并编辑矩阵的变量数据 1)按OPTN+1(定义矩阵),然后在显示的菜单中,选择要向其指定数据的矩阵变量。 2)在出现的对话框上,使用一个数字按钮指定行数。 3)在出现的下一个对话框上,使用一个数字按钮指定行数。 4)使用显示的矩阵编辑器输入矩阵的元素。 3.编辑矩阵变量的元素 1)按OPTN+2(编辑矩阵),然后在显示的菜单中,选择要编辑的矩阵变量。 2)使用显示的矩阵编辑器编辑矩阵的元素。 4.矩阵答案存储器 无论何时,只要在矩阵模式中执行的计算结果为矩阵,MatAns屏幕都将显示该结果。该结果还会指定给名为“MatAns”的变量。 5.复制矩阵变量或(MatAns)的内容 1)使用矩阵编辑器显示要复制的矩阵。

2)按STO ,然后执行以下键操作之一,以指定复制目标:(-)(MatA )、“。,,,”(MatB )、x 1 -(MatC )或sin (MatD )。 二、矩阵计算示例 已知MatA=??????1112,MatB=??????--2112,MatC=??? ???--111001,请确认MatA 的平方和立方(MatA 2、MatA 3)。在计算器键盘上按下AC+MatA+2x 按键,然后确认得出结果? ?????2335;按下AC+MatA+SHIFT+2x +(3x ),确认得出答案? ? ? ???58813。 需要注意的是,不得使用?x 进行输入,需要使用2x 指定平方,并使用SHIFT+2x +(3x )指定立方。

基于msc51单片机实现的四位4乘4矩阵键盘计算器的C语言程序及其PROTUES电路和仿真

单片机原理及接口技术 课程设计报告 设计题目:计算器设计 学号:100230205 姓名:费博文 指导教师:张扬 信息与电气工程学院 二零一三年七月

计算器设计 单片机体积小,功耗小,价格低,用途灵活,无处不在,属专用计算机。是一种特殊器件,需经过专门学习方能掌握应用,应用中要设计专用的硬件和软件。近年来,单片机以其体积小、价格廉、面向控制等独特优点,在各种工业控制、仪器仪表、设备、产品的自动化、智能化方面获得了广泛的应用。与此同时,单片机应用系统的可靠性成为人们越来越关注的重要课题。影响可靠性的因素是多方面的,如构成系统的元器件本身的可靠性、系统本身各部分之间的相互耦合因素等。其中系统的抗干扰性能是系统可靠性的重要指标。 数学是科技进步的重要工具,数据的运算也随着科技的进步越发变得繁琐复杂,计算器的出现可以大大解放人在设计计算过程中的工作量,使计算的精度、速度得到改善,通过msc51单片机,矩阵键盘和LED数码管可以实现简单的四位数的四则运算和显示,并当运算结果超出范围时予以报错。 注:这一部分主要描述题目的背景和意义,对设计所采取的主要方法做一下简要描述。字数不要太多,300-500字。 另注:本文要当做模板使用,不要随意更改字体、字号、行间距等,学会使用格式刷。文中给出的各项内容都要在大家的报告中体现,可采用填空的方式使用本模板。 1. 设计任务 结合实际情况,基于AT89C51单片机设计一个计算器。该系统应满足的功能要求为: (1) 实现简单的四位十进制数字的四则运算; (2) 按键输入数字,运算法则; (3) LED数码管移位显示每次输入的数据和运算结果; (4) 当运算结果超出范围时实现报错。 主要硬件设备:AT89C51单片机、LED数码管、矩阵键盘。 注:这一部分需要写明系统功能需求,用到的主要硬件(参考实验箱的说明书)。

四则运算计算器

基于单片机实现的四则运算计算器 姓名 学号: 班级: 专业名称:测控技术与仪器 指导教师: 东北大学 2016年1月

课程设计(论文)任务书课程设计(论文)题目:基于单片机实现的四则运算计算器 基本内容和设计要求: 1、主机的矩阵键盘输入数和运算符号,从机显示运算结果。 2、主从单片机串行通信系统,并在LCD上显示运算内容及结果。 3、计算结果超过十位数字则显示错误。 4、运算除法时,结果只取整数,不是四舍五入。 5、有清零功能。

目录 课程设计(论文)任务书................................................................................................ i i 摘要 (1) 第1章绪论 (2) 1.1计算器简介 (2) 1.2设计主要内容 (2) 第2章系统硬件设计 (4) 2.1硬件组成 (4) 2.2输入模块 (4) 2.3输出模块 (5) 2.4运算模块 (5) 第3章系统软件设计 (7) 3.1 主程序 (7) 3.1.1主程序框图及初始化 (7) 3.1.2LCD程序框图及初始化 (8) 3.1.3键盘程序框图及初始化 (9) 3.1.4运算程序框图 (10) 第4章调试测试与实验分析 (11) 4.1 计算器调试 (11) 参考文献 (12) 心得体会 (13) 附录硬件原理图及PCB图 (14) 附录程序清单 (15) 附录实物照片 (28)

摘要 单片机的出现是计算机制造技术高速发展的产物,它是嵌入式控制系统的核心,如今,它已广泛的应用到我们生活的各个领域,电子、科技、通信、汽车、工业等。本设计是基于89C52RC单片机来进行的四则运算计算器系统设计,可以完成计算器的键盘输入,进行加、减、乘、除的基本四则运算,并在LCD1602液晶显示屏上显示相应的结果。本电路采用89C52RC单片机为主要控制电路,利用4*4矩阵键盘作为计算器以及运算符的输入。显示采用字符LCD静态显示。软件用C语言编程,并用开发板进行演示。 关键词:计算器,89C52RC单片机,LCD,矩阵键盘

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显示计算器键盘按键实验设计框图如下所示

c语言 矩阵计算器

#include #define M 20 #define N 20 float A[M][N]; //定义了含有400个浮点型数组元素的二维数组 float B[M][N]; float C[M][N]; int i,j,m,n,p,q,k; int main() { printf(" ###########################################\n"); printf(" ### 欢迎您使用矩阵计算器系统。###\n"); printf(" ### 系统功能:###\n"); printf(" ### 计算两个矩阵相加,相减; ###\n"); printf(" ### 矩阵相乘;矩阵转置; ###\n"); printf(" ### ###\n"); printf(" #########################################\n\n"); int x; do{ printf("请选择您需要的运算,若退出则选择0后按回车键结束\n"); printf("******************************************************************\n") ; printf("0,退出\n"); printf("1,矩阵相加\n"); printf("2,矩阵相减\n"); printf("3,矩阵相乘\n"); printf("4,矩阵转置\n"); printf("******************************************************************\n") ; scanf("%d",&x); switch (x) {

计算器按键的使用说明

计算器按键的使用说明 . 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功能,即清除存储数。

矩阵键盘简易计算器要点

《微处理器系统与接口技术》课程实践报告 计算器 班级: 学号: 学生姓名: 指导老师: 日期: 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所示:

单片机课程设计4X4矩阵键盘显示要点

长沙学院 《单片机原理及应用》 课程设计说明书 题目液晶显示4*4矩阵键盘按键号 程序设计 系(部) 电子与通信工程系 专业(班级) 电气1班 姓名龙程 学号2011024109 指导教师刘辉、谢明华、王新辉、马凌 云 起止日期2014.5.19—2014.5.30

长沙学院课程设计鉴定表

《单片机技术及应用》课程设计任务书系(部):电子与电气工程系专业:11级电子一班指导教师:谢明华、刘辉

目录 前言 (5) 一、课程设计目的 (6) 二、设计内容及原理 (6) 2.1 单片机控制系统原理 (6) 2.2阵键盘识别显示系统概述 (6) 2.3键盘电路 (7) 2.4 12864显示器 (8) 2.5整体电路图 (9) 2.6仿真结果 (9) 三、实验心得与体会 (10) 四、实验程序 (10) 参考文献 (18)

前言 单片机,全称单片微型计算机(英语:Single-Chip Microcomputer),又称微控制器 应(不用外接硬件)和节约成本。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单,功能较低。由于其发展非常迅速,旧的单片机的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器;从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。现代人类生活中所用的几乎每件有电子器件的产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电子产品中都含有单片机。汽车上一般配备40多片单片机,复杂的工业控制系统上甚至可能有数百片单片机在同时工作!单片机的数量不仅远超过PC机和其他计算机的总和,甚至比人类的数量还要多。 是以电流刺激液晶分子产生点、线、面配合背部灯管构成画面。由一定数量的彩色或黑白像素组成,放置于光源或者反射面前方。液晶显示器功耗低,因此倍受工程师青睐,适用于使用电池的电子设备。英国科学家在上世纪制造了第一块液晶显示器即LCD。而第一台可操作的LCD基于动态散射模式(Dynamic Scattering Mode,DSM),是RCA公司乔治·海尔曼带领的小组开发的。 LED点阵屏通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片、动画、视频等,是各部分组件都模块化的显示器件,通常由显示模块、控制系统及电源系统组成。LED点阵显示屏制作简单,安装方便,被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。 交叉处不直接连通,而是通过一个按键加以连接。这样,一个端口(如P1口)就可以构成4*4=16个按键, 键盘是合理的。

matlab-GUI矩阵计算器

数学应用软件工具箱开发 ——矩阵计算器 姓名:*** 学号:******** 指导老师:*** 专业:******** 2014年9月11日

一.操作过程 1.准备工作 ①在Matlab的主窗口中,选择File菜单中的New菜单项,再选择其中的GUI 命令,就会显示GUI的设计模板; ②选择GUI模板中的默认的空白模版Blank GUI(Default)就会显示GUI设计窗口,可以开始设计矩阵计算器了。 2.设计过程 ①在GUI界面中加入以下控件: 1>2个文本编辑器(edit text)作为输入矩阵的窗口; 2>16个用以执行运算的按钮(push button); 3>4个静态文本框(static text),其中一个作为显示计算所得结果的窗口,另外3个分别作为表示所输入的矩阵(A、B)以及用来输入标题(矩阵计算器); 4>加入3个按钮组(button group)分别圈住: a.1>中的2个控件及3>中的A、B; b.2>中的16个计算按钮; c.3>中的显示计算结果的窗口。 ②分别双击以上25个控件修改其string属性如下: 1>中的改为空白(将原有的“edit text”删掉); 2>中的改为对应的矩阵运算或文字,如“+”、“/R”、“秩”、“逆”等(见图1); 3>中的按顺序改为空白、“A”、“B”以及“矩阵计算器”; 4>中的按钮组分别改为“输入区”、“功能区”、“输出区”。 ③对每个控件分别单击右键,选择“view callback”→“callback”→“保存”,在每个控件的函数后加入代码(见附件)。 ④此外,还需要做的小变动有: 1>②中修改string属性时通过修改fontWeight及fontSize把string的字符粗细、字号也一并修改了。 2>分别双击2个文本编辑器(edit text)将其max属性取值为100或更大的值,以使编辑器有滚动条,方便显示输入的维数比较大的矩阵。 3>双击计算结果窗口将其style改为listbox,也用于显示维数比较大的计算结果。

单片机 矩阵键盘实验 实验报告

实验五矩阵键盘实验 一、实验内容 1、编写程序,做到在键盘上每按一个数字键(0-F)用发光二极管将该代码显示出来。按其它键退出。 2、加法设计计算器,实验板上有12个按键,编写程序,实现一位整数加法运算功能。可定义“A”键为“+”键,“B”键为“=”键。 二、实验目的 1、学习独立式按键的查询识别方法。 2、非编码矩阵键盘的行反转法识别方法。 三、实验说明 1、MCS51系列单片机的P0~P3口作为输入端口使用时必须先向端口写入“1”。 2、用查询方式检测按键时,要加入延时(通常采用软件延时10~20mS)以消除抖动。 3、识别键的闭合,通常采用行扫描法和行反转法。行扫描法是使键盘上某一行线为低电平,而其余行接高电平,然后读取列值,如读列值中某位为低电平,表明有键按下,否则扫描下一行,直到扫完所有行。 行反转法识别闭合键时,要将行线接一并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作于输入方式,程序使CPU通过输出端口在各行线上全部送低电平,然后读入列线值,如此时有某键被按下,则必定会使某一列线值为0。然后,程序对两个并行端口进行方式设置,使行线工作于输入方式,列线工作于输出方式,并将刚才读得的列线值从列线所接的并行端口输出,再读取行线上输入值,那么,在闭合键所在行线上的值必定为0。这样,当一个键被接下时,必定可以读得一对唯一的行线值和列线值。 由于51单片机的并口能够动态地改变输入输出方式,因此,矩阵键盘采用行反转法识别最为简便。 行反转法识别按键的过程是:首先,将4个行线作为输出,将其全部置0,4个列线作为输入,将其全部置1,也就是向P1口写入0xF0;假如此时没有人按键,从P1口读出的值应仍为0xF0;假如此时1、4、7、0四个键中有一个键被按下,则P1.6被拉低,从P1口读出的值为0xB0;为了确定是这四个键中哪一个被按下,可将刚才从P1口读出的数的低四位置1后再写入P1口,即将0xBF写入P1口,使P1.6为低,其余均为高,若此时被按下的键是“4”,则P1.1被拉低,从P1口读出的值为0xBE;这样,当只有一个键被按下时,每一个键只有唯一的反转码,事先为12个键的反转码建一个表,通过查表就可知道是哪个键被按下了。 四、接线方法 键盘连接成4×4的矩阵形式,占用单片机P1口的8根线,行信号是P1.0-1.3,列信号是P1.4-1.7。

数码管之简单加减法计算器--项目总结

数码管之简单加减法计算器--项目总结 总结人:徐冉1.项目使用到的硬件板载资源 1)单片机STC89C52RC作为系统的处理器 2)6位共阳极数码管作为计算器的数字显示器件 3)LCD1602液晶显示一些提示信息如计算时的符号(正/负) 4)4*4矩阵按键作为计算器的数字输入设备 5)8个贴片LED小灯,用于走马灯效果作为修饰 6)用到了单片机的内部资源定时器T0 2.项目的基本功能 通过程序的烧录,将工程中的hex文件烧录到Kingst-51开发板上。现象如下: 初始时 1)最右边的数码管上显示0,其余数码管不显示。 2)五个LED小灯像小火车一样循环跑着。 3)LCD1602液晶的左上角显示Symbol:字样,用于显示符号。 正数不显示,负数时将显示‘-’。 进行简单的加减法运算 当用户使用按键输入相应的数字时,会在数码管上显示。数字值将进行进位累加方式实现。数字键(k13 k1 ~ k3 k5 ~ k7 k9 ~ k11 0 ~ 9),k4加法功能键,k12减法功能键,k14 ESC清零键,k4和

k12是双功能键,即k4既是加法键也是计算键,k12既是减法键也是计算键。达到一键两用的效果。注意:用户在进行加法计算时可以随意计算,但在计算减法时第一步需要进行一次加法,然后才能进行减法运算。当计算结果是负数时会在数码管上显示相应的数值的绝对值,而在LCD1602液晶上显示‘-’。在计算期间LED 小灯会一直循环流动。这个计算器可以实现连加连减,计算十分方便,但没有处理小数。当计算完成时,或输入错误时可按k14进行清零操作。 3.项目的创新点 首先该项目使用了LED 的跑马灯效果进行了装饰,为了程序的简单且直观性程序使用了LCD1602进行运算时符号的显示。程序在计算上使用了一键两用的功能设计,这样设计方便快捷。 4.项目的设计流程 N Y 上电 LCD1602液晶 初始化 74HC138译码器初始化 配置定时器T0定时1ms 中断 Lcd1602初始化显示Symbol 主函数while 循环进行按键动作检测 1ms 到 按键扫描 LED 小灯&数码管扫描 结束

计算器按键的使用说明

计算器按键的使用说明. 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 4×4矩阵式键盘识别显示系统概述 矩阵式键盘模式以N个端口连接控制N*N个按键,实时在LED数码管上显示按键信息。显示按键信息,既降低了成本,又提高了精确度,省下了很多的I/O 端口为他用,相反,独立式按键虽编程简单,但占用I/O口资源较多,不适合在按键较多的场合应用。并且在实际应用中经常要用到输入数字、字母、符号等操作功能,如电子密码锁、电话机键盘、计算器按键等,至少都需要12到16个按键,在这种情况下如果用独立式按键的话,显然太浪费I/O端口资源,为了解决这一问题,我们使用矩阵式键盘。 矩阵式键盘又称行列键盘,它是用N条I/O线作为行线,N条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为N×N个。这种行列式键盘结构能有效地提高单片机系统中I/O口的利用率。 最常见的键盘布局如图1.1所示。一般由16个按键组成,在单片机中正好可以用一个P口实现16个按键功能,这也是在单片机系统中最常用的形式,本设计就采用这个键盘模式。 图1.1 键盘布局

2系统主要硬件电路设计 2.1单片机控制系统原理 图2.1 单片机控制系统原理框图 2.2单片机主机系统电路 AT89C52单片机是51系列单片机的一个成员,是52单片机的简化版。内部自带2K字节可编程FLASH存储器的低电压、高性能COMS八位微处理器,与Intel MCS-52系列单片机的指令和输出管脚相兼容。由于将多功能八位CPU和闪速存储器结合在单个芯片中,因此,AT89C52构成的单片机系统是具有结构最简单、造价最低廉、效率最高的微控制系统,省去了外部的RAM、ROM和接口器件,减少了硬件开销,节省了成本,提高了系统的性价比。 图2.2 单片机主机系统图

计算器说明书

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点阵的汉字。低压低功耗是其又一显著特点。与同类液晶模块相比,无论硬件电路或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的液晶模块。

相关主题
文本预览
相关文档 最新文档