admin 管理员组

文章数量: 887021


2023年12月18日发(作者:怎样退出任务管理器快捷键)

c51设计简易计算器实验代码

C51是一种常用的单片机系列,具有高性能、低功耗等特点。在本篇文章中,我们将以C51设计一个简易计算器实验代码为主题,来介绍如何使用C51单片机来实现一个基本的计算器功能。

一、设计思路

我们的计算器功能包括四则运算和清零操作。通过按键输入数字和运算符,然后通过LCD显示屏显示计算结果。我们将使用C语言编写代码来实现这一功能。

二、硬件连接

我们需要将C51单片机与其他硬件连接起来。具体的硬件连接如下:

1. C51单片机与矩阵键盘连接:将矩阵键盘的行和列分别连接到C51单片机的I/O口。

2. C51单片机与LCD显示屏连接:将LCD显示屏的数据线和控制线分别连接到C51单片机的I/O口。

三、软件实现

接下来,我们将使用C语言编写代码来实现计算器的功能。代码的主要逻辑如下:

1. 初始化:设置C51单片机的I/O口为输入和输出模式,并初始化LCD显示屏。

2. 获取按键输入:通过扫描矩阵键盘,获取用户输入的数字和运算符。

3. 进行运算:根据用户输入的运算符,进行相应的四则运算。

4. 显示计算结果:将计算结果通过LCD显示屏显示出来。

5. 清零操作:通过按下清零按钮,将计算器的结果清零。

四、代码示例

下面是一个简单的C51计算器代码示例:

```c

#include

#define uchar unsigned char

sbit RS = P1^0; // LCD显示屏控制线

sbit RW = P1^1; // LCD显示屏控制线

sbit E = P1^2; // LCD显示屏控制线

sbit K1 = P2^0; // 矩阵键盘按键

sbit K2 = P2^1; // 矩阵键盘按键

sbit K3 = P2^2; // 矩阵键盘按键

sbit K4 = P2^3; // 矩阵键盘按键

sbit K5 = P2^4; // 矩阵键盘按键

sbit K6 = P2^5; // 矩阵键盘按键

sbit K7 = P2^6; // 矩阵键盘按键

sbit K8 = P2^7; // 矩阵键盘按键

uchar code table[] =

{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; // 矩阵键盘扫描

码表

uchar number1 = 0; // 第一个操作数

uchar number2 = 0; // 第二个操作数

uchar result = 0; // 运算结果

uchar operator = 0; // 运算符

void delay(uchar t) // 延时函数

{

uchar i, j;

for(i = t; i > 0; i--)

for(j = 110; j > 0; j--);

}

void init() // 初始化函数

{

RS = 0;

RW = 0;

E = 0;

P0 = 0x38; // 设置LCD显示屏为8位数据总线,显示2行,5x7点阵字符

E = 1;

delay(5);

E = 0;

P0 = 0x0c; // 设置LCD显示屏显示光标不闪烁,整体显示不

移位

E = 1;

delay(5);

E = 0;

P0 = 0x01; // 清屏

E = 1;

delay(5);

E = 0;

P0 = 0x06; // 设置LCD显示屏显示光标右移,整体不移位 E = 1;

delay(5);

E = 0;

}

void scan() // 扫描矩阵键盘函数

{

uchar i, j;

while(1)

{

P2 = 0xff;

for(i = 0; i < 8; i++)

{

P2 = table[i];

for(j = 0; j < 8; j++)

{

if(P2 == table[j])

{

switch(j)

{

case 0: number1 = 1; break;

case 1: number1 = 2; break;

case 2: number1 = 3; break;

case 3: number1 = 4; break;

case 4: operator = '+'; break;

case 5: operator = '-'; break;

case 6: operator = '*'; break;

case 7: operator = '/'; break;

}

}

}

}

if(K8 == 0)

{

number2 = number1;

number1 = 0;

operator = 0;

result = 0;

P0 = 0x01; // 清屏

E = 1;

delay(5);

E = 0;

}

if(number1 != 0 && operator != 0 && number2 != 0)

{

switch(operator)

{

case '+': result = number1 + number2; break;

case '-': result = number1 - number2; break;

case '*': result = number1 * number2; break;

case '/': result = number1 / number2; break;

}

number1 = 0;

number2 = 0;

operator = 0;

P0 = result; // 显示计算结果

E = 1;

delay(5);

E = 0;

}

}

}

void main()

{

init(); // 初始化

scan(); // 扫描矩阵键盘

}

```

五、总结

通过以上的代码实现,我们成功地使用C51单片机设计了一个简易计算器。用户可以通过按键输入数字和运算符,并通过LCD显示屏显示计算结果。这个计算器虽然功能简单,但是基本满足了我们日常的计算需求。通过这个实验,我们不仅学习了C51单片机的基本操作,还提高了我们的编程能力。希望这篇文章对大家有所帮助,谢谢阅读!


本文标签: 计算器 键盘 矩阵 代码