搜索
bottom↓
回复: 11

请各位高手帮我驱动一下这块液晶!!

[复制链接]

出0入0汤圆

发表于 2012-6-4 14:41:36 | 显示全部楼层 |阅读模式
请各位高手帮我驱动一下这块液晶!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2012-6-4 14:43:45 | 显示全部楼层
原来老的帖子有程序但是不能下载

出0入0汤圆

发表于 2012-6-4 14:47:05 | 显示全部楼层
在網上隨便找個K0S107+KS0108的驅動改下端口定議就能用了!

出0入0汤圆

发表于 2012-6-4 21:15:02 | 显示全部楼层
12864的应该不是很难

出0入0汤圆

 楼主| 发表于 2012-6-5 22:00:10 | 显示全部楼层
zhengyang 发表于 2012-6-4 14:47
在網上隨便找個K0S107+KS0108的驅動改下端口定議就能用了!

网上的都很乱,你能给我发个五一的例程过来吗?

出0入0汤圆

发表于 2012-6-6 08:20:13 | 显示全部楼层
以下是匯編源碼:
、、、、、、、、、、、、、、、、、、、、、、、、、
MTG-12864
COM EQU  20H
DAT EQU  21H
RS  EQU  P3.5
RW  EQU  P3.7
E   EQU  P3.6
CS1 EQU  P3.2
CS2 EQU  P3.3
RST EQU  P3.4
     ORG  0000H
     LJMP  MAIN
     ORG  0030H
MAIN:
     CLR  RST
     MOV  R6,#50H
     MOV  R7,#01H
DELAY1:
     NOP
     DJNZ R7,DELAY1
     DJNZ R6,DELAY1
TEST:
     SETB RST
     CALL INT
     MOV  R4,#00H
TEST1:
     MOV  A,R4
     ORL  A,#0B8H;SET PAGE 0
     MOV  COM,A
     CALL PRL0
     MOV  COM,#00H;SET ADDRESS 0
     CALL PRL0
     MOV  R3,#40H
TEST2:
     MOV  DAT,#0BH
     LCALL PRL1
     DJNZ  R3,TEST2
     INC   R4
     CJNE  R4,#04H,TEST1
     SJMP  $

INT:
     MOV  COM ,#3FH;DISPLAY ON
     CALL PRL0
     MOV  COM ,#40H;SET ADDRESS
     CALL PRL0
     MOV  COM ,#0B8H;SET PAGE
     CALL PRL0
     MOV  COM ,#0C0H;DISPLAY START LINE
     CALL PRL0
     RET
PRL0:;
     SETB CS1
     SETB CS2
     CLR  RS
     SETB RW
PRL01:
     MOV  P0,#0FFH
     SETB E
     MOV  A,P0
     CLR  E
     JB   ACC.7,PRL01
     MOV  P0,COM
     CLR  RW
     SETB E
     CLR  E
     RET
PRL1:
     SETB CS1
     SETB CS2
     CLR  RS
     SETB RW
PRL11:
     MOV  P0,#0FFH
     SETB E
     MOV  A,P0
     CLR  E
     JB   ACC.7,PRL11
     SETB RS
     CLR  RW
     MOV  P0,DAT
     SETB E
     CLR  E
     RET
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;PR_S:
;    PUSH A
;    MOV  R2,#33
;PR_LP:
;    CLR  A
;    MOVC A,@A+DPTR
;    MOV  DAT,A
;    DJNZ R2,END_PR
;    POP  A
;    RET
;END_PR:
;    CALL PR1
;    CALL PR4
;    INC  DPTR
;    JMP  PR_LP
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
SPBUF:
     DB 000H,000H,000H,000H,000H,000H,000H,000H    ; һ
     DB 000H,000H,000H,000H,000H,004H,0FFH,0FEH
     DB 000H,000H,000H,000H,000H,000H,000H,000H
     DB 000H,000H,000H,000H,000H,000H,000H,000H
     END

出0入0汤圆

发表于 2012-6-6 08:21:26 | 显示全部楼层
zhengyang 发表于 2012-6-6 08:20
以下是匯編源碼:
、、、、、、、、、、、、、、、、、、、、、、、、、
MTG-12864

