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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? lcd12864.c

?? AT89S52單片機(jī)驅(qū)動(dòng)帶字庫(kù)的LCD12864液晶屏實(shí)現(xiàn)圖形顯示
?? C
字號(hào):
/***************************************************************************

 12864液晶模塊(ST7920控制器) Keil C51 并行口驅(qū)動(dòng)程序

 s_yqzhan@stu.edu.cn
 OFourME@163.com                                                        2007-9-29

/**************************************************************************/

#include"LCD12864.h"
//  #define NOP

/*  通過(guò)define NOP 決定是否在程序中插入nop指令
**  因?yàn)長(zhǎng)CD可能對(duì)電平保持時(shí)間有一定的要求 */


/*////////////////////////////////////////////////////////////////////////*/

#ifdef NOP
#include<intrins.h>
#endif

/*////////////////////////////////////////////////////////////////////////*/
/* 初始化12864液晶模塊 */

void init_LCD(void)
{
    RST = 0;
    delay(10);
    RST = 1;
#ifdef NOP
    _nop_();
#endif
    PSB = 1;/*H:8位或4位并口方式,L:串口方式*/
    send_i(ext8);
    send_i(bas8);
    send_i(clr);
    send_i(cursor_1);
    send_i(texton);
}

/*////////////////////////////////////////////////////////////////////////*/
/* 等待,直到12864液晶模塊處于就緒狀態(tài) */

void chk_busy(void)
{
    BF = 1;	/*DI=L.RW=H,讀出忙標(biāo)志(BF)及地址記數(shù)器(AC)的狀態(tài)*/
    DI = 0;	/*BF標(biāo)志提供內(nèi)部工作情況.BF=1表示模塊在進(jìn)行內(nèi)部操作,*/
    RW = 1;	/*此時(shí)模塊不接受外部指令和數(shù)據(jù).BF=0時(shí),模塊為準(zhǔn)備狀態(tài),*/
    E  = 1;	/*隨時(shí)可接受外部指令和數(shù)據(jù).*/
    while(BF);
    E  = 0;
}

/*////////////////////////////////////////////////////////////////////////*/
/* 向12864液晶模塊傳輸指令 */

void send_i(cmd12864 instrution)
{
    chk_busy();
    DI = 0;
    RW = 0;
    DB = instrution;
    E = 1;
#ifdef NOP
    _nop_();
    _nop_();
#endif
    E = 0;
}

/*////////////////////////////////////////////////////////////////////////*/
/* 向12864液晶模塊傳輸數(shù)據(jù) */

void send_d(int8u dt)
{
    chk_busy();
    DI = 1;	/* 數(shù)據(jù)(1)/指令(0) */
    RW = 0;	/* 讀(1)/寫(xiě)(0) */
    DB = dt;/* P0口,作為數(shù)據(jù)總線(xiàn) */
    E = 1;/* 使能-寫(xiě)(H->L)/讀(H) */
#ifdef NOP
    _nop_();
    _nop_();
#endif
    E = 0;
}

/*////////////////////////////////////////////////////////////////////////*/
/* 從12864液晶模塊讀取數(shù)據(jù) */

int8u read_d()
{
    int8u dt;

    chk_busy();
    DI = 1;
    RW = 1;
    E  = 1;
#ifdef NOP
    _nop_();
#endif
    dt = DB;
    E  = 0;
    return dt;
}
/*////////////////////////////////////////////////////////////////////////*/
/* 從12864液晶模塊讀取指令、狀態(tài) */

int8u read_i()
{
    int8u dt;

    chk_busy();
    DI = 0;
    RW = 1;
    E  = 1;
#ifdef NOP
    _nop_();
#endif
    dt = DB;
    E  = 0;
    return dt;
}

/*////////////////////////////////////////////////////////////////////////*/
/* 設(shè)置文本輸出位置;x取值范圍:0~7;y取值范圍:0~3 */

void gotoxy(int8u x, int8u y)
{
    switch(y)
    {
        case 0: send_i(0x80+x);break;
        case 1: send_i(0x90+x);break;
        case 2: send_i(0x88+x);break;
        case 3: send_i(0x98+x);break;
    }
}

/*////////////////////////////////////////////////////////////////////////*/
/* 設(shè)置圖形模式輸出位置;x取值范圍(byte):0~7,單位為16位/2個(gè)字節(jié),共128位;
   y取值范圍(bit):0~63
*/

void setxy(int8u x, int8u y)
{
    send_i(ext8);
    if( y & 0xe0 )		/* y>=32 */
    {
        send_i(gdbas+y-32);
        send_i(page1+x);
    }
    else
    {
        send_i(gdbas+y);
        send_i(page0+x);
    }
	 send_i(bas8);
}

/*////////////////////////////////////////////////////////////////////////*/
/* 屏幕閃爍 */

void flash()
{
    send_i(textoff);	/* 關(guān)閉顯示 */
    delay(250);
    send_i(texton);	/* 開(kāi)顯示,關(guān)光標(biāo),不閃爍 */
    delay(250);
    send_i(textoff);
    delay(250);
    send_i(texton);
    delay(250);
    send_i(textoff);
    delay(250);
    send_i(texton);
}

/*////////////////////////////////////////////////////////////////////////*/
/* 清屏 */

void clrddram()
{
    send_i(clr);
    send_i(ext8);
    send_i(bas8);
}

/*////////////////////////////////////////////////////////////////////////*/
/* 連續(xù)向LCD發(fā)送string指向的num個(gè)數(shù)據(jù) */

void LCD_puts(TAB* string, int8u num)
{
    while(num--)
    {
        send_d(*string++);//向12864液晶模塊傳輸數(shù)據(jù)
    }
}

/*////////////////////////////////////////////////////////////////////////*/
/* 全屏顯示圖形子程序 */

void pho_disp(BMP12864* tab)
{
    int8u i, j, k, lcd_x, lcd_y;

    lcd_x = 0x80;
    for(i=0 ; i<2; i++)
    {
        for(j=0, lcd_y=0x80; j<32; j++, lcd_y++)
        {
            send_i(ext8);
            send_i(lcd_y);
            send_i(lcd_x);
            send_i(bas8);
            for(k=16; k; k--)
                send_d(*(tab++));
        }
        lcd_x = 0x88;
    }
    send_i(grapon);
    send_i(bas8);
}

/*////////////////////////////////////////////////////////////////////////*/
/* 顯示點(diǎn)陣子程序,以lcd_data填充圖形顯示空間(GDRAM) */

void lat_disp(int8u lcd_data)
{
    int8u i, j, k;
    int8u lcd_x, lcd_y;
 
    lcd_x=0x80;
    i=2;
    do
    {   j=32; lcd_y=0x80;
        do
        {   send_i(ext8);
            send_i(lcd_y);
            send_i(lcd_x);
            send_i(bas8);
            k=16;
            do
            {   send_d(lcd_data);
            }while(k--);
            lcd_y++;
        }while(--j);
        lcd_x = 0x88;
    }while(--i);

    send_i(grapon);
    send_i(bas8);
}

/*////////////////////////////////////////////////////////////////////////*/
/* 造字功能,最多自定義4的字,word的范圍為0~3 */

void setcgram(int8u word, BMP1616* map)
{
    int i;

    send_i(cgbas+16*word);
    for(i=0; i<32; i++)
		  send_d( *map++ );

}

/*////////////////////////////////////////////////////////////////////////*/

void clrgdram()
{
    lat_disp(0);
}

/*//////////////////////////////////////////////////////////////////////////
  原型:void putpixel(int8u x, int8u y, int8u mode);

  功能:在屏幕的指定位置上畫(huà)點(diǎn)

  說(shuō)明:(x,y)為屏幕上點(diǎn)的坐標(biāo),mode值含義如下:
        mode=0:清除(x,y)處的點(diǎn)
             1:在(x,y)處畫(huà)點(diǎn)
             2:將(x,y)處的點(diǎn)的狀態(tài)取反
//////////////////////////////////////////////////////////////////////////*/
/* 本程序可能是錯(cuò)誤的,因?yàn)閞ead_d()讀取的GDRAM的內(nèi)容并不完全,
    這可能是因?yàn)楸救说?2864液晶模塊故障,或是因?yàn)槠洳o(wú)此功能。
*/

void putpixel(int8u x, int8u y, int8u mode)
{
    int8u i;
    union
    {   int16u D;
    	struct
        {   int8u c1;
            int8u c2;
        }C;
	 }t;

    int16u code an[] = {
        0x7fff, 0xbfff, 0xdfff, 0xefff, 0xf7ff, 0xfbff, 0xfdff, 0xfeff,
        0xff7f, 0xffbf, 0xffdf, 0xffef, 0xfff7, 0xfffb, 0xfffd, 0xfffe };
    int16u code or[] = {
        0x8000, 0x4000, 0x2000, 0x1000, 0x0800, 0x0400, 0x0200, 0x0100,
        0x0080, 0x0040, 0x0020, 0x0010, 0x0008, 0x0004, 0x0002, 0x0001 };
    int16u code * const xo = or;

    setxy(x/16,y);
    read_d();
    t.C.c1 = read_d();
    t.C.c2 = read_d();

    i = x & 0x0f;
    switch(mode)
    {
        case 0: t.D &= an[i]; break;
        case 1: t.D |= or[i]; break;
        default:t.D ^= xo[i];
    }
    setxy(x/16,y);
    send_d(t.C.c1);
    send_d(t.C.c2);
}

/*////////////////////////////////////////////////////////////////////////*/

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日精品一区二区三区| 亚洲精品视频一区二区| 在线观看成人小视频| 久久er99精品| 亚洲国产精品一区二区久久恐怖片| 欧美一区二区免费观在线| 色老汉一区二区三区| 国产乱子伦视频一区二区三区| 一区二区三区不卡视频在线观看| 久久综合久久综合久久| 在线观看91av| 91香蕉视频在线| 国产老女人精品毛片久久| 亚洲大片精品永久免费| 国产精品高潮呻吟| 中文字幕欧美激情一区| 精品国产91乱码一区二区三区 | 亚洲综合久久久久| 国产精品欧美综合在线| 欧美精品一区二区三区在线| 在线不卡中文字幕| 91极品美女在线| 99精品久久免费看蜜臀剧情介绍| 国产乱码精品一区二区三| 麻豆精品国产91久久久久久| 亚洲高清视频在线| 亚洲黄色av一区| 日韩理论片在线| 国产精品久久久久久妇女6080| 精品电影一区二区| 精品美女被调教视频大全网站| 在线综合视频播放| 9191久久久久久久久久久| 欧美日韩一区二区在线观看视频| 91丨porny丨中文| 99视频国产精品| 成人福利视频网站| 成人一区二区三区在线观看| 国产精品影视网| 国产美女av一区二区三区| 久久99久久久久| 国产一区在线观看麻豆| 紧缚捆绑精品一区二区| 国产一区二区三区蝌蚪| 国精产品一区一区三区mba桃花| 精品综合久久久久久8888| 精品一区二区三区视频 | 一区二区不卡在线视频 午夜欧美不卡在| 国产人伦精品一区二区| 国产欧美一区二区三区在线看蜜臀| 亚洲精品成人悠悠色影视| 69久久夜色精品国产69蝌蚪网| 欧美日韩精品三区| 色综合天天性综合| 国产白丝精品91爽爽久久| 国产综合色视频| 久久99精品久久久久婷婷| 日本不卡一区二区三区| 偷拍日韩校园综合在线| 婷婷激情综合网| 亚洲成人综合在线| 亚洲 欧美综合在线网络| 蜜桃在线一区二区三区| 亚洲精选一二三| 亚洲视频一区二区在线观看| 久久这里只有精品视频网| 欧美电影免费观看高清完整版在线 | 亚洲视频中文字幕| 成人影视亚洲图片在线| 久久99国产精品久久99| 国产精一品亚洲二区在线视频| 欧美丝袜自拍制服另类| 亚洲一区二区中文在线| 精品国产乱码久久久久久老虎| 日韩欧美一级特黄在线播放| 久久九九99视频| 亚洲香蕉伊在人在线观| 久久国产生活片100| 不卡电影免费在线播放一区| 欧美性高清videossexo| 久久蜜桃av一区精品变态类天堂 | 久久综合九色综合97婷婷| 国产精品免费看片| 日本三级韩国三级欧美三级| 亚洲乱码中文字幕综合| 亚洲激情一二三区| 国产在线不卡一卡二卡三卡四卡| 国产一区二区三区电影在线观看| av高清不卡在线| 日韩视频免费观看高清在线视频| 国产区在线观看成人精品| 欧美a一区二区| 麻豆91免费看| 色乱码一区二区三区88| 久久综合五月天婷婷伊人| 亚洲区小说区图片区qvod| 日av在线不卡| 欧美日韩久久一区二区| 亚洲蜜臀av乱码久久精品| 国产成人在线视频播放| 精品美女被调教视频大全网站| 看电视剧不卡顿的网站| 美女视频黄久久| 色综合久久中文综合久久97| 国产成人超碰人人澡人人澡| 国产精品一级片在线观看| 7777精品伊人久久久大香线蕉的| ...av二区三区久久精品| 欧美精品xxxxbbbb| 在线精品亚洲一区二区不卡| 91美女片黄在线观看91美女| 91麻豆国产福利在线观看| 欧美变态tickle挠乳网站| 99视频在线精品| 久久在线观看免费| 奇米亚洲午夜久久精品| 在线精品亚洲一区二区不卡| 专区另类欧美日韩| 成人国产视频在线观看| 国产偷国产偷精品高清尤物| 久久99精品国产麻豆不卡| 欧美三级乱人伦电影| 一片黄亚洲嫩模| 91久久线看在观草草青青| 亚洲人成亚洲人成在线观看图片| 国产aⅴ综合色| 久久久久久久久久电影| 国模少妇一区二区三区| 亚洲精品在线网站| 狠狠色狠狠色综合| 精品国精品国产尤物美女| 久久国产免费看| 精品美女被调教视频大全网站| 久久国产视频网| 精品国产乱码久久久久久夜甘婷婷| 久久精品国产一区二区三区免费看| 播五月开心婷婷综合| 国产欧美日韩精品a在线观看| 国产成人av电影在线观看| 国产精品美女一区二区三区 | 欧美亚洲一区二区在线| 亚洲在线视频一区| 欧美性大战xxxxx久久久| 亚洲影视在线播放| 欧美在线观看视频一区二区| 一区二区三区在线视频观看58| 色婷婷av一区二区三区大白胸| 一区二区三区中文字幕| 欧美在线不卡视频| 五月开心婷婷久久| 日韩精品中文字幕一区| 国产999精品久久久久久绿帽| 中文字幕va一区二区三区| 91麻豆精品一区二区三区| 亚洲高清在线精品| 欧美成人精品高清在线播放| 国产91对白在线观看九色| 中文字幕中文字幕一区二区| 色域天天综合网| 秋霞成人午夜伦在线观看| 久久新电视剧免费观看| 91在线porny国产在线看| 亚洲一区免费观看| 日韩女优av电影| 成人av片在线观看| 日韩综合小视频| 国产欧美日韩激情| 在线观看亚洲精品| 久久99久久99| 亚洲欧美在线观看| 欧美美女喷水视频| 国产高清在线精品| 成人精品免费看| 亚洲尤物视频在线| 精品黑人一区二区三区久久| 成人av电影观看| 日韩高清一区在线| 国产精品萝li| 欧美美女网站色| 91丝袜高跟美女视频| 免费观看久久久4p| 亚洲女同一区二区| 亚洲精品一区二区三区99| 在线观看91视频| 国产精品一二三在| 午夜欧美视频在线观看| 国产精品视频麻豆| 91精品国产福利在线观看| www.色精品| 极品少妇xxxx精品少妇| 亚洲另类一区二区| 久久综合99re88久久爱| 在线亚洲免费视频| 粉嫩久久99精品久久久久久夜| 爽爽淫人综合网网站 | 欧美a一区二区| 一区二区在线观看不卡| 久久久www免费人成精品| 欧美日韩久久一区| 91丨porny丨国产|