coolsir 发表于 2011-7-8 19:04:23

关于cog 12864 ST7565驱动液晶的问题 我崩溃了!

潜水多年从中学到不少东西,也本想做一些东西拿来与大家分享 可惜 因为工作,及自己能力问题 ,也迟迟没做出来一个自己能看顺眼的东西。更别说在这里穿两条裤子了,本想卧薪尝胆潜个七八年 ,然后再来个一鸣惊人,自己也至少有面子MARK MARK 几下,但可惜这次因为一个普通的12864 的问题我沉不住了,我迫不及待的要加入我们这个家庭了,突然对自己的人品感到疑惑了,学到东西的时候没见自己发布过多少东西,现在有问题到浮出来了、哎。。。。。。。
这次还是坚挺一下同志们我来了!!

                http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655955JSAUHB.jpg
(原文件名:LCD12864.jpg)
   

   屏幕就是在taobao上面买的这一款,好坏到先不说了 ,不过体积到时不小
以下是 店里面的描述


控制器ST7565P资料下载:
http://www.lcdmk.com/tbpic/ST7565P.pdf

ST7565P应用笔记下载:
http://www.lcdmk.com/tbpic/ST7565.pdf

电容推荐接法,电容都可以用1uF,Ra、Rb根据显示效果调节:



引脚定义,排线朝下面对屏最右边为1脚:

1NC
2CS2
3RESET
4RS
5RW
6E
7DB0
8DB1
9DB2
10 DB3
11 DB4
12 DB5
13 DB6
14 DB7
15 VDD
16 VSS
17 VOUT C4+
18 C3+
19 C1-
20 C1+
21 C2+
22 C2-
23 V1
24 V2
25 V3
26 V4
27 V0
28 VR
29 NC
30 NC
演示程序:
#include   
#include   
#include         //1100   
#define VC_ON 0x2C       //1010   
#define VR_ON 0x2A   
#define VF_ON 0x29      //1001   
#define NOP _nop_();_nop_();_nop_();_nop_()   


#define data   P0   

sbit CS   =P2^7;
sbit RES    =P2^6;
sbit RS   =P2^5;
sbit RW   =P2^4;
sbit Read   =P2^3;

/******************************delay time***********************************/
void delay_ms(unsigned int ms)
{
unsigned int n ;
while(ms--)
      {
       n=86;
       while(n--);
      }
}

/****************************reset IC for start****************************/
void LCD_Reset()
{
IE=0x00;
RES =0;
delay_ms(50);
RES =1;
delay_ms(50);
}   

/*******************************write data to IC**************************/
void w_dat(unsigned char dat)
{
data =dat;
NOP;
RS   =1;
RW   =0;
Read   =1;
NOP;
CS   =1;
_nop_();
CS   =0;
}

/******************************write Command to IC***********************/
void w_cmd(unsigned char cmd)
{
data =cmd;
NOP;
RS   =0;
RW   =0;
Read   =1;
NOP;
CS   =1;
_nop_();
CS   =0;
}

/***************************display picture *****************************/
void Display(unsigned char *p)
{
unsigned char page,column;
for(page=0xB7;page>=0xB0;page--)
    {
   w_cmd(page);//set page address   
   w_cmd(0x10);//set Column address MSB   
   w_cmd(0x00);//set column address LSB   
   for(column=0;column<128;column++)
      {
         w_dat(*p++);
      }
    }
}


void Display_fill(unsigned char fill)
{
unsigned char page,column;
for(page=0xB7;page>=0xB0;page--)
    {
   w_cmd(page);//set page address   
   w_cmd(0x10);//set Column address MSB   
   w_cmd(0x00);//set column address LSB   
   for(column=0;column<131;column++)
      {
         w_dat(fill);
      }
    }
}





