LCD12864中文液晶屏显示

2019-11-30来源: 51hei关键字:LCD12864  中文液晶屏显示  STC89C52RC

单片机源程序如下:

/* ***************************************************** */ 

/* ***************************************************** */

// 工  程   : 51单片机开发板

// 文件名   : LCD12864.c

// 处理器   : STC89C52RC

// 编译环境 : Keil4 C51 

// 系统时钟 : 11.0592MHZ

// 版    本        : V1.0 

// 生成日期        : 2017-09-20                                                   

// 修改日期        :  

// 简单描述 : 本文件是带字库LCD12864显示程序

/* ***************************************************** */

#include

#define uint unsigned int

#define uchar unsigned char

#define Lcd_Bus P0 //数据总线

/* ***************************************************** */

// 位定义

/* ***************************************************** */

sbit RS=P2^4;     //数据/命令选择端(H/L)

sbit RW=P2^5;    //数/写选择端(H/L)

sbit E=P2^6;     //使能信号

/* ***************************************************** */

// 函数名称:DelayMS()

// 函数功能:延时毫秒数(ValMS)

// 入口参数:无

// 出口参数:无

/* ***************************************************** */

void DelayMS(uint ValMS)

{

        uint uiVal,ujVal;

        for(uiVal = 0; uiVal < ValMS; uiVal++)

                for(ujVal = 0; ujVal < 121; ujVal++);

/* ***************************************************** */

// 函数名称hk_busy()

// 函数功能:检测状态标志位(判断是忙/闲)

// 入口参数:无

// 出口参数:无

/* ***************************************************** */

void chk_busy()

{  

          Lcd_Bus=0x00;

    RS=0;

    RW=1;

    E=1;  

          DelayMS(1);

    while(Lcd_Bus & 0x80);   // 若LCD忙,停止到这里,否则走起

    E=0;                // 之后将EN初始化为低电平 

}


/* ***************************************************** */

// 函数名称rite_com()

// 函数功能:LCD写指令

// 入口参数:指令(cmdcode)

// 出口参数:无

/* ***************************************************** */

void write_com(unsigned char cmdcode)

{

        chk_busy();     //忙检查

        RS=0;

        RW=0;      //RS=0,RW=0;表示MCU写指令到暂存器IR

        E=1;

        Lcd_Bus=cmdcode;   //Lcd_Bus=P0;

        E=0;      //E由高到低变化配合W进行写指令或写数据


}

/* ***************************************************** */

// 函数名称rite_data()

// 函数功能:LCD写数据

// 入口参数:数据(Dispdata)

// 出口参数:无

/* ***************************************************** */

void write_data(unsigned char Dispdata)

{  

  chk_busy();     //忙检查

        RS=1;

        RW=0;      //RS=1;RW=0;表示MCU写数据到暂存器IR

        E=1;

        Lcd_Bus=Dispdata;  //Lcd_Bus=P0;

        E=0;      //E由高到低变化配合W进行写指令或写数据

}

/* ***************************************************** */

// 函数名称:lcm_init()

// 函数功能:LCD初始化

// 入口参数:无

// 出口参数:无

/* ***************************************************** */

void lcm_init()

{          

   write_com(0x30);    //选择8bit数据流 0X30=0011,0000

         DelayMS(10);

   write_com(0x0C);    //开显示(无游标,不反白)

         DelayMS(10);

   write_com(0x01);    //清除显示,并且设定地址指针为00H

         DelayMS(10);

}

//============================================================//写数据或指令(被调用层)

void lcm_w_test(bit i,unsigned char word)

{

   if(i == 0)   //根据i的状态区分指令或数据

         {   

      write_com(word);//写数据或指令(0,指令)

   }

   else

        {

   write_data(word);//写指令或数据(1,数据)

  }

}

//-----------------------------------------------------------//清屏函数

void lcm_clr(void){

   lcm_w_test(0,0x01); 

}

//===========================================================//向LCM发送一个字符串,长度64字符之内(被调用层),

void lcm_w_word(unsigned char *s)

{

    while(*s>0)  //*s指针

         {     

      write_data(*s);//用指针显示数据地址

      s++;      //自加显示下一个数据地址

    }

}

void welcome(void)        //初始化开机显示

{

    lcm_w_test(0,0x81);   //写指令和地址

    lcm_w_word ("空山新雨后,"); //写显示数据

    lcm_w_test(0,0x91);

……………………



关键字:LCD12864  中文液晶屏显示  STC89C52RC 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic481593.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:二相四线步进电机的单片机源程序 用L298N模块驱动
下一篇:基于单片机的自动打铃系统的设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

轻松玩转LCD12864-基于AVR单片机的LCD12864串行显示
LCD12864是一种常用的图形液晶显示模块,顾名思义,就是可以在水平方向显示128个点,在竖直方向显示64个点。通过对控制芯片写入数据,可以控制点的亮灭,从而显示字符、数字、汉字或者自定义的图形。尽管LCD12864有各个不同厂家生产的产品,控制芯片和引脚定义也不尽相同,但是控制原理都大同小异。本文是对我个人使用LCD12864的经验做一个总结,希望能对入门者起到抛砖引玉的作用。就以深圳市亚晶达电子有限公司生产的YJD12864C-1为例,我不想深究显示屏的内部结构,单讲讲各个引脚的作用以及数据读写时的时序。上图是YJD12864C-1的实物图,从右往左,1脚到20脚的定义如下:1:VSS,接地端2:VDD,电源正,接+5V3
发表于 2019-12-04
轻松玩转LCD12864-基于AVR单片机的LCD12864串行显示
智能窗帘设计:51单片机+A/D转换+光敏电阻+LCD1602+步进电机
 单片机源程序如下:#include <reg52.h>          #define uchar unsigned char#define uint unsigned int#define yi 0x80       //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)uchar display_digit[]={0,0,0};uchar yuzhi[]={0,0,0
发表于 2019-12-03
智能窗帘设计:51单片机+A/D转换+光敏电阻+LCD1602+步进电机
LCD12864--头文件
LCD12864.h#define LCD12864_RS PORTA.0#define LCD12864_RW PORTA.1 #define LCD12864_EN PORTA.2#define LCD12864_PortOut DDRA|=0x07  //P3口的低三位设置为输出#define LCD12864_Data DDRB#define LCD12864_Read  PINB#define LCD12864_Write  PORTBvoid lcd12864_init(void);void lcd12864_cleardd(void);void
发表于 2019-11-29
LCD12864万年历单片机程序+实物制作+Proteus仿真
制作出来的LCD12864万年历实物图如下: LCD12864万年历仿真原理图如下(proteus仿真工程文件可到本帖附件中下载) 电路原理图如下:单片机源程序如下:*-----------------------------------------------  名称:12864字库液晶显示  内容:通过显示字符、数字、汉字和图片测试液晶基本功能------------------------------------------------*/#include <reg52.h>#include <intrins.h>#include "
发表于 2019-11-29
LCD12864万年历单片机程序+实物制作+Proteus仿真
51单片机做的智能时钟具有闹钟功能(DS1302+DS18B20+LCD1602)
本贴针对学完单片机并且有读懂代码的非新手同学。本人目前放寒假,这个是本人在上个学期的单片机课上要求做的综合实验,现在重新修改了下增加了菜单目前测试毫无问题可以完美使用。有志向做闹钟的同学可以参考一下,原码上由本人写的大量注释可以方便看懂。使用了LCD1602、DS1302、DS18B20用来测试温度、内部含闹钟系统但本人没有做EEPROM有需要的同学可以自行添加。单片机源程序如下:#include<reg52.h>#include<key.h>#include<LCD1602.h>#include<DS1302.h>#include<music.h>#include<
发表于 2019-11-29
STC89C52RC单片机控制步进电机仿真与程序
本单片机是STC89C52RC,本程序应用于step motor--28BYJ,小型步进电机,供电电压DC5V,可直接接于单片机通过ul2003驱动芯片驱动,数码管是共阴极接口,控制步进电机启动/停止,正反转,加减速,并有运行,及转换状态显示。是初学者的好例程。实物图: 仿真原理图如下 单片机源程序如下:/*本单片机是STC89C52RC,本程序应用于step motor--28BYJ,小型步进电机,   供电电压DC5V,可直接接于单片机通过ul2003驱动芯片驱动,数码管是共阴极接口,*/#include <STC89C5xRC.H>#define uchar
发表于 2019-12-05
STC89C52RC单片机控制步进电机仿真与程序
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved