LCD_1602 显示单个字符

目录

效果图:​

硬件接线:

源代码:

Lcd1602.c

lcd1602.h

main.c


硬件:lcd1602 51单片机 串口

软件:stc keil

效果图:LCD_1602 显示单个字符_第1张图片

 

硬件接线:

LCD1602 RW RS E 分别接51单片机的P25 P26 P27

LCD1602 D0~D7分别接51单片机的P00~P07

LCD1602 VSS VDD V0分别接51单片机GND VCC GND

串口tx rx gnd 分别接51单片机 rx tx gnd 

源代码:
Lcd1602.c
#include 
#include "lcd1602.h"

#define LCD P0
sbit E = P2^7;
sbit RS = P2^6;
sbit RW = P2^5;

/******延迟5毫秒函数********/
void delay5ms()   //误差 -0.000000000001us
{
    unsigned char a,b;
    for(b=15;b>0;b--)
        for(a=152;a>0;a--);
}


/******LCD1602写命令函数********/
void write_com(unsigned char command)
{
	RS = 0; 
	RW = 0; 	//高读低写
	LCD = command;
	delay5ms(); //这里延时最低要30纳秒 我们直接给5ms
	E = 1;		//使能拉高 
	delay5ms(); //最低要求延迟150纳秒 我们直接给5ms
	E = 0;
}

/******LCD1602写数据函数********/
void write_data(unsigned char dat)
{
	RS = 1;
	RW = 0;
	LCD = dat;
	delay5ms(); //这里延时最低要30纳秒 我们直接给5ms
	E = 1;		//使能拉高 
	delay5ms(); //最低要求延迟150纳秒 我们直接给5ms
	E = 0;
}
/******初始化LCD1602********/
void init_lcd()
{	
	write_com(0x06); //写入数据后光标自动右移 整屏不移动。 0x40(光标左移 整屏不移动)0x05(左移 整屏右移)0x07(右移 整屏右移)
	write_com(0x0c); //开显示功能 无光标 不闪烁
	write_com(0x38); //数据总线8位 16X2显示 5*7点阵
	write_com(0x01); //清屏 0000 0001
	
}

void LCD_ShowChar(unsigned char Line,unsigned char Column,unsigned char Char)
{
  if(Line == 1)
	{
	 write_data(0x08|(Column -1));
	}
 else
 {
   write_data(0x08|(Column -1)+0x40);
 }


}
lcd1602.h

void write_com(unsigned char command);	//写命令函数
void write_data(unsigned char dat);		//写数据函数
void init_lcd();  //初始化LCD1602函数
void delay5ms();  //延时5ms函数			
void LCD_ShowChar(unsigned char Line,unsigned char Column,unsigned char Char);
main.c
#include 
#include "lcd1602.h"
#include "delay.h"
void main()
{
	init_lcd();
	
	LCD_ShowChar(2,3,'A');
	while(1)
	{  
	}
}

你可能感兴趣的:(51单片机,单片机,嵌入式硬件)