以下是C源碼:
、、、、、、、、、、、、、、、、、、、、、、、、、
#include <reg51.h>
#include <ctype.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
/********************************************/
/* AM12864系列??程序 1.0 */
/* Designed by Andorin LCM R&D Group */
/* 2003.04.23 */
/********************************************/


/* Define the register command code */
#define Disp_On  0x3f
#define Disp_Off 0x3e
#define Col_Add  0x40
#define Page_Add 0xb8
#define Start_Line 0xc0

#define Lcd_Bus P1  //MCU P1<------> LCM

sbit Mcs=P3^3;  //Master chip enable
sbit Scs=P3^4;  //Slave chip enable
sbit Enable=P3^0; //6800 mode Enable single
sbit Di=P3^5;  //Data or Instrument Select
sbit RW=P3^6;  //Write or Read
sbit Lcd_Rst=P3^2; //Lcm reset
sbit Test_Key=P3^1;


char code ce[]={
/*-- 文字: ? --*/
/*-- 宋体12; 此字体下??的???:?x高=16x16 --*/
0x08,0x31,0x86,0x60,0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0xF8,0x00,0x00,0xFF,0x00,
0x04,0xFC,0x03,0x00,0x80,0x47,0x30,0x0F,0x10,0x67,0x00,0x07,0x40,0x80,0x7F,0x00
};
char code shi[]={
/*-- 文字: ? --*/
/*-- 宋体12; 此字体下??的???:?x高=16x16 --*/
0x40,0x42,0xDC,0x08,0x00,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x1C,0x10,0x00,
0x00,0x00,0x7F,0x20,0x10,0x20,0x20,0x1F,0x10,0x10,0x01,0x06,0x18,0x20,0x78,0x00
};
char code kai[]={
/*-- 文字: ? --*/
/*-- 宋体12; 此字体下??的???:?x高=16x16 --*/
0x40,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0xFE,0x42,0x42,0x42,0x42,0x00,
0x00,0x40,0x20,0x10,0x0C,0x03,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00
};
char code shi3[]={
/*-- 文字: 始 --*/
/*-- 宋体12; 此字体下??的???:?x高=16x16 --*/
0x10,0x90,0x70,0x1F,0x12,0xF0,0x00,0x20,0x70,0x28,0x27,0x22,0x28,0x70,0x20,0x00,
0x40,0x21,0x12,0x0C,0x06,0x09,0x30,0x00,0x7F,0x21,0x21,0x21,0x21,0x7F,0x00,0x00
};

char code wan[]={
/*-- 文字: 完 --*/
/*-- 宋体12; 此字体下??的???:?x高=16x16 --*/
0x00,0x90,0x8C,0xA4,0xA4,0xA4,0xA5,0xA6,0xA4,0xA4,0xA4,0xA4,0x94,0x8C,0x04,0x00,
0x00,0x80,0x40,0x20,0x18,0x07,0x00,0x00,0x00,0x3F,0x40,0x40,0x40,0x70,0x00,0x00
};
char code bi[]={
/*-- 文字: ? --*/
/*-- 宋体12; 此字体下??的???:?x高=16x16 --*/
0x00,0x00,0xFF,0x88,0x48,0x28,0x08,0x80,0x7F,0x88,0x88,0x88,0x84,0x84,0xE0,0x00,
0x04,0x04,0x04,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x00
};


/* AM12864B系列??首??示?容 */
/*****************/
/* ANDORIN */
/* 安的利光?科技*/
/* AM12864 */
/* ??程序 1.0 */
/*****************/

