亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 320_240_driver.c

?? LCD240*320液晶驅動程序(RA8835控制器)
?? C
?? 第 1 頁 / 共 2 頁
字號:
//===========================================================================
//            TEST FOR MTG3316
//            CONTROLLER: SED1335
//            INTERFACE: 8080
//            SIDE: 320 X 240 DOTS
//===========================================================================
#include  <msp430x24x.h>
#include "math.h"
#include "ra8835.h"
//=========================================================================== 
unsigned int    txthome,grhome;
unsigned int    lcmcp,lcmdp,lcd_data;
extern int sindata[256];
//================================================
//         系統設置
// dataTAB1   系統參數設置
// dataTAB2   顯示控制設置
//================================================
const unsigned int dataTAB1[ ]={0x0030,0x0087,0x0007,0x0027,0x002C,0x00F0,0x0028,0x0000};
const unsigned int dataTAB2[ ]={0x0000,0x0000,0x00F0,0x00b0,0x0004,0x00F0,0x0000,0x0000,0x0000,0x0000};
//================================================
//             字母點陣定義
//================================================
const unsigned int  HZ8_DOT_LIB[16]=
{
/*--  文字:  0  --0*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=8x16   --*/
0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00
};
const unsigned int  HZ16_DOT_LIB[32]=
{
 /*--  文字:  江  --0*/
/*--  宋體12;  此字體下對應的點陣為:寬x高=16x16   --*/
0x20,0x00,0x10,0x00,0x13,0xFC,0x00,0x40,0x88,0x40,0x48,0x40,0x50,0x40,0x10,0x40,
0x10,0x40,0x20,0x40,0xE0,0x40,0x20,0x40,0x20,0x40,0x2F,0xFE,0x20,0x00,0x00,0x00 
};
const unsigned int  HZ24_DOT_LIB[72]=
{
  /*--  文字:  電 0 --*/
/*--  宋體18;  此字體下對應的點陣為:寬x高=24x24   --*/
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x10,0x00,0x00,0x10,0x00,0x00,
0x10,0x00,0x0F,0xFF,0xF0,0x08,0x10,0x20,0x08,0x10,0x20,0x08,0x10,0x20,0x08,0x10,
0x20,0x0F,0xFF,0xE0,0x08,0x10,0x20,0x08,0x10,0x20,0x08,0x10,0x20,0x08,0x10,0x20,
0x0F,0xFF,0xE0,0x08,0x10,0x00,0x00,0x10,0x08,0x00,0x10,0x08,0x00,0x10,0x04,0x00,
0x18,0x0E,0x00,0x0F,0xFC,0x00,0x00,0x00
};
//================================================
//        接口設置
//     8位數據 :(DB0--DB7)   
//          輸出口 P5.0~P5.7 
//     控制信號:(/RES,C/D,/CE,/WR,/RD)
//          輸出口 P2.3~P2.7        
//================================================ 
void lcd_init_io(void)
{
//        WDTCTL = WDTPW + WDTHOLD;          // 關閉看門狗
        
	P2DIR = 0xff;                      //控制信號 P4.3~P4.7  /RES,C/D,CE,/WR,/RD
	P2OUT = 0xff;                      //wait p4.0
	
	P5DIR = 0xff;                      //數據端口 P5.0~P5.7 DB0~DB7
	P5OUT = 0xff;
}	
//===============================================
//===============================================
void Reset_lcd(void)
{	
	unsigned int i;
//------------------------------
                                             //8080方式        
	P2OUT &= ~BIT3;                       //reset=0   P4.3=0
//------------------------------
	for(i=10;i>0;i--)
    {
      _NOP();
    }
	P2OUT |= BIT3;                      //reset=1 	P4.3=1                                      
}	

