单片机是怎样在液晶上显示字符的

合集下载

单片机+LCD1602液晶显示字符串

单片机+LCD1602液晶显示字符串

1602液晶显示字符串(附带程序)(注意说明:使用的实验板是郭天祥老师的52单片机板)基本操作电路状态字说明RAM地址映射图初始化相关指令的意思读时序图写时序图要想通过1602液晶来显示你想要显示字符串,其实是很简单的,程序虽然有点长,但是都是按照步骤来的。

1602的五大步骤第一个步骤:检查LCD忙状态lcd_busy为1时,忙,等待。

lcd-busy为0时,闲,可写指令与数据。

第二个步骤:写指令数据到LCD RS=L,RW=L,E=高脉冲,D0-D7=指令码。

第三个步骤:写显示数据到LCD RS=H,RW=L,E=高脉冲,D0-D7=数据。

第四个步骤:设定显示位置第五个步骤:LCD初始化设定只要这五步你弄懂了,什么样的字符串都可以按照你的方式显示。

至于这其中的步骤的具体的方式,我们就要参照1602的资料和时序图!不过你大可不必,这份文档就足够了!#include <reg51.h>#include <intrins.h>#define uchar unsigned char#define uint unsigned intsbit dula=P2^6;sbit wela=P2^7;sbit LCD_RS = P3^5;sbit LCD_RW = P3^6;sbit LCD_EN = P3^4;uchar code dis1[] = {" WLCOME TO "}; uchar code dis2[] = {" JIANG GAN HUA "}; uchar code dis3[] = {" NAN CHANG "}; uchar code dis4[] = {" HANG KONG DX"}; void delay(int ms){int i;while(ms--){for(i = 0; i< 110; i++){_nop_();}}}bit lcd_busy(){bit result;LCD_RS = 0;LCD_RW = 1;LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();result = (bit)(P0&0x80);LCD_EN = 0;return result;}void lcd_wcmd(uchar cmd){while(lcd_busy());LCD_RS = 0;LCD_RW = 0;LCD_EN = 0;_nop_();_nop_();P0 = cmd;_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}void lcd_wdat(uchar dat){while(lcd_busy());LCD_RS = 1;LCD_RW = 0;LCD_EN = 0;P0 = dat;_nop_();_nop_();_nop_();_nop_();LCD_EN = 1;_nop_();_nop_();_nop_();_nop_();LCD_EN = 0;}void lcd_pos(uchar pos){lcd_wcmd(pos|0x80); //数据指针=80+地址变量}void lcd_init(){dula=0;wela=0;lcd_wcmd(0x38); //16*2显示,5*7点阵,8位数据 delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x38);delay(5);lcd_wcmd(0x0c); //显示开,关光标lcd_wcmd(0x06); //移动光标delay(5);lcd_wcmd(0x01); //清除LCD的显示容delay(5);}main(){uchar i;delay(10);lcd_init(); // 初始化LCDwhile(1){lcd_wcmd(0x06); //向右移动光标lcd_pos(0); //设置显示位置为第一行的第1个字符i = 0;while(dis1[i] != '\0'){ //显示字符lcd_wdat(dis1[i]);i++;delay(50); //控制两字之间显示速度}lcd_pos(0x40); //设置显示位置为第二行第1个字符 i = 0;while(dis2[i] != '\0'){lcd_wdat(dis2[i]); //显示字符"i++;delay(50); //控制两字之间显示速度}//闪动二次lcd_wcmd(0x01); //清除LCD的显示容delay(200); //控制转换时间lcd_wcmd(0x04); //向左移动光标lcd_pos(15); //设置显示位置为第一行的第16个字符i = 0;delay(50);while(dis3[i] != '\0'){ //显示字符" "lcd_wdat(dis3[i]);i++;delay(50); //控制两字之间显示速度}lcd_pos(0x4F); //设置显示位置为第二行的第16个字符 i = 0;while(dis4[i] != '\0'){lcd_wdat(dis4[i]); //显示字符"i++;delay(50); //控制两字之间显示速度}lcd_wcmd(0x01); //清除LCD的显示容delay(100); //控制转换时间}}实验现象,1602液晶显示我在数组里设置的字符串!739141300疑问解答!。

最新-单片机系统中的汉字显示 精品

最新-单片机系统中的汉字显示 精品

单片机系统中的汉字显示摘要需要显示的汉字较多时,单片机系统中的汉字编码非常繁琐。

本文介绍一种直接利用机的汉字内码作为单片机系统的汉字编码,以简化系统的设计。

关键词单片机液晶显示器29040汉字显示引言在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示器显示汉字。

通常的汉字显示方式是先根据所需要的汉字提取汉字点阵如16×16点阵,将点阵文件存入,形成新的汉字编码;而在使用时刚需要先根据新的汉字编码组成语句,再由根据新编码提取相应的点阵进行汉字显示。

在这种显示方式中,如果使用的流字数量较大或语句较多时,利用汉字的新编码组成语句将是一件十分繁琐而枯燥的工作。

针对这种情况,本文提出了一种十分简单的方式——直接利用机的汉字内码作为单片机系统的编码。

下面以8031单片机系统为例阐述如下一、硬件组成本系统中采用香港精电公司的内置6963控制器[1]的240128点阵图形液晶显示器。

该显示器1行为240点,能容纳16×16点阵的汉字15个,总列数为128点,能显示8行汉字。

为了使用操作可使用1片512的存储器如本系统中的29040用来存储全部的国标16×16点阵汉辽、8×16的码点阵数据以及汉字语句编码数据。

为了降低成本和减小体积,对于速度要求不是很高的场合也可采用大容量的串行数据存储器,如45041。

具体的硬件控制电路如图1所示与汉字显示无关的电路略。

由于29040的容量为512,而5031微控制器只能管理64的数据间,所以可将29040分成16页,每页32,占单片机系统数据空间的8000~0剩余32为单片机系统的其他存储器和外设。

页码由单片机的10~13选择。

液晶显示器的地址为78~79。

范文先生网收集整理二、汉字显示原理及软件设计软件中的文件16和文件16分别为16×16的国标汉字点阵文件和8×16的码点阵文件,以二进制格式存。

液晶LCD1602的原理与应用单片机机械

液晶LCD1602的原理与应用单片机机械

液晶LCD1602的原理与应用单片机机械液晶(Liquid Crystal) 是一种有机液体,具有光学特性。

在没有电场作用下,液晶分子呈现无规则排列,无法透过光。

而当电场作用于液晶分子时,液晶分子会改变排列方向,使光能通过液晶层并显示出来。

LCD1602的液晶显示器由两个玻璃基板和夹在两基板之间的液晶层以及一系列对齐膜、电极、玻璃垫、色彩滤波器等组成。

液晶层上覆盖有很多个小孔,称为像素,每个像素对应一组液晶分子。

液晶分子的排列方式决定了是否透过光。

在工作时,液晶LCD1602上的字模存储器存储了一些常用的字符图案,单片机通过控制液晶控制器中的液晶驱动信号,对液晶层上的液晶分子施加不同的电场作用。

通过改变电场的方向和强度,液晶分子的排列方式也发生变化,从而改变液晶层的透光性,实现显示。

1.单片机应用:液晶LCD1602可以通过与单片机相连接,实现字符信息的显示。

单片机可以通过控制液晶控制器向液晶层施加不同的电场,以显示想要的字符,如温度、湿度、时间、日期等。

液晶LCD1602通常使用并行接口方式与单片机相连,需要通过读写信号、地址信号、数据信号等与单片机进行数据交互。

2.机械应用:液晶LCD1602还可以在机械领域中进行应用。

比如,可以将液晶LCD1602安装在机械设备上,通过显示不同的字符信息,监控和显示机械设备的运行状态,如电机的转速、压力、流量、温度等。

液晶LCD1602还可以与其他传感器相结合,实现对机械设备的控制和监测。

