仪器社区

C51单片机怎么让lcd1602显示两行?

我不怕受伤难过 2012-12-17
评论
全部评论
丿他不是我
我给你写个测试程序,diyi行显示A,第二行显示B

/*******************************************************************************************
* LCD1602液晶显示程序 51&AVR实验程序
*
* LCD1602液晶: 写指令;
*
* LCD1602液晶: 写数据;
*
* LCD1602液晶: 写指令和据;
********************************************************************************************/

#include "reg52.h"

sbit LCD_RS=P3^5;
sbit LCD_EN=P3^4;

#define Data_addr P0 //定义LCD1602液晶数据I口

void Delay_1ms(unsigned int Time)
{
unsigned int x, y;
for(x = Time; x > 0; x--)
for(y = 120; y > 0; y--);
}
/*********************************************************************************************
* 函数名称: Write_lcd1602_com(unsigned char com);
*
* 输入: 无
*
* 输出: 无
*
* 说明: 给LCD1602液晶写入指令*********************************************************************************************/
void Write_lcd1602_com(unsigned char com)
{
LCD_RS=0;
Data_addr=com;
Delay_1ms(5);
LCD_EN=1;
Delay_1ms(5);
LCD_EN=0;
}
/**********************************************************************************************
函数名称: Write_lcd1602_data(unsigned char date);
*
* 输入: 无
*
* 输出: 无
*
* 说明: 给LCD1602液晶写数据*********************************************************************************************/
void Write_lcd1602_data(unsigned char date)
{
LCD_RS=1;
Data_addr=date;
Delay_1ms(5);
LCD_EN=1;
Delay_1ms(5);
LCD_EN=0;
}
/*********************************************************************************************
* 函数名称: Init_lcd1602(void);
*
* 输入: 无
*
* 输出: 无
*
* 说明: 给LCD1602液晶指令初始化*********************************************************************************************/
void Init_lcd1602(void)
{
LCD_RS=0;
LCD_EN=0;
Write_lcd1602_com(0x38);
Write_lcd1602_com(0x0C);
Write_lcd1602_com(0x06);
Write_lcd1602_com(0x01);
}

int main(void)
{
Init_lcd1602();
Write_lcd1602_com( 0x80); //diyi行显示A
Write_lcd1602_data("A");
Delay_1ms(5);
Write_lcd1602_com( 0x80 + 0x40); //第二行显示B
Write_lcd1602_data("B");
while(1);
}
1 0 2017-05-16 0条评论 回复
偷排之最
好像是在指令六:DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示
8 0 2012-12-18 0条评论 回复
他家住
定位指令时,一个是0x80,第二行是0x80+0x40
10 0 2012-12-18 0条评论 回复
na538886
LCD1602,都是显示两行的。
不需要什么特殊的操作,就能显示两行。

楼主提出这样的问题,也不给出电路和语言的要求,很难回答的。

看看我的百度空间吧,有这样的程序和电路。
7 0 2012-12-22 0条评论 回复
您可能感兴趣的社区主题
加载中...
发布 评论