51单片机 LCD1602显示初始状态为State:OFF Spead:0,在按下按键1, LCD1602显示变为为State:ON Spead:1 实现该功能代码
时间: 2024-02-07 07:01:48 浏览: 156
51单片机1602液晶按键输入显示
5星 · 资源好评率100%
以下是基于51单片机的LCD1602显示器的代码实现:
```c
#include <reg51.h>
#include "lcd1602.h" // LCD1602驱动程序
sbit button1 = P3^1; // 定义按键1
void main() {
unsigned char state = 0; // 初始化状态为 OFF
unsigned char spead = 0; // 初始化速度为 0
lcd_init(); // 初始化LCD1602
while (1) {
if (button1 == 0) { // 检测按键1是否按下
delay(10); // 延时去抖
if (button1 == 0) {
state = !state; // 状态取反
spead = state ? 1 : 0; // 如果状态为 ON 则速度为 1,否则为 0
lcd_clear(); // 清屏
lcd_puts("State:"); // 显示状态
lcd_puts(state ? "ON" : "OFF");
lcd_gotoxy(0, 1); // 切换到第二行
lcd_puts("Spead:"); // 显示速度
lcd_puts(spead + '0');
}
while (button1 == 0); // 等待按键松开
}
}
}
```
其中,`lcd1602.h` 头文件中包含了 LCD1602 的初始化、清屏、光标位置控制等函数,可以根据需要进行修改。在 `main` 函数中,首先定义了状态和速度的变量,然后进入一个死循环中,不断检测按键1是否按下,如果按下,则将状态取反,并根据新的状态确定速度。然后使用 LCD1602 的函数显示状态和速度。最后等待按键松开后继续循环。
阅读全文