文章目录
前言一、硬件构成1.系统框图2.原理图
二、仿真三、代码四、资料下载
前言
本设计以51单片机为核心,矩阵键盘输入数字,通过1602显示屏显示计算结果,能够实现整数的加、减、乘、除四则运算,具备清除功能。
一、硬件构成
1.系统框图
本设计以51单片机为核心,硬件部分主要包含三个模块:单片机最小系统、LCD1602液晶显示电路和按键电路这三个模块,整体框图如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ca29a03f758d46b8952116588da1bb18.png)
2.原理图
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/f44015362e2444f1ad17c7374b35ab81.png)
二、仿真
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5f7c43e65ef64e488c460ef6e8c66a19.png)
三、代码
#include
typedef unsigned char uchar;
typedef unsigned int uint;
sbit E=ff^5;
sbit RS=ff^7;
uchar i,j,temp,num,num_1;
long a,b,c;//a,第一个数 b,第二个数 c,得数
float a_c,b_c;
uchar flag,fuhao;//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,
4,5,6,0x2a-0x30,
1,2,3,0x2d-0x30,
0x01-0x30,0,0x3d-0x30,0x2b-0x30
};
void delay(uchar z)
{
uchar x,y;
for(x=z;x>0;x--)
for(y=0;y>0;y--);
}
void write_com(uchar com)
{
RS=0;
E=0;
dd=com;
E=1;
delay(5);
E=0;
delay(5);
}
void write_date(uchar date)
{
RS=1;
E=0;
dd=date;
delay(5);
E=1;
E=0;
}
void init()
{
E=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x80);
write_com(0x01);
num_1=0;
a=0; //第一个参与运算的数
b=0; //第二个参与运算的数
flag=0;
fuhao=0;
}
四、资料下载
![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/4e2c702a76a54e41bf0adccc360e2360.png)
|