




免费预览已结束,剩余15页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SED1520的使用(C语言)内置SEDl520图形液晶显示模块的接口技术由于SEDl520F0A没有片选信号引出,为了方便计算机对其控制,所以模块的接口时序都采用了M6800时序,这样每一片都引出一个独立使能信号E。只要E信号由计算机的选通逻辑控制即可控制该类模块的工作。计算机控制内置SEDl520图形液晶显示模块有两种连接方式。一种为直接访问方式,一种为间接控制方式。本节将以AT89C51单片机为样机描述这两种方式的实用电路及驱动程序。1 直接访问方式直接访问方式是计算机把字符型液晶显示模块作为存储器或I/O设备直接挂在计算机的总线上。在这种方式下,控制信号由AT89C51的读操作信号RD和写操作信号WR与地址信号合成产生。本文推荐的直接访问方式的实用接口电路如图1所示。图1 直接访问方式的接口电路上图所示的电路,对于完成液晶显示模块的显示来说,所用的硬件是相对比较少的,但是如果计算机需要进行扩展的话,使用上图的话不是很经济(浪费了太多的地址空间)。这个时候,可以考虑使用全地址译码或者部分地址译码的方式。在上图所示的电路中:8位数据总线与AT89C51的数据总线连接E1信号由WR和RD信号逻辑与非后产生,然后由地址A15选通控制E2信号由WR和RD信号逻辑与非后产生,然后由地址A14选通控制R/W由地址A13提供RS信号由地址A12提供这样就确定了AT89C51操作字符型液晶显示模块的唯一地址选择。图中的电位器为V0提供了可调的驱动电压,用以实现显示对比度的调节。以下将给出直接访问方式的驱动程序。(1)地址定义#include #include #include #define uchar unsigned char#define uint unsigned int#define nop() _nop_()xdata uchar WC_ADD1 _at_ 0x8000;xdata uchar RC_ADD1 _at_ 0xA000;xdata uchar WD_ADD1 _at_ 0x9000;xdata uchar RD_ADD1 _at_ 0xB000;xdata uchar WC_ADD2 _at_ 0x4000;xdata uchar RC_ADD2 _at_ 0x6000;xdata uchar WD_ADD2 _at_ 0x5000;xdata uchar RD_ADD2 _at_ 0x7000;(2)写指令代码/*判忙*/uchar RdBF(uchar Enable) uchar status; switch(Enable) /*进行E1、E2的判断、选择*/ case 1: status=RC_ADD1&0x80; /*屏蔽低7位*/ return status; break;case 2: status=RC_ADD2&0x80; /*屏蔽低7位*/ return status; break; default:break; /*写命令*/void WRCMD(uchar CMD,Enable) uchar temp; switch(Enable) /*进行E1、E2的判断、选择*/ case 1:do temp=RdBF(1); while(temp=0x80); WC_ADD1=CMD; break; case 2: do temp=RdBF(2); while(temp=0x80); WC_ADD2=CMD; break; default:break; (3)写显示数据void WRDAT(uchar CMD,Enable) uchar temp; switch(Enable) /*进行E1、E2的判断、选择*/ case 1:do temp=RdBF(1); while(temp=0x80); WC_ADD1=DAT; break;case 2:do temp=RdBF(2); while(temp=0x80); WC_ADD2=DAT; break;default:break; (4)读显示数据uchar RdDAT(uchar Enable) uchar DAT,temp; switch(Enable) /*进行E1、E2的判断、选择*/ case 1:do temp=RdBF(1); while(temp=0x80); DAT=RD_ADD1; return DAT; break;case 2:do temp=RdBF(2); while(temp=0x80); DAT=RD_ADD2; return DAT; break; default:break; 2 间接控制方式间接控制方式是计算机把字符型液晶显示模块作为终端与计算机的并行接口连接,计算机通过对该并行接口的操作间接的实现对字符型液晶显示模块的控制。本文以AT89C51的P1和P2接口为并行接口与字符型液晶显示模块连接,图2给出了本文推荐的实用接口电路。图2 间接控制方式的接口电路图中的电位器为V0提供了可调的驱动电压,用以实现显示对比度的调节。在编制驱动函数的时候,要注意时序的配合,根据M6800时序的规范:在写操作时,使能信号E1、E2的下降沿有效,在软件设置顺序上,先设置RS、R/W状态,再设置数据,然后产生E1、E2信号的脉冲,最后复位RS和R/W状态在读操作时,使能信号E1、E2的高电平有效,所以在软件设置顺序上,先设置RS,R/W状态,再设置E1、E2信号为高,这时从数据口读取数据,然后将E1、E2信号置低,最后复位RS和R/W状态。间接控制方式通过软件执行产生操作时序,所以在时间上是足够满足要求的。因此间接控制方式能够实现高速计算机与字符型液晶显示模块的连接。(1)接口定义#include #include #include #define uchar unsigned char#define uint unsigned int#define nop() _nop_()sbit E2=P23;sbit E1=P22;sbit RW=P21;sbit RS=P20;(2)写指令代码/*判忙*/uchar RdBF(uchar Enable) uchar status; P1=0xFF; RS=0; RW=1; switch(Enable) /*进行E1、E2的判断、选择*/ case 1: E1=1; status=P1; E1=0; status=status&0x80; /*屏蔽低7位*/ return status; break; case 2: E2=1; status=P1; E2=0; status=status&0x80; /*屏蔽低7位*/ return status; break;default:break; /*写命令*/void WRCMD(uchar CMD,Enable) uchar temp; switch(Enable) /*进行E1、E2的判断、选择*/ case 1:do temp=RdBF(1); while(temp=0x80); RW=0; P1=CMD; E1=1; nop(); E1=0; break;case 2:do temp=RdBF(2); while(temp=0x80); RW=0; P1=CMD; E2=1; nop(); E2=0; break; default:break; (3)写显示数据void WRDAT(uchar DAT,Enable) uchar temp; switch(Enable) /*进行E1、E2的判断、选择*/ case 1:do temp=RdBF(1); while(temp=0x80); RS=1; RW=0; P1=DAT; E1=1; nop(); E1=0; break;case 2:do temp=RdBF(2); while(temp=0x80); RS=1; RW=0; P1=DAT; E2=1; nop(); E2=0; break;default:break; (4)读显示数据uchar RdDAT(uchar Enable) uchar DAT,temp; switch(Enable) /*进行E1、E2的判断、选择*/ case 1:do temp=RdBF(1); while(temp=0x80); RS=1; RW=1; P1=0xFF; E1=1; DAT=P1; E1=0; return DAT; break;case 2:do temp=RdBF(2); while(temp=0x80); RS=1; RW=1; P1=0xFF; E2=1; DAT=P1; E2=0; return DAT; break; default:break; 内置SEDl520图形液晶显示模块的应用软件内置SEDl520图形液晶显示模块的应用是随应用系统的性质而定,本节将提供一些实用程序并作为示例进一步对SEDl520指令的应用作一说明。接口电路为图6-58和图6-59所示的实用电路,驱动程序也为上一节所提供的。使用的液晶显示模块的样机的电原理图为图6-56所示的12232图形点阵的原理图,提供的程序经过修改也可以应用于其他模块。1 初始化对模块的初始化实际上是对SEDl520的初始化。uchar code CMDByte=0xE2,0xA4,0xA9,0xA0,0xC0,0xAF;void Init(void) uchar temp1,temp2; for(temp1=0;temp16;temp1+) for(temp2=1;temp23;temp2+) WRCMD(*(CMDByte+temp1),temp2); 2 清显示RAM区(清屏)void ClearLCD(void) uchar Pagetemp,Segtemp,temp; for(Pagetemp=0;Pagetemp4;Pagetemp+) for(temp=1;temp3;temp+) WRCMD(0xB8+Pagetemp,temp); WRCMD(0,temp); for(Segtemp=0;Segtemp80;Segtemp+) WRDAT(0x00,temp); 3 西文字符写入由于水平为122点列,由两片SEDl520平分各管理61路驱动,所以在程序中要有中间接合部字符的处理。程序把显示屏分为4个字符行,以页地址设定;列地址为任意设定。由于SEDl520没有字符库,所以在附录A中提供了标准的88点阵的字符字模。其中字模的第一个字节和第七、八个字节作为字符间距设置的。程序的输入寄存器为列地址寄存器,页地址寄存器和代码寄存器。void XWWR(uchar *zimo,code,hang,lie) uchar temp,lietemp1,lietemp2; hang=hang|0xB8; lietemp1=lie; WRCMD(hang,1); WRCMD(hang,2); for(temp=0;temp121) break; else if(lietemp160) lietemp2=lietemp1-61; WRCMD(lietemp2,2); WRDAT(*(zimo+code*8+temp),2); lietemp1+; else WRCMD(lietemp1,1); WRDAT(*(zimo+code*8+temp),1); lietemp1+; 4 1616点阵中文写入子程序汉字的显示是国内应用图形液晶显示模块的目的之一。由于SEDl520显示存储器的特性,在取字模的时候需要进行纵向取模,即生成字库的格式为前16个字节为上半部168点阵字模数据,后16个字节为下半部168点阵字模数据。void CCWR(uchar *zimo,code,hang,lie) uchar temp1,temp2,hangtemp,lietemp1,lietemp2; hangtemp=hang; lietemp1=lie; for(temp1=0;temp13) break; else hangtemp=hangtemp|0xB8; WRCMD(hangtemp,1); WRCMD(hangtemp,2); for(temp2=0;temp2121) break; else if(lietemp160) lietemp2=lietemp1-61; WRCMD(lietemp2,2); WRDAT(*(zimo+code*16+temp2),2); else WRCMD(lietemp1,1); WRDAT(*(zimo+code*16+temp2),1); lietemp1+; uchar code CCZTAB= /*- 文字: 淮 - 代码“0x00”*/ 0x08,0x86,0x60,0x07,0x1A,0x04,0x1F,0xF2, 0x12,0x92,0x7F,0x12,0x12,0x12,0x10,0x00, 0x20,0x20,0xFE,0x00,0x00,0x00,0xFE,0x44, 0x44,0x44,0xFC,0x44,0x44,0x44,0x04,0x00, /*- 文字: 安 - 代码“0x01”*/ 0x01,0x09,0x31,0x21,0x21,0x2F,0xA5,0x61, 0x21,0x21,0x21,0x21,0x29,0x31,0x21,0x00, 0x01,0x01,0x01,0x02,0xE2,0x14,0x14,0x08, 0x14,0x24,0xC2,0x03,0x02,0x00,0x00,0x00, /*- 文字: 信 - 代码“0x02”*/ 0x01,0x02,0x0C,0x3F,0xE0,0x50,0x15,0x15, 0x95,0x75,0x55,0x15,0x15,0x10,0x10,0x00, 0x00,0x00,0x00,0xFE,0x00,0x00,0x7E,0x44, 0x44,0x44,0x44,0x44,0x7E,0x00,0x00,0x00, /*- 文字: 息 - 代码“0x03”*/ 0x00,0x00,0x00,0x3F,0x2A,0x2A,0x6A,0xAA, 0x2A,0x2A,0x2A,0x3F,0x00,0x00,0x00,0x00, 0x00,0x04,0x1C,0x80,0xBC,0x82,0x82,0xA2, 0x9A,0x82,0x82,0x8E,0x00,0x10,0x0C,0x00, /*- 文字: 职 - 代码“0x04”*/ 0x40,0x40,0x7F,0x49,0x49,0x7F,0x40,0x00, 0x7F,0x41,0x41,0x41,0x41,0x7F,0x00,0x00, 0x08,0x08,0xF0,0x10,0x10,0xFF,0x20,0x22, 0x84,0x38,0x10,0x00,0x20,0x90,0x0C,0x00, /*- 文字: 业 - 代码“0x05”*/ 0x00,0x08,0x06,0x01,0x00,0xFF,0x00,0x00, 0x00,0xFF,0x00,0x01,0x06,0x1C,0x08,0x00, 0x04,0x04,0x04,0xC4,0x84,0xFC,0x04,0x04, 0x04,0xFC,0x44,0x84,0x04,0x0C,0x04,0x00, /*- 文字: 技 - 代码“0x06”*/ 0x10,0x10,0x11,0xFF,0x12,0x14,0x00,0x13, 0x12,0x12,0xFE,0x12,0x13,0x12,0x10,0x00, 0x80,0x82,0x01,0xFE,0x00,0x02,0x02,0x04, 0xC8,0x30,0x30,0x48,0x84,0x06,0x04,0x00, /*- 文字: 术 - 代码“0x07”*/ 0x08,0x08,0x08,0x08,0x08,0x09,0x0A,0xFF, 0x0A,0x09,0x48,0x28,0x08,0x08,0x08,0x00, 0x08,0x08,0x10,0x20,0x40,0x80,0x00,0xFE, 0x00,0x00,0x80,0x60,0x30,0x18,0x10,0x00, /*- 文字: 学 - 代码“0x08”*/ 0x02,0x0C,0x08,0x48,0x3A,0x2A,0x0A,0x8A, 0x7A,0x2B,0x0A,0x18,0xEA,0x4C,0x08,0x00, 0x00,0x40,0x40,0x40,0x40,0x40,0x42,0x41, 0xFE,0x40,0x40,0x40,0x40,0x40,0x40,0x00, /*- 文字: 院 - 代码“0x09”*/ 0x7F,0x40,0x4C,0x52,0x61,0x30,0x24,0x24, 0xA4,0x64,0x24,0x24,0x24,0x30,0x20,0x00, 0xFF,0x00,0x40,0x20,0xC1,0x82,0x8C,0xF0, 0x80,0x80,0xFE,0x81,0x81,0x81,0x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- A县乡村旅游道路及配套设施建设施工协议
- 2025年度二手车交易抵押担保合作协议
- 2025年度体育综合体租赁及管理服务合同
- 2025年环保公益项目专用礼品研发与采购合同
- 2025年度高端医疗器械金属部件定制加工协议
- 2025年度智能交通信号控制系统研发及授权使用合同
- 2025年新型安全防护设备采购与安装指导合同
- 2025年城市综合体电梯全效维保与能耗管理服务合同范本
- 地球上生命的起源
- 2025年高端餐饮集团绿色环保外卖盒采购合同模板
- 川16Z117-TY 彩色透水混凝土整体路面构造图集
- 抗结核药物所致肝损伤
- 抗菌药物临床应用指导原则(2023年版)
- 城市道路工程设计规范-局部修订稿(完整资料)
- 神的《全备之救》
- GA 38-2021银行安全防范要求
- 第一章数字印刷概述课件
- 【医院管理】-科研创新助推学科建设课件
- 《卷烟原料配方设计》配套教学课件
- 介入诊疗质量安全计划与指标
- 新课标高考英语词汇表3500
评论
0/150
提交评论