总结:液晶LCD1602是一种常用的字符型液晶模块。

通过对液晶层上的液晶分子施加电场,改变液晶分子的排列方式,实现字符信息的显示。

它在单片机和机械领域有广泛的应用,可以显示各种字符信息,并实现对机械设备的控制和监测。

tft显示汉字的原理

tft显示汉字的原理

tft显示汉字的原理
TFT(Thin-Film Transistor)显示技术是一种广泛应用于液晶显示器的技术。

在TFT显示器上显示汉字的原理如下:
1. 点阵数据:无论是汉字、字符还是图片,都需要点阵数据才能在TFT LCD上显示。

对于汉字和字符,点阵数据是一位代表一个点的数据,即0
或1。

2. 取模后的点阵数据:取模后的点阵数据中,值为1的像素点需要显示画笔颜色,即点亮;值为0的像素点则显示背景颜色。

这种颜色的对比能够显示出汉字或字符。

3. 显示区域:在LCD上显示一个图片或字符需要一个显示区域。

首先确定
其显示起点,然后确定接下来的数据是沿着X轴还是Y轴进行发送,即X
轴或Y轴地址的增长顺序和方向。

4. 汉字和字符显示:汉字或字符通过判断每一位是0还是1来显示背景颜
色或画笔颜色。

为了正常显示想要的效果,需要保证LCD屏的显示起点以
及X轴和Y轴的增长顺序和方向,与对字符或汉字的取模的点阵数据的顺
序保持一致。

如果需要更多关于TFT显示器的信息,建议咨询相关品牌官方客服或查阅技术论坛。

单片机的中文显示处理技巧

单片机的中文显示处理技巧

单片机的中文显示处理技巧单片机作为嵌入式系统中的重要组成部分,其在各个领域的应用日益广泛。

在很多情况下,我们需要通过单片机实现中文的显示,因此掌握单片机的中文显示处理技巧是非常必要的。

本文将介绍几种常见的单片机中文显示处理技巧,旨在帮助读者更好地理解和应用。

一、汉字的编码问题在开始讨论单片机的中文显示处理技巧之前,我们首先需要了解汉字的编码方式。

目前最常用的汉字编码方式是GB2312和Unicode。

GB2312采用两个字节表示一个汉字,而Unicode则采用更多的字节,可以覆盖更多的字符。

在单片机中,我们通常会采用GB2312编码方式进行中文字符的表示和处理。

二、字库的引入和使用为了实现单片机的中文显示,我们需要一个字库,即包含了各种中文字符的数据表。

我们可以从官方渠道或者其他第三方资源中获取相应的字库。

在实际应用中,我们可以将字库编译为数组或者独立的数据文件,并将其导入到单片机的存储器中。

然后,我们可以通过访问相应的地址来获取并显示中文字符。

三、液晶显示屏的使用技巧在实际应用中,我们通常会使用液晶显示屏来实现单片机的中文显示。

下面是几个液晶显示屏使用中的注意事项:1. 设置字符显示模式:液晶显示屏中一般包含有字符发生器,我们可以通过设置字符显示模式来选择使用汉字编码还是英文字母编码。

2. 设置显示位置:在使用液晶显示屏显示汉字之前,我们需要设置显示位置,即将显示的汉字写入指定的坐标位置。

3. 字符的显示方式:液晶显示屏通常有多种显示方式,例如点阵式显示和字符行显示等。

我们可以根据实际需求选择合适的显示方式。

四、中文字符串的处理技巧除了显示单个中文字符之外,有时候我们还需要处理中文字符串。

在处理中文字符串时,我们需要注意以下几点:1. 字符串的存储方式:中文字符串通常会占用更多的存储空间,因此在设计程序时需要合理安排存储,以免出现内存溢出等问题。

2. 字符串的显示方式:在液晶显示屏上显示中文字符串时,我们可以选择逐个显示字符,也可以选择将整个字符串作为一个整体进行显示。

51单片机控制LED显示汉字

