⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xg12864p-10.c

📁 该程序为ST7565的驱动程序
💻 C
字号:
/*************************************************************************
Module name  :  XG12864P-10(128*64 dots)
written by   :  Feng Zuhua(Frank.Fon)
E-mail       :  zuhua2008@126.com
Date         :  2008-04-21
Driver IC    :  ST7565P
interface    :  8080 for 8 bis
************************************************************************/
#include<reg52.h>
#include<intrins.h>
#include<Pic.C>			  //1100
#define VC_ON 0x2C		 //1010
#define VR_ON 0x2A
#define VF_ON 0x29		//1001
#define NOP _nop_();_nop_();_nop_();_nop_()	


#define data   P3

sbit CS     =  P1^0;
sbit RES    =  P1^1;
sbit RS     =  P1^2;
sbit RW     =  P1^3;
sbit Read   =  P1^4;

/******************************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<128;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<64;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<64;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<128;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<128;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(0x3f);    //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);
  	 
 }
 
} 
  
  
  
  
 
 

    

     
 
 


         
     
 





 
 
 


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -