1602A的基本描述[通俗易懂]

1602A的基本描述[通俗易懂]LCD1602的主控芯片是HD44780或者其它兼容芯片。与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除了普通字符外,还可以显示点阵图案,带有汉字库的还可以显示汉字,它的并行驱动方式与LCD1602相差无几,所以,在这里花点时间是值得的。//File1#ifndef__ZHANGTYPE_H__#define__ZHANGTYPE_H__#defineuint8unsignedchar#defineuin…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
LCD1602的主控芯片是HD44780或者其它兼容芯片。
与此相仿的是LCD12864液晶显示器,它是一种图形点阵显示器,能显示的内容比LCD1602要丰富得多,除了普通字符外,还可以显示点阵图案,带有汉字库的还可以显示汉字,它的并行驱动方式与LCD1602相差无几,所以,在这里花点时间是值得的。

在这里插入图片描述

//File1

#ifndef __ZHANGTYPE_H__
#define __ZHANGTYPE_H__

#define uint8 unsigned char
#define uint16 unsigned short int
#define uint32 unsigned long int
#define int8 signed char
#define int16 signed short int
#define int32 signed long int
#define uint64 unsigned long long int
#define int64 signed long long int

#endif

//File2

#ifndef __FUN_H__
#define __FUN_H__
#include "ZhangType.h"
#include
void Delay(uint16 time);
#endif

//File3

#include "fun.h"
void Delay(uint16 time)
{ 
   
    while(time--);
}

//File4

#ifndef __1602_H__
#define __1602_H__

#include
#include "ZhangType.h" //变量类型
#include "fun.h" //常用函数 

#define SETMODE 0x38 //16*2显示,5*7点阵,8位数据接口
#define DISOPEN 0x0C //显示开,不显示光标,光标不闪烁
#define DISMODE 0x06 //读写字符后地址加1,屏显不移动
#define SETADDR 0x80 //设置数据地址指针初始值
#define CLEAR 0x01 //清屏,数据指针清零
#define RET 0x02 //回车,数据指针清零
#define PORT P2 //I/O口

sbit RS = P1^0;
sbit RW = P1^1;
sbit E = P1^2;

void Init1602(void);  //初始化1602
void Write1602_Com(uint8 com);  //写命令
void Write1602_Dat(uint8 dat);  //写数据
void CheckBusy(void);  //检查忙
void Write1602_One_Dat(uint8 X,uint8 Y,uint8 dat);
//写一个数据
void Write1602_Str(uint8 addr,uint8 length,uint8 *pbuf);
//写一个数据串
#endif//

//File5

#include "1602.h"

void Write1602_Com(uint8 com)
{ 
   
    E=0;
    RS=0;  //命令
    Delay(50);  //延时
    RW=0;  //写
    Delay(50);
    PORT=com;  //端口赋值
    Delay(50);
    E=1;  //高脉冲
    Delay(50);
    E=0;
}

void Write1602_Dat(uint8 dat)
{ 
   
    E=0;
    RS=1;  //数据
    Delay(50);  //延时
    RW=0;  //写
    Delay(50);
    PORT=dat;  //端口赋值
    Delay(50);
    E=1;  //高脉冲
    Delay(50);
    E=0;
}

void CheckBusy(void)
{ 
   
    uint8 temp;
    RS=0;  //命令
    RW=1;  //读
    E=0;
    while(1)
    { 
   
       PORT=0xFF;  //端口为输入
       E=1;  //高脉冲
       temp=PORT;
       E=0;
       if ((temp&0x80)==0)  //检查BF位是否为0
           break;
    }
}

void Init1602(void)
{ 
   
    Write1602_Com(SETMODE);  //模式设置
    Delay(500);
    Write1602_Com(DISOPEN);  //显示设置
    Delay(500);
    Write1602_Com(DISMODE);  //显示模式
    Delay(500);
    Write1602_Com(CLEAR);  //清屏
    Delay(500);
}

void Write1602_One_Dat(uint8 x,uint8 y,uint8 dat)
{ 
   
    x&=0x0f;
    y&=0x01;
    if(y)
       x|=0x40;
    x|=0x80;
    Write1602_Com(x);
    Write1602_Dat(dat);
}

