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

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

?? ssd1289.c

?? SPI INTERFACE驅動 IC為1289的TFT顯示屏
?? C
字號:

/* uchar spi_send(uchar out_data)
 {
    SPDR=out_data;         //spi輸出
    while((SPSR&0x80)==0);
    SPSR=0;
	return SPDR;	  
 }	   */
 uchar spi_send(uchar out_data)
 {
 	uchar i,n;
	for(i=0;i<8;i++)
	{
		n<<=1;
		SCK=0;
		MOSI=(out_data&0x80);
		if(MISO)	n++;
		SCK=1;
		out_data<<=1;
	}
	return n;  
 }


//=================================
void send_command(uchar out_data)              
{
RS=0;
CS=0;
spi_send(out_data);
CS=1;
}
//=================================
void send_data(uint out_data)           
{
RS=1;
CS=0;
spi_send(out_data>>8);
CS=1;

CS=0;
spi_send(out_data);
CS=1;
}

//=================================
void write_com(uchar address,uint num)
{
    send_command(address);
    send_data(num);
}
//=================================  
void ssd1289_init(void)
{
    write_com(0x0000,0x0001);    DelayNS(1000);  //打開晶振
    write_com(0x0003,0xA8A4);    DelayNS(1000);   //0xA8A4
    write_com(0x000C,0x0000);    DelayNS(1000);   
    write_com(0x000D,0x080C);    DelayNS(1000);   
    write_com(0x000E,0x2B00);    DelayNS(1000);   
    write_com(0x001E,0x00B0);    DelayNS(1000);   
    write_com(0x0001,0x2B3F);    DelayNS(1000);   //驅動輸出控制320*240  0x6B3F
    write_com(0x0002,0x0600);    DelayNS(1000);
    write_com(0x0010,0x0000);    DelayNS(1000);
    write_com(0x0011,0x6070);    DelayNS(1000);        //0x4030           //定義數據格式  16位色 		橫屏 0x6058
    write_com(0x0005,0x0000);    DelayNS(1000);
    write_com(0x0006,0x0000);    DelayNS(1000);
    write_com(0x0016,0xEF1C);    DelayNS(1000);
    write_com(0x0017,0x0003);    DelayNS(1000);
    write_com(0x0007,0x0233);    DelayNS(1000);        //0x0233       
    write_com(0x000B,0x0000);    DelayNS(1000);
    write_com(0x000F,0x0000);    DelayNS(1000);        //掃描開始地址
    write_com(0x0041,0x0000);    DelayNS(1000);
    write_com(0x0042,0x0000);    DelayNS(1000);
    write_com(0x0048,0x0000);    DelayNS(1000);
    write_com(0x0049,0x013F);    DelayNS(1000);
    write_com(0x004A,0x0000);    DelayNS(1000);
    write_com(0x004B,0x0000);    DelayNS(1000);
    write_com(0x0044,0xEF00);    DelayNS(1000);
    write_com(0x0045,0x0000);    DelayNS(1000);
    write_com(0x0046,0x013F);    DelayNS(1000);
    write_com(0x0030,0x0707);    DelayNS(1000);
    write_com(0x0031,0x0204);    DelayNS(1000);
    write_com(0x0032,0x0204);    DelayNS(1000);
    write_com(0x0033,0x0502);    DelayNS(1000);
    write_com(0x0034,0x0507);    DelayNS(1000);
    write_com(0x0035,0x0204);    DelayNS(1000);
    write_com(0x0036,0x0204);    DelayNS(1000);
    write_com(0x0037,0x0502);    DelayNS(1000);
    write_com(0x003A,0x0302);    DelayNS(1000);
    write_com(0x003B,0x0302);    DelayNS(1000);
    write_com(0x0023,0x0000);    DelayNS(1000);
    write_com(0x0024,0x0000);    DelayNS(1000);
    write_com(0x0025,0x8000);    DelayNS(1000);
    write_com(0x004f,0);        //行首址0
    write_com(0x004e,0);        //列首址0
}

/**************************************************************************************
* 名    稱: DispOneColor
* 功    能: 全屏顯示某種顏色
* 參    數: Color   : 顏色值
* 返 回 值: 無
*
* 修改歷史:
*   版本    日期     作者     改動內容和原因
*   ----------------------------------------------------
*   1.0   2007.6.13  lcf       基本的功能完成
**************************************************************************************/
void DispOneColor(uint Color)
{
    int i,j;
    write_com(0x004f,0);        //行首址0
    write_com(0x004e,0);        //列首址0
    send_command(0x22);
    for(j=0;j<320;j++)
        for(i=0;i<240;i++)
            send_data(Color);
}
/**************************************************************************************
* 名    稱: DispClear
* 功    能: 清除顯示屏的顯示內容
* 參    數: 無
* 返 回 值: 無
*
* 修改歷史:
*   版本    日期     作者     改動內容和原因
*   ----------------------------------------------------
*   1.0   2006.8.13  lcf       基本的功能完成
**************************************************************************************/
void DispClear(void)
{
    DispOneColor(BLACK);
}
//==============================================
void Set_ramaddr(uint x,uint y)
{
    write_com(0x004f,y);        //行首址
	write_com(0x004e,x);        //列首址
}/**************************************************************************************
* 名    稱: DrawSingleAscii
* 功    能: 在指定的位置單個字符
* 參    數: x           : x坐標
*                       y         : y坐標
*               LineColor : 字符的顏色
*           FillColor   : 字符背景顏色
* 返 回 值: 無
*
* 修改歷史:
*   版本    日期     作者     改動內容和原因
*   ----------------------------------------------------
*   1.0   2007.6.13  lcf       基本的功能完成
**************************************************************************************/
void DrawSingleAscii(uint x, uint y, uchar *pAscii, uint LineColor,uint FillColor, uchar Mod)
{
    uchar i, j;
    uchar str;
    uint OffSet;

    OffSet = (*pAscii - 32)*16;

    for (i=0;i<16;i++)
    {
        Set_ramaddr(x,y+i);
        send_command(0x22);
        str = *(AsciiLib + OffSet + i);  
        for (j=0;j<8;j++)
        {
            if ( str & (0x80>>j) )     //0x80>>j
            {
                send_data((uint)(LineColor&0xffff));
            }
            else
            {
                if (NORMAL == Mod) 
                    send_data((uint)(FillColor&0xffff));
                else
                {
                    Set_ramaddr(x+j+1,y+i);
                    send_command(0x22);  
                }
            }               
        } 
    }
}
/**************************************************************************************
* 名    稱: DrawSingleHz
* 功    能: 在指定的位置顯示漢字
* 參    數: x           : x坐標
*                       y       : y坐標
*               LineColor : 漢字的顏色
*           FillColor   : 漢字背景顏色
* 返 回 值: 無
*
* 修改歷史:
*   版本    日期     作者     改動內容和原因
*   ----------------------------------------------------
*   1.0   2007.6.13  lcf       基本的功能完成
**************************************************************************************/
void DrawSingleHz(uint x, uint y, uchar *pHz, uint LineColor,uint FillColor, uchar Mod)
{
uint j=0,i=0,k=0;
uint str,len;
//---------------------------統計是否在字庫中出現 
len=sizeof(HzLib)/sizeof(HzLib[0]);
for(j=0;j<sizeof(HzLib)/sizeof(HzLib[0]);j++)   
    if((uchar)HzLib[j].Index[0]==pHz[0]&&(uchar)HzLib[j].Index[1]==pHz[1])break;
//--------------------------      
    if(j<len)
    {
        for (i=0;i<HZ_column;i++)
        {
            Set_ramaddr(x,y+i);
            send_command(0x22);

            str = (uchar)HzLib[j].Msk[i*2]<<8|(uchar)HzLib[j].Msk[i*2+1]; 

            for (k=0;k<HZ_column;k++)
            {
                if ( str & (0x8000>>k) )     //0x8000>>k
                {
                    send_data((uint)(LineColor&0xffff));
                }
                else
                {
                    if (NORMAL == Mod) 
                        send_data((uint)(FillColor&0xffff));
                    else
                    {
                        Set_ramaddr(x+k+1,y+i);
                        send_command(0x22);  
                    }
                }               
            } 
        }
    }
}

