基于51单片机的简易计算器,用LCD1602显示

这篇博客介绍了基于51单片机STC89C52制作的一个简易计算器,计算器使用LCD1602进行显示,并在开始时设置了一个简单的密码验证。文章详细讲解了设计思路,包括LCD1602的电路图、主函数程序设计、初始化、键盘扫描方法以及密码程序。最后展示了密码验证和计算界面的实际效果。
摘要由CSDN通过智能技术生成

基于51单片机的简易计算器

经历了一番学习,成功做出了一个简易的计算器,并且在程序开头加了一个小密码。我用的单片机是STC89C52,单片机类型不同,电路图也是不一样的。

一.设计思路

1.1LCD1602的电路图


该芯片引脚,

sbit RS = P3^5; //液晶引脚定义
sbit RW = P3^6;
sbit EN = P3^4;
#

1.2主函数思路

主函数的思路图:
在这里插入图片描述

1.3主函数程序

main()
{
   
 uchar i,num,sign,s;
 uchar temp[16];
 bit firstflag;
 float a=0,b=0;
 Lcd_Init();
 DelayMs(10);
 LcdWrite_cmd(0x01);
 LcdWrite_string(5,0,"WELCOM !");
 LcdWrite_string(3,1,"LI HUA HUI");
 for(s=0;s<25;s++)
 DelayMs(200);
 LcdWrite_cmd(0x01);
 mima();
 DelayMs(200);
 LcdWrite_string(0,1,"                ");//清除该行
  LcdWrite_string(0,1,"Right Open!>>>>");//密码正确显示的信息
 for(s=0;s<25;s++)
 DelayMs(200);
 LcdWrite_cmd(0x01);
 while(1)
 {
   
 num=KeyPro();
 if(num!=0xff)
 {
   
  if(i==0)
  LcdWrite_cmd(0x01);
   if(('+'==num) || ('-'==num) || ('*'==num) || ('/'==num) || ('='==num) || (i==16))
    {
   
    i=0; 
    LcdWrite_char(0,1, num);//应该输入字符,而不是字符串
    if(firstflag==0)
    {
   
     sscanf(temp,"%f",&a);
     firstflag = 1;
    }
    else
    {
   
     sscanf(temp,"%f",&b)
评论 79
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值