用stc89752RC/LE52RC芯片、单片机、OLED显示屏、4*4矩阵键盘做计算器的烧写代码,4*4键盘第一行从左到右的按键为7,8,9,+,第二行从左到右的按键为4,5,6,-,第三行从左到右的按键为1,2,3,*,第四行从左到右的按键为0,.,=,/。 并将显示器初始化和显示的代码也写出来
时间: 2024-04-28 18:27:12 浏览: 21
好的,您的问题已经收到。以下是您需要的代码:
```c
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
// 矩阵键盘的4行4列矩阵
uchar code keyvalue[4][4] = {
{'7', '8', '9', '+'},
{'4', '5', '6', '-'},
{'1', '2', '3', '*'},
{'0', '.', '=', '/'}
};
// OLED显示屏的IIC总线接口
sbit SCL=P3^6;
sbit SDA=P3^7;
// OLED显示屏的初始化函数
void OLED_Init()
{
// ...
}
// OLED显示屏的写命令函数
void OLED_WriteCmd(uchar cmd)
{
// ...
}
// OLED显示屏的写数据函数
void OLED_WriteData(uchar dat)
{
// ...
}
// OLED显示屏的清屏函数
void OLED_Clear()
{
// ...
}
// OLED显示屏的显示字符串函数
void OLED_ShowString(uint x, uint y, uchar *str)
{
// ...
}
// 4*4矩阵键盘的扫描函数
uchar KeyScan()
{
uchar i, j;
for (i = 0; i < 4; i++)
{
P1 = 0x0f & ~(1 << i);
for (j = 0; j < 4; j++)
{
if (!(P1 & (1 << (j + 4))))
{
return keyvalue[i][j];
}
}
}
return 0;
}
// 主函数
void main()
{
uchar ch;
uchar str[16] = {0};
OLED_Init(); // OLED显示屏初始化
OLED_Clear(); // OLED清屏
while (1)
{
ch = KeyScan(); // 读取键盘输入
if (ch)
{
if (ch == '=') // 计算结果
{
// ...
memset(str, 0, sizeof(str)); // 清空显示字符串
}
else
{
strcat(str, &ch); // 拼接输入字符到显示字符串
OLED_ShowString(0, 0, str); // 在OLED上显示输入字符串
}
}
}
}
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)