51单片机lcd1602按键切屏
时间: 2023-07-24 09:31:47 浏览: 109
您好,关于51单片机控制LCD1602液晶显示屏的按键切屏,可以参考以下步骤:
1. 确定使用的按键引脚,通常为P3口的某一位。
2. 在程序中初始化P3口为输入状态。
3. 在主函数中循环检测按键状态,如果检测到按键按下,则执行切换屏幕的操作。
4. 切换屏幕可以通过修改LCD1602的DDRAM地址实现,具体方法是先发送0x80指令,然后发送对应的DDRAM地址。
下面是示例代码:
```
#include <reg51.h>
#include <intrins.h>
#define LCD1602_DB P0 // LCD1602数据口
sbit LCD1602_RS = P2^0; // LCD1602 RS引脚
sbit LCD1602_RW = P2^1; // LCD1602 RW引脚
sbit LCD1602_E = P2^2; // LCD1602 E引脚
sbit KEY = P3^0; // 按键引脚
void delay(int t) // 延时函数
{
while(t--)
{
_nop_();
}
}
void write_cmd(unsigned char cmd) // 写指令函数
{
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_DB = cmd;
LCD1602_E = 1;
delay(5);
LCD1602_E = 0;
}
void write_data(unsigned char dat) // 写数据函数
{
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_DB = dat;
LCD1602_E = 1;
delay(5);
LCD1602_E = 0;
}
void init_lcd() // 初始化LCD1602函数
{
write_cmd(0x38); // 显示模式设置:8位数据总线,2行显示,5x7点阵字符
write_cmd(0x0c); // 显示开关控制:显示开,光标关闭,光标闪烁关闭
write_cmd(0x06); // 光标/显示移位:光标右移,字符不移动
write_cmd(0x01); // 清屏指令:清除DDRAM和游标的内容,游标归位
}
void switch_screen() // 切换屏幕函数
{
static unsigned char flag = 0; // 切换屏幕的标志位,0表示显示第一屏,1表示显示第二屏
if(KEY == 0) // 检测到按键按下
{
delay(10); // 延时去抖
if(KEY == 0) // 再次检测按键状态
{
flag = !flag; // 切换标志位
if(flag == 0) // 显示第一屏
{
write_cmd(0x80); // 设置DDRAM地址为0
write_data('S'); // 写入字符'S'
write_data('c'); // 写入字符'c'
write_data('r'); // 写入字符'r'
write_data('e'); // 写入字符'e'
write_data('e'); // 写入字符'e'
write_data('n'); // 写入字符'n'
write_data('1'); // 写入字符'1'
}
else // 显示第二屏
{
write_cmd(0x80); // 设置DDRAM地址为0
write_data('S'); // 写入字符'S'
write_data('c'); // 写入字符'c'
write_data('r'); // 写入字符'r'
write_data('e'); // 写入字符'e'
write_data('e'); // 写入字符'e'
write_data('n'); // 写入字符'n'
write_data('2'); // 写入字符'2'
}
}
while(KEY == 0); // 等待按键释放
}
}
void main()
{
init_lcd(); // 初始化LCD1602
write_cmd(0x80); // 设置DDRAM地址为0
write_data('S'); // 写入字符'S'
write_data('c'); // 写入字符'c'
write_data('r'); // 写入字符'r'
write_data('e'); // 写入字符'e'
write_data('e'); // 写入字符'e'
write_data('n'); // 写入字符'n'
write_data('1'); // 写入字符'1'
while(1)
{
switch_screen(); // 切换屏幕
}
}
```
希望可以帮助到您!
阅读全文