unsigned char code FirstPage[]={
/*-- ?入了一幅?像:\\Andorin-server\??部\arin\12864.bmp --*/
/*-- ?度x高度=128x64 --*/
0x00,0x00,0x00,0x80,0xF0,0xFE,0x7E,0x0E,0x7E,0xFE,0xF0,0x80,0x00,0x00,0x00,0x00,
0xFE,0xFE,0xFE,0x3C,0xF0,0xE0,0x80,0x00,0x00,0xFE,0xFE,0xFE,0x00,0x00,0x00,0xFE,
0xFE,0xFE,0x0E,0x0E,0x0E,0x0E,0x0E,0x3E,0xFC,0xF8,0xE0,0x00,0x00,0xE0,0xF8,0xFC,
0x3C,0x1E,0x0E,0x0E,0x0E,0x0E,0x1E,0x3C,0xFC,0xF8,0xE0,0x00,0x00,0x00,0xFE,0xFE,
0xFE,0x8E,0x8E,0x8E,0x8E,0x8E,0xFE,0xFC,0xF8,0x00,0x00,0x00,0xFE,0xFE,0xFE,0x00,
0x00,0xFE,0xFE,0xFE,0x3C,0xF0,0xE0,0x80,0x00,0x00,0xFE,0xFE,0xFE,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0xF0,0xFE,0x7F,0x1F,0x1D,0x1C,0x1C,0x1C,0x1D,0x1F,0x7F,0xFE,0xF0,0x80,0x00,
0xFF,0xFF,0xFF,0x00,0x00,0x03,0x0F,0x3E,0x78,0xFF,0xFF,0xFF,0x00,0x00,0x00,0xFF,
0xFF,0xFF,0xE0,0xE0,0xE0,0xE0,0xE0,0x70,0x7F,0x3F,0x0F,0x00,0x00,0x0F,0x3F,0x7F,
0x78,0xF0,0xE0,0xE0,0xE0,0xE0,0xF0,0x78,0x7F,0x3F,0x0F,0x00,0x00,0x00,0xFF,0xFF,
0xFF,0x03,0x03,0x03,0x0F,0x1F,0x7D,0xF9,0xE0,0x80,0x00,0x00,0xFF,0xFF,0xFF,0x00,
0x00,0xFF,0xFF,0xFF,0x00,0x00,0x03,0x0F,0x3E,0x78,0xFF,0xFF,0xFF,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x40,0x30,0x10,0x10,0x10,0xD0,0x12,0x1C,0x10,0x10,0x10,0x10,0x50,
0x30,0x00,0x00,0x00,0x00,0xF0,0x10,0x18,0x16,0x10,0xF0,0x80,0x40,0x30,0x1E,0x10,
0x10,0x10,0xF8,0x10,0x00,0x00,0x40,0x48,0x48,0x48,0xC8,0xF8,0x44,0x46,0x44,0x40,
0x00,0xF8,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x10,0x60,0x00,0x00,
0xFE,0x00,0x80,0x60,0x18,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0xF0,0x10,0x10,0x10,
0x10,0xFE,0x10,0x10,0x10,0x10,0x10,0xF8,0x10,0x00,0x00,0x00,0x48,0x48,0x48,0x44,
0xFC,0x42,0x42,0x40,0x80,0x08,0x30,0x00,0x00,0xFE,0x00,0x00,0x00,0x00,0x20,0x20,
0x20,0xFE,0x20,0x20,0x00,0x20,0x20,0x20,0xFE,0x20,0x20,0x20,0x30,0x20,0x00,0x00,
0x00,0x00,0x01,0x01,0x01,0x01,0x09,0x8F,0x91,0x51,0x21,0x21,0x59,0x47,0x81,0x81,
0x81,0x01,0x00,0x00,0x00,0xFF,0x42,0x42,0x42,0x42,0xFF,0x00,0x00,0x01,0x0E,0x80,
0x00,0x80,0x7F,0x00,0x00,0x00,0x20,0x10,0x08,0x06,0x01,0xFF,0x01,0x02,0x0C,0x00,
0x00,0x1F,0x80,0x00,0xFF,0x00,0x00,0x00,0x01,0x01,0x01,0x81,0x41,0x3F,0x01,0x01,
0x01,0xFF,0x01,0x01,0x01,0x01,0x01,0xF1,0x00,0x00,0x00,0x00,0x1F,0x09,0x09,0x09,
0x09,0xFF,0x09,0x09,0x09,0x09,0x09,0x1F,0xC0,0x00,0x00,0x00,0x10,0x08,0x04,0x03,
0xFF,0x01,0x06,0x10,0x10,0x13,0x08,0x08,0x08,0xFF,0x04,0x04,0x00,0x00,0x04,0x84,
0x02,0xFF,0x01,0x01,0x00,0x81,0x87,0x59,0x21,0x51,0x4D,0x83,0x81,0x80,0x00,0x00,
0x00,0x00,0x00,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x80,0xF1,0x7C,0x0C,0x7C,0xF0,0x80,
0x01,0x00,0x00,0xFC,0xFC,0x3C,0xF8,0xC0,0x00,0x00,0x00,0xC1,0xF8,0x3C,0xFC,0xFC,
0x00,0x00,0x00,0x61,0x30,0x18,0xFC,0xFC,0x01,0x01,0x01,0x00,0x30,0x38,0x1C,0x0C,
0x0C,0x1C,0xF9,0xF1,0x01,0x01,0x71,0xF9,0x8C,0x8C,0x8C,0x8C,0xF8,0x70,0x00,0x00,
0xE0,0xF8,0x1D,0x8D,0x8D,0x8D,0x19,0x11,0x01,0x00,0x00,0xC0,0xE0,0x38,0xFC,0xFC,
0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
0x01,0x00,0x00,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x7C,0x1F,0x07,0x06,0x06,0x06,0x07,0x1F,
0x7C,0x60,0x00,0x7F,0x7F,0x00,0x01,0x1F,0x7C,0x60,0x7C,0x1F,0x01,0x00,0x7F,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,0x00,0x00,0x00,0x60,0x70,0x78,0x6C,
0x66,0x63,0x61,0x60,0x00,0x00,0x1E,0x3F,0x61,0x61,0x61,0x61,0x3F,0x1E,0x00,0x00,
0x0F,0x3F,0x73,0x61,0x61,0x61,0x3F,0x1E,0x00,0x0E,0x0F,0x0D,0x0C,0x0C,0x7F,0x7F,
0x0C,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x61,0x06,0xC0,
0x00,0xFE,0x02,0xF2,0x02,0xFE,0x00,0x00,0xF8,0x00,0xFF,0x00,0x00,0x00,0x80,0x82,
0x84,0x8C,0x00,0x10,0x90,0x90,0x90,0x90,0x90,0xFF,0x10,0x12,0x14,0x10,0x00,0x00,
0x24,0x24,0xA4,0xFE,0xA2,0x23,0x22,0x80,0xBE,0xA2,0xA2,0xA2,0xA2,0xA2,0xBF,0x82,
0x00,0x00,0x00,0x00,0xFC,0x04,0x14,0x14,0x14,0x15,0x56,0x94,0x54,0x34,0x14,0x14,
0x06,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x30,0x18,0xFC,0xFC,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0xF8,0x1C,0x0C,0x0C,0x1C,0xF8,0xF0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x7E,0x81,
0x40,0x27,0x10,0x0F,0x10,0x67,0x00,0x00,0x4F,0x80,0x7F,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0x20,0x10,0x20,0x60,0x3F,0x10,0x10,0x03,0x1C,0x20,0x40,0xF0,0x00,0x00,
0x10,0x0E,0x01,0xFF,0x00,0x03,0x80,0x88,0x88,0x88,0x88,0xFF,0x88,0x88,0x88,0xC8,
0x80,0x00,0x80,0x60,0x1F,0x00,0x01,0x01,0x01,0x41,0x81,0x7F,0x01,0x01,0x01,0x05,
0x03,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x7F,0x00,
0x00,0x00,0x00,0x00,0x60,0x60,0x00,0x00,0x1F,0x3F,0x70,0x60,0x60,0x70,0x3F,0x1F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
};