void Write1602_Str(uint8 addr,uint8 length,uint8 *pbuf)
{ 
   
    uint8 i;
    Write1602_Com(addr);
    for(i=0;i
    { 
   
       Write1602_Dat(pbuf[i]);
    }
}

//File6
/******************************************************* *名称:主文件(_main.c) *功能:测试 *日期:2014/09/09 *******************************************************/

#include "1602.h"
#include "fun.h" 
uint8 code hot[8]={ 
     //摄氏温度字模
0x10,0x06,0x09,0x08,0x08,0x09,0x06,0x00
};
uint8 code pi[8]={ 
   
0x00,0x1f,0x0a,0x0a,0x0a,0x13,0x00,0x00  //pai
};
uint8 code strMCU[]="I love MCU!";
uint8 code strTest[]="LCD1602 Test!";
uint8 code blog[]="Welcome to my blog!";
uint8 i;
void main()
{ 
   
    Init1602();  //初始化1602
    //自定义CGRAM
    Write1602_Str(0x40,8,hot);  //摄氏温标
    Write1602_Str(0x48,8,pi);  //pai

    Write1602_Str(0x80,strlen(strMCU),strMCU);
    //"I love MCU!"
    Write1602_Str(0x80+0x40,strlen(strTest),strTest);
    //"LCD1602 Test!"

    for(i=0;i<50;i++)  //延时一段时间
       Delay(10000);

    Write1602_Com(CLEAR);  //指令执行时间较长
    Delay(500);  //多加一些延时
    for(i=0;i<16;i++)
       Write1602_Dat(0);

    Write1602_Com(0xc0);  //设置DDRAM地址
    for(i=0;i<16;i++)
       Write1602_Dat(1);
    for(i=0;i<50;i++)  //延时一段时间
       Delay(10000);

    Write1602_Com(CLEAR);  //指令执行时间较长
    Delay(500);  //多加一些延时
    Write1602_Str(0x80+0x10,strlen(blog),blog);
    //写在显示之外
    while(1)
    { 
   
       Write1602_Com(0x18);  //左移
       for(i=0;i<20;i++)  //延时
           Delay(10000);
    }
}

个人学习用途博客 部分内容摘抄自网络

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/190603.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • centos7系列关闭防火墙但是端口依然无法访问

    centos7系列关闭防火墙但是端口依然无法访问centos7.3系统,已经关闭firewalld,但是除了22端口,其余端口无法被外界访问,本地访问正常,解决步骤:1、先开启firewalld:systemctl start firewalld2、放通端口:firewall-cmd –zone=public –add-port=8080/tcp –permanent3、重新加载配置文件:firewall-cmd –reload此时测试,端口已经能够访问了,如果不需要firewall,可以再关闭,已放通端口不受影响(为什么一开始我不放

    2022年6月13日
    672
  • unity麻将开发视频教程_一屏双人单机手机游戏

    unity麻将开发视频教程_一屏双人单机手机游戏小实习生一枚,刚入门unity,利用一周的时间做了个单机简单的二人小麻将只有java基础,从来没学过C#的我,刚开始很懵逼,但是既然动手做了就开始吧~!先上成品图因为公司都用比较稳定的版本,所以我是从比较老的版本unity4.7上手学习的刚开始学什么都不懂,参考了一个别人写的斗地主demo,所以代码比较累赘…你们可以改良一下二人麻将介绍牌型分为:条

    2022年8月29日
    4
  • 漫步者lollipods如何调节音量_漫步者LolliPods怎么配对双耳-使用教程[通俗易懂]

    不少用户在入手漫步者LolliPods后不知道怎么配对双耳,小编今天为大家带来了漫步者LolliPods的使用教程,感兴趣的朋友不要错过了哦。漫步者LolliPods配对双耳教程方法一一、先随便连接一只耳机,连接以后点击断开连接,把左耳放回充电仓,二、拿出右耳,把充电仓盖上让右耳断开左耳的链接,然后手机搜索能搜到右耳连接,三、这样两个都可以匹配上了,并且使用时随便一只连接都是主耳机方法二第一:拿出…

    2022年4月9日
    724
  • PyCharm使用技巧:Navigate-》File(快速查找文件)

    PyCharm使用技巧:Navigate-》File(快速查找文件)PyCharm提供了快速查找文件的功能,快捷键为Ctrl+Shift+N,或者从菜单Navigate-》File打开查找文件界面。

    2022年8月26日
    13
  • javascript正则表达式 教程_js正则表达式匹配字符串

    javascript正则表达式 教程_js正则表达式匹配字符串JavaScript正则表达式的模式匹配引言正文一、正则表达式定义引言其实我写这篇文章的话,主要是想自己重新复习一遍正则表达式。我们也知道正则表达式在很多语言中都是通用的,所以学好这个好处很多。接下来,就跟我一起来学习一下正则表达式,从0到入门吧。正文一、正则表达式定义正则表达式(regularexpression)是一个描述字符模式的对象,简单点来讲就是通过正则表达式规定的模式,…

    2022年9月20日
    1
  • 音乐播放器之QQ音乐最新api,亲测可用「建议收藏」

    音乐播放器之QQ音乐最新api,亲测可用「建议收藏」大家好,前段时间重写了自己的音乐播放器,源码放在github上,源码地址和项目地址下面都有,如果喜欢记得star一下哈。由于之前给大家分享的api虽然可以用,但是版本太旧了,很多也没有了歌词,今天博主给大家分享一个最新的qq音乐api,亲测可用,话不多说直接上代码最新音乐leturl=’https://c.y.qq.com/v8/fcg-bin…

    2022年6月26日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号