void Grid_white()
{
unsigned char page,column;
for(page=0xB7;page>=0xB0;page--)
    {
   w_cmd(page);
   w_cmd(0x10);
   w_cmd(0x00);
   for(column=0;column<65;column++)
      {
         w_dat(0xFF);
         w_dat(0x00);
      }
    }
}

void Grid_Black()
{
unsigned char page,column;
for(page=0xB7;page>=0xB0;page--)
    {
   w_cmd(page);
   w_cmd(0x10);
   w_cmd(0x00);
   for(column=0;column<65;column++)
      {
         w_dat(0x00);
         w_dat(0xFF);
      }
    }
}

void Grid_Line1()
{
unsigned char page,column;
for(page=0xB7;page>=0xB0;page--)
    {
   w_cmd(page);
   w_cmd(0x10);
   w_cmd(0x00);
   for(column=0;column<131;column++)
      {
         w_dat(0xAA);
      }
    }
}

void Grid_Line2()
{
unsigned char page,column;
for(page=0xB7;page>=0xB0;page--)
    {
   w_cmd(page);
   w_cmd(0x10);
   w_cmd(0x00);
   for(column=0;column<131;column++)
      {
         w_dat(0x55);
      }
    }
}

void Init_IC()
{
CS=0;
P3=0xFF;
LCD_Reset();
w_cmd(0xA2);    //LCD Bias selection(1/65 Duty,1/9Bias)   
w_cmd(0xA0);    //ADC selection(SEG0->SEG128)   
w_cmd(0xC0);    //SHL selection(COM0->COM64)   

w_cmd(0x26);    //Regulator Resistor Selection   
delay_ms(5);
w_cmd(0x81);    //Electronic Volume   
w_cmd(0x8);    //Reference Register selectionVo=(1+Rb/Ra)(1+a)*2.1=10   
w_cmd(VC_ON);    //Power Control(Vc=1;Vr=0;Vf=0)   
delay_ms(10);
w_cmd(VC_ON|VR_ON);
delay_ms(10);
w_cmd(VC_ON|VR_ON|VF_ON);
delay_ms(10);
w_cmd(0xF8);
w_cmd(0x00);

delay_ms(5);
w_cmd(0xAF);    //Display on   
   
}

