液晶12864汉字显示程序及显示顺序正常的C语言程序

发布者:小牛队最新更新时间:2017-10-02 来源: eefocus关键字:液晶12864  汉字显示  显示顺序 手机看文章 扫描二维码
随时随地手机看文章

液晶12864显示汉字程序,经过调试发现,两个汉字行中间隔一行,为了达到不隔行的目的,我拆分开来,这样分4行分别显示,就达到了,代码虽然多,但简单,可以通过复制粘贴达到效果。

以下为行行正确显示汉字的C程序,想显示什么,改掉那些初始字就可以了。

 

#include
#include
#include
#include


sbit RS=P2^4;
sbit WRD=P2^5;
sbit E=P2^6;
sbit PSB=P2^1;
sbit RES=P2^3;

void TransferData(char data1,bit DI);
void delayms(unsigned int n);
void delay(unsigned int m);
void lcd_mesg(unsigned char code *addr1);
void lcd_mesg2(unsigned char code *addr1);

void lcd_mesg3(unsigned char code *addr1);

void lcd_mesg4(unsigned char code *addr1);

//汉字定义,8个汉字或是16个字符,一行。

unsigned char code IC_DAT[]={
"我我我我我我我我"};
unsigned char code IC_DAT2[]={
"是是是是是是是是"};
unsigned char code IC_DAT3[]={
"中中中中中中中中"};
unsigned char code IC_DAT4[]={
"国国国国国国国国"};
unsigned char code IC_DAT5[]={
"人人人人人人人人"};
unsigned char code IC_DAT6[]={
"当当当当当当当当"};
unsigned char code IC_DAT7[]={
"自自自自自自自自"};
unsigned char code IC_DAT8[]={
"强强强强强强强强"};

//程序要初始化,即液晶12864要初始化。
void initinal(void)
{
delay(40);
PSB=1;   //并口工作模式
delay(1);
RES=0; //复位
delay(1);
RES=1;   //复位置高
delay(10);
TransferData(0x30,0);
delay(100);
TransferData(0x30,0);
delay(37);
TransferData(0x08,0);
delay(100);
TransferData(0x10,0);
delay(100);
TransferData(0x0C,0);
delay(100);
TransferData(0x01,0);
delay(10);
TransferData(0x06,0);
delay(100);
}


void main(void)           //分两屏显示汉字。
{
while(1)
{
   initinal();//调用LCD字库初始化程序
   delay(100);
   lcd_mesg(IC_DAT);
   lcd_mesg2(IC_DAT2);
   lcd_mesg3(IC_DAT3);
   lcd_mesg4(IC_DAT4);
   delayms(240);
   delayms(240);
  
   initinal();
   delay(100);
   lcd_mesg(IC_DAT5);
   lcd_mesg2(IC_DAT6);
   lcd_mesg3(IC_DAT7);
   lcd_mesg4(IC_DAT8);
   delayms(240);
   delayms(240);
}
}

 

 

//显示时,由于地址不同,显示所在行不同,这里分别列出四行的地址。


void lcd_mesg(unsigned char code *addr1)
{
unsigned char i;
//第一行
TransferData(0x80,0);
   delay(100);
   for(i=0;i<16;i++)
   {
    TransferData(*addr1,1);
    addr1++;
   }

}
void lcd_mesg2(unsigned char code *addr1)
{
unsigned char i;
//第一行
TransferData(0x90,0);
   delay(100);
   for(i=0;i<16;i++)
   {
    TransferData(*addr1,1);
    addr1++;
   }
}

void lcd_mesg3(unsigned char code *addr1)
{
unsigned char i;
//第一行
TransferData(0x88,0);
   delay(100);
   for(i=0;i<16;i++)
   {
    TransferData(*addr1,1);
    addr1++;
   }
}
void lcd_mesg4(unsigned char code *addr1)
{
unsigned char i;
//显示一行
TransferData(0x98,0);
   delay(100);
   for(i=0;i<16;i++)
   {
    TransferData(*addr1,1);
    addr1++;
   }
}

  