51单片机控制LED显示汉字

用51单片机控制led显示汉字,电路中行方向由p0口和p2口完成扫描,由于p0口没有上拉电阻,因此接一个4.7k*8的排阻上拉。

如没有排阻,也可用8个普通的4.7k 1/8w电阻。

为提供负载能力,接16个2n5551的NPN三极管驱动。

列方向则由4—16译码器74LS154完成扫描,它由89C51的P1.0---P1.3控制。

同样,驱动部分则是16个2N5401的三极管完成的。

电路的供电为一片LM7805三端稳压器,耗电电流为100ma左右。

采用一块12*20cm的万能电路板,应当选用质量好些的发光管,(否则有坏点现象,更换起来较麻烦)首先将256个发光管插入电路板,注意插入方向,同时使高度一致,行方向直接焊接起来,列方向则搭桥架空焊接,完成后用万用表测试一下如有不亮的更换掉。

然后找一个电脑硬盘的数据线,截取所需的长度,分别将行,列线引出至电路的相关管脚即可。

原理图为了简洁,故只画出了示意图,行列方向只画出了2个三极管,屏幕只画出4个发光管,实际上发光管为256只,三极管行列方向各16只,一共32只。

焊接过程认真仔细一天时间即可完成全部制作。

将程序编译后烧写入89c51, 插入40pin Ic座,即可看到屏幕轮流显示:“倚天一出宝刀屠龙”。

当然,你可将程序的汉字代码部分更换为您所需要的代码即可显示你所需要的汉字。

程序清单:ORG 00HLOOP: MOV A,#0FFH ;开机初始化,清除画面MOV P0,A ;清除P0口ANL P2,#00 ;清除P2口MOV R2,#200D100MS: MOV R3,#250 ;延时100毫秒DJNZ R3,$DJNZ R2,D100MSMOV 20H,#00H ;取码指针的初值l100: MOV R1,#100 ;每个字的停留时间L16: MOV R6,#16 ;每个字16个码MOV R4,#00H ;扫描指针清零MOV R0,20H ;取码指针存入R0L3: MOV A,R4 ;扫描指针存入AMOV P1,A ;扫描输出INC R4 ;扫描指针加1,扫描下一个MOV A,R0 ;取码指针存入AMOV DPTR,#TABLE ;取数据表的上半部分的代码MOVC A,@A+DPTRMOV P0,A ;输出到P0INC R0 ;取码指针加1,取下一个码。

单片机控制LCD1602显示字符(测试通过)

单片机控制LCD1602显示字符(测试通过)
本次测试的是常用LCD1602 显示屏,操作流程很简单,但有些小问题要
注意,如该LCD 处理速度有些慢,单片机在发送控制指令时需要适当延时,
否则可能操作失败。

