目录
一、主要功能
二、使用步骤
三、硬件资源
四、软件设计
五、实验现象
联系作者
一、主要功能
1、LCD1602液晶显示
2、矩阵按键
3、可以进行简单的加减乘除运算
4、最大 9999*9999
二、使用步骤
系统运行后,LCD1602显示数据,通过矩阵按键输入
三、硬件资源
1、51单片机核心模块
2、按键模块
3、LCD1602显示模块
四、软件设计
//操作简介
// 按第一个数,再按'+-*/',再按'='显示出结果,然后按C清屏
// 加最大9999+9999=19998
// 减最大9999-0 =9999
// 乘最大9999*9999=99980001
// 除 1/9=0.1111 保留小数点后4位
/*
接盘按键说明:
--------------------------------------------------
| 1 | 2 | 3 | + |
- - - - - - - - - - - - -
| 4 | 5 | 6 | - |
- - - - - - - - - - - - -
| 7 | 8 | 9 | * |
- - - - - - - - - - - - -
| C | 0 | = | / |
--------------------------------------------------*/
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
//--------LCD1602-------------------
//P00-07==== D0-7
sbit rs=P2^7; //指令or数据
sbit wela=P2^6; //读or写
sbit lcden=P2^5; //使能信号
//--------LCD1602-------------------
//--------KEY-----------------------
//P1口
//--------KEY-----------------------
uchar code table[]= " ";
long int data_a,data_b; //第一个数和第二个数
long int data_c; //计算结果
uchar dispaly[10]; //显示缓冲
//************************************************************************/
// 描述: 延时t us函数
//************************************************************************/
void LCD_Delay_us(unsigned int t)
{
while(t--); //t=0,退出
}
//************************************************************************/
// 描述: 延时t ms函数
//************************************************************************/
void LCD_Delay_ms(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++) //执行t次循环
for(j=0;j<113;j++) //执行113次循环
;
}
//************************************************************************/
// 描述: 1602液晶写指令
//************************************************************************/
void write_com(uchar com) //1602液晶写指令
{
rs=0; //写指令
lcden=0; //使能1602
P0=com; //写入指令com
LCD_Delay_ms(1); //延时1ms
lcden=1; //使能1602
LCD_Delay_ms(2); //延时2ms
lcden=0; //使能1602
}
//************************************************************************/
// 描述:1602液晶写数据
//************************************************************************/
void write_date(uchar date) //1602液晶写数据
{
rs=1; //写数据
lcden=0; //使能1602
P0=date; //写入数据date
LCD_Delay_ms(1); //延时1ms
lcden=1; //使能1602
LCD_Delay_ms(2); //延时2ms
lcden=0; //使能1602
}
五、实验现象
B站演示视频:【51单片机-B001】【protues仿真】基于51单片机简易计算器仿真_哔哩哔哩_bilibili本项目使用Proteus8仿真基于51单片机简易计算器包含:程序,仿真,文档等主要功能如下:1、LCD1602液晶显示2、矩阵按键3、可以进行简单的加减乘除运算4、最大可以 9999*9999, 视频播放量 8、弹幕量 0、点赞数 0、投硬币枚数 0、收藏人数 0、转发人数 1, 视频作者 无忧电子设计, 作者简介 Q:215138327 V:Kinpar 承接51,32单片机设计定做,51,32单片机protues仿真,实物,程序等。,相关视频:【STM32单片机-A005】【Proteus仿真】烟雾温湿度检测系统,【STM32单片机-A004】【Proteus仿真】超声波测距系统,基于51单片机的寻迹小车,Meta被DeepSeek逼疯? 员工爆料:无法向小扎交代,正在疯狂剖析复制中,基于51单片机的RLC测量仪系统,基于STM32单片机DHT11温湿度检测系统仿真,51单片机 篮球计时计分器2,51单片机 电机转速控制 2,[25w04a快照]亡者回归?剑格挡-SNBT列表兼容更多内容-我的世界,51单片机 热电偶温度控制系统https://www.bilibili.com/video/BV1VMfRYAEaC/https://www.bilibili.com/video/BV1VMfRYAEaC/
联系作者
作者B站链接:https://space.bilibili.com/3493294220773802
专注于51单片机、STM32、Proteus、物联网软件开发,PCB设计。