/*------------------延?子程序-----------------------------*/
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++)
;
}

/*------------------?命令到LCD------------------------------*/
void write_com(unsigned char cmdcode)
{

Di=0;
RW=0;

Lcd_Bus=cmdcode;
delay(0);
Enable=1;
delay(0);
Enable=0;
}

/*-------------------??据到LCD----------------------------*/

void write_data(unsigned char Dispdata)
{

Di=1;
RW=0;

Lcd_Bus=Dispdata;
delay(0);
Enable=1;
delay(0);
Enable=0;
}

/*-------------------?LCD?据----------------------------*/

unsigned char read_data()
{
unsigned char tmpin;

Di=1;
RW=1;
delay(0);
Enable=1;
delay(0);
Enable=0;

tmpin=Lcd_Bus;

return tmpin;
}



/*------------------?示?框-------------------------------*/
void frame()
{
unsigned char i;
Mcs=1;
Scs=1;
write_com(Page_Add+0);
write_com(Col_Add+0);
for(i=0;i<64;i++) write_data(0x01);
write_com(Page_Add+7);
write_com(Col_Add+0);
for(i=0;i<64;i++) write_data(0x80);

for(i=0;i<8;i++)

{
Mcs=0;
Scs=1;
write_com(Page_Add+i);
write_com(Col_Add+63);
write_data(0xff);
Mcs=1;
Scs=0;
write_com(Page_Add+i);
write_com(Col_Add+0);
write_data(0xff);
}
}



/*------------------清除?存---------------*/
void Clr_Scr()
{
unsigned char j,k;
Mcs=1;Scs=1;
write_com(Page_Add+0);
write_com(Col_Add+0);

for(k=0;k<8;k++){
write_com(Page_Add+k);
  for(j=0;j<64;j++)write_data(0x00);
}
}

/*------------------?示12864?片---------------------------*/
void Disp_Img(unsigned char code *img)
{
unsigned char j,k;
for(k=0;k<8;k++){
  Mcs=1;Scs=0;delay(10);
  write_com(Page_Add+k);
  write_com(Col_Add+0);
  for(j=0;j<64;j++) write_data(img[k*128+j]);
  Mcs=0;Scs=1; delay(10);
  write_com(Page_Add+k);
  write_com(Col_Add+0);
  for(j=64;j<128;j++) write_data(img[k*128+j]);
}
}

/*------------------?示?---------------------------*/
void Disp_H_Line()
{
unsigned char i,j;
Mcs=1;
Scs=1;
write_com(Disp_On);
write_com(Page_Add);
write_com(Start_Line);
write_com(Col_Add);

for(j=0;j<8;j++)
{
write_com(Page_Add+j);
write_com(Col_Add+0);
// write_com(Start_Line+0);
for(i=0;i<64;i++)write_data(0x55);
}
}


/*------------------?示列-----------------------------*/
void Disp_V_Line()
{
unsigned char i,j;
write_com(Disp_On);
write_com(Page_Add);
write_com(Start_Line);
write_com(Col_Add);

for(j=0;j<8;j++)
{
write_com(Page_Add+j);
write_com(Col_Add+0);
write_com(Start_Line+0);
for(i=0;i<32;i++)
{
write_data(0x00);
write_data(0xff);
}

}
}

/*------------------棋?-----------------------------*/
void Disp_Cross_Line(unsigned char mode)
{
unsigned char i,j;
unsigned char data1,data2;
if(mode==0) {data1=0xaa;data2=0x55;}
else if(mode==1) {data1=0x55;data2=0xaa;}
else return;
Mcs=1;Scs=1;
write_com(Disp_On);
write_com(Page_Add);
write_com(Start_Line);
write_com(Col_Add);
for(j=0;j<8;j++)
{
write_com(Page_Add+j);
write_com(Col_Add+0);
write_com(Start_Line+0);
for(i=0;i<32;i++){
write_data(data1);
write_data(data2);
}
}
}


/*---------------------指定位置?示?字16*16-----------------------*/

void hz_disp16(unsigned char pag,unsigned char col, unsigned char code *hzk)
{
unsigned char j=0,i=0;
for(j=0;j<2;j++){
write_com(Page_Add+pag+j);
write_com(Col_Add+col);
for(i=0;i<16;i++) write_data(hzk[16*j+i]);
}
}


/*------------------初始化LCD屏--------------------------*/
void init_lcd()
{
Lcd_Rst=0;
delay(100);
Lcd_Rst=1;
delay(100);

Mcs=1;
Scs=1;

delay(100);
write_com(Disp_Off);
write_com(Page_Add+0);
write_com(Start_Line+0);
write_com(Col_Add+0);
write_com(Disp_On);
}


