资源简介
stc89c51所制作的一个简易计算器包含原理图,使用51单片机制作的,利用矩阵键盘输入,实现数据的加减乘除,多位运算

代码片段和文件信息
/* 能够实现多位的二级运算
/*************
键盘格式
1 2 3 +
4 5 6 -
7 8 9 *
0 c = /
************/
#include “reg52.h“
#include
#include
#include
#include “intrins.h“
int counter(void);
void calculate1();
void show(int num);
long int sum=0;
uchar temp1=10;
uchar k=0z=0i=0tm=0n=0flag=0; //lay对k tran对zq对清屏 i对lay m对operator
int lay[18]; //储存键入字符
char operator[3];
long int tran[6];
//储存计算过程中运算符
void main()
{
UartInit();
init1602();
while(1)
{
temp1=matrixkeyscan(); //键盘扫描
if(temp1==‘c‘) //将各个数组相当于初始化; 将1602初始化一下 即清屏
{
init1602();
k=0z=0i=0tm=0n=0flag=0;
}
if((temp1!=10))
{
if((temp1!=‘=‘)&&(temp1!=‘c‘))
{
lay[i]=temp1;
i++;
if((temp1==‘+‘)||(temp1==‘-‘)||(temp1==‘*‘)||(temp1==‘/‘))
{
write_dat(temp1); //显示运算符
write_com(0x06);
}
}
}
if(temp1==‘=‘) // =在键盘扫描已经给显示了
{ lay[i]=temp1;
/******************将多位转化为每个数字存在另一个数组*************/
/********** 因为此处的限制 所以只能实现两个运算符*******/
for( k=0;(lay[k]>=0&&lay[k]<=9);k++) t=k+1; //将运算符找出 ,将t赋值,便于后面运算
if(k>=2) //将单位数字转化为一个数字
{
switch(k)
{
case 2: lay[k-1]=lay[k-1]+10*lay[k-2]; break;
case 3: lay[k-1]=lay[k-1]+10*lay[k-2]+100*lay[k-3] ; break;
case 4: lay[k-1]=lay[k-1]+10*lay[k-2]+100*lay[k-3]+1000*lay[k-4] ; break;
case 5: lay[k-1]=lay[k-1]+10*lay[k-2]+100*lay[k-3]+1000*lay[k-4]+10000*lay[k-4] ; break;
}
}
tran[0]=lay[k-1];
tran[1]=lay[k];
for(t++;(lay[t]>=0&&lay[t]<=9);t++) z++ ; //将单位数字转化为一个数字 ,将运算符之间的数字个数
if(z>=2) //统计为z
{
switch(z)
{
case 2: lay[k+1]=10*lay[k+1]+lay[k+2]; break;
case 3: lay[k+1]=100*lay[k+1]+10*lay[k+2]+lay[k+3]; break;
case 4: lay[k+1]=1000*lay[k+1]+100*lay[k+2]+10*lay[k+3]+lay[k+4]; break;
case 5: lay[k+1]=10000*lay[k+1]+1000*lay[k+2]+100*lay[k+3]+10*lay[k+4]+lay[k+5]; break;
}
}
tran[2]=lay[k+1];
tran[3]=lay[t]; z=0;
for(t++;(lay[t]>=0&&lay[t]<=9);t++) z++ ; //将单位数字转化为一个数字 ,将运算符之间的数字个数
k=t;
if(z>=2) //统计为z
{
switch(z)
{
case 2: lay[k-1]=lay[k-1]+10*lay[k-2]; break;
case 3: lay[k-1]=lay[k-1]+10*lay[k-2]+100*lay[k-3] ; break;
case 4: lay[k-1]=lay[k-1]+10*lay[k-2]+100*lay[k-3]+1000*lay[k-4] ; break;
case 5: lay[k-1]=lay[k-1]+10*lay[k-2]+100*lay[k-3]+1000*lay[k-4]+10000*lay[k-4] ; break;
}
}
tran[4]=lay[k-1]
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 829 2017-12-22 16:50 计算器\1602计算器\jisuan.H
文件 4144 2017-12-26 15:04 计算器\1602计算器\keyscan.h
文件 1155 2017-12-28 15:57 计算器\1602计算器\lcd1602.h
文件 5055 2017-12-30 15:30 计算器\1602计算器\main.c
文件 14969 2017-12-30 15:21 计算器\1602计算器\main.LST
文件 21563 2017-12-30 15:21 计算器\1602计算器\main.OBJ
文件 573 2018-06-18 17:46 计算器\1602计算器\usart.c
文件 196 2017-12-26 14:31 计算器\1602计算器\usart.h
文件 1815 2017-12-30 15:21 计算器\1602计算器\usart.LST
文件 2514 2017-12-30 15:21 计算器\1602计算器\usart.OBJ
文件 201728 2018-03-24 09:25 计算器\1602计算器\电路图\许相乐.SchDoc
文件 65311 2018-03-31 17:57 计算器\1602计算器\电路图\许相乐.SchDocPreview
文件 19606 2017-12-30 15:21 计算器\1602计算器\计算机
文件 706 2018-04-02 20:13 计算器\1602计算器\计算机.build_log.htm
文件 10703 2017-12-30 15:21 计算器\1602计算器\计算机.hex
文件 41 2017-12-30 15:21 计算器\1602计算器\计算机.lnp
文件 23855 2017-12-30 15:21 计算器\1602计算器\计算机.M51
文件 178 2017-12-30 15:30 计算器\1602计算器\计算机.plg
....... 90014 2018-10-22 21:08 计算器\1602计算器\计算机.uvgui.lenovo
文件 72773 2018-06-18 17:46 计算器\1602计算器\计算机.uvgui.xyt
文件 72166 2018-03-16 18:08 计算器\1602计算器\计算机.uvgui_xyt.bak
....... 6085 2018-10-22 21:08 计算器\1602计算器\计算机.uvopt
....... 14420 2018-10-22 21:08 计算器\1602计算器\计算机.uvproj
....... 5726 2018-03-09 16:28 计算器\1602计算器\计算机_uvopt.bak
....... 14007 2018-03-09 16:28 计算器\1602计算器\计算机_uvproj.bak
文件 3573 2017-12-12 09:09 计算器\1602计算器\键盘扫描及赋值.h
文件 149655 2019-03-30 12:29 计算器\计算器硬件\原理图.pdf
目录 0 2018-09-02 20:05 计算器\1602计算器\电路图
目录 0 2018-10-22 21:08 计算器\1602计算器
目录 0 2019-03-30 12:29 计算器\计算器硬件
............此处省略4个文件信息
- 上一篇:基于stc89c51的密码锁
- 下一篇:ftpscan扫描工具
相关资源
- BKM Lie超级代数从计算扭曲的CHL dyons
- 计算机组成原理CPU
- 离散傅里叶变换DFT的数学-音频应用
- 海思HISI3516DV300开发板QT应用显示界面
- hi3515 PC端SDK
- 简易计算器.vi(labview)
- 计算机三级-网络技术-第4大题题库-共
- 解读AT89C2051遥控接收器电路设计原理
- 电路图天天读19:局域网中红外遥控发
- 语音识别LD3320开发资料包含51代码
- 上海交大计算机图形学课程视频31集
- 51单片机通信采样proteus仿真方波转化
- 基于89C51的智能台灯
- 计算机数值分析.rar
- 51智能排课系统大课表版v5.1.3中文免费
- Beginning STM32: Developing with FreeRTOS libo
- MODERN ROBOTICS MECHANICS PLANNING AND CONTROL
- 51 单片机 红外避障小车 大集合136
- pcbtemp电流计算软件
- 信号奇异点Lipschitz指数计算
- 最新的北京地铁shp文件75146
- 04741计算机网络原理知识点整理.docx(
- 2018全国大学生计算机博弈大赛 棋谱
- 程序员专用字体YaHei.Consolas.1.11b42517
- GBT 15532-2008 计算机软件测试规范
- STC8951系列单片机中方指南
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- 中深层地热单井换热数值计算
- 基于MCS_51单片机的工业屏柜散热方案
评论
共有 条评论