DATA VISION 的12864图形点阵LCD屏
简介: STN,有LED背光,无控制芯片,驱动芯片为M5299/M5298,4位数据接口,无内部负压
/****************************************************************************************/
重要接口解析
CLP CP 数据的移位时钟
LIP LD 数据锁存信号,每移位一行数据锁存一次,高电平时间不能小于1.46uS
FRMB DF 交替信号(LCD驱动所需的交替信号)
FRP FLM 帧信号
/****************************************************************************************/
LCD接口
1. LED+
2. LED-
3. VCC
4. GND
5. -VP 我接-15V直流电压,-20V到-5V都可以
6. LD I 5298的36脚(CP),5299的49脚(LOAD)
7. DF I 5298的35脚(DF)
8. FLM I 5298的37脚(IO1)
9. CP I 5299的47脚(CP)
10. GND
11. D0 5299的43-46脚(D3-D0)
12. D1
13. D2
14. D3
/****************************************************************************************/
编程思路:
M5299是列驱动,本液晶使用了两片M5299
M5298是行驱动,本液晶使用了一片M5298
数据线D0--D3是接到M5299上面的(看上面的LCD接口列表),所以就决定了点阵数据在液晶屏上面是横向填充的,这个很重要,你用软件对汉字和图片取模的时候要设置的,也就是设置为横向取模。
编程的时候主要的接口是:CP,LD,FLM,D0--D3
具体是这样的:
先给数据D0--D3,接着给移位时钟CP(下降沿),再给
数据D0--D3,再给时钟,……一直到给了32个时钟的时候(此时数据移满一行,32x4=128),给一个锁存信号LD将数据送出.这个M5299的锁存信号同时接到了M5298的CP端,而M5298是行驱动,其结果就是移到了下一行,又开始新一轮的送数据…….当送完整个一屏的时候,也就是一帧,给一个帧信号FLM.
要注意的地方:
(1)要先给高4位数据,再给低4位数据
(2)移位时钟是下降沿使能
(3)移完128点一行后再移8个时钟再锁存
(4)我用C写程序显示画面有点闪烁,用汇编就没有这个问题
画面很清晰
/****************************************************************************************/
整个扫屏过程就像是电视机的显像管扫描,如果你看过电视机的
原理,那就很容易理解了.
数据移位时钟CP VS 显像管行扫描
数据锁存信号LD VS 显像管场扫描
制作出来的实物图如下:
单片机c语言源程序如下:
- //************************************************
- // DATA VISION 的12864图形点阵LCD屏
- //简介: STN,有LED背光,无控制芯片,驱动芯片为M5299/M5298,4位数据接口,无内部负压
- //************************************************
- //程序功能:显示图片,AT89s51,用20MHz有源晶振
- //单位:桂林电子科技大学/电子工程学院/8201班
- //作者:覃秋霖
- //2008.5
- //************************************************
- #include "reg51.h"
- #define DATA_POR P0
- #define uchar unsigned char
- #define uint unsigned int
- sbit LOAD = P0^0;
- sbit DF = P0^1;
- sbit FLM = P0^2;
- sbit CLK = P0^3;
- uchar code logo[]={
- /*-- 宽度x高度=128x64 --*/
- 0x00,0x00,0x00,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
- -------------------------见附件
- };
- //*******************************************
- //函数名称:void disyPicture(uchar *Ptr)
- //函数功能:扫描显示
- //形式参数:uchar *Ptr
- //行参说明:数组地址
- //返回参数:无
- //使用说明:无
- //*******************************************
- void disyPicture(uchar *Ptr)
- {
- uchar i,j;
- uchar dataTemp1,dataTemp2;
- bit DF_b;
- DF_b = 0;
- for(j=1;j<=64;j++) {
- for(i=1;i<=16;i++) {
- dataTemp1 = *(Ptr++);
- DATA_POR = 0;
- CLK = 1;
- dataTemp2 = DATA_POR & 0x0f;
- DATA_POR = (dataTemp1 & 0xf0) | dataTemp2;
- CLK = 0;
- CLK = 1;
- dataTemp2 = DATA_POR & 0x0f;
- DATA_POR = (dataTemp1 << 4) | dataTemp2;
- CLK = 0;
- }
- DATA_POR = DATA_POR & 0x0f;
- i = 8;
- while(i--) {
- CLK = 1;
- CLK = 0;
- }
- LOAD = 1;
- LOAD = 1;
- LOAD = 1;
- LOAD = 1;
- LOAD = 0;
-
- }
- LOAD = 1;
- FLM = 1;
- DF = ~DF_b;
- LOAD = 0;
- CLK = 1;
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
单片机汇编语言源程序:
- //************************************************
- // DATA VISION 的12864图形点阵LCD屏
- //简介: STN,有LED背光,无控制芯片,驱动芯片为M5299/M5298,4位数据接口,无内部负压
- //************************************************
- //程序功能:显示图片,AT89s51,用20MHz有源晶振
- //单位:桂林电子科技大学/电子工程学院/8201班
- //作者:覃秋霖
- //2008.5
- //************************************************
- LOAD BIT P0.0 ;每行数据锁存,每40个CLK执行一个LOAD
- DF BIT P0.1 ;交流驱动信号
- FLM BIT P0.2 ;帧信号,每64个LOAD执行一个FLM
- CLK BIT P0.3 ;数据移位时钟
- DATA_PORT EQU P0
- ORG 0000H
- LJMP MAIN
- ORG 30H
- MAIN: MOV DATA_PORT ,#0
- LOOP3: MOV DPTR, #0400H-1
- MOV R0, #64 ;液晶64行
- LOOP4: MOV R1, #16 ;16x8=128,8是下面送出的数据位数
- LOOP1: INC DPTR
- CLR A
- SETB CLK
- MOVC A, @A+DPTR ;读数据
- ANL A, #0F0H ;保留高4位
- ANL DATA_PORT , #0FH ;保留低4位
- ORL DATA_PORT , A ;高低位相并输出(输出高4bit数据)
- CLR CLK ;数据移位
- CLR A
- MOVC A, @A+DPTR
- SWAP A ;交换A中的高低4bit
- SETB CLK ;
- ANL A, #0F0H ;-----同上-------
- ANL DATA_PORT , #0FH ;
- ORL DATA_PORT , A ;高低位相并输出(输出低4bit数据)
- CLR CLK
- DJNZ R1, LOOP1
- ANL P1, #0FH
- SETB CLK ;;;;;;;;;;;;;;;;;8个移位时钟(无数据)
- CLR CLK ;
- SETB CLK ;
- CLR CLK ;
- SETB CLK ;
- CLR CLK ;
- SETB CLK ;
- CLR CLK ;
- SETB CLK ;
- CLR CLK ;
- SETB CLK ;
- CLR CLK ;
- SETB CLK ;
- CLR CLK ;
- SETB CLK ;
- CLR CLK ;;;;;;;;;;;;;;;;;
-
- DJNZ R0, LOOP2
- SETB LOAD
- SETB FLM
- CPL DF ;按位取反
- CLR LOAD
- SETB CLK
- CLR FLM
- LJMP LOOP3
- LOOP2: SETB LOAD
- NOP
- NOP
- CLR LOAD
- LJMP LOOP4
-
- ORG 0400H
- //字库
- DB 000H, 000H, 000H, 03FH, 0F8H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 0FFH, 0FCH, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 001H, 0FFH, 0FFH, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 003H, 0FFH, 0FFH, 080H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 007H, 0FFH, 0FFH, 0C0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 00FH, 0FFH, 0FFH, 0C0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 01FH, 0FFH, 0FFH, 0E0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 01FH, 0FFH, 0FFH, 0E0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 03FH, 0FFH, 0FFH, 0F0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 03FH, 0FFH, 0FFH, 0F0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 03FH, 0FFH, 0FFH, 0F0H, 000H, 000H, 000H, 000H, 007H, 0FFH, 0FFH, 0FFH, 080H, 000H
- DB 000H, 000H, 03FH, 0FFH, 0FFH, 0F0H, 000H, 000H, 000H, 000H, 0FFH, 0FFH, 0FFH, 0FFH, 0FEH, 000H
- DB 000H, 000H, 03FH, 0FFH, 0FFH, 0F0H, 000H, 000H, 000H, 007H, 0F8H, 000H, 000H, 000H, 01FH, 080H
- DB 000H, 000H, 03FH, 0FFH, 0FFH, 0F0H, 000H, 000H, 000H, 00FH, 080H, 000H, 000H, 000H, 001H, 0E0H
- DB 000H, 000H, 01FH, 0FFH, 0FFH, 0F0H, 000H, 000H, 000H, 01CH, 000H, 000H, 000H, 000H, 000H, 070H
- DB 000H, 000H, 01FH, 0FFH, 0FFH, 0E0H, 000H, 000H, 000H, 018H, 000H, 000H, 000H, 000H, 000H, 018H
- DB 000H, 000H, 00FH, 0FFH, 0FFH, 0C0H, 000H, 000H, 000H, 038H, 080H, 090H, 000H, 000H, 010H, 09CH
- DB 000H, 000H, 00FH, 0FFH, 0FFH, 0FFH, 080H, 000H, 000H, 030H, 081H, 0B0H, 000H, 000H, 030H, 08CH
- DB 000H, 000H, 00FH, 0FFH, 0FFH, 0FFH, 0E0H, 000H, 000H, 070H, 080H, 090H, 008H, 020H, 010H, 086H
- DB 000H, 000H, 003H, 0FFH, 0FFH, 0FFH, 0FCH, 000H, 000H, 060H, 0EEH, 097H, 008H, 020H, 090H, 086H
- DB 000H, 000H, 001H, 0FFH, 0FFH, 0FFH, 0FFH, 000H, 000H, 060H, 0AAH, 095H, 008H, 02EH, 0D7H, 086H
- DB 000H, 000H, 000H, 0FFH, 0FFH, 0FFH, 0E7H, 080H, 000H, 060H, 0AEH, 095H, 009H, 02AH, 094H, 086H
- DB 000H, 000H, 000H, 03FH, 0FFH, 007H, 0E1H, 0C0H, 000H, 020H, 0A8H, 095H, 005H, 04AH, 094H, 086H
- DB 000H, 000H, 000H, 00FH, 0FEH, 000H, 0E0H, 0E0H, 000H, 030H, 0AEH, 097H, 002H, 08EH, 097H, 086H
- DB 000H, 000H, 000H, 01FH, 0FCH, 000H, 070H, 070H, 000H, 038H, 000H, 000H, 000H, 000H, 000H, 006H
- DB 000H, 03FH, 080H, 03FH, 0F8H, 000H, 010H, 038H, 000H, 018H, 000H, 000H, 000H, 000H, 000H, 00CH
- DB 000H, 0FFH, 0E0H, 07FH, 0F8H, 000H, 000H, 03CH, 000H, 00CH, 000H, 000H, 000H, 000H, 000H, 01CH
- DB 003H, 0FFH, 0F8H, 07FH, 0F0H, 000H, 001H, 09CH, 00FH, 086H, 000H, 000H, 000H, 000H, 000H, 070H
- DB 007H, 0FFH, 0FCH, 0FFH, 0F0H, 000H, 0E3H, 0CEH, 01FH, 0C7H, 000H, 000H, 000H, 000H, 01FH, 0C0H
- DB 00FH, 0FFH, 0FFH, 0FFH, 0F0H, 001H, 0F3H, 0EEH, 03FH, 0E3H, 000H, 000H, 001H, 0FFH, 0FFH, 080H
- DB 01FH, 0FFH, 0FFH, 0FFH, 0F0H, 001H, 0FBH, 0F6H, 07FH, 0F1H, 080H, 000H, 07FH, 0FFH, 0E0H, 000H
- DB 01FH, 0FFH, 0FFH, 0FFH, 0F0H, 001H, 0FDH, 0F7H, 07FH, 0F1H, 080H, 000H, 0FEH, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0F8H, 000H, 0FFH, 0FFH, 07FH, 0F1H, 080H, 003H, 0C0H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0F8H, 000H, 0FEH, 01BH, 07FH, 0F1H, 080H, 007H, 080H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0F8H, 000H, 00EH, 07BH, 0FFH, 0F1H, 080H, 00EH, 000H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0FCH, 000H, 01FH, 07FH, 0FFH, 0F1H, 080H, 01CH, 000H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0FCH, 000H, 03FH, 07FH, 0FFH, 0E1H, 080H, 018H, 000H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0FEH, 000H, 03FH, 07CH, 0FFH, 0C1H, 080H, 070H, 000H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0FFH, 000H, 01FH, 038H, 07FH, 081H, 000H, 0E0H, 000H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0FFH, 080H, 00FH, 070H, 03FH, 083H, 001H, 0C0H, 000H, 000H, 000H, 000H
- DB 03FH, 0FFH, 0FFH, 0FFH, 0FFH, 0C0H, 006H, 040H, 01DH, 086H, 007H, 000H, 000H, 000H, 000H, 000H
- DB 01FH, 0FFH, 0FFH, 0FFH, 0FFH, 0E0H, 000H, 000H, 001H, 084H, 01CH, 000H, 000H, 000H, 000H, 000H
- DB 01FH, 0FFH, 0FFH, 0FEH, 000H, 020H, 000H, 000H, 003H, 08CH, 070H, 000H, 000H, 000H, 000H, 000H
- DB 01FH, 0FFH, 0FFH, 0F8H, 000H, 000H, 000H, 000H, 003H, 09BH, 0C0H, 000H, 000H, 000H, 000H, 000H
- DB 00FH, 0FFH, 0FFH, 0F0H, 03CH, 000H, 000H, 000H, 007H, 01EH, 000H, 000H, 000H, 000H, 000H, 000H
- DB 007H, 0FFH, 0FDH, 0E0H, 07CH, 000H, 000H, 000H, 007H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 003H, 0FFH, 0F8H, 0E0H, 0E0H, 000H, 000H, 000H, 00EH, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 0FFH, 0E0H, 0E0H, 0F0H, 000H, 000H, 000H, 01CH, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 03FH, 080H, 061H, 0BCH, 000H, 000H, 000H, 038H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 061H, 09EH, 000H, 000H, 000H, 070H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 030H, 01FH, 080H, 000H, 001H, 0E0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 030H, 00FH, 0F0H, 000H, 007H, 0C0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 018H, 00FH, 0FFH, 0E7H, 0FFH, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 00CH, 01FH, 0FFH, 0FFH, 0FCH, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 006H, 00FH, 0FFH, 0FFH, 0E0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 003H, 0C7H, 0FFH, 0FEH, 0E0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 0F3H, 08FH, 0FDH, 0C0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 073H, 0C7H, 01FH, 080H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 01FH, 0E3H, 07FH, 080H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 00FH, 0FBH, 0FEH, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 003H, 0FFH, 0FCH, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 001H, 0FFH, 0F8H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 000H, 07FH, 0E0H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- DB 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H, 000H
- END
复制代码
所有资料51hei提供下载:
51单片机实现的12864图形点阵LCD控制器.rar
(271.08 KB, 下载次数: 33)
|