电子元器件网站怎么做,电脑系统做的好的网站,页面设计上边距在哪里找,网站商城制作外观#xff1a; 原理#xff1a; LCD1602是一种工业字符型液晶#xff0c;能够同时显示16x2即32个字符。 LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性#xff0c;通过电压对其显示区域进行控制#xff0c;有电就有显示#xff0c;这样即可以显示出图…外观 原理 LCD1602是一种工业字符型液晶能够同时显示16x2即32个字符。 LCD1602液晶显示原理 LCD1602液晶显示的原理是利用液晶的物理特性通过电压对其显示区域进行控制有电就有显示这样即可以显示出图形。 1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。
基本接线 读状态输入RSL,RWH,EH ----输出D0~D7状态字 写指令输入RSL,RWL,D0~D7指令码 ----输出无 读数据输入RSH,RWH,EH ----输出D0~D7数据 写数据输入RSH,RWL,D0~D7数据E高脉冲 ----输出无
有开发板的直接接即可注意不要接反了。
软件设计 因为LCD代码是比较多的有自己的LCD库所以使用起来比较方便写个.c和.h文件再直接引用即可一般不需要自己写指定LCD函数是什么意思怎么使用能达到自己的目的即可当然也不反对能独立写出代码的对目标越熟悉使用起来越高效。
程序 需要自己创建main.c、lcd.c、lcd.h三个文件才能使用。
main.c
//在main.c里面引用LCD相关函数和数据
#include reg52.h //此文件中定义了单片机的一些特殊功能寄存器
#include lcd.htypedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;u8 Disp[] LCD1602; //数组将显示字符串void main(void)
{while(1){u8 i;LcdInit(); //调用LCD初始化函数for(i0;i16;i){LcdWriteData(Disp[i]); //通过数组显示字符串}}
} lcd.c
//一般.c里面放一些具体函数main.c调用也是主要调用这个文件里面的函数。
#include lcd.hvoid Lcd1602_Delay1ms(uint c) //延时函数延时1ms带有形参
{uchar a,b;for (; c0; c--){for (b199;b0;b--){for(a1;a0;a--);} }}/*******************************************************************************
* 函 数 名 : LcdWriteCom
* 函数功能 : 向LCD写入一个字节的命令
*******************************************************************************/
#ifndef LCD1602_4PINS //当没有定义这个LCD1602_4PINS时
void LcdWriteCom(uchar com) //写入命令
{LCD1602_E 0; //使能LCD1602_RS 0; //选择发送命令LCD1602_RW 0; //选择写入LCD1602_DATAPINS com; //放入命令Lcd1602_Delay1ms(1); //等待数据稳定LCD1602_E 1; //写入时序Lcd1602_Delay1ms(5); //保持时间LCD1602_E 0;
}
#else
void LcdWriteCom(uchar com) //写入命令
{LCD1602_E 0; //使能清零LCD1602_RS 0; //选择写入命令LCD1602_RW 0; //选择写入LCD1602_DATAPINS com; //由于4位的接线是接到P0口的高四位所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E 0;LCD1602_DATAPINS com 4; //发送低四位Lcd1602_Delay1ms(1);LCD1602_E 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E 0;
}
#endif
/*******************************************************************************
* 函 数 名 : LcdWriteData
* 函数功能 : 向LCD写入一个字节的数据
*******************************************************************************/
#ifndef LCD1602_4PINS
void LcdWriteData(uchar dat) //写入数据
{LCD1602_E 0; //使能清零LCD1602_RS 1; //选择输入数据LCD1602_RW 0; //选择写入LCD1602_DATAPINS dat; //写入数据Lcd1602_Delay1ms(1);LCD1602_E 1; //写入时序Lcd1602_Delay1ms(5); //保持时间LCD1602_E 0;
}
#else
void LcdWriteData(uchar dat) //写入数据
{LCD1602_E 0; //使能清零LCD1602_RS 1; //选择写入数据LCD1602_RW 0; //选择写入LCD1602_DATAPINS dat; //由于4位的接线是接到P0口的高四位所以传送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E 0;LCD1602_DATAPINS dat 4; //写入低四位Lcd1602_Delay1ms(1);LCD1602_E 1; //写入时序Lcd1602_Delay1ms(5);LCD1602_E 0;
}
#endif
/*******************************************************************************
* 函 数 名 : LcdInit()
* 函数功能 : 初始化LCD屏
*******************************************************************************/
#ifndef LCD1602_4PINS
void LcdInit() //LCD初始化子程序
{LcdWriteCom(0x38); //开显示LcdWriteCom(0x0c); //开显示不显示光标LcdWriteCom(0x06); //写一个指针加1LcdWriteCom(0x01); //清屏LcdWriteCom(0x80); //设置数据指针起点
}
#else
void LcdInit() //LCD初始化子程序
{LcdWriteCom(0x32); //将8位总线转为4位总线LcdWriteCom(0x28); //在四位线下的初始化LcdWriteCom(0x0c); //开显示不显示光标LcdWriteCom(0x06); //写一个指针加1LcdWriteCom(0x01); //清屏LcdWriteCom(0x80); //设置数据指针起点
}#endif对于代码中的
#ifndef ---------
xxxxxx
xxxxxx
#else
yyyyyy
yyyyyy
#endif
意义如果没有定义 (---------)的话就执行xxxxxxx 如果定义了 (---------)的话就执行yyyyyyy #endif 表示结束。
lcd.h
//一般.h里面放一些位定义变量常量和一些函数声名等
#ifndef __LCD_H_
#define __LCD_H_//#define LCD1602_4PINS#includereg52.h//---重定义关键词---//
#ifndef uchar
#define uchar unsigned char
#endif#ifndef uint
#define uint unsigned int
#endif/**********************************
PIN口定义
**********************************/
#define LCD1602_DATAPINS P0
sbit LCD1602_EP2^7;
sbit LCD1602_RWP2^5;
sbit LCD1602_RSP2^6;/**********************************
函数声明
**********************************/
/*在51单片机12MHZ时钟下的延时函数*/
void Lcd1602_Delay1ms(uint c); //误差 0us
/*LCD1602写入8位命令子函数*/
void LcdWriteCom(uchar com);
/*LCD1602写入8位数据子函数*/
void LcdWriteData(uchar dat) ;
/*LCD1602初始化子程序*/
void LcdInit(); #endif
总结
要让LCD1602显示数字和字符有很多种方式我这里只是一种显示固定字符当你需要显示多个变量的时候这个函数就不适合了必须要有专门显示数字的函数。