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

📄 lcd.h

📁 PHILIPS FQ1286高频头c51驱动程序
💻 H
字号:

//#define   IN1_CMD  0x28
//#define   IN2_CMD  0x29
//#define   READ_CMD 0x2a

sbit LCD_RS  = P1^3;       
sbit LCD_RW  = P1^4; 
sbit LCD_EN  = P1^5;       

//P2.0-P2.7 == LCD_DB0 -- LCD_DB7

void delay_2ms(void)
{
   unsigned char i,j;
//   for (i=0;i<4;i++)
   for (i=0;i<3;i++)
	 for(j=0;j<250;j++)
        _nop_();
}

void delay_10ms(void)
{
   unsigned char i;
     for (i=0; i<5; i++)
	    delay_2ms();
}

void delay_1s(void)
{
   unsigned char i;
     for (i=0;i<10;i++)
	    delay_10ms();
}

void write_ins(unsigned char wr_data)
{

    LCD_RS = 0;
    delay_2ms();
    P2	 = wr_data;
    LCD_EN  = 1;
    _nop_();
    _nop_();
    LCD_EN  = 0;
    LCD_RS  = 1;
}

void write_data(unsigned char wr_data)
{

    LCD_RS = 1;
    delay_2ms();
    P2 = wr_data;
    LCD_EN  = 1;
    _nop_();
    _nop_();
    LCD_EN  = 0;
    LCD_RS  = 1;
}

void init_lcd(void)
{

	LCD_RS = 1;
    LCD_RW = 0;
    LCD_EN = 0;
    delay_10ms();    //reset delay
    delay_10ms();   
    delay_10ms();   
	write_ins(0x01); //clear screen
    delay_2ms();
    delay_2ms();
    write_ins(0x06);
    write_ins(0x0c);
    write_ins(0x18);
    write_ins(0x38);

    //-------------//
    // CGRAM : 00H //
    //-------------//
    write_ins(0x40); 
    write_data(0x15); 
    write_data(0x0a); 
    write_data(0x15); 
    write_data(0x0a); 
    write_data(0x15); 
    write_data(0x0a); 
    write_data(0x15); 
    write_data(0x0a); 

    //-------------//
    // CGRAM: 01H
    //-------------//    
	write_ins(0x48); 
	write_data(0x0a); 
    write_data(0x15);
	write_data(0x0a);
    write_data(0x15);
	write_data(0x0a);
    write_data(0x15);
	write_data(0x0a);
    write_data(0x15);
    //--------------//
	write_ins(0x01); //clear screen
    delay_2ms();
    delay_2ms();

}

void test_lcd(void)
{    unsigned char i;
     write_ins(0x01);
	 delay_2ms();
     write_ins(0x80);
     for (i=0;i<8;i++)
	   write_data(0x00);
     write_ins(0xc0); 
     for (i=0;i<8;i++)
		write_data(0x00);
     delay_1s(); 

     write_ins(0x01);
	 delay_2ms();
	 write_ins(0x80);
	 for(i=0;i<8;i++)
        write_data(0xff);
	 write_ins(0xc0);
	 for(i=0;i<8;i++)
        write_data(0xff);
     delay_1s(); 
     //
     write_ins(0x01);
	 delay_2ms();
     write_ins(0x80);	 
	 for(i=0;i<8;i++)
        write_data(0x01);
	 write_ins(0xc0);
	 for(i=0;i<8;i++)
        write_data(0x01);
     delay_1s(); 
	 //
	 write_ins(0x01);
	 delay_2ms();
	 write_ins(0x80);
     write_data(0x47);
     write_data(0x4f);
     write_data(0x4f);
     write_data(0x44);
    
	 write_data(0x20);
     write_data(0x4c);
     write_data(0x55);
     write_data(0x43);

	 write_ins(0xc0);
     write_data(0x4b);
     write_data(0x20);
     write_data(0x54);
     write_data(0x4f);

     write_data(0x20);
     write_data(0x59);
     write_data(0x4f);
     write_data(0x55);
	 delay_1s();

}


void dis_freq(void)
{
     write_ins(0x06);
     write_ins(0x0c);
     write_ins(0x10);//0x18
     write_ins(0x38);

	 write_ins(0x01);
	 delay_2ms();
	 write_ins(0x80);
     write_data(0x52);//R
     write_data(0x46);//F
     write_data(0x72);//r
     write_data(0x65);//e
    
	 write_data(0x71);//q
     write_data(0x20);//space
     write_data(digit5);//msb
     write_data(digit4);//

	 write_ins(0xc0);
     write_data(digit3);
     write_data(digit2);
     write_data(0x2e);//dot
     write_data(digit1);

     write_data(digit0);//lsb
     write_data(0x4d);//M
     write_data(0x48);//H
     write_data(0x7a);//z
	
}


void move_cursor(unsigned char pos)
{
	if(pos > 15)
		return;
    write_ins(0x06);//0x06
    write_ins(0x0f);//0x0c
    write_ins(0x10);//0x18
    write_ins(0x38);
	if(pos < 8)
      write_ins(0x80+pos);
    else  
      write_ins(0xc0+pos-8); 	
}



void move_cursor_left(void)
{
   if(digit_pos >= 0 && digit_pos <= 6)
   {
      if(digit_pos == 0)
		 digit_pos = 5;
	  else
         digit_pos = digit_pos - 1;
	  if(digit_pos < 4)
         move_cursor(digit_pos+6);
	  else
         move_cursor(digit_pos+7);
   }
}

void move_cursor_right(void)
{
   if(digit_pos >= 0 && digit_pos <= 5)
	 {
       if(digit_pos == 5)
         digit_pos = 0;
	   else
         digit_pos = digit_pos + 1;
	   if(digit_pos < 4)
          move_cursor(digit_pos+6);
	   else
          move_cursor(digit_pos+7);
	 }
}

void set_digit_value(unsigned char value)
{
   if(digit_pos > 5)
	   return;
   if(digit_pos == 0)
		digit5 = value;
   else if(digit_pos == 1)
		digit4 = value;
   else if(digit_pos == 2)
		digit3 = value;
   else if(digit_pos == 3)
		digit2 = value;
   else if(digit_pos == 4)
		digit1 = value;
   else if(digit_pos == 5)
    	digit0 = value;

   write_ins(0x06);//0x06
   write_ins(0x0f);//0x0c
   write_ins(0x10);//0x18
   write_ins(0x38);

   if(digit_pos < 2)
      write_ins(0x80 + digit_pos + 6);
   else if(digit_pos < 4)  
      write_ins(0xc0 + digit_pos - 2);
   else
      write_ins(0xc0 + digit_pos - 1);
   write_data(value);

}

void cal_in_freq(void)
{
   lo_freq = 0;
   lo_freq = lo_freq*10 + digit5 - 0x30;
   lo_freq = lo_freq*10 + digit4 - 0x30;
   lo_freq = lo_freq*10 + digit3 - 0x30;
   lo_freq = lo_freq*10 + digit2 - 0x30;
   lo_freq = lo_freq*10 + digit1 - 0x30;
   lo_freq = lo_freq*10 + digit0 - 0x30;
   if(lo_freq > MAX_IPF)
	   return;
   if(lo_freq < MIN_IPF)
	   return;
   in_freq = lo_freq;
   write_ins(0x06);
   write_ins(0x0c);
   write_ins(0x10);//0x18
   write_ins(0x38);
   digit_pos = 20;
   wr_fq1216_rf();
  // wr_fq1216_if_i();
}

⌨️ 快捷键说明

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