激情人妻在线,又长又硬又粗一区二区三区,国产爽爽爽网,最新中文字幕久久二区

  1. <bdo id="cbt7u"><span id="cbt7u"><meter id="cbt7u"></meter></span></bdo>

    <bdo id="cbt7u"><span id="cbt7u"><meter id="cbt7u"></meter></span></bdo>
  2. <track id="cbt7u"><input id="cbt7u"></input></track>
  3. 文章詳情

    RA8875驅(qū)動彩色TFT液晶模塊應(yīng)用程序

    日期:2025-07-02 14:12
    瀏覽次數(shù):2404
    摘要: RA8875驅(qū)動彩色TFT液晶模塊應(yīng)用程序 摘要:本文介紹了清達(dá)光電5.7英寸彩色TFT液晶模塊,主要介紹RA8875控制器的功能以及驅(qū)動320240此款顯示屏的應(yīng)用程序等。 1,RA8875驅(qū)動彩色TFT液晶模塊應(yīng)用程序——RA8875介紹: RA8875 是一個文字與繪圖模式的雙圖層液晶顯示 (TFT-LCD) 控制器,可結(jié)合文字或2D圖形應(yīng)用,*大可支持到800*480 點分辨率的中小尺寸數(shù)字面板。內(nèi)建 768KB 顯示內(nèi)存可提供大多數(shù)使用者的應(yīng)用一個更彈性的解決方案。此外,使用者可藉由選用外部串行式Flash 接口,支持B...

    RA8875驅(qū)動彩色TFT液晶模塊應(yīng)用程序


    摘要:本文介紹了清達(dá)光電5.7英寸彩色TFT液晶模塊,主要介紹RA8875控制器的功能以及驅(qū)動320240此款顯示屏的應(yīng)用程序等。


    1,RA8875驅(qū)動彩色TFT液晶模塊應(yīng)用程序——RA8875介紹:

        RA8875 是一個文字與繪圖模式的雙圖層液晶顯示 (TFT-LCD) 控制器,可結(jié)合文字或2D圖形應(yīng)用,*大可支持到800*480 點分辨率的中小尺寸數(shù)字面板。內(nèi)建 768KB 顯示內(nèi)存可提供大多數(shù)使用者的應(yīng)用一個更彈性的解決方案。此外,使用者可藉由選用外部串行式Flash 接口,支持BIG5/GB 編碼,可提供*大達(dá)32*32 像素之的字型輸入。在圖形的使用上,RA8875 支持2D 的BTE 引擎 (Block Transfer Engine),此功能兼容于一般通用的2D BitBLT 功能,可處理大量圖形數(shù)據(jù)轉(zhuǎn)換與傳送。同時RA8875 也內(nèi)建幾何圖形加速引擎 (Geometric Speed-up Engine),提供使用者透過簡單的設(shè)定輕松畫出直線、矩形、圓形和橢圓的幾何圖形。為了貼近終端始用者的應(yīng)用,RA8875 整合了強(qiáng)大的功能,如畫面卷動功能、顯示浮動窗口、圖形Pattern 及文字放大等功能,可大量節(jié)省使用者軟件開發(fā)的時間,并提升MCU軟件的執(zhí)行效率。

        RA8875 提供低成本的 8080/6800 并列式MCU 接口,由于內(nèi)建強(qiáng)大的硬件加速功能,可降低數(shù)據(jù)傳輸所需的時間并且改善效率。RA8875提供串行式 SPI/I2C 等極少量腳位的界面,內(nèi)建 4-wire 的觸控面板控制器,以及2組脈波寬度調(diào)變 (PWM) ,可用于調(diào)整面板背光或其它應(yīng)用。相對于其它的解決方案,RA8875 是一個功能強(qiáng)大及低成本的彩色TFT 控制器,讓使用者順利解決軟硬件開發(fā)上的疑慮,同時達(dá)成低成本、高效能的系統(tǒng)方案。

    RA8875控制器特點



    2,RA8875驅(qū)動彩色TFT液晶模塊應(yīng)用程序——清達(dá)光電5.7英寸彩色TFT液晶模塊HGF05731介紹

    HGF05731是一款文字與圖形雙圖層顯示的液晶模組, 可結(jié)合文字或2D圖形應(yīng)用。 支持BIG5/GB/UNICODE等編碼;在圖形的使用上,支持一2D的BET引擎,此BET兼容于一般通用的2D BitBLT的功能,可用于處理大量圖形數(shù)據(jù)的轉(zhuǎn)換;除此還包括一些強(qiáng)大的圖形處理功能,如畫面旋轉(zhuǎn)功能、卷動功能、文字放大等等,并提升MCU軟件的執(zhí) 行效率。   此款產(chǎn)品主要特點如下: >  支持文字和繪圖兩種混合顯示模式 >  色彩深度:256色/64K色 >  支持320X240Pixels 2 Layers >  此款默認(rèn)8-bit 8080時序,是一款功能強(qiáng)大的彩色TFT屏。 (支持8-bit 8080、3/4-wire SPI 及I2C時序,時序可選) >  內(nèi)建DDRAM: 768KB >  內(nèi)建10KB字型ROM(8*16Dots)及支持標(biāo)準(zhǔn)ISO8859-1/2/3/4編碼 >  支持外面串列式Flash/ROM SPI 界面 >  支持集通公司UNICODE/BIG5/GB系列字庫(16X16/24X24/32X32Dots) >  支持1倍到4倍字型放大(垂直和水平) >  支持文字垂直旋轉(zhuǎn)模式功能 >  內(nèi)建2D BET功能 >  內(nèi)建幾何圖形加速繪圖引擎 >  提供可調(diào)整大小的文字寫入游標(biāo)功能 >  提供32*32pixel的圖形光標(biāo)功能 >  支持256個使用者自定8X16字元符號 >  支持16個使用者自建8X8像素圖形Pattern,或4個使用者自建16X16像素圖形Pattern >  脈波寬度調(diào)制(PWM)控制LED背光 >  內(nèi)建4線式觸控面板控制器(此款產(chǎn)品觸摸屏可選) >  提供低耗電的睡眠模式


    3,RA8875驅(qū)動彩色TFT液晶模塊應(yīng)用程序——應(yīng)用程序

    #include "lcd.h"
    #include "delay.h"
    #include "stdlib.h"
    //#include "car_pic.h"
    #define LCD_FAST_IO     1     //定義是否使用快速IO    0,不實用.1,使用    

    #if LCD_FAST_IO==1 //快速IO
    //寫寄存器函數(shù)
     void LCD_CmdWrite(u8 Cmd)
    {
        LCD_RS_SET;//寫地址  
        LCD_CS_CLR;
        DATAOUT(Cmd);
        LCD_WR_CLR;
        LCD_WR_SET;   
        LCD_CS_SET;  
    }

    #else//正常IO
    //寫寄存器函數(shù)
    void LCD_CmdWrite(u8 Cmd)
    {
        LCD_RS=1;//寫地址  
         LCD_CS=0;
        DATAOUT(Cmd);
        LCD_WR=0;
        delay_ms(10);
        LCD_WR=1;
         LCD_CS=1;   
    }     
    #endif

    void LCD_DataWrite(u16 Data)
    {    GPIOA->CRL=0X33333333; //PB0-7  上拉輸出
        GPIOA->CRH=0X33333333; //PB8-15 上拉輸出
        GPIOA->ODR=0XFFFF;    //全部輸出高
        LCD_CS_CLR;
        LCD_RS_CLR;

        DATAOUT(Data);
            LCD_WR_CLR;    
        LCD_WR_SET;       
        LCD_RS_SET;
        LCD_CS_SET;

        

    }  



    //***********************讀狀態(tài)
    u8 LCD_StatusRead(void)
    {
           u16 t;
        GPIOB->CRL=0X88888888; //PB0-7  上拉輸入
        GPIOB->CRH=0X88888888; //PB8-15 上拉輸入
        GPIOB->ODR=0XFFFF;    //全部輸出高
    #if LCD_FAST_IO==1 //快速IO
        LCD_RS_SET;
        LCD_CS_CLR;
        //讀取數(shù)據(jù)(讀寄存器時,并不需要讀2次)
        LCD_RD_CLR;            
        t=DATAIN;    
        LCD_RD_SET;
        LCD_RS_CLR;
        LCD_CS_SET;
    #else
        LCD_RS=1;
        LCD_CS=0;
        //讀取數(shù)據(jù)(讀寄存器時,并不需要讀2次)
        LCD_RD=0;
        t=DATAIN;
        LCD_RD=1;
        LCD_CS=1;
    #endif  
        GPIOB->CRL=0X33333333; //PB0-7  上拉輸出
        GPIOB->CRH=0X33333333; //PB8-15 上拉輸出
        GPIOB->ODR=0XFFFF;    //全部輸出高
        return t;    

    }

    //***********************讀數(shù)據(jù)
    u8 LCD_DataRead(void)
    {

          u16 t;
        GPIOB->CRL=0X88888888; //PB0-7  上拉輸入
        GPIOB->CRH=0X88888888; //PB8-15 上拉輸入
        GPIOB->ODR=0XFFFF;    //全部輸出高
    #if LCD_FAST_IO==1 //快速IO
        LCD_RS_CLR;
        LCD_CS_CLR;
        //讀取數(shù)據(jù)(讀寄存器時,并不需要讀2次)
        LCD_RD_CLR;            
        t=DATAIN;    
        LCD_RD_SET;
        LCD_RS_SET;
        LCD_CS_SET;
    #else
        LCD_RS=0;
        LCD_CS=0;
        //讀取數(shù)據(jù)(讀寄存器時,并不需要讀2次)
        LCD_RD=0;
        t=DATAIN;
        LCD_RD=1;
        LCD_CS=1;
    #endif  
        GPIOB->CRL=0X33333333; //PB0-7  上拉輸出
        GPIOB->CRH=0X33333333; //PB8-15 上拉輸出
        GPIOB->ODR=0XFFFF;    //全部輸出高
        return t;  
    }
        

    //***********************寫指令
    void Write_Dir(u8 Cmd,u16 Data)
    {
      LCD_CmdWrite(Cmd);
      LCD_DataWrite(Data);
    }


    //----------------------------//
    void LCD_Reset(void)
    {

        RCC->APB2ENR|=1<<3;//先使能外設(shè)PORTA時鐘
         RCC->APB2ENR|=1<<4;//先使能外設(shè)PORTC時鐘

        RCC->APB2ENR|=1<<0;    //開啟輔助時鐘
        JTAG_Set(SWD_ENABLE);  //開啟SWD
                                                
        //PORTC5~10復(fù)用推挽輸出     
        GPIOC->CRH&=0XFFFFF000;
        GPIOC->CRH|=0X00000333;
        GPIOC->CRL&=0X000FFFFF;
        GPIOC->CRL|=0X33300000;  
        GPIOC->ODR|=0X07E0;     
        //PORTA 推挽輸出     
        GPIOB->CRH=0X33333333;
        GPIOB->CRL=0X33333333;     
        GPIOB->ODR=0XFFFF;
        LCD_RST = 0; //RA8875 RESET pin
        delay_ms(1);
        LCD_RST = 1;
        delay_ms(10);
    }    

    void RA8875_PLL_ini(void)
    {
      #ifdef P320x240
        LCD_CmdWrite(0x88);    
        LCD_DataWrite(0x0a);
        delay_ms(1);
        LCD_CmdWrite(0x89);
        LCD_DataWrite(0x02);       
        delay_ms(1);
    #endif


    #ifdef P480x272
        LCD_CmdWrite(0x88);      
        LCD_DataWrite(0x0a);
        delay_ms(1);     
        LCD_CmdWrite(0x89);        
        LCD_DataWrite(0x02);  
        delay_ms(1);
    #endif

    #ifdef P640x480
        LCD_CmdWrite(0x88);    
        LCD_DataWrite(0x0b);
        delay_ms(1);    
        LCD_CmdWrite(0x89);        
        LCD_DataWrite(0x02);     
        delay_ms(1);
    #endif

    #ifdef P800x480
        LCD_CmdWrite(0x88);       
        LCD_DataWrite(0x0c);
        delay_ms(1);    
        LCD_CmdWrite(0x89);       
        LCD_DataWrite(0x02);  
        delay_ms(1);
    #endif
    }    

    //------------------------------------------//
    void LCD_Initial(void)
    {     

        RA8875_PLL_ini();
        LCD_CmdWrite(0x10);  //SYSR   bit[4:3]=00 256 color  bit[2:1]=  00 8bit MPU interface
        //LCD_DataWrite(0x0c);   // if 8bit MCU interface   and 65k color display                              
        LCD_DataWrite(0x0F); // if 16bit MCU interface   and 65k color display  
    #ifdef P320x240
    //==============    Display Window    320x240 ==================    
        LCD_CmdWrite(0x04);     //set PCLK invers
        LCD_DataWrite(0x81);  
        delay_ms(1);
        
         //Horizontal set
        LCD_CmdWrite(0x14); //HDWR//Horizontal Display Width Setting Bit[6:0]
        LCD_DataWrite(0x27);//Horizontal display width(pixels) = (HDWR + 1)*8   
        LCD_CmdWrite(0x15); //Horizontal Non-Display Period Fine Tuning Option Register (HNDFTR)
        LCD_DataWrite(0x00);//Horizontal Non-Display Period Fine Tuning(HNDFT) [3:0]  
        LCD_CmdWrite(0x16); //HNDR//Horizontal Non-Display Period Bit[4:0]
        LCD_DataWrite(0x03);//Horizontal Non-Display Period (pixels) = (HNDR + 1)*8  
        LCD_CmdWrite(0x17); //HSTR//HSYNC Start Position[4:0]
        LCD_DataWrite(0x02);//HSYNC Start Position(PCLK) = (HSTR + 1)*8
        LCD_CmdWrite(0x18); //HPWR//HSYNC Polarity ,The period width of HSYNC.
        LCD_DataWrite(0x03);//HSYNC Width [4:0]   HSYNC Pulse width(PCLK) = (HPWR + 1)*8
         //Vertical set
        LCD_CmdWrite(0x19); //VDHR0 //Vertical Display Height Bit [7:0]
        LCD_DataWrite(0xef);//Vertical pixels = VDHR + 1
        LCD_CmdWrite(0x1A); //VDHR1 //Vertical Display Height Bit [8]
        LCD_DataWrite(0x00);//Vertical pixels = VDHR + 1
        LCD_CmdWrite(0x1B); //VNDR0 //Vertical Non-Display Period Bit [7:0]
        LCD_DataWrite(0x0f);//Vertical Non-Display area = (VNDR + 1)
        LCD_CmdWrite(0x1C); //VNDR1 //Vertical Non-Display Period Bit [8]
        LCD_DataWrite(0x00);//Vertical Non-Display area = (VNDR + 1)   
        LCD_CmdWrite(0x1D); //VSTR0 //VSYNC Start Position[7:0]
        LCD_DataWrite(0x0e);//VSYNC Start Position(PCLK) = (VSTR + 1)
        LCD_CmdWrite(0x1E); //VSTR1 //VSYNC Start Position[8]
        LCD_DataWrite(0x06);//VSYNC Start Position(PCLK) = (VSTR + 1)
        LCD_CmdWrite(0x1F); //VPWR //VSYNC Polarity ,VSYNC Pulse Width[6:0]
        LCD_DataWrite(0x01);//VSYNC Pulse Width(PCLK) = (VPWR + 1)

      //Active window  set
      //setting active window X
        LCD_CmdWrite(0x30); //Horizontal Start Point 0 of Active Window (HSAW0)
        LCD_DataWrite(0x00); //Horizontal Start Point of Active Window [7:0]
        LCD_CmdWrite(0x31); //Horizontal Start Point 1 of Active Window (HSAW1)       
        LCD_DataWrite(0x00); //Horizontal Start Point of Active Window [9:8]
        LCD_CmdWrite(0x34); //Horizontal End Point 0 of Active Window (HEAW0)
        LCD_DataWrite(0x3F); //Horizontal End Point of Active Window [7:0]
        LCD_CmdWrite(0x35); //Horizontal End Point 1 of Active Window (HEAW1)       
        LCD_DataWrite(0x01); //Horizontal End Point of Active Window [9:8]

       //setting active window Y
        LCD_CmdWrite(0x32); //Vertical Start Point 0 of Active Window (VSAW0)
        LCD_DataWrite(0x00); //Vertical Start Point of Active Window [7:0]
        LCD_CmdWrite(0x33); //Vertical Start Point 1 of Active Window (VSAW1)       
        LCD_DataWrite(0x00); //Vertical Start Point of Active Window [8]
        LCD_CmdWrite(0x36); //Vertical End Point of Active Window 0 (VEAW0)
        LCD_DataWrite(0xef); //Vertical End Point of Active Window [7:0]
        LCD_CmdWrite(0x37); //Vertical End Point of Active Window 1 (VEAW1)       
        LCD_DataWrite(0x00); //Vertical End Point of Active Window [8]

    #endif 


    文件內(nèi)容有限,如需更全程序,請來電13701081790或者QQ 453189731 索取