/**************************************************************************************
* 名    稱: DrawString
* 功    能: 在指定的位置顯示多個字符
* 參    數: x           : x坐標
*                       y         : y坐標
*               LineColor : 字符的顏色
*           FillColor   : 字符背景顏色
* 返 回 值: 無
*
* 修改歷史:
*   版本    日期     作者     改動內容和原因
*   ----------------------------------------------------
*   1.0   2007.6.13  lcf       基本的功能完成
**************************************************************************************/
void DrawString(uint x, uint y, uchar *pStr, uint LineColor,uint FillColor, uchar Mod)
{

    while(1)
    {
        if (*pStr == 0)
        {
            return;
        }

        if (*pStr > 0x80)           //漢字
        {
            DrawSingleHz(x, y, pStr, LineColor, FillColor, Mod);
            x += HZ_column;
            pStr += 2;              
        }
        else                        //英文字符
        {
            DrawSingleAscii(x, y, pStr, LineColor, FillColor, Mod);
            x += 8;
            pStr += 1;              
        }
    }   
}
//================================= 
void DispNum(unsigned int x, unsigned int y, unsigned short num)
{
    unsigned char str[5];

    str[0] = num/1000+0x30;
    str[1] = (num%1000)/100+0x30;
    str[2] = (num%1000)%100/10+0x30;
    str[3] = (num%1000)%100%10+0x30;
    str[4] = '\0';

    DrawString(x, y, str, RED, YELLOW, NORMAL);
}
/**************************************************************************************
* 名    稱: DispSmallPic
* 功    能: 在指定的位置顯示一張65K色的圖片
* 參    數: str     : 圖片數組名
* 返 回 值: 無
*
* 修改歷史:
*   版本    日期     作者     改動內容和原因
*   ----------------------------------------------------
*   1.0   2007.6.13  lcf       基本的功能完成
**************************************************************************************/
void DispSmallPic(uint x, uint y, uint w, uint h, const uchar *str)
{
    uint i,j,temp;
    for(j=0;j<h;j++)
    {
        Set_ramaddr(x,y+j);
        send_command(0x22); 
        for(i=0;i<w;i++)
        {   //send_data(*(unsigned short *)(&str[(j*w+i)*2]));       //高位在前
            temp=str[(j*w+i)*2+1]<<8;     //低位在前
            temp|=str[(j*w+i)*2];
            send_data(temp);
        }
    }
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久三级国产网站| 久久久99久久| 色欧美片视频在线观看 | 日韩欧美一区二区在线视频| jiyouzz国产精品久久| 狠狠色综合播放一区二区| 日本三级韩国三级欧美三级| 美女国产一区二区| 精品在线观看视频| 成人久久久精品乱码一区二区三区| 久久精品日产第一区二区三区高清版 | 欧美图区在线视频| 97精品久久久午夜一区二区三区| 亚洲国产欧美另类丝袜| 亚洲国产另类av| 天天色综合天天| 精品一区二区三区久久久| 国产精品18久久久久久久网站| 亚洲精品一二三区| 天天综合色天天综合| 激情综合五月婷婷| 91蜜桃免费观看视频| 欧美日韩在线免费视频| 日韩久久久精品| 中文字幕中文在线不卡住| 亚洲国产精品麻豆| 激情小说欧美图片| 色呦呦日韩精品| 日韩欧美高清一区| 亚洲欧美欧美一区二区三区| 日日摸夜夜添夜夜添亚洲女人| 久久精品日韩一区二区三区| 国产精品入口麻豆九色| 亚洲一区二区三区激情| 国产精品中文有码| 欧洲精品视频在线观看| 国产三级精品三级在线专区| 一区二区三区在线观看国产| 久久超级碰视频| 色综合久久久久网| 久久麻豆一区二区| 热久久久久久久| 在线一区二区三区四区| 久久久99久久精品欧美| 水蜜桃久久夜色精品一区的特点| 亚洲韩国精品一区| 国产电影一区二区三区| 欧美系列日韩一区| 亚洲国产激情av| 久久成人av少妇免费| 欧美日本国产视频| 国产精品理论片| 国产精品亚洲视频| 日韩免费高清视频| 天堂一区二区在线免费观看| 91在线观看污| 国产精品国产自产拍高清av王其| 国产精品久久久久久久久果冻传媒| 久久久精品免费观看| 日韩精品电影一区亚洲| 欧美性欧美巨大黑白大战| 久久久久久99久久久精品网站| 久久一夜天堂av一区二区三区 | 老司机免费视频一区二区三区| 天堂在线一区二区| 欧美视频一区二区| 国产精品久久久久久久午夜片| 日韩美女主播在线视频一区二区三区| 欧美日韩在线播放| 一区二区三区中文在线| 不卡欧美aaaaa| 日韩理论片网站| 在线免费不卡电影| 一区二区三区在线免费观看| 91黄色免费观看| 亚洲综合区在线| 欧美日韩综合色| 一区二区三区在线视频观看58| 热久久一区二区| 精品三级av在线| 蜜臀久久久久久久| 精品第一国产综合精品aⅴ| 国产综合久久久久久鬼色| 久久免费视频一区| 成人av资源下载| 亚洲一区在线观看网站| 欧美色综合影院| 老司机免费视频一区二区| 久久先锋资源网| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 一本到一区二区三区| 一区二区三区在线播放| 91国产丝袜在线播放| 午夜精品福利一区二区三区av| 久久精品国产精品亚洲精品| 日韩欧美一二三四区| 国产夫妻精品视频| 亚洲精品视频一区| 91麻豆精品国产91久久久| 国产一二精品视频| 亚洲欧美日韩精品久久久久| 欧美日韩成人在线| 国产精品一卡二| 亚洲精品免费一二三区| 欧美美女bb生活片| 国产在线精品免费| 亚洲在线观看免费视频| 精品捆绑美女sm三区| 99久久99久久久精品齐齐| 日韩高清电影一区| 国产精品三级电影| 日韩精品中文字幕在线不卡尤物| 亚洲午夜日本在线观看| 久久午夜色播影院免费高清| 91小视频免费看| 韩国av一区二区| 亚洲精品乱码久久久久| 久久精品一二三| 色菇凉天天综合网| 国产高清久久久久| 日韩精品亚洲一区二区三区免费| 91福利视频久久久久| 极品销魂美女一区二区三区| 亚洲女同女同女同女同女同69| 成人午夜短视频| 亚洲一区二区三区自拍| 国产精品水嫩水嫩| 精品国产免费一区二区三区四区| 国产女同性恋一区二区| 国产乱妇无码大片在线观看| 成人av在线资源网站| 中文字幕一区二区5566日韩| 制服丝袜中文字幕亚洲| 日本精品免费观看高清观看| 高清视频一区二区| 亚洲色图视频免费播放| 91超碰这里只有精品国产| 91视频在线看| 成人精品国产免费网站| 国产麻豆精品在线| 日韩精品一区二区三区中文精品| 国产精品自拍一区| 91在线视频免费91| 欧美群妇大交群的观看方式 | 国产精品国产馆在线真实露脸| 欧美日韩的一区二区| 久久综合九色综合欧美就去吻| 91丨九色丨尤物| 欧美久久免费观看| 欧美国产欧美综合| 石原莉奈一区二区三区在线观看| 国产精品久久久一区麻豆最新章节| 欧美一区二区美女| 欧美激情在线一区二区| 天堂一区二区在线免费观看| 国产一区二区成人久久免费影院| 亚洲成av人片在www色猫咪| 韩国成人福利片在线播放| 91成人在线观看喷潮| 久久久夜色精品亚洲| 亚洲自拍偷拍图区| 国产成人综合亚洲91猫咪| 在线观看网站黄不卡| 欧美xingq一区二区| 亚洲免费电影在线| 国产白丝网站精品污在线入口| 黄一区二区三区| 欧美嫩在线观看| 最近中文字幕一区二区三区| 日本欧美在线看| 欧美午夜电影一区| 欧美国产精品一区| 乱一区二区av| 欧美高清视频不卡网| 国产精品人成在线观看免费 | 国产日韩v精品一区二区| 亚洲高清一区二区三区| 成人av在线资源网| 精品国产免费一区二区三区四区| 亚洲精品在线观看视频| 图片区日韩欧美亚洲| 欧美性受xxxx| 成人免费在线视频| 成a人片国产精品| 国产欧美日韩另类视频免费观看| 国产欧美视频一区二区三区| 奇米影视7777精品一区二区| 欧美日韩精品三区| 亚洲一二三四区不卡| 色婷婷久久综合| 亚洲欧美日韩国产手机在线| 99r精品视频| 亚洲日本在线视频观看| 91丝袜呻吟高潮美腿白嫩在线观看| 91免费观看视频| 欧美国产激情二区三区 | 99在线视频精品| 国产精品天美传媒| 成人一区二区三区视频| 精品国产乱码久久久久久久|