当前位置:首页 > 编程笔记 > 正文
已解决

基于51单片机简易计算器仿真设计(proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

来自网友在路上 171871提问 提问时间:2023-09-24 07:28:22阅读次数: 71

最佳答案 问答题库718位专家为你答疑解惑

基于51单片机简易计算器仿真设计(proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

    • 讲解视频
    • 1.1 功能要求
    • 1.2 仿真图:
    • 1.3 原理图:
    • 1.4 PCB:
    • 1.5 源程序:
    • 1.6设计报告:
    • 资料清单&&下载链接:

基于51单片机简易计算器仿真设计(proteus仿真+程序+原理图+PCB+设计报告+讲解视频)

仿真版本:proteus 7.8

原理图PCB:Altium Designer

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0001

讲解视频

基于51单片机的简易计算器proteus仿真设计

1.1 功能要求

芯片可以替换为STC89C52/STC89C51/AT89C52/AT89C51等51单片机芯片。

一、该简易计算器设计硬件电路采用三部分电路模块构成:

1、键盘模块电路,采用 4*4 矩阵式键盘作为输入电路;

2、LCD1602 液晶显示模块;

3、以 51 单片机作为控制核心。

二、软件程序主要由三部分组成: 主程序、按键扫描程序和 LCD1602 显示程序。

三、 性能指标

(1) 用51单片机设计一个简易计算器, 并用 1602 液晶显示相应的数据。

(2) 可以进行简单的加减乘除运算。

(3) 最大可以 9999*9999, 。

(4) 可以通过 proteus 仿真。

1.2 仿真图:

打开仿真工程,双击proteus中的单片机,选择hex文件路径,然后开始仿真。开始仿真后LCD1602暂时没有显示,需要按下按键才显示数字。

加法测试:按键按下123+456后再按=号,第二行显示计算到的结果579。

img减法测试:按键按下789-456后再按=号,第二行显示计算到的结果333

img

除法测试:按键按下9999*9999后再按=号,第二行显示计算到的结果99980001。

img

除法测试:按键按下9999/9后再按=号,第二行显示计算到的结果1111。

img

1.3 原理图:

AD绘制的

img

1.4 PCB:

img

Proteus仿真和实物作品的区别:

1.运行环境:Proteus仿真是在计算机上运行的,而实物则是在硬件电路板上运行。

2.调试方式:在Proteus仿真中,可以方便地进行单步调试和观察变量值的变化,而在实物中则需要通过调试器或者串口输出等方式进行调试。

电路连接方式:在Proteus仿真中,可以通过软件设置进行电路连接的修改,而在实物中则需要通过硬件电路板和连接线进行修改。

3.运行速度:Proteus仿真通常比实物运行速度快,因为仿真是基于计算机运行的,而实物则需要考虑电路板上的物理限制和器件的响应时间等因素。

4.功能实现:在Proteus仿真中,可以通过软件设置实现不同的功能,而在实物中则需要根据电路设计和器件的性能进行实现。

1.5 源程序:

img
部分代码

#include "reg52.h"
#include "string.h"
#include "stdio.h"
#include "lcd1602.h"
#include "keyboard.h"#define keydeng		14
#define keyzuoyi    12code unsigned char KeyDisPlaybuf[16] = 
{'1', '2', '3', '+',\'4', '5', '6', '-',\ '7', '8', '9', '*',\'<', '0', '=', '/'
};long Count(char *ch, char len)//简单计算器 仅支持加减乘除+-*/
{unsigned char i = 0;char Operation;long Num1=0,Num2=0;while(i<len && ch[i]!='+' && ch[i]!='-' && ch[i]!='*' && ch[i]!='/')	 //输入的数据 数值1{Num1*=10;Num1+=ch[i]-'0';i++;}Operation=ch[i++];while(i<len && ch[i]!='=')	   //输入的数据 数值2{Num2*=10;Num2+=ch[i]-'0';i++;}switch(Operation)	   //计算{case'+':return Num1+Num2;//加法case'-':return Num1-Num2;//减法case'*':return Num1*Num2;//乘法case'/':return Num1/Num2;//除法}return 0;
}void EasyCounter(void)
{unsigned char buff[30];unsigned char text[30];unsigned char key;unsigned char i = 0;do{key = keycan();//读取键值	if(key!=0xff)//键值不等于0{text[i++]=KeyDisPlaybuf[key];//记录键值对应的字符text[i]='\0';LCD_ShowStr(0,0,"                ");LCD_ShowStr(16-strlen(text),0,text); //第一行显示字符}if(key==keyzuoyi&&i>0)//按下"<"时删除一位i-=2;}while(key!=keydeng);//按下'='时结束输入sprintf(buff, "%ld", Count(text, strlen(text)));LCD_ShowStr(0,1,"                ");LCD_ShowStr(16-strlen(buff),1,buff);	  //第二行显示字符
}void main(void)	//主函数
{LCD_Init();while(1){EasyCounter();	//按键扫描+计算+显示}
}

1.6设计报告:

img

资料清单&&下载链接:

0、常见使用问题及解决方法–必读!!!!

1.程序

2.仿真

3.原理图和PCB

4.开题报告

5.元器件清单

6.功能要求

7.设计报告

8.讲解视频

Altium Designer 安装破解

KEIL+proteus 单片机仿真设计教程

KEIL安装破解

Proteus元器件查找

Proteus安装

Proteus简易使用教程

单片机学习资料

相关数据手册

答辩技巧

设计报告常用描述

鼠标双击打开查找更多51 STM32单片机课程毕业设计.url

img

资料下载链接(可点击):

查看全文

99%的人还看了

猜你感兴趣

版权申明

本文"基于51单片机简易计算器仿真设计(proteus仿真+程序+原理图+PCB+设计报告+讲解视频)":http://eshow365.cn/6-12612-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!