久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > S3C44B0X微處理器內置LCD控制器

S3C44B0X微處理器內置LCD控制器

作者: 時間:2010-09-13 來源:網絡 收藏

本文引用地址:http://cqxgywz.com/article/151558.htm

  KCS057QV1AJ驅動程序開發

  驅動程序包括初始化端口D和端口C的函數,初始化的函數,打開和關閉顯示模塊的函數,在顯示模塊上顯示條紋的函數,所有的函數都有詳細的注釋。

  初始化端口D和端口C函數如下:

  void Port_Init(void)

  {

  rPCONC=0x5f55ffff;/GPC15為輸出端口,GPC4-GPC7分配給LCD數據線VD7-VD4;

  rPUPC=0x0;/端口C所有的引腳上拉允許;

  rPDATC=0x3fff; /端口C所有的引腳初始化為高電平;

  rPCOND=0xaaaa;/端口D所有的引腳分配給LCD;

  rPUPD=0x0;/端口D所有的引腳上拉允許;

  rPDATD=0xff;/端口D所有的引腳初始化為高電平。

  }

  初始化LCD函數如下:

  void LCD_Init()

  {

  int i;

  U32 LCDBASEU,LCDBASEL,LCDBANK;

  LCDDisplayOpen(FALSE);/關閉LCD;

  rLCDCON1=(0);/關閉視頻輸出;

  rLCDCON2=(239)|(11910)|(1521);

  /設置確定行掃描的返回時間為15個MCLK,設置屏為彩色320 240點;

  LCDBANK=0xc000000>>22;/設置顯示緩沖區首地址在系統存儲器中的位置;

  LCDBASEU=0x0;/設置緩沖區的開始地址;

  LCDBASEL=LCDBASEU+(160) 240;

  rLCDSADDR1=(0x327)|(LCDBANK21)|LCDBASEU;

  /設置顯示模塊為彩色模式等;

  rLCDSADDR2=(029)|(021)|LCDBASEL;

  rLCDSADDR3=(320/2)|(09);/不使用虛屏;

  rREDLUT=0xfca86420;/設置紅色查表寄存器, 與特定的顯示要求有關;

  rGREENLUT=0xfca86420;/設置綠色查表寄存器,與特定的顯示要求有關;

  rBLUELUT=0xfffffa50;/設置蘭查表寄存器,與特定的顯示要求有關;

  rLCDCON1=LCDCON1_ENVID|01|02|03|(25) |17|(0x38)|(0x310)|(CLKVAL12);

  /使能視頻輸出,8位單掃描方式,設置WDLY,WLH,CLKVAL;

  for(i=0;i80*240;i++)/顯示緩沖區清零。

  *(pLCDBuffer16+i)=0x0;

  }

  從圖2知,GPC15用來打開關閉LCD。打開和關閉LCD顯示模塊的函數如下:

  void LCDDisplayOpen(U8 isOpen)

  {

  if(isOpen)

  {

  rPDATC|=0x8000;/打開LCD

  }

  else{

  rPDATC=0x7fff;/關閉LCD

  }

  }

  在LCDBANK寄存器中已經定義了顯示緩沖區在系統存儲器的段首地址為0xc000000,要顯示字符、圖片只需將字符、圖片取模得到的數據送到該緩沖區就可以了。但是要注意,彩色LCD是8位數據表示一個象素。對緩沖區首地址進行如下定義:

  U32 pLCDBuffer16=(U32*)0xc000000;

  下面舉一個在整個屏上顯示明暗相間的條紋的程序,顯示明暗條紋函數如下:

  void LCDstripe ()

  {

  int i,lcddata;

  for(i=0;i(320*240)/4;i++)

  {

  lcddata0=0x0ffff0000;

  *(pLCDBuffer16+i)=lcddata;/向幀緩沖區送數據,每次4個象素的數據。

  }


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