void main()
{

   
while(1)
{
Init_IC();   
Display_fill(0xFF);
delay_ms(1000);
Grid_white();
delay_ms(1000);
Grid_Black();
delay_ms(1000);
Grid_Line1();
delay_ms(1000);
Grid_Line2();
delay_ms(1000);
Display_fill(0x00);
delay_ms(5);   ;      
Display(deep);
delay_ms(3000);
      
}
   
}   
unsigned char code deep[] = {
      0x00,0x00,0x00,0x00,0x0E,0x03,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x7C,0x23,0x1F,
      0x00,0x00,0x01,0x01,0x03,0x00,0x00,0x00,
      0x00,0x00,0x00,0x1F,0x07,0x06,0x06,0x06,
      0x06,0x06,0x06,0x1F,0x31,0x0E,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x3F,
      0x00,0x00,0x00,0x00,0x7F,0x27,0x18,0x00,
      0xFF,0x2E,0x10,0x01,0x03,0x00,0x00,0x00,
      0x00,0x2F,0x39,0x05,0x0A,0x00,0x00,0x00,
      0x7F,0x27,0x18,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x7F,0x37,0x0C,0x00,0x00,
      0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x17,0x38,0x07,0x0D,0x00,0x03,0x03,
      0x03,0x03,0x03,0x03,0x0F,0x1E,0x01,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0xF0,0x8F,0x7F,
      0x20,0x38,0x28,0x2F,0x29,0x28,0xEF,0xE9,
      0x28,0x28,0x68,0x88,0x78,0x08,0x00,0x00,
      0x00,0x00,0x00,0xFF,0xFD,0x05,0x05,0x05,
      0x05,0x05,0x05,0xFD,0xFF,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
      0x03,0x77,0x70,0x60,0xFF,0xFF,0x60,0x60,
      0xFF,0xFF,0x60,0xE0,0x20,0xE0,0x00,0x00,
      0x00,0x55,0xFF,0x2A,0x00,0x00,0x00,0x00,
      0xFF,0xFF,0x00,0x00,0x00,0x07,0x01,0x00,
      0x00,0x00,0x00,0x00,0x00,0x30,0x38,0x30,
      0x30,0x30,0x30,0xFF,0xFF,0x30,0x30,0x30,
      0x70,0x90,0xF0,0x10,0x00,0x00,0x00,0x00,
      0x00,0x75,0x8A,0x75,0x5A,0x00,0x80,0x80,
      0x00,0x01,0x0E,0x71,0x9E,0xE0,0x80,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x0C,0x1B,0x06,0x01,0x00,0x03,
      0x3F,0x00,0x7F,0x9F,0x60,0x81,0xFE,0x3F,
      0xC3,0x03,0x1F,0x14,0x03,0x00,0x00,0x00,
      0x00,0x00,0x00,0xDF,0xFE,0x02,0x02,0x02,
      0x02,0x02,0x02,0xFE,0xFF,0x00,0x00,0x00,
      0x00,0x00,0x80,0xE0,0xC0,0xC7,0xF8,0xFF,
      0xC0,0xC0,0x40,0x7F,0xDF,0xD8,0x18,0x18,
      0xD8,0x98,0x7F,0x1E,0x00,0x00,0x04,0x07,
      0x06,0x56,0xFF,0x86,0x16,0xBE,0xE2,0xC0,
      0xFF,0xFF,0xC0,0xC0,0xC0,0xFF,0x7F,0x80,
      0x00,0x00,0x00,0x38,0x28,0x28,0x28,0x28,
      0x2B,0x29,0x28,0xE8,0xE8,0x2F,0x29,0x28,
      0x28,0x28,0x2B,0xCD,0x36,0x0C,0x00,0x0C,
      0x0E,0x7D,0x8A,0x65,0xBE,0x7C,0x14,0x05,
      0x3F,0xD8,0x60,0xA0,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0xC0,0x3E,0xFF,0x03,0xFF,
      0x81,0x1E,0xF3,0xCC,0x03,0xFE,0x78,0x9F,
      0x02,0x11,0xFE,0xAB,0x00,0x00,0x00,0x00,
      0x07,0x02,0x00,0xF8,0xF8,0x87,0x81,0x80,
      0x80,0x83,0x80,0xF0,0x20,0xC0,0x03,0x07,
      0x00,0x00,0x00,0x00,0x0F,0xF1,0x0F,0xFF,
      0x7F,0x0F,0x00,0xFF,0xEF,0x28,0x28,0x28,
      0x28,0x28,0xEF,0xFB,0x00,0x00,0x00,0x00,
      0x00,0xAA,0xFF,0xAA,0x00,0x00,0x00,0x00,
      0xFF,0xFF,0x00,0x00,0x00,0xFF,0xFF,0x03,
      0x00,0x00,0x00,0x00,0x00,0x03,0x01,0x00,
      0xE0,0x9F,0x7F,0x00,0x00,0xFF,0x7F,0x80,
      0x00,0x70,0xF0,0x80,0x00,0x00,0x00,0x00,
      0x00,0x55,0xAA,0x55,0x96,0x20,0xEC,0xD8,
      0x37,0x38,0x3D,0x33,0x3C,0x3F,0x30,0xDF,
      0x3F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,
      0xFC,0x60,0xFF,0x03,0xFC,0xE0,0x7F,0xC1,
      0x3C,0xFE,0x3B,0x80,0x00,0x00,0x00,0x00,
      0x6A,0xFF,0xC1,0xC0,0xC0,0xFF,0xBF,0x40,
      0x00,0xFF,0xFF,0xC0,0xC0,0xC0,0xFF,0x9F,
      0x60,0x00,0x00,0x1F,0xFF,0xE0,0xFF,0xFF,
      0xC0,0xF0,0x00,0xFF,0xFE,0x30,0x3F,0x3F,
      0x30,0x31,0xFF,0xFC,0x00,0x00,0x00,0x00,
      0x00,0xAA,0xFF,0xB2,0x20,0x38,0x30,0x30,
      0xFF,0xFF,0x3F,0x33,0x30,0xF0,0xF0,0x90,
      0xF0,0x10,0x00,0x00,0x00,0x80,0x7C,0xC3,
      0x3F,0x00,0x80,0x00,0x01,0xFF,0xFC,0x00,
      0x00,0x00,0x00,0x01,0x03,0x00,0x00,0x00,
      0x00,0x55,0xAA,0x4A,0xB5,0x03,0x06,0x0F,
      0xF1,0x7E,0x80,0xF7,0x7F,0x80,0x07,0xF8,
      0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x3C,0x17,0xF0,0xFF,0xC0,
      0x00,0x00,0xFF,0x80,0x00,0x00,0xE0,0xFF,
      0xFF,0x7C,0x80,0x00,0x00,0x00,0x00,0x00,
      0xDA,0xFF,0x1C,0x18,0x18,0xFF,0xFF,0x00,
      0x00,0xFF,0xFF,0x18,0x18,0x18,0xFF,0xFF,
      0x00,0x00,0x3C,0xF0,0xC0,0x00,0xFF,0xFF,
      0x10,0x1C,0x18,0x18,0x18,0x1F,0xF3,0xFF,
      0x1B,0x18,0x18,0x78,0xC8,0x38,0x01,0x03,
      0x04,0xAD,0xFA,0xA6,0x28,0x58,0x60,0x1F,
      0xEF,0xF0,0xFC,0xFB,0x07,0x00,0x00,0x00,
      0x00,0x00,0x20,0x38,0x30,0x30,0x30,0xF0,
      0xB0,0x30,0x30,0x37,0xF9,0xFE,0x30,0x30,
      0x30,0x30,0x30,0xF0,0xF0,0x10,0x00,0x01,
      0x06,0x58,0xA7,0x1C,0xF1,0xC2,0x17,0x7C,
      0xC0,0x0F,0xF3,0x3C,0xC0,0x00,0xFF,0x07,
      0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0xFF,0x00,0xFF,0x00,
      0x00,0x00,0xFF,0x00,0x00,0x07,0x39,0xDE,
      0xE8,0x67,0x11,0x0C,0x03,0x01,0x00,0x00,
      0xAA,0xFF,0x23,0x03,0x03,0xFF,0xFF,0x00,
      0x00,0xFF,0xFF,0x03,0x03,0x03,0xFF,0xFF,
      0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,
      0x00,0x00,0x00,0x03,0x1F,0xEC,0xF0,0x80,
      0xFC,0x33,0x0E,0x01,0x01,0x00,0x60,0x90,
      0x50,0xA0,0x80,0x00,0x03,0x1D,0xE6,0x78,
      0x80,0x00,0x00,0xC0,0x38,0xE7,0x18,0x06,
      0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x03,0x1F,0x6C,0xB0,0xC0,0xC0,0xB0,0x48,
      0x46,0x31,0x08,0x07,0x01,0x00,0x00,0xD0,
      0x78,0xA0,0x80,0x40,0xB0,0xE0,0x80,0x07,
      0x7E,0xB0,0xC7,0x02,0x02,0x03,0xFE,0xFF,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0xE0,0x10,0xF0,0x00,
      0x00,0x7C,0xE8,0x1C,0x70,0xE0,0x80,0x00,
      0x00,0x00,0xC0,0x30,0xD0,0x40,0x00,0x00,
      0xD8,0xE8,0x00,0x00,0x00,0xF0,0xC0,0x00,
      0x00,0xF8,0xE0,0x00,0x00,0x00,0xF0,0xF0,
      0x00,0x00,0x00,0x00,0x00,0x00,0xFC,0xF8,
      0x14,0x38,0xF0,0xC0,0x00,0x00,0x00,0x00,
      0x00,0x40,0xE0,0x10,0x38,0xC0,0x00,0x00,
      0x00,0x08,0x38,0xA0,0x40,0x80,0x80,0x00,
      0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x18,
      0x60,0xC0,0x00,0x1C,0x18,0x30,0x70,0xB0,
      0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
      0x00,0x80,0x60,0x18,0xF8,0x00,0x00,0x00,
      0x00,0x00,0x00,0x00,0x28,0x38,0xC0,0x80,
      0x00,0x00,0x00,0x80,0x78,0x0C,0x70,0x80,
      0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};


