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 顯像管場掃描
制作出來的實物圖如下:
匯編寫的.JPG (52.88 KB, 下載次數: 39)
下載附件
2019-6-12 18:15 上傳
C寫的.JPG (42.65 KB, 下載次數: 47)
下載附件
2019-6-12 18:15 上傳
單片機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
復制代碼
0.png (4.25 KB, 下載次數: 58)
下載附件
2019-6-12 18:16 上傳
所有資料51hei提供下載:
51單片機實現的12864圖形點陣LCD控制器.rar
(271.08 KB, 下載次數: 33)
2019-6-12 10:58 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|