一、硬件简介
1>引脚介绍
具体引脚如下:
单片机需要操作的引脚有:RS、RW、E 及DB0~7
2>指令介绍
在这里,仅仅介绍下什么是CGRAM、什么是DDRAM?
CGRAM:是用户自定义字符存放存储器,可以自己在指定地址定义字符DDRAM:是对应屏幕位置的存储器,设定了该地址,就确定了从屏幕什么
位置开始显示字符
二、软件部分
#include#include#define DATA P0sbit RS=P2;sb it RW=P2 ;sbit EN=P2;un sign ed char zifu[]={“Hello,World!0”};unsigned char wangzhi[]={“shop108408772.taobao/”};void delayms(unsigned char m) //适当延时{unsigned char i;while(m--){for(i=0;i//写1 个字节{RW=0;_nop_();_nop_(); EN=1;_nop_();DATA=canshu;EN=0;_nop_();_nop_();}
void main(){unsigned char *point;RS=0;WRITE_BYTE(1);//清屏delayms(10);//。

51单片机12864液晶字符显示

51单片机12864液晶字符显示51 单片机的12864 液晶字符显示,采用液晶的并行接法#include#include#include#define uchar unsigned char#define uint unsigned int#define LCD_data P0 //定义数据口sbit LCD_RS=P3 ; //数据命令选择端,高电平为写数据,低电平写命令sbit LCD_RW=P3;//读写控制端,高电平读信息,低电平写信息sbit LCD_EN=P3;// 使能端sbit LCD_PSB=P3;//拉高,选择并行//单片机特殊功能位声明uchar code dis1[]={“姓名:浩泉”};uchar code dis2[]={“性别:男”};uchar code dis3[]={“卡号:050817”};uchar code dis4[]={“”};void delay_1ms(uint x) //延时函数1ms{ uint i,j; for(j=0;jvoid write_cmd(uchar cmd) //写命令函数,请参考12864 液晶手册{ LCD_RS=0; //低电平,写入命令LCD_RW=0;P0=cmd; // 赋值delay_1ms(5); LCD_EN=1;//使能端拉高送入命令delay_1ms(5); LCD_EN=0;}void write_date(uchar date) //写数据{ LCD_RS=1; LCD_RW=0;P0=date; delay_1ms(5); LCD_EN=1; //使能端拉高送入数据delay_1ms(5); LCD_EN=0;}void lcd_pose(uchar X,uchar Y) //液晶显示位置函数{ uchar S,pose; switch (X) { case 0: S=0x80; //液晶第一行显示break;case 1: S=0x90; //第二行显示break;case 2: //第三行显示S=0x88; break;case 3: //第四行显示S=0x98; break;} pose=S+Y; write_cmd(pose);}。

用单片机控制字符型液晶显示模块

用单片机控制字符型液晶显示模块液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在袖珍式仪表和低功耗应用系统中得到越来越广泛的应用。

本文介绍字符型液晶模块HS162-4与单片机89C51的接口与编程方法。

HS162-4液晶模块是一种用5x7点阵图形来显示字符的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字等。

下面以常用的2行16个字的显示方式介绍HS162-4液晶模块的使用方法。

HS162-4采用标准的16脚接口,其中VSS为地电源,VDD接5V正电源,V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“阴影”,使用时可以通过一个10K的电位器调整对比度。

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

RW为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为高电平时可以读忙信号,当RS为高电平RW 为低电平时可以写入数据。

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

LEDA和LEDK为背光电源,LEDA接5V正电源,LEDK接GND。

D0~D7为8位双向数据线。

HS162-4液晶模块内部的字符发生存储器(CGROM)已经存储了128个不同的点阵字符图形,如表1所示,这些字符有:阿拉伯数字、英文字母的大小写和常用的符号等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H 中的点阵字符图形显示出来,我们就能看到字母“A”它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置指令2:光标复位,光标返回到地址00H指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S: 屏幕上所有文字是否左移或者右移。

单片机显示字母的原理是

单片机显示字母的原理是
单片机显示字母的原理是通过控制数码管或液晶显示屏来实现的。

下面我将详细解释这个过程。

在使用单片机显示字母之前,首先需要了解数字显示的原理。

通常使用的数码管分为共阳极和共阴极两种类型。

共阳极的数码管是指阳极端口串联的,而共阴极的数码管是指阴极端口串联的。

数码管通常由7个发光二极管(LED)组成,分别代表数字的不同段。

根据不同的段亮起或不亮起,可以表示不同的数字和字母。

单片机显示字母的过程大致如下:
1. 要显示字母时,首先需要确定使用的是共阳极还是共阴极的数码管,以便正确控制相应的端口。

2. 单片机通过IO口或专门的显示驱动芯片来控制数码管。

控制芯片通常会接收到单片机发送的控制信号和数据信号。

3. 单片机通过控制信号告诉控制芯片需要显示字母,并发送相应的数据信号给控制芯片。

4. 控制芯片接收到数据信号后,会根据内部的解码表将其转换为数码管对应的段亮起的情况。

5. 控制芯片再将转换后的信号输出到数码管,使得数码管显示出正确的字母。

总结起来,单片机显示字母的原理就是根据控制信号和数据信号来控制数码管的段亮起情况,从而将字母显示在数码管上。

这个过程涉及到硬件的端口控制、信
号转换和驱动,同时需要在单片机中编写相应的代码来实现字母显示的功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机是怎样在液晶上显示字符的
液晶(LCD)是如何显示的
1.线段的显示点阵图形式液晶由M 行×N 列个显示单元组成,假设LCD 显示屏
有64行,每行有128 列,每8 列对应1 个字节的8 个位,即每行由16 字节,共16×8=128 个点组成,屏上64×16 个显示单元和显示RAM 区1024 个字节相对应,每一字节的内容
和屏上相应位置的亮暗对应。

例如屏的第一行的亮暗由RAM 区的000H~00FH 的16 个字节的内容决定,当(000)=FFH 时,则屏的左上角显示一条短亮线,长度为8 个点;当(3FFH)=FFH 时,则屏的右下角显示一短亮线;当(000H)=FFH,(001H)=00H,(002H)=FFH,(003H)=00H,…(00EH)=FFH,(00FH)=00H 时,则在屏的顶部显示一条由8 段亮线
和8 条暗线组成的虚线。

这就是LCD 显示的基本意思。

2.字符的显示当用LCD 显示一个字符时就较复杂了,因为一个字符由6×8 或8
×8 点阵组成,即要找到和屏上某几个位置对应的显示RAM区的8 个字节,并且要使每个字节的不同的位为‘1’,其它的为‘0’,为‘1’的点亮,为‘0’的点暗,这样一来就组成某个字符。

但对于内带字符发生器的控制器(如T6963C)来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。

3.汉字的显示汉字的显示一般采用图形方式,事先从微机中提取要显示的汉字的
点阵码,每个汉字占32 字节,分左右两半部,各占16 字节,左边为1、3、5…,右边为2、4、6…, 根据在LCD 上开始显示的行列号及每行的列数可找出显示RAM 对应的地址,设立光标,送上要显示的汉字的第一个字节,光标位置加1,送第二字节,换行按列对齐,
送第三字节…直到32 字节显示完就可在LCD 上得到一个完整的汉字。

内带T6963C的液晶图形显示模块和8031 单片机的连接
1.LCD显示控制器T6963C T6963C 是点阵式液晶图形显示控制器,能直接和8031
单片机连接(见附图);可以以图形、字符方式或合成显示;内部有字符发生器,共128 个字符,允许CPU随时访问显示RAM,并可进行位操作。

2.内带T6963C 的液晶图形显示模块(MGLS12864T)和8031 单片机的连接内
带T6963C 的液晶图形显示模块MGLS12864T 和8031 单片机的连接见附图。

由图可以看出,MGLS12864T 的数据线和8031 的数据总线相接,它的C/D 接8031 的地址线A0,/CE 2
接8031外扩系统地址译码器74LS138的一个输出端;MGLS12864T的/WR,/RD分别和8031 的/WR,/RD 相接,/RESET,VCC,/HALT 接+5V,VO 接-5V~-15V 可调,VEE 接-
5V~-15V;FG、GND接8031 的GND。

T6963C 的主要指令见表1。

参数1 参数2 指令代码功能
1.水平位置垂直位置21H 光标指针设置
2.地址(低5位)00H 22H CGRAM 偏置地址设置
3.低字节高字节24H 地址指针位置
4.低字节高字节40H 文本区首址
5 低字节00H 41H 文本区宽度(字节数/行)
6.低字节高字节42H 图形区首址
7.低字节00H 43H 图形区宽度(字节数/行)
8.无无8XH 显示方式设置
9.无无9XH 光标闪烁,显示,文本,图形显示
10. 无无AXH 光标形状选择
11.无无BXH 数据自动读/写方式设置
12.D1(仅写才有)无C0—C5H 数据一次写/读,地址加1或不变
13.无无D0H 屏读
14.无无D8H 屏拷贝
15.无无FXH 位操作
对T6963C进行操作前应先读状态字,T6963C 的状态字中的各位含意如表2。

表2
位状态 1 0
STA0:指令读写状态准备好忙
STA1:数据读写状态准备好忙
STA2:数据自动读状态准备好忙
STA3:数据自动写状态准备好忙
STA4:未用
STA5:控制器运行检测可能性可能不能
STA6:屏读/拷贝出错状态出错正确
STA7:闪烁状态检测正常显示关显示
3.程序举例(仅供参考)
(1)清显示RAM子程序
MOV R2,#00H
MOV R3,#00H
MOV R4,#24H ;设地址指针
CALL PR1
MOV R4,#0B0H ;自动写指令
CALL PR12
MOV R2,#1FH ;共8K
PR31:
3
MOV R3,#0FFH
PR32:
CALL PR03
CLR A
CALL PR14
DJNZ R3,PR32
DJNZ R2,PR31
MOV R4,#0B2H ;自动写结束
CALL PR12
RET
(2)检测状态:
PR01: ;判LCD 忙否?MOVDPTR,#4001H ;LCD指令口地址MOVX A,@DPTR
JNB ACC.0,PR01
JNB ACC.1,PR01
RET
PR03: ;判LCD 自动写标志MOVDPTR,#4001H
MOVX A,@DPTR
JNB ACC.3,PR03
RET
(3)写数据或指令程序
PR1: ;双字节参数指令入口
CALL PR01
MOVA,R2
CALL PR14
PR11: ;单字节参数指令入口
CALL PR01
MOVA,R3
CALL PR14
PR12: ;无字节参数指令入口
CALL PR01
MOVA,R4
JMP PR15
PR14:;写数据入口:
MOV DPTR,#4000H ;LCD数据口地址PR15:
MOVX @DPTR,A
RET
(4)显示汉字子程序:
DIS_HZ:
4
MOVA,R6 ;(R6):LCD上开始显示的行数
MOVB,A
MOVA,#10H ;每个汉字占16行*8列像素
MULAB ;根据R6,R7 找显示RAM地址
MOV R2,A
MOV A,B
MOV R3,A
MOV A,R2
CLR C
ADDA,R7 ;(R7):LCD上开始显示的列数
MOV R2,A
MOV A,R3
MOV R3,A
ADDC A,#08H ;设0800H为图形区首址
MOV R7,#00H
HZ_1:
MOV R4,#24H ;显示RAM区地址指针设置命令
MOV A,R3
MOV R6,A
CALL PR1
MOV DPL,32H ;(32H)要显示的汉字的首地址低字节MOV DPH,33H ;(33H)要显示的汉字的首地址高字节MOV A,R7
MOVC A,@A+DPTR
MOV R3,A
MOV R4,#0C0H ;写一字节
CALL PR11
MOV A,R6
MOV R3,A
INC R7
MOV A,R2
ADD A,#01H
MOV R2,A
MOV A,R3
ADDC A,#00H
MOV R3,A
MOV R4,#24H
MOV A,R3
MOV R6,A
CALL PR1
MOV DPL,32H
MOV DPH,33H
MOV A,R7
MOVC A,@A+DPTR
5
MOV R3,A
MOV R4,#0C0H ;写下一字节
CALL PR11
MOV A,R6
MOV R3,A
INC R7
MOV A,R2
ADD A,#15 ;汉字第二行的左半部
MOV R2,A
MOV A,R3
ADDC A,#00H
MOV R3,A
CJNE R7,#20H,HZ_1 ;共32 字节
RET
DIS_ZF: ;显示一个字符子程序
MOVA,R6 ;(R6):LCD上开始显示的行数MOVB,#10H ;设每行16列
MULAB
ADD A,R7 ;(R7):LCD上开始显示的列数MOV R2,A
MOV A,B
MOV R3,A
MOV R4,#24H ;显示RAM 区地址指针设置命令CALL PR1
MOV A,R5 ;(R5):控制器内部字符的代码MOV R3,A
MOV R4,#0C0H
CALL PR11
RET。

相关文档
最新文档