点亮LCD主要就是有RS(设置是数据和指令) RW(设置读和写的模式) 以及E(使能)和数据口(D0-D7)我们分别要写他的数据模式和指令模式看看下面的程序吧
#include "LCD1602.h"
#include <REGX52.H>
#include <INTRINS.H>
sbit LCD_RS = P2^6;
sbit LCD_RW = P2^5;
sbit LCD_E = P2^7;
#define LCD_DatrPort P0
//延时函数
void Delay1ms_1() //@11.0592MHz
{
unsigned char i, j;
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
//写指令函数
void LCD_WriteCommand(unsigned char Command)
{
LCD_RS = 0;//设置指令模式
LCD_RW = 0;//设置写模式
LCD_DatrPort = Command;//写指令
LCD_E = 1; //打开使能
Delay1ms_1();
LCD_E = 0;
}
//写数据函数
void LCD_WriteData(unsigned char Data)
{
LCD_RS = 1;//设置数据模式
LCD_RW = 0;//设置写模式
LCD_DatrPort = Data;//写指令
LCD_E = 1; //打开使能
Delay1ms_1();
LCD_E = 0;
}
//初始化函数
void LCD_Init()
{
LCD_WriteCommand(0x38);//配置八位数据接口
LCD_WriteCommand(0x0c);//显示开,光标关,闪烁关
LCD_WriteCommand(0x06);//光标加一,画面不动
LCD_WriteCommand(0x01);//清屏
}
//
void LCD_showchar(unsigned char Line, unsigned char Columu, unsigned char arr)//传输的数据是行 列 数据
{
if(Line == 1)
{
LCD_WriteCommand(0x80 | (Columu -1));
}
else
{
LCD_WriteCommand(0x80 | ((Columu -1)+0x40));
}
LCD_WriteData(arr);
}
这个是LCD的块后面再通过mian函数点亮LEC吧
int main()
{
LCD_Init();
LCD_showchar(1,1,'r');
while(1)
{
}
return 0;
}