写一段c语言实现89c51中lcd屏幕显示.4*4矩阵按键键值
时间: 2024-05-21 16:12:34 浏览: 18
#include<reg51.h>
sbit RS = P0^0; //定义RS引脚为P2.0
sbit RW = P0^1; //定义RW引脚为P2.1
sbit EN = P0^2; //定义EN引脚为P2.2
void Delay(int i) //延迟函数
{
int j,k;
for(j=0;j<i;j++)
for(k=0;k<120;k++);
}
void WriteCom(unsigned char com) //写命令函数
{
RS = 0;
RW = 0; //先将RS、RW均清零
P2 = com; //将com命令送到P2口
Delay(10);
EN = 1; //再将EN置高
Delay(10);
EN = 0; //最后将EN置低
}
void WriteData(unsigned char d) //写数据函数
{
RS = 1;
RW = 0; //先将RS置高、RW清零
P2 = d; //将数据d送到P2口
Delay(10);
EN = 1; //再将EN置高
Delay(10);
EN = 0; //最后将EN置低
}
void Init() //LCD初始化函数
{
Delay(500);
WriteCom(0x38); //发送00111000B,功能设定:16×2,5×7矩阵,8位数据接口
Delay(50);
WriteCom(0x0d); //发送00001101B,显示设置:开显示、开光标、光标闪烁
Delay(50);
WriteCom(0x06); //发送00000110B,入口模式设定:光标右移、字符不移
Delay(50);
WriteCom(0x01); //清屏
Delay(50);
}
void main()
{
Init(); //LCD初始化
while(1)
{
unsigned char temp;
temp = P1&0x0f; //获取键盘输入值
WriteData(temp+'0'); //将键盘输入值加上‘0’发送到LCD屏幕
}
}