搜索
bottom↓
回复: 13

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

[复制链接]
(308482706)

出0入0汤圆

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

               
(原文件名:LCD12864.jpg)
   

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


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

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

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



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

1  NC
2  CS2
3  RESET
4  RS
5  RW
6  E
7  DB0
8  DB1
9  DB2
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 selection  Vo=(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口的开关设置

(原文件名:电路图.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个星期了都一点反应都没有 疯了!
(308476393)

出0入0汤圆

发表于 2011-7-8 20:49:36 | 显示全部楼层
有时候你严格按照datasheet你就错了。。。
(308471872)

出0入0汤圆

发表于 2011-7-8 22:04:57 | 显示全部楼层
你会51吗,会的话,我给你个汇编的,7565控制器通用,


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

XPOS  EQU 20H;页地址;
YPOS  EQU 21H;列地址
HZ_NUM EQU 22H;
;======================点阵接口定义=================================
LCD_DATA  BIT 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

(原文件名:字模.jpg)
(308305049)

出0入0汤圆

发表于 2011-7-10 20:25:20 | 显示全部楼层
都是牛人,还用汇编.好佩服
(308154804)

出0入0汤圆

发表于 2011-7-12 14:09:25 | 显示全部楼层
加我QQ吧,我这有完整的程序。还有硬件电路。
1143946234
(302704045)

出0入0汤圆

发表于 2011-9-13 16:15:24 | 显示全部楼层
mark
(298398436)

出0入0汤圆

发表于 2011-11-2 12:15:33 | 显示全部楼层
点亮了么???关注下
(297583620)

出0入0汤圆

发表于 2011-11-11 22:35:49 | 显示全部楼层
mark~~~
(280901989)

出0入0汤圆

发表于 2012-5-23 00:23:00 | 显示全部楼层
我也遇到问题了,显示对比度不稳;一会儿亮一会儿暗,没有找到解决的办法,有大侠指点吗?
(263982894)

出0入0汤圆

发表于 2012-12-4 20:07:55 | 显示全部楼层
我最近在用树莓派驱动ST7565的液晶。这个液晶的取模方式有点奇怪。
(230893161)

出0入0汤圆

发表于 2013-12-22 19:43:28 | 显示全部楼层
brahen 发表于 2011-7-8 20:49
有时候你严格按照datasheet你就错了。。。

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

出0入0汤圆

发表于 2014-4-27 14:25:24 | 显示全部楼层
  我的液晶在做光标的时候,到现在还没解决好,现在都2个星期过去了,我好郁闷,
(220024774)

出0入0汤圆

发表于 2014-4-27 14:43:15 | 显示全部楼层
我现在想在上面加个光标, 而且按键可以控制的!不知道君可否提供一下   思路!
(31572799)

出0入0汤圆

发表于 2020-4-16 18:29:30 | 显示全部楼层

我现在想在上面加个光标
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2021-4-17 04:42

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

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