【006】基于51单片机的简易电子计算器Proteus仿真设计

一、压缩包资料内容(私信获取

  • (1)、基于51单片机的简易电子计算器proteus仿真设计一份;
  • (2)、基于51单片机的简易电子计算器proteus仿真设计keli源代码一份;
  • (3)、基于51单片机的简易电子计算器proteus仿真设计参考毕业论文一份;
  • (4)、基于51单片机的简易电子计算器proteus仿真设计视频讲解一份;

二、设计要求

  • (1)、本次电子实训课程要求以STC89C51系列单片机作为主控制芯片,设计一款简易电子计算器;
  • (2)、系统要求采用LCD1602模块显示运算过程以及运算结果;
  • (3)、系统实现简单的加减乘除的四项基本运算;

三、相关资料截图

图1. proteus仿真界面截图

图2. Keil编程界面源代码截图

图3. 基于51单片机的简易电子计算器论文截图

四、视频讲解

私信获取全部内容 

部分源代码

#include<reg51.h>   
#define uint unsigned int 
#define uchar unsigned char

sbit lcden=P3^7; 
sbit rs=P3^5;
sbit rw=P3^6;

char i,j,temp,num,num_1;
long a,b,c;    
float a_c,b_c;
uchar flag,fuhao;


uchar code table[]={
7,8,9,0,
4,5,6,0,
1,2,3,0,
0,0,0,0};
uchar code table1[]={	
7,8,9,0x2f-0x30,	//7,8,9,÷
4,5,6,0x2a-0x30,	//4, 5, 6,×
1,2,3,0x2d-0x30,	//1, 2, 3,-
0x01-0x30,0,0x3d-0x30,0x2b-0x30//C,0,=,+
};
void delay(uchar z) 
{
uchar y;
for(z;z>0;z--)
   for(y=0;y<110;y++);
}
void write_com(uchar com) 
{
	rs=0;
	P1=com;    
	delay(5);lcden=1;delay(5); lcden=0;
}

void write_date(uchar date) 
{
	rs=1; P1=date; delay(5);
	lcden=1; delay(5); lcden=0;
}

void init() //初始化
{
    num=-1;
lcden=1; 
rw=0;
write_com(0x38); 
delay(5); write_com(0x38); 
delay(5); write_com(0x0c); 
delay(1); write_com(0x06); 
delay(1); write_com(0x80); 
delay(1); write_com(0x01); 
num_1=0;
i=0; j=0;
a=0;     
b=0;  
c=0;
flag=0;
fuhao=0; 
}
void keyscan() 
{
	P2=0xfe; 
	if(P2!=0xfe)
	{
	   delay(20);// 延迟20ms
	   if(P2!=0xfe) {  temp=P2&0xf0;
	    switch(temp)
	    {
	     case 0xe0:num=0;   break;	
	     case 0xd0:num=1;   break; 	
	     case 0xb0:num=2;   break;	
	     case 0x70:num=3;   break;	
	    }
	   }   while(P2!=0xfe);
	   if(num==0||num==1||num==2)
	   { 
	       if(j!=0){write_com(0x01); j=0;  }
	       if(flag==0)
		    { a=a*10+table[num];    } 
		    else
		    {    b=b*10+table[num];   }
	   }
	   else
	   {
	    flag=1;
	    fuhao=4;
	   }
	   i=table1[num];     
	   write_date(0x30+i);
	}

	P2=0xfd;
	if(P2!=0xfd)
	{
	   delay(20);
	   if(P2!=0xfd){  temp=P2&0xf0;
	    switch(temp)
	    {
	     case 0xe0:num=4; break; //4
	     case 0xd0:num=5; break; //5
	     case 0xb0:num=6; break; //6
	     case 0x70:num=7; break; //×
	    }
	   }   while(P2!=0xfd);
	   if(num==4||num==5||num==6&&num!=7)//如果按下的是'4','5'或'6'
	   { 
	    if(j!=0){ write_com(0x01);  j=0;   }
	       if(flag==0)
	    { a=a*10+table[num];     }
	    else
	    { b=b*10+table[num];   }
	   }
	   else//如果按下的是'×'
	   {  flag=1;
	      fuhao=3;
	   }
	   i=table1[num];      
	   write_date(0x30+i);
	}

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
### 回答1: 51单片机是一款由英特尔公司设计并制造的微控制器芯片。它具有强大的计算能力和丰富的外设接口,适用于各种嵌入式系统和计算机控制应用。 Proteus是一款著名的虚拟电子设计自动化软件,可以进行电路设计仿真和PCB布局。在这个软件中,我们可以使用51单片机模型并进行仿真测试。 对于51单片机计算器仿真,我们可以通过Proteus来验证和优化其功能。首先,我们需要在Proteus中创建一个适当的电路图,包含需要的外设,如键盘、显示屏和运算电路等。 接下来,我们可以使用Proteus提供的仿真功能,通过输入不同的测试数据,观察计算器的输出是否与预期相符。在仿真过程中,我们可以通过引入不同的测试用例,测试计算器在不同的情况下的性能和稳定性。 通过Proteus仿真,我们可以验证51单片机计算器的正确性,并发现潜在的问题和缺陷。如果出现问题,我们可以在Proteus中进行调试和修改,以确保计算器的正确运行。 总之,51单片机计算器Proteus仿真是一种有效的验证和优化设计的方法。它可以帮助我们验证计算器的功能和稳定性,并帮助我们在设计阶段发现和解决问题,从而提高计算器的性能和可靠性。 ### 回答2: 51单片机计算器是一种使用51单片机芯片制作的计算器设备。Proteus是一款流行的电子电路设计软件。在仿真过程中,可以使用Proteus来模拟51单片机计算器的运行。 首先,在Proteus中添加一个51单片机芯片,然后将计算器的电路连接到芯片的相应引脚。这些引脚包括计算器的输入按键、显示屏、LED灯和电源等。根据计算器的功能设计,可以将按键输入通过引脚连接到单片机的GPIO口,通过程序控制按键输入的检测和计算。 在Proteus中,可以使用51单片机的IDE来编写计算器的控制程序,该程序可以在单片机上进行仿真和调试。仿真过程中,可以通过模拟按键按下,电路输入和输出等,来测试计算器的各种功能。 通过仿真和调试,可以验证计算器的正确性和可靠性。根据测试结果,可以对计算器的电路和程序进行优化和修复,以实现更好的性能和稳定性。 综上所述,在Proteus中进行51单片机计算器仿真是一种方便有效的方法,可以帮助工程师测试和优化计算器的功能和性能。这样可以减少实际硬件搭建的成本和时间,同时也方便了对计算器的开发和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

B站小邓子分享官

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值