7.基于51单片机1602显示

这篇具有很好参考价值的文章主要介绍了7.基于51单片机1602显示。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一,什么是1602?

 二,管脚功能

特性

特征应用

 三,字符集

五,显示汉字和数字代码

六,仿真


一,什么是1602?

602液晶也叫

1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用。

1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字

符和数字)。

51单片机液晶显示模块,51单片机,嵌入式硬件,单片机

 二,管脚功能

1602采用标准的16脚接口,其中:

第1引脚:GND为电源地

第2引脚:VCC接5V电源正极

第3引脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最

高(对比度过高时会 产生"鬼影",使用时可以通过一个10K的电位器调整对比度)。

第4引脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5引脚:RW为读写信号线,高电平(1)时进行读操作,以51为例的简单原理图低电平(0)时进行写操作。

第6引脚:E(或EN)端为使能(enable)端,高电平(1)时读取信息,负跳变时执行指令。

第7~14引脚:D0~D7为8位双向数据端。

第15~16脚:空脚或背灯电源。第15引脚背光正极,第16引脚背光负极。

特性

3.3V或5V工作电压,对比度可调

内含复位电路

提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能有80字节显示数据存储器DDRAM内建有192个5X7点阵的字型的字符发生器CGROM8个可由用户自定义的5X7的字符发生器CGRAM

特征应用

微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。

操作控制

注:关于E=H脉冲--开始时初始化E为0,

然后置E为1。51单片机液晶显示模块,51单片机,嵌入式硬件,单片机

 三,字符集

1602液晶模块内部的字符发生存储器(CGROM)

已经存储了160个不同的点阵字符图形,

这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母"A"的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母"A"。

在单片机编程中还可以用字符型常量或变量赋值,如'A'。因为CGROM储存

的字符代码与我们PC中的字符代码是基本一致的,因此我们在向DDRAM写C51字符代码程序时甚至可以直接用P1='A'这样的方法。PC在编译时就把'A'先转换为41H代码了。

CGROM中字符码与字符字模关系对照表

字符代码0x00~0x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。

0x20~0x7F为标准的ASCII码,0xA0~0xFF为日文字符和希腊文字符,其余字符码(0x10~0x1F及0x80~0x9F)没有定义。

以下是1602的16进制ASCII码表地址:读的时候,先读上面那行,再读左边那列,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)。

51单片机液晶显示模块,51单片机,嵌入式硬件,单片机

 四,显示英文代码

#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit RS=P3^2;// RS为寄存器选择,高电平时选择寄存器,低电平时选择指令寄存器

sbit RW=P3^1;// RW为读写信号线,高电平时进行读操作,低电平时进行写操作
sbit E=P3^0;  // E为使能端,当EN端由高电平跳变成低电平时,液晶模块执行命令
uchar code k4[]={"I LOVE YOU"};
uchar code k5[]={"YUAN YUAN!"};
void det()
{
	
  uint i,j;
	for(i=0;i<=5;i++)
	{
		
  for(j=0;j<500;j++);
	}
}
 void write_ml(uchar sum)//写命令
{
    RS=0;
    RW=0; 
    P2=sum; 
    det();
    E=1;
    det();
    E=0;
	}
void write_sj(uchar sum) //写数据
{
	
  RS=1;
  RW=0;
  P2=sum;
  det();
  E=1;
  det();
  E=0;
}
void init()   //LCD初始化
{
	
  write_ml(0x38); 
  det();
  write_ml(0x0c); 
	det();
  write_ml(0x01); 
	det();
}
void main()
{
  uint i=0;
	init();
	while(1)
	{
    i=0;
    write_ml(0x80+0x00);
		for(i=0;i<=9;i++)
		{
			write_sj(k4[i]);
			det();
		}
      write_ml(0x80+0x45);
			for(i=0;i<=9;i++)
			{
				
        write_sj(k5[i]);
        det();
     }
   }
}

五,显示汉字和数字代码

#include<reg51.h>
#define uchar unsigned char

sbit RS=P3^2;
sbit RW=P3^1;
sbit EN=P3^0;



uchar code table[]={

0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,//一

0x00,0x00,0x0E,0x00,0x1F,0x00,0x00,0x00,//二

0x00,0x1F,0x00,0x0E,0x00,0x1F,0x00,0x00,//三



0x02,0x04,0x0F,0x12,0x0F,0x0A,0x1F,0x02,//年


0x0F,0x09,0x0F,0x09,0x0F,0x09,0x09,0x11,//月



0x1F,0x11,0x11,0x1F,0x11,0x11,0x1F,0x00,//日
0x00,0x04,0x04,0x0E,0x15,0x04,0x0C,0x00,//小

0x04,0x1F,0x04,0x0E,0x15,0x00,0x15,0x00,//杰

	
0x00,0x0A,0x15,0x11,0x11,0x0A,0x04,0x00,//心
};

void delay(int x){  //延迟
 int i;
 while(x--) for(i=0;i<120;i++);
}
char Busy(){     //忙函数
 char a=0;
 RS=0,RW=1,EN=1;
 if(P0&0x80==0x80) a=1;
 EN=0;
 return a;
}
void W_CMD(uchar dat){      //命令函数
 while(Busy());
 RS=0,RW=0,EN=0;
 P2=dat;
 EN=1,delay(1),EN=0;
}
void W_DATA(uchar dat){    //数据函数
 while(Busy());
 RS=1,RW=0,EN=0;
 P2=dat;
 EN=1,delay(1),EN=0;
}
void Init_LCD(){      //LCD初始化
 int i=0;
 W_CMD(0x38);
 W_CMD(0x01);
 W_CMD(0x06);
 W_CMD(0x0c);
 
 W_CMD(0x40);    //写地址
 for(i=0;i<72;i++) W_DATA(table[i]);      //写入字模
}
void Show_txt(uchar x,uchar y,uchar i){     //显示对应的汉字
 if(y==0) W_CMD(0x80 |x);
 if(y==1) W_CMD(0xc0 |x);
 W_DATA(i);
}

void Show_str(uchar x,uchar y,uchar *s){       //显示字符串
 int i=0;
 if(y==0) W_CMD(0x80 |x);
 if(y==1) W_CMD(0xc0 |x);
 for(i=0;i<16;i++) W_DATA(s[i]);
}

void main(){        
 Init_LCD();    
 Show_str(0,0,"2021n11n24n                ");    
 Show_txt(4,0,3);   
 Show_txt(7,0,4);    
 Show_txt(10,0,5);    
    
 Show_txt(2,1,6); 
	Show_txt(4,1,7); 
Show_txt(5,1,8);	
 while(1){       
 }
}

六,仿真

51单片机液晶显示模块,51单片机,嵌入式硬件,单片机

 文章来源地址https://www.toymoban.com/news/detail-769411.html

到了这里,关于7.基于51单片机1602显示的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【C语言】51单片机计算器(LCD1602液晶显示)

      由于本文较早,这里推荐一下近期刚优化的:【优化】51单片机计算器(LCD1602液晶显示)_Gxtoeilee的博客-CSDN博客   1 设计目标 设计可选模式的计算器  2 主要功能 功能一:可选两种计算模式,模式一为四则运算,模式二为扩展内容; 功能二:除法的计算结果保留到小数点

    2024年02月07日
    浏览(57)
  • 基于51单片机 + MQ-3酒精传感器 + ADC0832模数转换器 + LCD1602液晶显示器的酒精检测系统

    废话不多说,直接上东西。本文是基于51单片机的酒精检测系统设计,用的元器件有:51单片机、MQ-3酒精传感器、ADC0832模数转换器、 LCD1602液晶显示器、喇叭等元器件。 1、MQ-3 酒精检测传感器,用于检测酒精浓度。当然采集到的数据是模拟的还需要通过ADC0832模数转换器将其转

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

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

    2024年02月04日
    浏览(67)
  • 单片机C语言实例:18、LCD1602液晶显示

    学单片机的小朋友应该都见过这个显示器--LCD1602,这是最古老最简单的显示屏,上世纪80年代的产物。 它显示的图案如下所示 显示部分放大就是下面这样 ,像素就是一个个小方块,相当于描点法绘图了。 如果把所有像素全部显示出来就是下面这样,全部是小黑点  全部点亮

    2024年02月09日
    浏览(49)
  • 单片机入门教程:第七章 1602LCD液晶显示模块

    在单片机的人机交互系统中,常常需要显示系统运行中的某些信息和数据,例如,字符、汉字或者图形等。液晶显示器(LCD)正好可以完成此项任务,它是一种功耗很低的显示器,在电子表、计算器、数码相机、计算机的显示器和液晶电视上都可以看到它的身影。液晶显示器

    2024年02月09日
    浏览(55)
  • 基于51单片机的烟雾检测+温度检测+蜂鸣器报警+光耦+风扇+LCD4602液晶显示(含原理图/PCB/代码)

    讲在前面: 51单片机是大多数电子爱好者的入门级单片机,这款设计是一个比较综合的单片机设计。本文介绍了一个典型的51单片机设计,希望对各位有帮助。 本人也在其他平台开源了一些项目和分享: 点击进入B站传送门 1)产品功能: 使用51单片机作为控制器,与ADC0832(

    2024年01月22日
    浏览(50)
  • 单片机C51液晶显示器LM016L的操作方法

    注:这里上面的应该为:sbit en=P2^2; P需要大写,刚开始截图的时候未注意到,抱歉。 以上就是今天要讲的内容,本文简单介绍了单片机中液晶显示器LM016L的使用,还有许多的命令没有提到,大家可以再参考书籍或其他博客等进行拓展。 最后:希望大家学习进步!事业有成!

    2024年02月01日
    浏览(47)
  • 7.基于51单片机1602显示

    目录 一,什么是1602?  二,管脚功能 特性 特征应用  三,字符集 五,显示汉字和数字代码 六,仿真 602液晶也叫 1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,

    2024年02月03日
    浏览(44)
  • 单片机期末设计 - 液晶显示屏显示时间、日期、温度及按键控制(实验板实现)

    设计本代码的主要目的是为了完成期末作业,即在液晶显示屏上显示、时间、日期、温度,以及用按键控制时间、温度的显示。总的来说就是对前面学习计数的糅合,本代码实现的是显示时间,并能在实验板上成功显示。 1.液晶显示屏模块应用 主要是学会如何在液晶显示屏上

    2024年02月08日
    浏览(60)
  • 第八讲 单片机驱动彩色液晶屏 控制RA8889软件:显示图片

    目录 第一讲 单片机最小系统STM32F103C6T6通过RA8889驱动彩色液晶屏播放视频 第二讲 单片机最小系统STM32F103C6T6控制RA8889驱动彩色液晶屏硬件框架 第三讲 单片机驱动彩色液晶屏 控制RA8889软件:如何初始化 第四讲 单片机驱动彩色液晶屏 控制RA8889软件:绘图 第五讲 单片机驱动彩色液

    2024年01月22日
    浏览(53)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包