我用的是MSP430F149的单片机   程序其实都是更上面差不多
只不过是定义了IO口的开关设置
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_655965J4CGGW.jpg
(原文件名:电路图.jpg)

#define LCD_CS_OUT()                     P2DIR |= BIT3; //p4.0 SEL 输出方式         
#define LCD_CS_ON()                          P2OUT |= BIT3;//P4.0输出1
#define LCD_CS_OFF()                       P2OUT &=~BIT3; //P4.0 输出0\

#define LCD_RST_OUT()                  P2DIR |= BIT4; //p4.0 SEL 输出方式         
#define LCD_RST_ON()                          P2OUT |= BIT4;//P4.0输出1
#define LCD_RST_OFF()                       P2OUT &=~BIT4; //P4.0 输出0\

#define LCD_RS_OUT()                     P2DIR |= BIT5; //p4.0 SEL 输出方式         
#define LCD_RS_ON()                          P2OUT |= BIT5;//P4.0输出1
#define LCD_RS_OFF()                       P2OUT &=~BIT5; //P4.0 输出0\

#define LCD_RW_OUT()                     P2DIR |= BIT6; //p4.0 SEL 输出方式         
#define LCD_RW_ON()                          P2OUT |= BIT6;//P4.0输出1
#define LCD_RW_OFF()                       P2OUT &=~BIT6; //P4.0 输出0\

