/* IQC program */
/* IC : ssd1305 */
/* Module : QG-2832ASWCG01 iic*/


                   
void  SSD1305()
{
       write_i(0xae); /* set  display off */
   
       write_i(0x04); /* set  lower column start address */
       write_i(0x10); /* set  higher column start address */
   
       write_i(0x40); /* set  display start line */   
     
       write_i(0x81); /* set  contrast control */
       write_i(0x80); 
   
       write_i(0xa1); /* set  segment remap  */
   
       write_i(0xa6); /* set  normal display */
   
       write_i(0xa8); /* set  multiplex ratio */
       write_i(0x1f); /* 1/32 */       
   
       write_i(0xc8); /* set  com scan direction */
   
       write_i(0xd3); /* set  display offset  */
       write_i(0x00);
   
       write_i(0xd5); /* set  display clock divide/oscillator frequency */
       write_i(0xf0); 
   
       write_i(0xD8);    /*set area color mode off */
       write_i(0x05);

       write_i(0xD9);   /* Set Pre-Charge Period */
       write_i(0xC2);

       write_i(0xda); /* set  com pin configuartion */
       write_i(0x12); 
   
       write_i(0xdb); /* set  Vcomh */
       write_i(0x08);

       write_i(0xaf); /* set  display on */ 

                           

}



/*¸±³جت½*/   

void write_w(unsigned char dat)
{
   unsigned char m,da;
   unsigned char j;
   da=dat;
   for(j=0;j<8;j++)
   {
     m=da;
     SCL=0;     
     m=m&0x80;
     if(m==0x80)
        {
      	  SDA=1;
        }
     else
        {
      	  SDA=0;
        }     
     da=da<<1;
     SCL=1;
    }
    SCL=0;
    SCL=1;
}
      
void write_i(unsigned char ins)
{
   start();
   write_w(0x78);
   write_w(0x00);
   write_w(ins);
   stop();
}

void write_d(unsigned char dat)
{
   start();
   write_w(0x78);
   write_w(0x40);
   write_w(dat);
   stop();
}          

 void  start()
{
  SCL=1;
  SDA=1;
  SDA=0;
  SCL=0;
}

void  stop()
{
  SCL=0;
  SDA=0;
  SDA=1;
  SCL=1;
}

void delay(unsigned int t)
{
     while(t>0)
       {
       	  t--;
       }
}


