基于12864液晶显示图片(3)

2019-04-10 10:28

武汉理工大学《能力拓展训练》说明书

RE=0: 基本指令操作 设定CGRA0 0 M 地址 设定DDRA0 0 M 地址 读取忙标志和0 1 地址 写数据1 0 到RAM 0 1 ACACACACACAC设定CGRAM 地址 5 4 3 2 1 0 设定DDRAM 地址(显示位ACACACACACAC址) 1 0 5 4 3 2 1 0 第一行:80H-87H 第二行:90H-97H 读取忙标志(BF)可以确认内部BACACACACACACAC动作是否完成,同时可以读出F 6 5 4 3 2 1 0 地址计数器(AC)的值 数据 将数据D7——D0写入到内部的RAM (DDRAM/CGRAM/IRAM/GRAM) 读出1 1 数据 从内部RAM读取数据RAMD7——D0 的值 (DDRAM/CGRAM/IRAM/GRAM) 表3.3.4 扩展指令说明表 指 指令码 功能 令 RS R/W D7 D6 D5 D4 D3 D2 D1 D0 待命 进入待命模式,执行其模式 0 0 0 0 0 0 0 0 0 1 他指令都棵终止 待命模式 卷动SR=1:允许输入垂直卷动地址地址 0 0 0 0 0 0 0 0 1 SR 开关SR=0:允许输入IRAM和开启 CGRAM地址 选择2行中的任一行作反白显示,并可决定反反白 白与否。初始值R1R00 0 0 0 0 0 0 1 R1 R0 选择 =00,第一次设定为反白显示,再次设定变回正常 睡眠 SL=0:进入睡眠模式 0 0 0 0 0 0 1 SL X X 模式 SL=1:脱离睡眠模式 CL=0/1:4/8位数据 扩充 RE=1: 扩充指令操作 功能 0 0 0 0 1 CL X RE G 0 RE=0: 基本指令操作 设定 G=1/0:绘图开关 设定设定绘图RAM 绘图先设定垂直(列)地址RAM AC6AC5…AC0 0 0 0 AC3 AC2 AC1 AC0 地址 0 0 1 再设定水平(行)地址AC6 AC5 AC4 AC3 AC2 AC1 AC0 AC3AC2AC1AC0 将以上16位地址连续写入即可 11

武汉理工大学《能力拓展训练》说明书

(6)读写时序图

图3.2.2 写数据时序图

图3.2.3 读数据时序图

3.3 设计方案

本次课程设计基于AT89C52为核心控制器,FYD12864液晶为显示器设计的

液晶显示电路。该电路可通过调用FYD12864液晶内部自带的字库(包含8192个标准中文汉字)显示16×16点的中文汉字、16×8的数字及英文字符,该过程只需要像DDRAM中写入要显示的字符的ASCII码,当事先指定显示数据的位置,即可将所需显示的字符显示在液晶的指定位置。使用KNY12864液晶的绘图功能,将所需显示图片或字符的字模数据写入到CGRAM中,开图片显示,即可将该图片或字符同时显示在液晶上。

扩展中实现图像的上、下、左、右移动,实现该功能主要基于数据指针读取

的字模数据的位置发生改变来实现的。字模数据是固化在52ROM里面的,通过数据指针将这些字模数据读到CGRAM中,然后开显示,即可将图像或字符显示在12864液晶上。根据FYD12864液晶读取数据的顺序特性,在读取字模数据

12

武汉理工大学《能力拓展训练》说明书

时,按照一定的规律跳过固定的数据个数,后面补上另一幅图像固定的数据个数,事实上就是将两幅图像拼凑到液晶上,最后通过刷新显示的图像,给人的感觉就是图像在液晶上移动。可能移动效果会比较差,但大体实现移动的功能。

要控制图像移动的方向,需要外部键盘输入,MPU判断键值来改变移动方

向。由于图像的移动需要MPU不断的像CGRAM中写入图像数据,然后刷新液晶显示来实现,这样子MPU必须忙于数据的写入,无法去检测键盘的输入。即使可以,检测的实时性会很低。但是52中有一项功能可不受当前指令执行影响,那就是中断,只要有中断产生,即可暂停当前指令的执行,进入中断服务程序进行处理。设计中,我采用红外遥控的方法,将红外接收器SM0038接收到的信号输入到外部中断0的输入口,通过在中断服务程序中对红外进行解码,改变标志位flag的值来实现移动方向的改变,当然前提是开外部中断0。

4、程序设计

4.1 程序流程图

主程序和中断服务程序流程图如下所示:

13

武汉理工大学《能力拓展训练》说明书

开始进入中断系统初始化关外部中断0显示初始界面及图像判断是否是干扰否判断flag的值红外解码Flag=1图像上移Flag=2图像下移Flag=3图像左移Flag=4图像右移是根据解码设定flag的值是判断flag值是否发生变化否是判断是否完成移动否根据原flag的值进行移动开外部中断0中断返回

图 4.1.1主程序流程图图 4.1.2 外部中断处理流程图

4.2 程序代码

4.2.1 主函数文件main.c

#include

#include \ #include

#define uchar unsigned char #define uint unsigned int

///////////////////////////////////////////////////

//红外接收接P3.2 红外遥控每个按键的定义可以看Code_Chang(); ///////////////////////////////////////////////////

////有关的位声明///////////////////////////////////

14

武汉理工大学《能力拓展训练》说明书

sbit IRIN=P3^2;

uchar Reive[4]={0},yaokong,Last,Last1; void Init_R() { Reive[0]=0; Reive[1]=0; Reive[2]=0; Reive[3]=0; }

void delay0(uchar x) //x*0.14MS {

uchar i; while(x--) {

for (i = 0; i<13; i++) {} } }

unsigned char Code_Chang(unsigned char yaokong) { switch (yaokong) { case 0x10:flag=1;break; case 0x03:flag=2;break; case 0x01:flag=3;break; case 0x06:flag=4;break; case 0x09:flag=0;break; case 0x1d:flag=6;break; default:flag=0;break; } return flag; }

void IR_IN() interrupt 0 using 0 { unsigned char j,i,N=0; unsigned char k=0; Init_R(); EX0 = 0; delay0(15); if (IRIN==1) { EX0 =1; return; }

//确认IR信号出现

15


基于12864液晶显示图片(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:评选推荐先进典型活动方案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: