写一段单片机c语言代码,LCD1602液晶显示(姓名+学号),按下k1,LCD1602液晶屏第一行显示自己姓名拼音首字母。按下k2,LCD1602液晶屏第二行显示自己的学号。 按下k3,清屏。
时间: 2023-04-12 21:00:49 浏览: 544
以下是单片机C语言代码,实现LCD1602液晶显示姓名和学号,以及清屏功能:
```
#include <reg52.h>
#include <intrins.h>
#define LCD1602_DB P0
sbit LCD1602_RS = P2^6;
sbit LCD1602_RW = P2^5;
sbit LCD1602_EN = P2^7;
sbit K1 = P3^0;
sbit K2 = P3^1;
sbit K3 = P3^2;
void delay_ms(unsigned int ms)
{
unsigned int i, j;
for(i=0; i<ms; i++)
for(j=0; j<114; j++);
}
void LCD1602_WriteCmd(unsigned char cmd)
{
LCD1602_RS = 0;
LCD1602_RW = 0;
LCD1602_EN = 1;
LCD1602_DB = cmd;
_nop_();
_nop_();
LCD1602_EN = 0;
}
void LCD1602_WriteData(unsigned char dat)
{
LCD1602_RS = 1;
LCD1602_RW = 0;
LCD1602_EN = 1;
LCD1602_DB = dat;
_nop_();
_nop_();
LCD1602_EN = 0;
}
void LCD1602_Init()
{
LCD1602_WriteCmd(0x38);
LCD1602_WriteCmd(0x0c);
LCD1602_WriteCmd(0x06);
LCD1602_WriteCmd(0x01);
}
void LCD1602_Clear()
{
LCD1602_WriteCmd(0x01);
}
void main()
{
unsigned char name[] = "Your Name";
unsigned char id[] = "Your ID";
unsigned char i;
LCD1602_Init();
while(1)
{
if(K1 == 0)
{
LCD1602_Clear();
LCD1602_WriteCmd(0x80);
for(i=0; i<sizeof(name)-1; i++)
LCD1602_WriteData(name[i]);
LCD1602_WriteCmd(0x81);
LCD1602_WriteData(name[0]);
delay_ms(500);
}
if(K2 == 0)
{
LCD1602_Clear();
LCD1602_WriteCmd(0x80);
for(i=0; i<sizeof(id)-1; i++)
LCD1602_WriteData(id[i]);
LCD1602_WriteCmd(0x8a);
LCD1602_WriteData(id[0]);
delay_ms(500);
}
if(K3 == 0)
{
LCD1602_Clear();
delay_ms(500);
}
}
}
```