#define LCD_READ_OUT()                  P2DIR |= BIT7; //p4.0 SEL 输出方式         
#define LCD_READ_ON()                   P2OUT |= BIT7;//P4.0输出1
#define LCD_READ_OFF()                  P2OUT &=~BIT7; //P4.0 输出0\

#define LCD_DAT_OUT()                     P4DIR |=0XFF;
#define LCD_OUT                        (P4OUT)

#define LCD_DAT_IN()                      P4DIR&=~0XFF;
#define LCD_IN                                 (P4IN)


可是现在屏幕一点反应都没有   同志们到底是哪里的问题啊   希望有用过的大哥帮我看看!2个星期了都一点反应都没有 疯了!

brahen 发表于 2011-7-8 20:49:36

有时候你严格按照datasheet你就错了。。。

GDYJ 发表于 2011-7-8 22:04:57

你会51吗,会的话,我给你个汇编的,7565控制器通用,


以下是显示一行汉字的程序,汇编的,串行方式

XPOSEQU 20H;页地址;
YPOSEQU 21H;列地址
HZ_NUM EQU 22H;
;======================点阵接口定义=================================
LCD_DATABIT P1.3      ;液晶数据接口   
LCD_SCL   BIT P1.2;      串行时钟接口;   
LCD_AO    BIT P1.1      ;液晶数据指令选择
LCD_RST   BIT P1.0      ;液晶复位RST
ORG 0000H;
JMP START;
ORG 0030H;

START:
       LCALL LCD_INIT;
       LCALL CLR_LCD;
