51单片机写LCD1602的程序两行都写
时间: 2023-06-27 21:01:58 浏览: 103
以下是51单片机使用C语言写LCD1602的程序:
```c
#include <reg51.h>
//定义LCD1602相关端口
sbit RS = P2^0; //寄存器选择位
sbit RW = P2^1; //读写选择位
sbit EN = P2^2; //使能信号
//函数声明
void delay(int x);
void write_com(unsigned char com);
void write_data(unsigned char dat);
void main()
{
//初始化
write_com(0x38); //设置显示模式,16x2,5x7点阵,8位数据总线
write_com(0x0c); //显示开,光标关闭
write_com(0x06); //文字写入时光标自动右移,屏幕不移动
write_com(0x01); //清屏
//显示数据
write_data('H'); //显示‘H’
write_data('e'); //显示‘e’
write_data('l'); //显示‘l’
write_data('l'); //显示‘l’
write_data('o'); //显示‘o’
write_data(','); //显示‘,’
write_data(' '); //显示‘ ’
write_data('W'); //显示‘W’
write_data('o'); //显示‘o’
write_data('r'); //显示‘r’
write_data('l'); //显示‘l’
write_data('d'); //显示‘d’
write_data('!'); //显示‘!’
}
//延时函数
void delay(int x)
{
int i, j;
for(i = 0; i < x; i++)
{
for(j = 0; j < 110; j++);
}
}
//写命令函数
void write_com(unsigned char com)
{
RS = 0; //选择命令寄存器
RW = 0; //选择写入模式
P0 = com; //将命令写入数据总线
EN = 1; //使能信号置高
delay(1); //延时1ms
EN = 0; //使能信号置低
}
//写数据函数
void write_data(unsigned char dat)
{
RS = 1; //选择数据寄存器
RW = 0; //选择写入模式
P0 = dat; //将数据写入数据总线
EN = 1; //使能信号置高
delay(1); //延时1ms
EN = 0; //使能信号置低
}
```
以上程序中,`write_com()`函数用于写入LCD1602的命令,`write_data()`函数用于写入LCD1602的数据,`delay()`函数为简单的延时函数。在主函数中,先进行LCD1602的初始化,然后将要显示的数据一个一个写入到LCD1602中。
阅读全文