Proteus仿真-LCD1602液晶屏使用方法(驱动一)

这篇具有很好参考价值的文章主要介绍了Proteus仿真-LCD1602液晶屏使用方法(驱动一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、硬件链接

在元件库中搜索LM016即可找到LCD1602液晶屏。

按下图方式链接单片机和屏幕。

proteuslcd1602怎么找,proteus仿真,proteus

二、软件驱动代码

//屏幕相关引脚接口定义
#define D P0	
sbit E=P2^6;   
sbit RW=P2^5;
sbit RS=P2^7; 

//函数声明
void LcdWriteCom(uchar com);					/* LCD1602写入8位命令子函数 */
void LcdWriteData(uchar dat)	;				/* LCD1602写入8位数据子函数 */
void LcdInit();									/* LCD1602初始化子程序 */	
void setAddr(unsigned char line ,unsigned char addr);
void setBuling(unsigned char YorN);
void Show_string1(uchar a[]); 					/* 第一行从头开始显示 字符   "" 双信号内直接加显示内容即可 */
void Show_string2(uchar a[]);					/* 第二行     "" 双信号内直接加显示内容即可 */
void show_string(uchar add,uchar a[]);			/* 指定位置显示字符串 注意 算好位置  0~27   40~67   地址值,"显示字符串" */
void show_number(uchar add,uint a);				/* show_number(0x加 要显示的地址,变量或数字 */
void show_float(uchar add,float a);				/* 显示浮点数 */



/* 向1602写命令函数
 * 参数:com 命令
 * 返回值 : 无
 */
void LcdWriteCom(uchar com)
{
	E=0;
	RW=0;
	RS=0;
	D=com;
	delay_us(5);
	E=1;
	delay_us(5);
	E=0;
}
/* 向1602写数据命令
 * 参数: dat 数据
 * 返回值: 无
 */
void LcdWriteData(uchar dat)
{
	E=0;
	RW=0;
	RS=1;
	D=dat;
	delay_us(5);
	E=1;
	delay_us(5);
	E=0;
}

/* LCD1602初始化函数
 */
void LcdInit()
{
	LcdWriteCom(0x38);
	LcdWriteCom(0x0c);//0x0C光标不闪
//	LcdWriteCom(0x0d);//0x0D光标闪烁
	LcdWriteCom(0x06);
	LcdWriteCom(0x01);
	LcdWriteCom(0x80);
}
/*设置光标位置 第一行0x00-0xF 第二行0x40-0x4f */
void setAddr(unsigned char line ,unsigned char addr)
{
	if(line == 1)
		LcdWriteCom(0x80+addr);
	if(line == 2)
		LcdWriteCom(0x80+0x40+addr);

}
/*设置光标闪烁*/
void setBuling(unsigned char YorN)
{
	if(YorN)
	LcdWriteCom(0x0d);//0x0D光标闪烁
	else
	{LcdWriteCom(0x0c);//0x0C光标不闪
		}
}

/* 指定位置显示字符串
 * 参数 add 地址 第一行 0~27
 *               第二行 40~67
 *      a[] 字符串 "abc" 
 */
void show_string(uchar add,uchar a[])
{
	uchar i;
	LcdWriteCom(0x80+add);
	for(i=0;a[i]!='\0';i++)
	{
		LcdWriteData(a[i]);
	}
}

/* 第一行显示字符串
 */
void Show_string1(uchar a[])
{
	uchar i;
	LcdWriteCom(0x80);
	for(i=0;a[i]!='\0';i++)
	{
		LcdWriteData(a[i]);
	}
}

/* 第二行显示字符串
 */
void Show_string2(uchar a[])
{
	uchar i;
	LcdWriteCom(0x80+0X40);
	for(i=0;a[i]!='\0';i++)
	{
		LcdWriteData(a[i]);
	}
}

/* 任意位置显示数字 
*/
void show_number(uchar add,uint a)
{
	char s[10];
	sprintf(s,"%d",a);				
	show_string(add,(uchar *)s);		/* 格式转换 */
}

/* 任意位置显示浮点数
*/
void show_float(uchar add,float a)
{
	char s[10];
	sprintf(s,"% .1f",a);/* 格式转换 */
	show_string(add,(uchar *)s);
}

三、示例程序文章来源地址https://www.toymoban.com/news/detail-523209.html

void main()
{
    float temp = 6.4;
    char string[17] = {0};
    /* LCD1602初始化函数 */
	LcdInit();		

    while(1)   //程序主逻辑
	{
        //将字符串格式化,并存储在数组中,用于显示摄氏度
        sprintf(string,"T:%.1f C     ",temp);     
		Show_string1(string);    //显示在LCD第一行
    }
}

到了这里,关于Proteus仿真-LCD1602液晶屏使用方法(驱动一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【51单片机系列】proteus中的LCD12864液晶屏

    文章来源:《单片机C语言编程与Proteus仿真技术》。 点阵字符型LCD显示模块只能显示英文字符和简单的汉字,要想显示较为复杂的汉字或图形,就必须采用点阵图型LCD显示模块,比如12864点阵图型LCD显示模块。 12864点阵图型LCD显示模块内部控制器采用KS0108或HD61202。其引脚排列

    2024年01月19日
    浏览(51)
  • 51单片机LCD1602液晶屏显示字符,字符串,(有)无符号整数,十六进制数,二进制数等

    LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。液晶显示模块具有体积小、功耗低、显示内容丰富、超薄轻巧等优点,在嵌入式应用系统中得到越来越广泛的应用,这讲中向大家介绍的LCD1602 液晶显示模块(其内部控制器为HD44780 芯片),它可以显示两行,每行16 个字

    2024年02月04日
    浏览(67)
  • STM32之LCD液晶屏(ILI9341)显示图片

    本文章基于STM32F103VET6,参考野火的驱动程序,用LCD液晶屏显示静态图像。 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714@qq.com 显示一个像素点 将rgb888图片转为rgb555 输出rgb555的C语言数组 数组的每一个元素对应一个像素点的rgb三个通道的数据,用stm32的FSMC模拟8080时

    2024年02月09日
    浏览(48)
  • Stm32F103RC驱动ili9488 LCD TFT 3.5寸液晶屏

    芯片:stm32f103rct6 3.5寸屏幕驱动:ili9488 驱动方式:8080 接口方式:16位并口 LCD屏幕 Stm32引脚 LCD_CS PC9 LCD_RS PC8 LCD_WR PC7 LCD_RD PC6 D0-D15 PB0~15

    2024年02月15日
    浏览(45)
  • 字符型液晶显示器LCD 1602的显示控制(Keil+Proteus)

    趁机把LCD 1602的实验完成了,那个电路图有几个地方没弄懂,但是去掉也没有报错,就没管了。 LCD1602_百度百科 (baidu.com) https://baike.baidu.com/item/LCD1602/6014393?fr=ge_ala LCD1602液晶显示屏通过电压来改变填充在两块平行板之间的液晶材料内部分子的排列状况,以达到遮光和透光的目

    2024年02月06日
    浏览(50)
  • FPGA输出lvds信号点亮液晶屏

            该方案用于生成RGB信号,通过lvds接口驱动逻辑输出,点亮并驱动BP101WX-206液晶屏幕。 参考:下面为参考文章,内容非常详细。 Xilinx LVDS Output——原语调用_vivado原语_ShareWow丶的博客 http://t.csdn.cn/Zy37p         MMCM模块为时钟模块,负责将系统时钟变频与输出,产

    2024年02月09日
    浏览(51)
  • OLED 液晶屏显示模块(0.96寸)

           OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(Organic Electroluminesence Display, OELD)。因为具备轻薄、省电等特性,因此从 2003 年开始,这种显示设备在 MP3 播放器上得到了广泛应用,而对于同属数码类产品的 DC与手机,此前只是在一些展会上

    2024年02月05日
    浏览(55)
  • Proteus仿真--1602LCD显示电话拨号键盘按键实验(仿真文件+程序)

    本文主要介绍基于51单片机的LCD1602显示电话拨号键盘按键实验(完整仿真源文件及代码见文末链接) 仿真图如下 其中右下方12个按键模拟仿真手机键盘,使用方法同手机键一样,拨打手机号码则在液晶显示屏上显示对应的号码 仿真运行视频 Proteus仿真--1602LCD显示电话拨号键盘

    2024年02月06日
    浏览(59)
  • Proteus仿真--1602LCD显示仿手机键盘按键字符(仿真文件+程序)

    本文主要介绍基于51单片机的1602LCD显示仿手机键盘按键字符(完整仿真源文件及代码见文末链接) 仿真图如下 其中左下角12个按键模拟仿真手机键盘,使用方法同手机键一样,长按自动跳动切换键值,松手后确认选择,同步可以在1602 LCD液晶上显示出来 仿真运行视频 Proteus仿

    2024年02月05日
    浏览(40)
  • 【雕爷学编程】Arduino动手做(113)---5110液晶屏模块

    37款传感器与执行器的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手尝试系列实验,不管成功(程序走通)

    2024年02月09日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包