;============第一行显示8个汉字==================================      
       MOV XPOS,#0;范围:0-7对应1-8页;
       MOV YPOS,#0;范围:0-127;对应1-128列   
       MOV HZ_NUM,#8;显示汉字数;            
       MOV DPTR,#HZ_TAB;载入汉字点阵数据首址
       LCALL HZ_PLAY;
      
       JMP $

;======16*16点阵数据发送程序===============================================
;纵向取模,字节倒序方式
HZ_PLAY:
       ;MOV XPOS,#0;范围:0-7对应1-8页;
       ;MOV YPOS,#0;范围:0-127;对应1-128列   
       ;MOV HZ_NUM,#8;显示汉字数;            
       ;MOV DPTR,#HZ_TAB;载入汉字点阵数据首址
HZ:CALL POS_SEND; 定位页列坐标      
       MOV R3,#2;一个汉字分上下部分
HZ1: MOV R2,#16;一部分16个数据
HZ2: CLR A;
       MOVC A,@A+DPTR;;
       LCALL W_LCD_DAT;
       INC DPTR;
       INC YPOS;同步跟踪列地址,用于发送多个汉字时调整列地址;
       DJNZ R2,HZ2;   等待半个汉字数据发送完
;=========修改行,列=======================   
       DJNZ R3,HZ3;显示完一个汉字?
       JMP HZ4;      
HZ3:   INC XPOS;
       MOV A,YPOS;
       SUBB A,#16;
       MOV YPOS,A;
       CALL POS_SEND;
       JMP HZ1;继续发送下半部分汉字数据      
HZ4:   DJNZ HZ_NUM,HZ5;汉字数显示完成
       RET;            
HZ5:   DEC XPOS;
       CALL POS_SEND;
       JMP HZ;   
      
;=============行列调整发送===================
;先发送页地址;再发送列高4位地址;接着发送列第四位地址;         
POS_SEND:
      MOV A,XPOS;
      ADD A,#0B0H;
      CALL W_LCD_COM;
      MOV A,YPOS;
      PUSH ACC;
      ANL A,#11110000B;屏蔽低位列地址;
      SWAP A;
      ADD A,#10H;
      CALL W_LCD_COM;
      POP ACC;
      ANL A,#00001111B;屏蔽高位列地址;
      CALL W_LCD_COM;
      RET;
;===================写液晶控制命令=====================
;串行方式,高位在前,下降沿输入。
W_LCD_COM:
         CLR LCD_AO   ;写的是命令;
         MOV R4,#8;            
SEND_COM: ;
         CLR C;
         RLC A;
         MOV LCD_DATA,C;   
         CLR LCD_SCL;
         SETB LCD_SCL;
         DJNZ R4,SEND_COM;
         RET      
      
;====================写液晶数据=========================
;串行方式,高位在前,下降沿输入。
W_LCD_DAT:            
         SETB LCD_AO;   写的是数据;
         MOV R4,#8;      
SEND_DAT: ;         
         CLR C;
         RLC A;
         MOV LCD_DATA,C;
         CLR LCD_SCL;
         SETB LCD_SCL;
         DJNZ R4,SEND_DAT;
         RET               


