12864液晶简单显示程序(带字库)

发布者:EnchantedDreams最新更新时间:2016-09-05 来源: eefocus关键字:12864液晶  显示程序  字库 手机看文章 扫描二维码
随时随地手机看文章
感觉网上好多的12864液晶程序写的很混乱,当自己写了12864液晶的程序后才发现,原来液晶驱动程序是可以很简单的。这是我自己写的一个12864液晶程序,请大家多多指教。

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

程序名称:12864液晶简单显示(8位并口)

芯片:   SST89c52

硬件连接:P0口送数据或命令,链接到12864的DB0--DB7

    RS=P2.0,RW=P2.1,EN=P2.2,PSB=P2.3,RST=P2.4

日期:2009年7月19日  作者:雪狼 

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

#include

#define uchar unsigned char

#define uint unsigned int

#define Lcd_IO P0

#define comm 0

#define dat 1

sbit RS=P2^0;

sbit RW=P2^1;

sbit EN=P2^2;

sbit PSB=P2^3;

sbit RST=P2^4;

//一幅图形数据

uchar code Lcd_num[]={               

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x80,0x00,0x0F,0xFF,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x0C,0x43,0x01,0x80,0x00,0x7F,0xFF,0xF0,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x19,0xFF,0x07,0x00,0x07,0xFF,0xFF,0xFE,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0x3F,0xFC,0x1E,0x00,0x1F,0xFF,0xFF,0xFF,0x80,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xBF,0xFF,0xFC,0x00,0x7F,0xFC,0x00,0x7F,0xC0,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x00,0xFF,0xC0,0x00,0x0F,0xE0,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xFF,0xE0,0x03,0xFF,0xFF,0xFC,0x01,0xF0,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xDF,0xFF,0xC0,0x07,0xFF,0xFF,0xFF,0x80,0xF0,0x00,0x00,0x00,

0x00,0x00,0x00,0x03,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xFF,0xE0,0x38,0x00,0x00,0x00,

0x00,0x00,0x00,0x07,0xFF,0xF8,0x00,0x1F,0xFF,0xF0,0x03,0xF8,0x38,0x00,0x00,0x00,

0x00,0x00,0x00,0x07,0xFF,0xE0,0x00,0x3F,0xFF,0xFF,0xC0,0x7C,0x18,0x00,0x00,0x00,

0x00,0x00,0x00,0x04,0x7F,0xF0,0x00,0x3F,0xFF,0xFF,0xF8,0x1E,0x08,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xF8,0x00,0x7F,0xFF,0xFF,0xFE,0x0F,0x08,0x00,0x00,0x00,

0x00,0x00,0x00,0x0F,0xFF,0xFC,0x00,0xFF,0xFF,0xFF,0xFF,0x87,0x08,0x00,0x00,0x00,

0x00,0x00,0x00,0x1F,0xFF,0xFE,0x00,0xFF,0xFF,0xFF,0xFF,0x83,0x88,0x00,0x00,0x00,

0x00,0x00,0x00,0x3F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xC3,0x88,0x00,0x00,0x00,

0x00,0x00,0x00,0x7F,0xFF,0xFE,0x01,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xE1,0x88,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF1,0x88,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xFF,0xFF,0xF3,0x08,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0x07,0xFF,0xFF,0xFF,0xFF,0xF2,0x10,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0x8F,0xFF,0xFF,0xFF,0xFF,0xF0,0x20,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,0x00,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x70,0x00,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,

0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFE,0xFF,0x70,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0x7F,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xBF,0xFF,0x7F,0x20,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x7E,0x20,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFF,0xFF,0xDF,0xFF,0x3E,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x1F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFF,0x3C,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x0F,0xFF,0xFF,0xFF,0xFF,0xCF,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x07,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x38,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x01,0xFF,0xFF,0xFF,0xFF,0x8F,0xFE,0x30,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x1F,0x7C,0x20,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x7F,0xFF,0xFF,0xFE,0x1E,0x78,0x00,0x40,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFE,0x1E,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x1F,0xFF,0xFF,0xDA,0x3C,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x07,0xFF,0xFF,0xF2,0x30,0x80,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF1,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0xFE,0x7F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x7C,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x78,0x1F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x72,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0xC0,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x01,0x40,0x04,0xD8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x01,0x00,0x01,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x02,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x02,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x0C,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x38,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x0F,0xE2,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

void Delay_us(uint i)//i=10,time=100us

{

 for(;i>0;i--);

}

void Delay_ms(uint i)//i=10,time=10ms

{

 while(i--)

 Delay_us(100);

}

//向12864液晶写数据或命令

void Lcd_wcd(uchar dat_comm,uchar Lcd_data)

{

 if(dat_comm)

 RS=1;    //数据

 else RS=0;      //命令

 Lcd_IO=Lcd_data;

 RW=0;

 EN=1;

 Delay_us(30);

 EN=0;  

}

void Lcd_init()  //液晶初始化

{

 RST=0;

 Delay_us(10);   //外部复位

 RST=1;

 PSB=1;

 Lcd_wcd(comm,0x30);   //基本指令格式

 Delay_us(30);

 Lcd_wcd(comm,0x01);   //液晶清屏

 Delay_ms(30);   

 Lcd_wcd(comm,0x06);   //设置显示格式,光标位置

 Lcd_wcd(comm,0x0c);

}

void Lcd_pst(uchar xx,uchar yy)  //设置显示坐标

{           

 uint line;

 switch(yy)

 {

  case 0:line=0x00;break;

  case 1:line=0x10;break;

  case 2:line=0x08;break;

  case 3:line=0x18;break;

  default :break;

 }

 Lcd_wcd(comm,0x80+line+xx);

}

void Lcd_str(uchar *str)   //显示字符串和汉字

{

 while(*str!='\0')

 {

  Lcd_wcd(dat,*str);

  str++;

 }

}

//液晶自定义显示

void Lcd_define(uchar *str)

{

 uint m,n;

 Lcd_wcd(comm,0x34); //设置位扩展指令格式

 for(m=0;m<32;m++)

 {

  for(n=0;n<8;n++)

  {

   Lcd_wcd(comm,0x80+m);  //写纵坐标,00H--1FH

   Lcd_wcd(comm,0x80+n);  //写横坐标,00H--07H

   Lcd_wcd(dat,str[m*16+n*2]);

   Lcd_wcd(dat,str[m*16+n*2+1]);//连续写两个数据  

  }   

 }

 for(m=32;m<64;m++)

 {

  for(n=0;n<8;n++)

  {

   Lcd_wcd(comm,0x80+m-32);   //写纵坐标,00H--1FH

   Lcd_wcd(comm,0x88+n);  //写横坐标,08H--0FH

   Lcd_wcd(dat,str[m*16+n*2]);

   Lcd_wcd(dat,str[m*16+n*2+1]); //连续写两个数据

  }

 }

 Lcd_wcd(comm,0x30);   //基本指令格式

 Lcd_wcd(comm,0x01);   //清屏

 Delay_ms(30);

 Lcd_wcd(comm,0x34);   //扩展指令格式

 Lcd_wcd(comm,0x36);   //显示自定义图形

}

//主函数

void main()

{

 P0=0xff;

 P2=0xff;

 Lcd_init();

 Lcd_pst(0,0);

 Lcd_str("狼子电雪工作室");

 Lcd_pst(0,1);

 Lcd_str("  微笑  自信");

 Lcd_pst(0,2);

 Lcd_str("  谦虚  自律");

 Delay_ms(1000);

 Lcd_define(Lcd_num);

 while(1);

}

关键字:12864液晶  显示程序  字库 引用地址:12864液晶简单显示程序(带字库)

上一篇:LCD1602液晶显示DS1302实时时钟Proteus仿真
下一篇:12864点阵液晶的基本原理与使用方法

推荐阅读最新更新时间:2024-03-16 15:08

Proteus8.8版本+ STM32F103驱动LCD1602显示程序+按键+ADC+串口
STM32F103仿真驱动点亮LCD1602 一、开发环境介绍 proteus 8.8 版本+ STM32CubeMX 4.18.0 程序基于keil集成开发环境编写,基于ST官方的HAL库。 STM32CubeMX pack版本 STM32CubeMX的版本 二、项目功能介绍 该项目程序中实现了 1、程序实现了LCD1602的点亮显示 2、程序中实现了STM32的AD采样 3、程序中实现了串口通信 4、程序中实现了按键控制操作 通过滑动变阻器加放大器改变输入值。后边加上lcd1602,初始化显示“光节点检测系统” 然后加个按键按下开始 显示“光功率值:(多少)dbm 这里的范围就0-100 通过调节前边电位器每次只变化一
[单片机]
Proteus8.8版本+ STM32F103驱动LCD1602<font color='red'>显示</font><font color='red'>程序</font>+按键+ADC+串口
基于MDK编译器 STM32与12864液晶显示程序 和电路连接
里附上的是主程序部分和电路连接 这里用的12864液晶是5v的,电路链接部分 RS PE2 RW PE4 EN PE6 15口PSB串并 PE3 #include stm32f10x.h GPIO_InitTypeDef GPIO_InitStructure; #define RS_SET GPIO_SetBits(GPIOE, GPIO_Pin_2) #define RS_CLR GPIO_ResetBits(GPIOE, GPIO_Pin_2) #define RW_SET GPIO_SetBits(GPIOE, GPIO_Pin_4) #define RW_CLR GPIO_Re
[单片机]
128X64带中文字库液晶模块应用与程序
一) 概述 …………………………………………………… 3 (二) 外形尺寸 1 方框图 ……………………………………………… 3 iframe id="iframeu2163852_0" src="http://pos.baidu.com/lcqm?conwid=250&conhei=250&rdid=2163852&dc=3&di=u2163852&dri=0&dis=0&dai=3&ps=854x763&enu=encoding&dcb=___adblockplus&dtm=HTML_POST&dvi=0.0&dci=-1&dpt=none&tsr=0&tpr=1516190003978&ti=128X64%E
[单片机]
128X64带中文<font color='red'>字库</font>的<font color='red'>液晶</font>模块应用与<font color='red'>程序</font>
8279显示电子钟的设计与程序源代码
可以看看时钟程序是怎么样设计的。 Z8279 EQU 08701H ;8279 状态/命令口地址 D8279 EQU 08700H ;8279 数据口地址 LEDMOD EQU 00H ;左边输入 八位字符显示 ;外部译码键扫描方式,双键互锁 LEDFEQ EQU 2FH ;扫描速率 LEDCLS EQU 0C1H ;清除显示 RAM LEDWR0 EQU 80H ;设定的将要写入的显示RAM地址 ORG 0000H AJMP START ORG 001BH ;I
[单片机]
8279<font color='red'>显示</font>电子钟的设计与<font color='red'>程序</font>源代码
ds1302驱动程序+lcd12864串行显示,使用结构体写,可读性更强
ds1302.c #include ds1302.h // 定义RTC初始化结构体,决定了初始化时间 RTC_TIME rtc_time = { 25, // 秒 35, // 分 02, // 时 25, // 日 4, // 月 4, // 星期 19 // 年 }; /******************************************************************************* * 函 数 名 : bcd_to_hex * 函数功能 : 从时钟芯片中读出的时间数据,需转换为十进制数。 * 输
[单片机]
stm8的18b20温度显示程序
单片机源程序如下: #include stm8s.h #include Cry12864.h #include temp.h #include tim1.h void LcdDisplay(int temp) ; uint a; void main( void ) { CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//内部时钟1分频16m Ini_Lcd();//液晶初始化 Tim1_Init();//时钟初始化 while(1) {LcdDisplay(Ds18b20ReadTemp()); } }
[单片机]
7月1日调查显示Windows Phone应用程序达2.5万项
     北京时间7月1日晚间消息,最新一项调查结果显示,微软应用商店Windows Phone Marketplace(以下简称“WPM”)内的应用程序数量已达到2.5万项。   该调查结果显示,WPM内的应用程序已达到25076项。但其他应用程序跟踪公司的数据显示,WPM内的应用程序数量仍低于2.5万项。   分析人士称,无论如何WPM的程序增长速度在提升。微软去年11月推出WPM,今年3月底应用程序数量达到1.15万项,相当于每月增加2300项。如今,3个月的时间又增加了1.35万项,相当于每月增加4500项。   该分析人士还称,随着Mango的发布,相信WPM的增长速度还将持续下去。
[手机便携]
矢量字库在嵌入式机顶盒中的应用
摘要:介绍嵌入式数字卫星接收机的字符显示原理。提出一种提取Windows矢量字库信息以及将其转换为点阵字库格式的方法。给出主要模块的流程图和VC程序实现。在DVB-S接收机顶盒系统中的应用验证了该方法的有效性。 关键词:矢量字库 机顶盒 字符转换 引言 在当前嵌入式系统设计中,广泛涉及到字符和图标的显示。过去的方法通常是使用硬件自带字库或者转换中文操作系统(例如UCDOS)的点阵字库,但随着嵌入式开发技术的发展,人们对用户界的要求也越来截止高,大小固定、字体有限、使用不便的点阵字库已经难再满足要求。于是众多开发人员将目光投向了Windows操作系统丰富的字库和图标资源,以Widnows 2000系统为例,其OpenType
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved