精华内容
下载资源
问答
  • lcd1602使用方法

    2013-06-19 15:50:27
    液晶使用初始化 { lcden=0; write_command(0x38); delay(5); write_command(0x0c);// 开显示,关光标和闪烁  00001100 delay(5); write_command(0x06);// 指针加一,不移屏  00000110 ...

    本来心率那个打算用数码管显示就算了,虽知道心头一热,还是打算引条线出来试试用液晶来显示看看,做完才发现比数码管简单多了,仿真程序如下:

     

    #include<reg52.h>

    #define uchar unsigned char

    #define uint  unsigned int

    uchar ge,shi;bai;//个十百位

    sbit rs=P2^7;//数据H/命令L选择端

    sbit lcden=P2^6;//lcd使能端

    uchar code tableone[]="Current pulse is";//lcd第一行显示

    uchar code tabletwo[]="      000";//lcd第二行显示

    uchar i;//用于指针移动

    //延时ims函数

    void delay( int z)

    {

    int x,y;

    for(x=29;x>0;x--)

      for(y=z;y>0;y--);

    }

    //写指令函数

    void write_command(uchar com)

    {

    lcden=0; //关闭使能端

    rs=0; //写命令

    P0=com; //命令

    delay(5);

    lcden=1;  //开使能端,使命令输入

    delay(5);

    lcden=0;   //再次关闭使能端,便于下次写命令或者数据

    }

    //写数据函数

    void write_data(uchar dat)

    {

    lcden=0;//关闭使能端

    rs=1;//写数据

    P0=dat;

    delay(5);

    lcden=1;//开使能端,使数据输入

    delay(5);

    lcden=0;//再次关闭使能端,便于下次写命令或者数据

    }

    void init1()

    {

    EX0=1; //外部中断0开关

    IT0=1; //下降沿触发 

    EA=1;//开总中断 

    bai=shi=ge=0; 

    }

    void init2()   //液晶使用初始化

    {

    lcden=0;

    write_command(0x38);

    delay(5);

    write_command(0x0c);//开显示,关光标和闪烁   00001100

    delay(5);

    write_command(0x06);//指针加一,不移屏  00000110

    delay(5);

    write_command(0x01);//清屏

    delay(5);

    write_command(0x80);//写的第一个地址

    delay(5);

    for(i=0;i<16;i++) //初始化液晶第一行显示"Current pulse is"

    {

    write_data(tableone[i]);

    delay(5);

    }

    write_command(0x80+0x40);//初始化液晶第二行显示000

    for(i=0;i<9;i++)

    {

    write_data(tabletwo[i]);

    delay(5);

    }

    }

    void main()

    {

    init1();

    init2();

    while(1)

    {

    write_command(0x80+0x40+6);//先写百位。十位,个位地址自动加一得到

    delay(5);

    write_data(0x30+bai);//http://zhidao.baidu.com/question/319710888.html

    delay(5);

    write_data(0x30+shi);

    delay(5);

    write_data(0x30+ge);

    delay(5);

    }

    }

    void into0() interrupt 0 //外部中断0,每来一个中断,液晶的数加一

    {

    ge++;//个位加一

    if(ge>=10)

    {

    ge=0;

    shi++;

    if(shi>=10)

    {

    shi=0;

       bai++;

    if(bai>=10)

    bai=0;

    }

    }

    }

     

     

     写日记只为给生活留下点回忆,此外,一无是处。

    展开全文
  • lcd1602使用方法及注意事项(详解)

    千次阅读 2019-12-12 19:53:01
    LCD1602简介 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x11的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每...

    LCD1602简介
    1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号的点阵型液晶模块。它是由若干个5x7或者5x11的点阵字符位组成,每个点阵字符位都可以用显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此,所以它不能很好的显示图片。
    lcd引脚在这里插入图片描述
    VSS,VDD正如图上所示就是接电源的地和接电源正极。其他的引脚倒是不用太过注意,主要注意一下4.5.6.7-14引脚,RS 高电压是数据选择端,低电压是命令选择端。RW 高地平是读选择短 低电平是写选择端。这些我们在使用lcd1602的时候需要用到选择什么命令。E是使能信号。7-14用来存储获得的信息。
    lcd1602时序图
    在这里插入图片描述
    研究lcd1602最重要的就是得看明白操作时序图,这个时序图的横坐标是t,纵坐标是引脚的操作顺序。自己一定要好好看这张图顺一下,结合在这些时序所需要的时间进行延时操作。
    在这里插入图片描述
    1602指令吗
    在这里插入图片描述在这里插入图片描述
    将这些命令输入进RW,在RW为1(高电平)时读入信息。选择你自己想要达到的模式

    下面附上代码和详解

    #include<reg51.h>
    #include<intrins.h>  //其中有nop函数的定义
    
    /*对于延时很短的,要求在us级的,采用“_nop_”函数,这个函数相当汇编NOP指令,延时几微秒。NOP指令为单周期指令,可由晶振频率算出延时时间,对于12M晶振,延时1uS。*/
    
    #define uchar unsigned char
    #define uint unsigned int
    
    sbit RS=P2^6;  //定义数据命令选择端
    sbit RW=P2^5;  //定义读写选择端
    sbit E=P2^7;   //定义使能端
    //注意:具体为哪一个IO口由你自己的接线来定,并不是一定要这样写!
    
    uchar text1[]="Welcome to";   //第一行要显示的字符
    uchar text2[]="Lime House";   //第二行要显示的字符
    
    void delay_ms(uint z)  //毫秒级延时函数
    {
       uint i,j;
       for(i=z;i>0;i--)
          for(j=110;j>0;j--);
    }
    
    //为什么要判忙?
    /*因为LCD1602控制芯片也是一个CPU,它在处理上位机发来的某些指令的时候,耗时较长。如复位命令,全屏清除命令等。另外,LCD1602的CPU速度较慢,上位机较快时,LCD1602CPU来不及完成上条命令,会对后续命令不予理睬,这样就造成了命令序列不能正确完整地到达LCD1602CPU,以至于显示不正常。*/
    
    uchar Lcd1602_ReadBusy()   //判断lcd1602是否处于忙的状态,即读忙
    {
       uchar temp;
       RS=0;
       RW=1;
       _nop_();
       P0=0xff;     //读某IO口数据前,先将该口置为1            
    
    /*原因:电路中存在的一个普遍的现象:高电平很容易被低电平拉低,而低电平一般不可能被高电平拉高。所以在读数据之前将单片机IO口拉高才不会影响原来数据线上的数据!*/
    
       _nop_();
       E=1;
       _nop_();
       temp=P0;   //读取此时lcd1602的状态字
       _nop_();
       E=0;
       return (temp&0x80);  //如果忙
    
       /*状态字为temp(8位2进制数)的最高位,最高位为1表示禁止读写,为0表示允许读写,即temp&0x80得1表示忙,得0表示不忙*/
    
    }
    
    /*在lcd1602的资料中,读写操作都有对应的时序图,想要理解lcd1602的具体工作流程还得认真研究时序图!*/
    
    void Lcd1602_WriteCom(uchar com)  //写命令
    {
       while(Lcd1602_ReadBusy());  //判忙
       RS=0;   //命令
       RW=0;   //写
       _nop_();
       P0=com;   //准备发送命令
       _nop_();
       E=1;      //由时序图知,使能端为高电平时才允许数据交换
       _nop_();
       _nop_();
       E=0;      //由时序图知,使能端在完成数据交换后要拉低
       _nop_();
       _nop_();   
    }
    
    void Lcd1602_WriteData(uchar dat)  //写数据
    {
       while(Lcd1602_ReadBusy());   //判忙
       RS=1;   //数据
       RW=0;   //写
       _nop_();
       P0=dat;
       _nop_();
       E=1;
       _nop_();
       _nop_();
       E=0;
       _nop_();
       _nop_();   
    }
    
    void Lcd1602_init()   //初始化函数
    {
       delay_ms(15);
       Lcd1602_WriteCom(0x38);   //显示模式设置
       delay_ms(5);
       Lcd1602_WriteCom(0x38);
       delay_ms(5);
       Lcd1602_WriteCom(0x38);
       Lcd1602_WriteCom(0x0c);  //显示开
       Lcd1602_WriteCom(0x01);  //显示清屏
       Lcd1602_WriteCom(0x06);  //显示光标
    }
    
    void main()
    {
       uchar i,j;
       Lcd1602_init();
       Lcd1602_WriteCom(0x80);   //0x80是第一行的第一个字符的地址
       for(i=0;i<10;i++)  
          Lcd1602_WriteData(text1[i]);   
       Lcd1602_WriteCom(0xc0);   //0xc0是第二行的第一个字符的地址
    
       /*表示的方法有很多,可以用0xc0,0x80+0x40,0x80|0x40等等*/
    
       for(j=0;j<10;j++)
          Lcd1602_WriteData(text2[j]);
    	while(1);
    }
    
    
    展开全文
  • LCD1602液晶使用方法

    2011-11-01 09:00:04
    LCD1602使用方法,简介,引脚说明,控制指令,操作时序
  • 本文主要对arduino连接lcd1602方法进行了解析,下面一起来学习一下
  • LCD1602使用驱动

    2020-05-18 18:48:01
    LCD1602使用方法 仿真图。 #include <reg51.h> #define uchar unsigned char #define uint unsigned int sbit RS = P1^0; sbit RW = P1^1; sbit E = P1^2; sbit D7 = P2^7; void write_code(uchar row, ...

    LCD1602使用方法

    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述仿真图。

    #include <reg51.h>
    
    #define uchar unsigned char
    #define uint  unsigned int
    
    sbit RS = P1^0;
    sbit RW = P1^1;
    sbit E  = P1^2;
    sbit D7 = P2^7;
    
    void write_code(uchar row, uchar col, uchar *p);
    void LCD_init();
    
    void main()
    {
    	LCD_init();
    	while(1)
    	{
    	   	write_code(0, 0, "0123456789");
    		write_code(1, 0, "ABCDEFGHIJK");
    	}
    }
    
    void delay(uint n)
    {
    	while(n--);
    }
    
    void wait()	  //判忙
    {
    	P2 = 0XFF; //全部拉高
    	do{
    		RS = 0; 
    		RW = 1;	//读状态
    		E = 0;
    		E = 1;
    	}while(D7 != 0); //判断最后一位是否为1,是1继续循环,否则为0;
    	E = 0;
    }
    
    void write_dat(uchar dc, uchar dat)
    {
    	wait();
    	delay(10);
    	E = 0;
    	delay(10);
    	RW = 0; //拉低才能写入数据
    	delay(10);
    	RS = dc; //决定写数据还是写数据
    	delay(10);
    	P2 = dat; //数据端口
    	delay(10);
    	E = 1;
    	delay(10);
    	E = 0;
    }
    
    void write_code(uchar row, uchar col, uchar *p)
    {
    	row %= 2; col %= 16; 
    		write_dat(0, 0x80+0x40*row+col); //写显示地址
    	while(*p != '\0')
    		write_dat(1, *p++);	 //数据++,地址自动+1
    }
    
    void LCD_init()	 //初始化
    {
    	write_dat(0, 0x38);	//8位数据,二行显示,5x7字符
    	write_dat(0, 0x0c); //显示开,光标关。
    	write_dat(0, 0x06);	//光标右移一个,AC加1
    	write_dat(0, 0x01);	 //清显示
    }
    

    代码部分。

    展开全文
  • (Arduino) LCD1602模块使用方法

    千次阅读 2019-03-04 20:22:05
    topic介绍引脚说明接线方法代码示例1:问题解疑寻找IIC设备地址的代码 ...我们使用IIC LCD1602模块集成了IIC I/O扩展芯片,通过两线制的IIC总线(串行时钟线SCL,串行数据线SDA),可使Arduino实现控制...

    介绍

    1602液晶显示器(1602 Liquid Crystal Display,此后简称1602 LCD)是一种常见的字符液晶显示器,因其能显示16*2个字符而得名。
    在这里插入图片描述

    我们使用IIC LCD1602模块集成了IIC I/O扩展芯片,通过两线制的IIC总线(串行时钟线SCL,串行数据线SDA),可使Arduino实现控制LCD 1602显示的目的。

    通过设置跳线还可以设置地址: 0x20-0x27。模块背面可以看到一块蓝色的电位器,旋转它可以调节1602液晶显示器的对比度。
    背后的接线引脚分别为GND;VCC;SDA;SCL(SDA和SCL分别为iic通讯的数据线和时钟线)

    获取此库可点击:项目-加载库-管理库,在搜索框内搜索liquidCrystal可找到若干关于驱动液晶的库文件,在下面就有LiquidCrystal_I2C相关的库文件,点击安装即可。
    也可以去GitHub下载LCD1602_I2C的库,下载地址是 https://github.com/marcoschwartz/LiquidCrystal_I2C

    引脚说明

    GND ------ 地线
    VCC ------ 电源(5V or 3.3v 电源不同显示效果有点差别)
    SDA ------ I2C 数据线
    SCL ------ I2C 时钟线

    接线方法

    LCD1602 i2c模块 Ardunio Uno
    GND <------> GND接地线
    VCC <------> 5V 接电源
    SDA <------> A4
    SCL <------> A5

    代码示例1:

    //LingShun lab  
    #include <Wire.h>   
    #include <LiquidCrystal_I2C.h> //引用I2C库  
      
    //设置LCD1602设备地址,这里的地址是0x3F,一般是0x20,或者0x27,具体看模块手册  
    LiquidCrystal_I2C lcd(0x3F,16,2);    
      
    void setup()  
    {  
      lcd.init();                  // 初始化LCD  
      lcd.backlight();             //设置LCD背景等亮  
    }  
      
    void loop()  
    {  
      lcd.setCursor(0,0);                //设置显示指针  
      lcd.print("LCD1602 iic Test");     //输出字符到LCD1602上  
      lcd.setCursor(0,1);  
      lcd.print("         by L.L.");  
      delay(1000);  
    }  
    

    问题解疑

    1. 是一个模块还是两个模块?
      这模块是通过LCD1602屏 和 LCD1602 I2C 模块 焊接结合的,可以直接买焊接好的,也可以分开买,不过就需要点动手能力。

    2. 无法正常显示?
      刚上电的时候,老是显示一个个方块,如图
      在这里插入图片描述

    这情况一般是地址错误,

    寻找IIC设备地址的代码

    一个寻找设备地址的代码 (来源:Arduino驱动IIC/I2C LCD1602模块显示(4根线解决连接)
    官方地址:i2c_scanner(http://playground.arduino.cc/Main/I2cScanner

    #include <Wire.h>
    
    void setup() {
      Wire.begin();
      Serial.begin(9600);
      Serial.println("\nI2C Scanner");
    }
    
    void loop() {
      byte error, address;
      int nDevices;
      Serial.println("Scanning...");
      nDevices = 0;
      for (address = 1; address < 127; address++ ) {
        // The i2c_scanner uses the return value of
        // the Write.endTransmisstion to see if
        // a device did acknowledge to the address.
        Wire.beginTransmission(address);
        error = Wire.endTransmission();
        if (error == 0) {
          Serial.print("I2C device found at address 0x");
          if (address < 16)
            Serial.print("0");
          Serial.print(address, HEX);
          Serial.println(" !");
          nDevices++;
        } else if (error == 4) {
          Serial.print("Unknow error at address 0x");
          if (address < 16)
            Serial.print("0");
          Serial.println(address, HEX);
        }
      }
      if (nDevices == 0)
        Serial.println("No I2C devices found\n");
      else
        Serial.println("done\n");
      delay(5000); // wait 5 seconds for next scan
    }
    

    把模块按接线方法接好,上传这段代码后,打开端口监视器,就能找到在I2C上的设备地址.

    展开全文
  • LCD1602使用方法

    千次阅读 2017-05-21 22:08:35
    使用较多的为写指令和写状态根据时序对写操作进行初始化初始化写指令:void write_com(uchar com) { lcdrs=0; P0=com; delay(5); lcden=1; delay(5); lcden=0; }初始化写数据:void write_date(uchar date) { ...
  • Xilinx FPGA中使用LCD1602方法

    千次阅读 2014-04-15 11:00:51
    在Xilinx FPGA上使用LCD1602的步骤: 1.在XPS添加一个XPS General Purpose IO,并将其命名为“Char_LCD”。 注:这里的命名有一定的规则,将其命名为“Char_LCD”,是因为在后来的C程序中调用LCD基地址的时候使用...
  • 下面我将简单介绍LCD1602模块的使用方法: 1602液晶显示器(1602Liquid Crystal Display,此后简称1602 LCD)是一种常见的字符液晶显示器,因其能显示16*2个字符而得名。通常我们使用的1602 LCD中集成了字库芯片,...
  • LCD1602显示模块测试 LCD1602显示模块测试 LCD1602显示模块测试
  • 51单片机中LCD1602使用 我是高中生(灵台一中,有校友请加qq:2891582228),,,,,,。自我介绍完毕。 最近无意间,,,,,,,,,,,,,开场白完毕。 LCD1602,,,,,,,,关于原件的介绍完毕。 OK,...
  • LCD1602使用说明

    千次阅读 2017-10-28 21:17:44
    查看芯片的数据手册,了解接口的使用方法写程序时要遵循 硬件电路 –> 硬件接口 –> 软件编程 这三个部分 LCD使用要点:要明白AC就是内部数据指针的地址,DDRAM即存储显示数据的存储器,每次显示,都要想明白往哪个...
  • 成品 准备 ...拓展板与LCD1602连接(正放LCD1602与拓展板,拓展板在上,拓展板四pin朝向左方) VCC、GND SDA、SCL 分别与树莓派对应连接(3.3v 下方,依次为SDA、SCL) 重启树莓派 代码 ''' 16
  • 不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多数制造商都直接将裸片做到板子上。
  • LCD1602使用详解

    万次阅读 多人点赞 2016-04-13 15:58:44
    LCD1602原理 ,LCD1602显示自定义字符,汉字等原理和方法
  • 目录Arduino实践(二)lcd1602使用说明,源码介绍使用说明接线说明引脚说明接线方法常见问题源代码及代码解释 介绍 1602液晶显示器(1602 Liquid Crystal Display,此后简称1602 LCD)是一种常见的字符液晶显示器,...
  • LCD1602液晶显示器是广泛使用的一种字符型液晶显示模块。它是由字符型液晶显示屏(LCD)、...不同厂家生产的LCD1602芯片可能有所不同,但使用方法都是一样的。为了降低成本,绝大多数制造商都直接将裸片做到板子上。
  • 51单片机控制LCD1602模块结构图和使用说明,学习LCD1602必备资料!
  • lcd1602液晶显示

    2014-03-18 20:25:19
    lcd1602的资料,有lcd显示的汉字显示的使用方法,有lcd1602的显示范例,欢迎下载
  • lcd1602.zip

    2019-05-09 13:22:54
    描述lcd1602液晶屏的使用方法,操作说明、主要参数、信号引脚说明等
  • lcd1602

    2018-05-22 15:46:00
    lcd1602液晶操作方法 控制任务:在显示屏上显示两行字,同时移动它们。 程序如下: #include <reg52.h> typedef unsigned int uint; typedef unsigned char uchar; sbit lcden = P3 ^ 4; // lcd使能 sbit ...
  • arduino连接1602LCD方法

    千次阅读 2019-07-07 11:03:25
    arduino连接1602LCD方法 测试代码: /* LiquidCrystal Library - display() and noDisplay() Demonstrates the use a 16x2 LCD display. The LiquidCrystal library works with all LCD displays that are ...
  • 由于液晶的光轴与其分子轴相当一致,故可借此产生光学效果,而当加于液晶的电场移除消失时,液晶将借着其本身的弹性及黏性,液晶分子将十分迅速的回撤消来未加电场前的状态。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,399
精华内容 559
关键字:

lcd1602使用方法