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

📄 lcd44b0.c

📁 S3c44B0x驱动16灰阶240*160液晶屏程式
💻 C
字号:
/*---------------------------------------------------------文件	: LcdDrv1335.c日期	: 2005-6-24---------------------------------------------------------*/#include "LCDConf.h"        #include "const.h"#include "44b.h"#include "44blib.h"#include "def.h"extern const unsigned char gImage_zz[17120];U32 frameBuffer16[SCR_YSIZE][SCR_XSIZE/8];void show(U16 dat1,U16 dat2){   U16 *p;   U32 k,l;      p=(U16 *)frameBuffer16;   for(l=0;l<80;l++)   {      for(k=0;k<60;k++)      *p++=dat1;      for(k=0;k<60;k++)      *p++=dat2;    }     Delay(25000);}void show_pic(U8 * pp){   U8 *p;   U32 k,l;      p=(U8 *)frameBuffer16;   for(l=0;l<160;l++)   {      for(k=0;k<120;k++)      *p++=*pp++;   }     Delay(25000);}void Set_Vop(unsigned char value){	 unsigned char ii;	  // VDIN PC4	  // VCLK PC5	  // VSTR PC6      Delay(100);      rPDATC|=0x0020;    //VCLK=1;      Delay(200);      rPDATC|=0x0040;    //VSTRB=1;      Delay(200);      rPDATC&=~0x0040;    //VSTRB=0;      rPDATC&=~0x0020;    //VCLK=0;	       //reset      for (ii=0;ii<8; ii++)      {         if((value&0x80)==0x80)            rPDATC|=0x0010;    //VDIN=CY;         else            rPDATC&=~0x0010;    //VDIN=CY;         Delay(100);         rPDATC|=0x0020;    //VCLK=1;         Delay(100);         rPDATC&=~0x0020;    //VCLK=0;         Delay(100);         value=value<<1;      }       rPDATC|=0x0040;    //VSTRB=1;      Delay(100);      rPDATC&=~0x0040;    //VSTRB=0;      Delay(100); //read}  //初始化LCD显示参数以及界面void LCD_Init(void) {	rPDATC = 0xffff;		rPCONC = 0x00005500;		rPUPC  = 0x0000;	rPDATD= 0xff;	rPCOND= 0xaaaa;		rPUPD = 0x0;		rDITHMODE=0x12210; 	    rDP1_2 =0xa5a5;      	rDP4_7 =0xba5da65;	rDP3_5 =0xa5a5f;	rDP2_3 =0xd6b;	rDP5_7 =0xeb7b5ed;	rDP3_4 =0x7dbe;	rDP4_5 =0x7ebdf;	rDP6_7 =0x7fdfbfe;	rLCDCON1=(0)|(0<<1)|(1<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(10<<12);	    // disable,4B_SNGL_SCAN,WDLY=16clk,WLH=16clk,CLKV=4	rLCDCON2=(LINEVAL_G16)|(HOZVAL_G16<<10)|(10<<21);  	    //LINEBLANK=10 (without any calculation) 	rLCDSADDR1= (0x2<<27) | ( ((unsigned int)frameBuffer16>>22)<<21 ) | M5D((unsigned int)frameBuffer16>>1);	    // 16-gray, LCDBANK, LCDBASEU	rLCDSADDR2= (M5D((unsigned int)frameBuffer16)>>1)+((SCR_XSIZE>>2)*LCD_YSIZE)|(1<<29);	rLCDSADDR3= (LCD_XSIZE/4) | ( ((SCR_XSIZE-LCD_XSIZE)/4)<<9 );	rLCDCON1=(1)|(0<<1)|(1<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(10<<12);       Set_Vop(0x6A);	  }void lcd_test(void){   show(0xf0f0,0x0f0f);   show(0x0000,0x0000);   show_pic((U8 *)gImage_zz);}

⌨️ 快捷键说明

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