;================初始化=========================================
LCD_INIT:      
      CLR LCD_RST
      NOP
      NOP
      SETB LCD_RST
         MOV A,#0E2H       ;复位;
         ACALL W_LCD_COM;         
         MOV A,#0AFH   ;0AEH/0AFH 关/开液晶显示
         CALL W_LCD_COM      
      MOV A,#0A2H      ;0A2H/0A3H (1/9)/(1/7) LCD偏压比率设置
      CALL W_LCD_COM      
      MOV A,#23H          ;20H-27H V5电压调整器的内部电阻比设置
      CALL W_LCD_COM      
      MOV A,#81H          ;可编程电压调整模式设置
      CALL W_LCD_COM      
      MOV A,#30H         ;0H-3FH 电压调整模设置寄存器指令数据V5小-大
      CALL W_LCD_COM      
      MOV A,#0D2H         ;驱动模式设置
      CALL W_LCD_COM      
      MOV A,#0            ;0C0H/0/40H/80H 1/2/3/4 模式选择寄存器设置
      CALL W_LCD_COM      
      MOV A,#2FH          ;28H/2CH/2EH/2FH;电源电路功能
      CALL W_LCD_COM      ;推进电路/电压调节电路/电压跟随电路      
      MOV A,#0C0H      ;0C0H/0C8H 行输出模式选择正向/反向
      CALL W_LCD_COM
      MOV A,#0A0H      ;0A0H/0A1H 列地址方向选择
      CALL W_LCD_COM      
      MOV A,#0A4H      ;0A4H/0A5H 全屏正常显示/全点亮指令
      CALL W_LCD_COM
      MOV A,#0A6H      ;0A6H/0A7H 正相反相显示控制指令,RAM中数据不变
      CALL W_LCD_COM      
      ;MOV A,#0ACH      ;0ACH/0ADH OFF/ON 静态指示器控制指令
      ;CALL W_LCD_COM
      ;MOV A,#0H      ;0/1/2/3
      ;CALL W_LCD_COM      
      ;MOV A,#0B0H      ;0B0-0B8H 设置显示起始页地址
      ;CALL W_LCD_COM
      ;MOV A,#40H      ;40H-7FH 设置显示起始行对应RAM行号
      ;CALL W_LCD_COM
      RET

;====================清屏====================================
CLR_LCD:MOV R0,#8   
D1:   MOV A,#0B0H-1
      ADD A,R0
      CALL W_LCD_COM;写液晶控制命令
      MOV A,#00H;;;;;;;;;列低四位;
      CALL W_LCD_COM;写液晶控制命令
      MOV A,#10H;液晶Y地址控制指令+10H;列高四位;
      CALL W_LCD_COM;写液晶控制命令      
      MOV R1,#128
D2:   MOV A,#00H;
      CALL W_LCD_DAT;写液晶数据      
      DJNZ R1,D2
      DJNZ R0,D1
      RET



HZ_TAB:
;想显示什么自己加吧

END

用的字幕提取软件:zimo221
http://cache.amobbs.com/bbs_upload782111/files_42/ourdev_656056AX580E.jpg
(原文件名:字模.jpg)

boming 发表于 2011-7-10 20:25:20

都是牛人,还用汇编.好佩服

joing2000 发表于 2011-7-12 14:09:25

加我QQ吧,我这有完整的程序。还有硬件电路。
1143946234

sunhaoqin 发表于 2011-9-13 16:15:24

mark

ayumi8 发表于 2011-11-2 12:15:33

点亮了么???关注下

hnsw 发表于 2011-11-11 22:35:49

mark~~~

wmlsxq 发表于 2012-5-23 00:23:00

我也遇到问题了,显示对比度不稳;一会儿亮一会儿暗,没有找到解决的办法,有大侠指点吗?{:mad:}

名字不能太长 发表于 2012-12-4 20:07:55

我最近在用树莓派驱动ST7565的液晶。这个液晶的取模方式有点奇怪。

bingtuohun 发表于 2013-12-22 19:43:28

brahen 发表于 2011-7-8 20:49
有时候你严格按照datasheet你就错了。。。

这位大侠你应该说严格按中文的datasheet就错了,英文原厂很少有错误。

dhw5qq 发表于 2014-4-27 14:25:24

我的液晶在做光标的时候,到现在还没解决好,现在都2个星期过去了,我好郁闷,

dhw5qq 发表于 2014-4-27 14:43:15

我现在想在上面加个光标, 而且按键可以控制的!不知道君可否提供一下   思路!

mdjfish 发表于 2020-4-16 18:29:30


我现在想在上面加个光标
页: [1]
查看完整版本: 关于cog 12864 ST7565驱动液晶的问题 我崩溃了!