/*------------------------------信息?示------------------------*/
void Msg(int flg)
{
Clr_Scr();
frame();
if(flg==0){ //?示“???始”
Mcs=1;Scs=0;
hz_disp16(3,32,ce);
delay(2000);
hz_disp16(3,48,shi);
delay(2000);
Mcs=0;Scs=1;
hz_disp16(3,0,kai);
delay(2000);
hz_disp16(3,16,shi3);
delay(2000);
}
else if(flg==1){ //?示“??完?”
Mcs=1;Scs=0;
hz_disp16(3,32,ce);
hz_disp16(3,48,shi);
Mcs=0;Scs=1;
hz_disp16(3,0,wan);
hz_disp16(3,16,bi);
}
}


/*--------------------------------???描-------------------------*/
void Key_Scan()
{
while(Test_Key);
while(~Test_Key);
}


/*--------------------主程序---------------------------------*/


main()
{
unsigned char i=0;
while(1){
// Key_Scan();
init_lcd();
Disp_Img(FirstPage);
delay(10000);
// Key_Scan();
Msg(0);
delay(10000);
Disp_H_Line();
delay(10000);
Disp_V_Line();
delay(10000);
Msg(1);
delay(10000);
}
}

出0入0汤圆

 楼主| 发表于 2012-6-6 13:34:54 | 显示全部楼层
zhengyang 发表于 2012-6-6 08:21
以下是C源碼:
、、、、、、、、、、、、、、、、、、、、、、、、、
#include

液晶没有CS1和CS2!!

出0入0汤圆

发表于 2012-6-7 08:05:10 | 显示全部楼层
哦,你的屏用的控制IC為NT7534,我再重新找一下驅動程式!

出0入0汤圆

 楼主| 发表于 2012-6-7 18:26:56 | 显示全部楼层
zhengyang 发表于 2012-6-7 08:05
哦,你的屏用的控制IC為NT7534,我再重新找一下驅動程式!

找到了没有??

出0入0汤圆

发表于 2012-6-8 10:30:10 | 显示全部楼层
#include <reg52.h>

#include "D:\STDUY\51 C TEST\TEST CCC\Picture.c"
#define  Uchar unsigned char
#define  Uint unsigned int
#define  DataPort P1
sbit  CS1B=P3^0;
sbit  CS2=P3^1;
sbit  RST=P3^3;
sbit  RS=P3^2;
sbit  R_W=P3^6;
sbit  E_RD=P3^7;

sbit k1=P0^0;
sbit k2=P0^1;


unsigned char code IC[]={
                                                 0xc8,        //SHL  COM63->COM0
                                                  0xa2,        //select LCD bias:1/9
                                                 0x2f,        //Power control
                                                 0x26,        //select regulator register
                                                 0x81,0x08,          //select electronic volume register
                                                 0x40,        //Initial display line
                                                 0xaf         //display on
                        };
//-------------------------------------------------------------------------------------------
void Delay(Uint times)
  {
   while(times)
   {
    times--;
   }
  }
//-------------------------------------------------------------------------------------------
void M_Delay(Uint NOs)
  {
   while(NOs)
   {
    Delay(200);
        NOs--;
   }
  }
//-------------------------------------------------------------------------------------------

//-------------------------------------------------------------------------------------------
void WriteData(Uchar _data,bit di)
  {
   CS1B=0;
   RS=di;
   DataPort=_data;

   R_W=0;
   E_RD=1;
   Delay(5);
   E_RD=0;
   CS1B=1;
  }
//-------------------------------------------------------------------------------------------
void LCD_initial()
  {
   Uchar WW;
   CS2=1;
   RST=1;
   M_Delay(100);
   RST=0;                //reset
   M_Delay(50);
   RST=1;
   M_Delay(50);
   WriteData(0xe2,0);
   Delay(100);

   for(WW=0;WW<9;WW++)
     {
     WriteData(IC[WW],0);
       }
  }
//-------------------------------------------------------------------------------------------
void DispGraphic(Uchar Graphic[])
  {
   Uint KK,jj;
   for(KK=0;KK<9;KK++)
   {
    WriteData(0xb0|KK,0);
    WriteData(0x40,0);   
    WriteData(0x10,0);      
    WriteData(0x00,0);
        for(jj=0;jj<128;jj++)
        {
         WriteData(Graphic[KK+9*jj],1);

        }
   }
  }
//-------------------------------------------------------------------------------------------

void DispLine(Uchar _Data1,Uchar _Data2)
  {
   Uchar i,j;
   for(i=0;i<9;i++)
                   {
                    WriteData(0xb0|i,0);     //set page address
                    WriteData(0x10,0);       //set column address
                    WriteData(0x00,0);
                        for(j=0;j<64;j++)
                                        {
                                     WriteData(_Data1,1);
                                     WriteData(_Data2,1);
                                        }
                   }
  }
//-------------------------------------------------------------------------------------------
void Dispchess()
  {
   Uchar i,j,k,m;
   for(i=0;i<9;i++)
           {
            WriteData(0xb0|i,0);
            WriteData(0x40,0);   
            WriteData(0x10,0);       //set column address
            WriteData(0x00,0);
                        for(m=0;m<16;m++)
                                {
                                 for(j=0;j<4;j++)
                                         {
                                      WriteData(0xf0,1);
                                         };
                                 for(k=0;k<4;k++)
                                         {
                                      WriteData(0x0f,1);
                                         };
                                }
           }
  }
//-------------------------------------------------------------------------------------------
void main()
  {
     
   Uchar w=1,key_flag=0;//此處W的值一定要設為1,否則開機或REST後先按減號鍵無反應進入不了程式
     k1=k2=1;
            
    LCD_initial();
            
     DispGraphic(Picture);  
   M_Delay(250);
    while(1)
      {
            
         if(k1==0)
                           {
                                  key_flag=1;
                                  M_Delay(50);
                                          if(k1==0)
                                               w++;
                                             if(w>18)
                                                    w=1;
                                                    while(!k1);
                                  }
      
                           if(k2==0)
                                      {
                                           key_flag=1;
                                           M_Delay(50);
                                                   if(k2==0)
                                                      w--;
                                                           if(w<=0)
                                                               w=18;
                                                                   while(!k2);
                                            }
               
                    if(key_flag==1)
                                  {
                                                         LCD_initial();
                                                     if(w==1)
                                                             DispLine(0xff,0xff);
                                                         else
                                                         if(w==2)
                                                           DispLine(0x00,0x00);
                                                         else
                                                        if(w==3)
                                                           DispLine(0xaa,0xaa);
                                     else
                                                        if(w==4)
                                                             DispLine(0x55,0x55);   
                                     else
                                                        if(w==5)
                                                             DispLine(0xff,0x00);  
                                     else
                                                        if(w==6)
                                                              DispLine(0x00,0xff);
                                     else
                                                        if(w==7)
                                                              DispLine(0xaa,0x55);
                                      else
                                                        if(w==8)
                                                              DispLine(0x55,0xaa);
                                      else
                                                        if(w==9)
                                         Dispchess();
                                      else
                                                        if(w==10)
                                          {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x02,0);  
                                             DispGraphic(Picture);  
                                               }
                                      else
                                                        if(w==11)
                                           {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x04,0);  
                                             DispGraphic(Picture);  
                                               }
                                       else
                                                        if(w==12)
                                           {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x06,0);  
                                             DispGraphic(Picture);  
                                               }
                                       else
                                                         if(w==13)
                                           {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x08,0);  
                                             DispGraphic(Picture);  
                                               }
                                       else
                                                         if(w==14)
                                           {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x0a,0);  
                                             DispGraphic(Picture);  
                                               }
                                      else
                                                         if(w==15)
                                           {
                                                                      WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x0c,0);  
                                             DispGraphic(Picture);  
                                               }
                                      else
                                                        if(w==16)
                                           {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x0e,0);  
                                             DispGraphic(Picture);  
                                               }
                                     else
                                                        if(w==17)
                                           {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x10,0);  
                                             DispGraphic(Picture);  
                                               }
                                    else
                                                        if(w==18)
                                           {
                                                                     WriteData(0x26,0);
                                             WriteData(0x81,0);
                                             WriteData(0x11,0);  
                                             DispGraphic(Picture);  
                                               }
                     key_flag=0;
                                 }
         
      }                            
                          
                          
}                       

出0入0汤圆

 楼主| 发表于 2012-6-8 12:17:50 | 显示全部楼层
wangjiawu187 发表于 2012-6-7 18:26
找到了没有??

#include "D:\STDUY\51 C TEST\TEST CCC\Picture.c"
没有这个文件!!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-24 02:29

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表