提供对应的Proteus仿真电路图,Keil程序源码(C语言),设计文档、原理图,PCB、模块资料、元件清单、程序流程图等电子资料参考学习,附带项目全部资料下载链接。
1)项目完整资料获取链接:下载链接
2)Keil、Proteus各个版本安装包: 下载链接
01设计要求
设计一个基于51单片机的简易计算器设计系统:
功能:进行计算器的基本功能运算。
02系统概述
1)硬件:4*4 矩阵键盘 + LCD1602显示
2)软件:主程序、按键扫描、LCD1602显示三大模块
3)软件程序主要由三部分组成: 主程序、按键扫描程序和LCD1602显示程序
03Proteus仿真
04示例代码
#include "reg52.h"
#include <stdlib.h>
/**************计算器复位****************/
void fuwei()
{
uchar idata j,i;
write_com(0x0f); write_com(0x01); write_com(0x81);
resultdate=0;
for(i=0;i<2;i++)
{
date[i]=0;bfun[i]=0;pai[0][i]=0;pai[1][i]=0;fsym[i]=0;futojiao[i]=0;
for(j=0;j<14;j++) bdate[i][j]='\0';
}
count=0;count_num=0;proc=0;ferror=0;eqsign=0;sc=0;savesign=0;ywei=0;press=0;on_symbol=0;
}
/**************error处理******************/
void callerror(void)
{
uchar idata i;
write_com(0x01); write_com(0x81);
write_str(" error! ");
for(i=0;i<200;i++) delay(25);
}
/*****************运算符预处理*****************/
void cullars(uchar csym)
{
read_date();
ferror++; continu=csym;
if(ferror==2&&state<0x43){callerror();huifu();return;}
if(ferror==2&&state>0x42)
{
press=1;
process_date('=');
press=1;
process_date('m');
ferror=1;
if(continu=='^'||continu=='%'){process[proc]='h';proc++;process[proc]=continu;proc++;}
else{process[proc]=continu;proc++;}
}
if(continu=='%') write_str(" f");
else write_date(' ');
write_date(continu);
ywei=0; savesign=0; count_num=1; count=0; on_symbol=continu;
write_com(0xc2);
}
05原理图

注:
源码使用Keil4或Keil5打开
仿真使用的是Proteus8.13及以上版本,版本过低可能会打不开。
06资料获取
1)项目完整资料获取链接:下载链接
2)Keil、Proteus各个版本安装包: 下载链接
附下载链接!&spm=1001.2101.3001.5002&articleId=162452393&d=1&t=3&u=7802c53ff75a45f3bbb8d13ea665dbbb)
431

被折叠的 条评论
为什么被折叠?