void TransferData(char data1,bit DI) //传送数据或是命令,当DI=0时,传送命令,当DI=1时,传送数据
{
WRD=0;
RS=DI;
delay(1);
P0=data1;
E=1;
delay(1);
E=0;
}
void delayms(unsigned int n)
{
unsigned int i,j;
for(i=0;i   for(j=0;j<2000;j++);
}
void delay(unsigned int m)
{
unsigned int i,j;
for(i=0;ifor(j=0;j<10;j++);
}

 

 

 

以上程序在AT89s52单片机+带字库12864液晶上调试OK。


关键字:液晶12864  汉字显示  显示顺序 引用地址:液晶12864汉字显示程序及显示顺序正常的C语言程序

上一篇:单片机按键与数码管试验程序 Proteus仿真
下一篇:51单片机之串口操作入门经验总结与C源程序

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

基于Linux核心的汉字显示的尝试(frambuffer分析)
在阐述基于Linux核心的汉字显示的技术细节之前,有必要介绍一下原有linux的工作机制。这里主要涉及到两部分的知识,就是Linux下终端和帧缓冲的实现. 控制台(console) 通常我们在linux下看到的控制台(console)是由几个设备完成的。分别是/dev/ttyN(其中tty0就是/dev/console,tty1,tty2就是不同的虚拟终端(virtual console)).通常使用热键alt Fn来在这些虚拟终端之间进行切换。所有的这些tty设备都是由linux/drivers/char/console.c和vt.c对应。其中console.c负责绘制屏幕上的字符,vt.c负责管理不同的虚拟终端,并且负
[嵌入式]
液晶显示多级汉字菜单的方法及电路
1. 引言   目前常用的小型显示器有LCD和LED ,LED显示器只能显示数字和有限个英文字符,不能显示汉字,显示内容不直观,操作人员只能根据约定格式了解显示内容。而LCD则可显示各种汉字和图形,能实现中文菜单显示,便于操作,并且功耗低。因此LCD得到广泛应用。用LCD显示汉字时,一般采用自制汉字模和汉字编码,当显示内容较多时, 字模库容量很大,汉字的编码亦很难记住,给编程造成困难,当显示内容改变时,字模库也要作相应变化,工作量大。这里介绍一种直接利用CCDOS中的汉字库(HZK16)显示汉字多级菜单的方法。将HZK16和菜单内容固化在EPROM中,从而方便地实现了多级汉字菜单的显示,充分发挥了LCD的优点。 2. MGLS-2
[单片机]
<font color='red'>液晶</font><font color='red'>显示</font>多级<font color='red'>汉字</font>菜单的方法及电路
一种低成本汉字液晶显示的实现方法
在智能仪表等小型单片机应用系统中,一般采用发光二极管作功能提示,数码管显示数据。随着智能仪表功能的不断扩充和提高,这种显示方式逐渐不能满足需求。为系统添加一片液晶显示器作为显示设备,显然能够很大程度扩展系统功能,提升产品的档次。若在液晶显示器上显示汉字信息,如果采用带汉字库的液晶显示器会有一些弊端:成本高,汉字大小固定,缺乏一些特殊的功能函数。针对这种情况,本文分析了一种低成本的汉字液晶显示实现方法,并给出了其C语言实现函数的源程序,以及汉字字符串提取程序和点阵字模提取程序的源程序。显示函数的实现中还重点设计了灵活的putchar函数,以便在程序中使用printf函数作为显示输出函数。 1 基本原理 这种低成本汉字液晶显示实现
[电源管理]
AD1549的LCD12864液晶显示程序
AD1549的 LCD 12864液晶显示程序 #include reg52.h #include intrins.h sbit AD_CS = P3^7; sbit AD_DAT = P3^5; sbit AD_CLK = P3^4; sbit RS=P3^6; //RS= H ,表示DB7--DB0为显示数据, //RS= L ,表示DB7--DB0为显示指令数据 sbit WRD = P2^5; //R/W= H ,E= H ,数据被读到DB7--DB0 //R/W= L ,E= H→L , DB7--DB0的数据被写到IR或DR sbit E = P2^6; //使能
[单片机]
AVR128的程序——12864液晶与ds1302与ds18b20的综合运用
此程序包含子文件 #include iom128v.h #include macros.h #include 12864lcd.h #include ds1302.h #include ds18B20.h void mcu_init(void) { DDRA = 0XFF; PORTA = 0XFF; DDRC = 0XFF; PORTC = 0XFF; DDRF |= 0X0E; PORTF |= 0X0E; PORTF &= 0xF0; DDRB |= 0X10; PORTB
[单片机]
使用无字库12864液晶模块制作温湿度计
在上次介绍的日历钟的基础上扩展一下:让它具备检测大气温度和湿度的功能,一天24小时不间断运行并定时检测,于是,日历钟就摇身一变成为一个小小温湿度计啦。虽然气象要素很多,不过我们最常用的就是气温和湿度。一个是冷热程度,一个是环境空气中含水蒸气的多少。一般家用温度计很常见,湿度计就比较少,以前有一种干湿球温度计,但是用起来比较麻烦,准确度也不高。现在应用电子技术我们就可以做一个可以同时显示温度、湿度、时间的小仪器,放在家里以便随时监测我们的小环境。它的特点如下: 1.在单片机ATMega8L-8PU(以下简称M8)和日历钟电路DS1302的基础上,使用一个在工厂经过精密校准的数字式温度、湿度传感器AM2301作为探头; 2.当
[电源管理]
使用无字库<font color='red'>12864</font><font color='red'>液晶</font>模块制作温湿度计
avr单片机驱动12864液晶程序
/*LCD12864显示子程序*、 #include util/delay.h #define uchar unsigned char #define uint unsigned int #define SETLCD12864RS PORTA|=(1 PA4) #define SETLCD12864RW PORTA|=(1 PA5) #define SETLCD12864EN PORTA|=(1 PA6) #define CLLCD12864RS PORTA&=~(1 PA4) #define CLLCD12864RW PORTA&=~(1 PA5) #define CLTLCD12864EN PORTA&=~(1 PA6) #d
[单片机]
单片机并行扩展口在小型汉字显示屏中的应用
【摘 要】 结合开发汉字LED显示屏与教授单片机课程的体会,介绍一种利用单片机8031的并行扩展口构成小型汉字LED显示屏的方法。 关键词:并行口扩展 单片机 汉字LED显示    1 引 言   在车站、机场、商场、证券交易所、厂矿企业及其他一些公共场所,经常需要发布多变的实时的信息或进行广告宣传,传统的黑板和纸张等为媒介的手段不能满足其多变性和实时性。而LED(发光二极管)电子显示屏以其修改方便、实时显示、美观整洁等特点应运而生。构成LED电子显示系统的方法很多,它们的基本原理相同,都是采用点阵的形式显示汉字、字符等。   下面,笔者结合开发LED汉字显示屏与教授单片机课程的体会,介绍点阵显示的原理以及如何利用8255A
[工业控制]
单片机并行扩展口在小型<font color='red'>汉字</font><font color='red'>显示</font>屏中的应用
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

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

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

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