//**********************************************
// write one command to lcd
//    寫命令
//==============================================
void write_lcd_command(unsigned int a)
{
    unsigned int i;
//=================================	
    P5OUT = a;
//================================= 
    P2OUT &= ~BIT5;           // ce=0  P4.5=0	 
    P2OUT |= BIT4;            // c/d=1 P4.4=1   command   	
    P2OUT |= BIT7;            // rd=1  P4.7=1   
  
    P2OUT &= ~BIT6;           // wr=0  P4.6=0
    for(i=20;i>0;i--)
    {
      _NOP();
    }
    P2OUT |= BIT6;           // wr=1  P4.6=1
    P2OUT |= BIT5;           // ce=1  P4.5=1
//=================================        
}
//*********************************************
//   write one data to lcd
//     寫數據
//*********************************************
void write_lcd_data(unsigned int a)
{  
	unsigned int i;
//=============================	
    P5OUT = a; 
//============================== 	 
    P2OUT &= ~BIT5;            // ce=0  P4.5=0	 
    P2OUT &= ~BIT4;            // c/d=0 P4.4=0   data   	
    P2OUT |= BIT7;            // rd=1  P4.7=1   
  
    P2OUT &= ~BIT6;           // wr=0  P4.6=0
    for(i=20;i>0;i--)
    {
      _NOP();
    }
    P2OUT |= BIT6;           // wr=1  P4.6=1
    P2OUT |= BIT5;           // ce=1  P4.5=1
//==================================================    
}
//*********************************************
//   read display data or cursr adress
//     讀顯示數據或光標地址
//*********************************************
unsigned int read_lcd_data(void)
{  
    unsigned int i,data4;
//==============================	
    P5DIR = 0x00;                 //數據端口輸入
//============================== 	 
    P2OUT &= ~BIT5;             // ce=0  P4.5=0	 
    P2OUT |= BIT4;              // c/d=1 P4.4=1   data   	
    P2OUT |= BIT6;              // wr=1  P4.6=1
//=================================  
    P2OUT &= ~BIT7;            // rd=0  P4.7=0   
    for(i=2;i>0;i--)
    {
      _NOP();
    }
//=================================
    data4 = P5IN&0xff;    
//=================================        
//    P2OUT |= BIT2;             // rd=1  P4.7=1 
    P2OUT |= BIT7;
    P2OUT |= BIT5;             // ce=1  P4.5=1	 
//=================================
    P5DIR = 0xff;                 //重新定義數據端口輸出
//================================= 
     return(data4);   
}
//*********************************************
//   clear text ram
//   清除文本區
//==================================================
void clr_textram(void)
{
    unsigned int i;	
   write_lcd_command(0x4c);                                //  Set direction of cursor movement
   write_lcd_command(0x46);                                //  Set cursor address
   write_lcd_data(0);
   write_lcd_data(0);
   write_lcd_command(0x42);                                // Write to display memory
   for(i=0;i<1200;i++)        
   {
     write_lcd_data(0x00);          // 文本區寫數據  空格符   
   }    
  
}
//*********************************************
//   clear graphics ram
//   清除圖形區
//==================================================
void clr_grphram(void)
{
    unsigned int i;	
   write_lcd_command(0x4c);                                //  Set direction of cursor movement
   write_lcd_command(0x46);                                //  Set cursor address
   write_lcd_data(0xb0);
   write_lcd_data(0x04);
   write_lcd_command(0x42);                                //Write to display memory
   for(i=0;i<9600;i++)        
   {            
     write_lcd_data(0x00);       // 文本區寫數據  空格符   
   }    
}
//==================================================
//==================================================
void lcm_init(void)
{
   unsigned int i;
   const unsigned int *p;
   Reset_lcd();
//---------------------------------
   p=&dataTAB1[0];
   write_lcd_command(0x40);                              // Initialize device and display
   for(i=0;i<8;i++)        
   {            
     write_lcd_data(*p++);      // 寫系統設置數據        
   }    
   p=&dataTAB2[0];
   write_lcd_command(0x44);                              // Set display start address and display regions
   for(i=0;i<8;i++)        
   {            
     write_lcd_data(*p++);     // 寫顯示控制數據        
   }  
    write_lcd_command(0x5a);                              //  Set horizontal scroll position
    write_lcd_data(0x00);
    write_lcd_command(0x5b);                              //  Set display overlay format
    write_lcd_data(0x00);      //  
    //write_lcd_command(0x60);                              //  
    //write_lcd_data(0x00);      //  
    clr_textram();
    clr_grphram();
    write_lcd_command(0x59);                              //???? 58 Enable display flashing; 59 Disable display flashing
    write_lcd_data(0x14);      // text graph on 04 
     
//=================================		
}
//==================================================
void Test(void)
{
    unsigned int i,j;
    write_lcd_command(0x4c);     //光標方向            //  Set direction of cursor movement
    write_lcd_command(0x46);     //光標地址            //  Set cursor address
    write_lcd_data(0x00);
    write_lcd_data(0x00);
    write_lcd_command(0x42);     //寫顯示存儲器地址    //Write to display memory
    for(i=0;i<30;i++)        
    {            
      for(j=0;j<40;j++)        
      {            
        write_lcd_data(0x0033); // 寫數據        
      }    	         
    }  
}
//==================================================
void Test1(void)
{
   unsigned int i;      
//----------------------------------	
    write_lcd_command(0x4c);
    write_lcd_command(0x46);  
    write_lcd_data(0xb0);
    write_lcd_data(0x04);
    write_lcd_command(0x42); 
    for(i=0;i<9600;i++)
    {	
      write_lcd_data(0x0f);   // 寫數據 
    }    
}
//==================================================
void wr_cmd_2(unsigned int uCmd,unsigned int uPar)              // 帶兩個參數的命令
{
   lcmcp=uCmd;
   write_lcd_command(lcmcp);  
   
   lcmdp= uPar&0xff;
   write_lcd_data(lcmdp);  
   lcmdp=uPar>>8;
   lcmdp&=0x00ff;
   write_lcd_data(lcmdp);
}
//==================================================
void wr_cmd_1(unsigned int uCmd,unsigned int uPar)              // 帶一個參數的命令
{
   lcmcp=uCmd;
   write_lcd_command(lcmcp);  
   lcmdp= uPar;
   write_lcd_data(lcmdp);  
}
//==================================================
void wr_cmd_0(unsigned int uCmd)                                // 不帶帶參數的命令
{
   lcmcp=uCmd;
   write_lcd_command(lcmcp);  
}
//==================================================
// 畫水平線(Y1=Y2) X=8*i
//==================================================
void lineH(unsigned int y1,unsigned int x1,unsigned int y2,unsigned int x2)
{
   unsigned int i,ipos,length1,length2;
   ipos=y1*40+x1/8+1200; 
   length1=y2*40+x2/8+1200;
   length2=length1-ipos;
   wr_cmd_0(0x4c); 
   wr_cmd_2(0x46,ipos); 
   wr_cmd_0(0x42);
   for(i=0;i<length2;i++)
   {
      write_lcd_data(0xff); 
   }	
} 
//==================================================
//   畫點
//==================================================
 void  pixel(unsigned int PointY,unsigned int PointX)                //   PointY 行 PointX 列 
{    
	unsigned int i, StartAddr;    
	unsigned int dat,dat2,dat3;  
     
	StartAddr=PointY*40 + PointX/8 +1200;
     
	dat=(unsigned int)(7-PointX%8);        //產生點的數據  
	dat2=0x0001;  
	for(i=0;i<dat;i++) 
	{
	   dat2<<=1;
	} 
 
	wr_cmd_0(0x004c); 
	wr_cmd_2(0x0046,StartAddr);           //讀該點所在單元地址內容
	wr_cmd_0(0x0043);
	dat3=read_lcd_data();
	dat2|=dat3;	
 	
 	wr_cmd_0(0x004c); 
	wr_cmd_2(0x0046,StartAddr);           //設置該點所在單元地址    
	wr_cmd_1(0x0042,dat2);                // 畫點位數據 	
}
//==================================================
//  畫點--點
//==================================================
void line(unsigned int y1,unsigned int x1,unsigned int y2,unsigned int x2)
{
    unsigned int x,y;    
    float k,b;    
    if(x1==x2)                                // x1=x2,畫垂直線
    {
        if(y1<=y2)
        {
          for(y=y1;y<=y2;y++)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
石原莉奈在线亚洲三区| 亚洲丰满少妇videoshd| 欧美日韩一区三区四区| 99re成人在线| 91精品福利视频| 高清在线成人网| 国产白丝精品91爽爽久久| 黄色日韩三级电影| 激情综合网天天干| 国产精品69毛片高清亚洲| 国产精品一区二区久久精品爱涩| 国产一区二区三区综合| 一本色道久久综合亚洲91| 91国偷自产一区二区使用方法| 色综合色综合色综合色综合色综合| 91天堂素人约啪| 欧美唯美清纯偷拍| 欧美性受xxxx黑人xyx| 欧美一区二区三区在线视频| 日韩丝袜情趣美女图片| 2024国产精品视频| 亚洲天堂a在线| 亚洲国产精品久久久男人的天堂 | 日韩欧美在线综合网| 欧美一级二级三级乱码| 精品久久人人做人人爰| 中文字幕不卡在线观看| 亚洲国产精品一区二区尤物区| 人人狠狠综合久久亚洲| 高清日韩电视剧大全免费| 91黄色激情网站| 精品国产乱码久久久久久闺蜜| 国产精品国产三级国产aⅴ入口| 一区二区日韩电影| 韩国v欧美v亚洲v日本v| 色综合久久中文字幕| 欧美xxxx在线观看| 尤物视频一区二区| 国产精品99久久久久| 欧美日韩午夜影院| 国产精品欧美一区二区三区| 石原莉奈在线亚洲二区| 成人免费毛片片v| 91精品国产综合久久国产大片| 欧美激情一区在线观看| 日本免费在线视频不卡一不卡二| 成人免费电影视频| 欧美大片在线观看一区二区| 一区二区三区中文字幕精品精品| 久久国产精品99精品国产| 在线精品视频一区二区| 亚洲国产精品成人综合色在线婷婷 | 午夜av一区二区| 99热在这里有精品免费| 精品欧美乱码久久久久久1区2区| 亚洲影院在线观看| 波多野结衣一区二区三区 | 国产美女精品人人做人人爽| 欧美在线播放高清精品| 国产精品另类一区| 国产精品亚洲一区二区三区妖精 | 久久久国产一区二区三区四区小说 | 看电影不卡的网站| 91国偷自产一区二区三区观看| 亚洲国产精华液网站w| 精品一区二区影视| 日韩美女一区二区三区四区| 亚洲国产精品麻豆| 精品污污网站免费看| 一区二区三区毛片| 99久久伊人精品| 亚洲欧美在线视频观看| 国产**成人网毛片九色| 久久久久国产精品人| 国产乱码精品一区二区三区av| 日韩精品一区二区三区在线| 蜜臀av一区二区在线观看| 制服丝袜日韩国产| 日韩av网站在线观看| 欧美一级精品大片| 久久国内精品视频| 久久久高清一区二区三区| 国产主播一区二区三区| 国产欧美一区二区三区鸳鸯浴 | 成人av电影免费观看| 国产精品少妇自拍| 91在线云播放| 亚洲国产精品久久久久婷婷884| 欧美日韩一级片在线观看| 日韩精品成人一区二区三区| 日韩无一区二区| 国产成人欧美日韩在线电影| 国产精品国产三级国产普通话99 | 日韩不卡一区二区三区 | 成人久久18免费网站麻豆| 国产精品久久久久久久久晋中| 99久精品国产| 亚洲bdsm女犯bdsm网站| 日韩一区二区三| 福利电影一区二区| 亚洲综合一区在线| 欧美一区二区三级| 国产精品小仙女| 一区二区三区不卡在线观看| 在线播放欧美女士性生活| 国产乱码一区二区三区| 一区二区在线观看av| 欧美va亚洲va| 色婷婷激情综合| 久久99久久久久| 亚洲欧美日韩国产成人精品影院| 亚洲女同一区二区| 欧美日韩一区二区三区高清| 狠狠久久亚洲欧美| 亚洲婷婷综合色高清在线| 91精品在线一区二区| 国产91精品精华液一区二区三区| 亚洲国产欧美在线人成| 国产午夜精品理论片a级大结局 | 日韩中文字幕一区二区三区| 国产视频一区在线播放| 欧美日韩五月天| 成人免费观看av| 蜜桃久久久久久| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美高清在线精品一区| 欧美日韩电影在线| 91日韩一区二区三区| 国内精品久久久久影院薰衣草| 亚洲国产视频一区二区| 国产精品成人网| 久久久综合网站| 欧美一区二区三区在| 日本二三区不卡| 99久久综合99久久综合网站| 国产乱子伦视频一区二区三区| 三级一区在线视频先锋| 亚洲精品一二三| 1024精品合集| 中文字幕日韩av资源站| 国产亚洲成av人在线观看导航| 欧美不卡一区二区三区| 91精品国产综合久久福利| 欧美系列亚洲系列| 欧美综合在线视频| 色国产综合视频| 在线欧美小视频| 色噜噜狠狠一区二区三区果冻| 成人性生交大片免费看中文网站| 国产一区999| 国产电影一区二区三区| 国产综合色精品一区二区三区| 日本欧美一区二区在线观看| 天堂午夜影视日韩欧美一区二区| 亚洲v精品v日韩v欧美v专区| 亚洲午夜久久久| 亚洲va韩国va欧美va| 亚洲第一二三四区| 日韩有码一区二区三区| 免费观看一级特黄欧美大片| 日本视频免费一区| 免费精品99久久国产综合精品| 美女mm1313爽爽久久久蜜臀| 精品一区二区三区免费毛片爱| 九九国产精品视频| 国产精品一区二区黑丝| 成人国产精品视频| av在线播放成人| 欧美日韩国产高清一区二区| 777xxx欧美| 精品国产sm最大网站| 国产精品色眯眯| 亚洲二区在线视频| 蜜桃视频在线一区| 粉嫩一区二区三区性色av| 91网址在线看| 欧美肥妇bbw| 久久尤物电影视频在线观看| 国产精品免费视频观看| 亚洲综合久久久久| 日本道精品一区二区三区| 欧美日韩精品久久久| 精品国产制服丝袜高跟| 国产精品污www在线观看| 亚洲一区二三区| 国产露脸91国语对白| 色爱区综合激月婷婷| 久久综合九色欧美综合狠狠| 亚洲人成人一区二区在线观看| 日韩av中文字幕一区二区三区| 99在线精品一区二区三区| 在线观看亚洲a| 欧美一区二区大片| 国产精品久久久久桃色tv| 午夜成人免费电影| 成人综合婷婷国产精品久久 | 欧美一区二区三区爱爱| 亚洲国产岛国毛片在线| 婷婷激情综合网| 国产91丝袜在线观看|