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

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

?? 12864a.c

?? 128*64點陣單色液晶屏控制C代碼
?? C
字號:
/*============================================
液晶模塊:12864A
端口分配:
A15 --->EA;      A11--->CS2;       A10--->CS1
A9  --->D/I;     A8 --->R/W;
**********************************************

指令代碼:
1. 開顯示:0x3f
2. 關顯示:0x3e
3. 設置X值(頁地址):0xb8+X(X=0---7)
4. 設置Y值(列地址):0x40+Y(Y=0---63)
5. 設置Z值(顯示起始行):0xc0+Z(Z=0---63)
2007-3-7 21:37
==============================================*/

//#ifndef _12864A_H_
//#define _12864A_H_


#include <reg52.h>
#include <absacc.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int
#define PAGE 0xb8    //X基值
#define ROW 0x40     //Y基值
#define STRTLINE 0xc0  //Z基值


//定義外部數據端口
#define LcdAddr_wril XBYTE [0x8800]        //LCD 寫左半屏指令寄存器端口
#define LcdAddr_rdil XBYTE [0x8900]        //LCD 讀左半屏指令寄存器端口
#define LcdAddr_wrdl XBYTE [0x8a00]        //LCD 寫左半屏數據寄存器端口
#define LcdAddr_rddl XBYTE [0x8b00]        //LCD 讀左半屏數據寄存器端口
#define LcdAddr_wrir XBYTE [0x8400]        //LCD 寫右半屏指令寄存器端口
#define LcdAddr_rdir XBYTE [0x8500]        //LCD 讀右半屏指令寄存器端口
#define LcdAddr_wrdr XBYTE [0x8600]        //LCD 寫右半屏數據寄存器端口
#define LcdAddr_rddr XBYTE [0x8700]        //LCD 讀右半屏數據寄存器端口
#define LcdAddr_wri  XBYTE [0x8c00]        //LCD 寫指令寄存器端口
#define LcdAddr_rdi  XBYTE [0x8d00]        //LCD 讀指令寄存器端口
#define LcdAddr_wrd  XBYTE [0x8e00]        //LCD 寫數據寄存器端口
#define LcdAddr_rdd  XBYTE [0x8f00]        //LCD 讀數據寄存器端口


//#define LcdWaitIdle() while (LcdAddr_rdi & 0x80)


//函數聲明
static void LcdWaitIdle ( void );
extern void LcdSwitch ( bit );
extern void LcdReset ( void );
extern void LcdCls ( void );
extern void LcdClrLine ( uchar );
extern void LcdPutchar ( char *dat, uchar, uchar, bit, bit );


//函數定義
//讀LCD狀態,等待空閑
static void LcdWaitIdle ( void )
{
    while ( LcdAddr_rdi & 0x80 );    //提取并判斷忙標志位
}


//LCD顯示開關,0為關顯示(0x3e),1為開顯示(0x3f)
void LcdSwitch ( bit mode )
{
    LcdWaitIdle ();
    LcdAddr_wri =mode ? 0x3f : 0x3e;
}


//LCD復位
void LcdReset ( void )
{
    LcdSwitch (0);       //關顯示
    LcdWaitIdle ();
    LcdAddr_wri = 0xc0;  //設置Z=0
    LcdWaitIdle ();
    LcdAddr_wri = 0xb8;  //設置X=0
    LcdWaitIdle ();
    LcdAddr_wri = 0x40;  //設置Y=0
    LcdWaitIdle ();
    LcdSwitch (1);        //開顯示
    LcdWaitIdle ();
    LcdCls ();           //清屏
}


//LCD清屏
void LcdCls ( void )
{
    uchar idata page, row;
    for ( page =0; page<8; page++ )
    {
        LcdWaitIdle ();
        LcdAddr_wri = PAGE +page;
        LcdWaitIdle ();
        LcdAddr_wri = ROW;
        for ( row = 0; row<64; row++ )
        {
            LcdWaitIdle ();
            LcdAddr_wrd = 0x00;
        }
    }
}

/*
LCD清除某一行
參數:line ,范圍:1-4
*/
void LcdClrLine ( uchar line )
{
    uchar idata page, row;
    line =(line-1) & 0x03;
    for ( page=line*2; page<line*2+2; page++)
    {
        LcdWaitIdle ();
        LcdAddr_wri = PAGE +page;
        LcdWaitIdle ();
        LcdAddr_wri = ROW;
        for ( row = 0; row<64; row++ )
        {
            LcdWaitIdle ();
            LcdAddr_wrd = 0x00;
        }
    }
}


/*顯示字符
第一個參數為要顯示的數據的首地址
第二個參數為行地址, 1---4
第三個參數為列地址, 1---16(兩屏統一編制)
第四個參數為全/半角選擇,1為全角,0為半角
第五個參數為反顯開關,1為反顯,0不反顯
*/
void LcdPutchar ( char *dat, uchar page, uchar row, bit quanjiao, bit reverse )
{
    uchar idata count, temp;
    uchar idata x, y;
    page -= 1, row -= 1;
    x = PAGE + (page << 1);       //頁初始值
    y = ROW + ((row & 0x07) * 8);          //列初始值
    if ( quanjiao )        //全角字符
    {
        if ( row < 7 )     //完全在左半屏顯示
        {
            for ( temp = 0; temp < 2; temp++ )
            {
                LcdWaitIdle ();
                LcdAddr_wril = x + temp;  //寫入地址
                LcdWaitIdle ();
                LcdAddr_wril = y;
                for ( count = 0; count < 16; count++ )  //寫入數據
                {
                    LcdWaitIdle ();
                    LcdAddr_wrdl = reverse ? ~dat[count + (temp * 16)] : dat[count + (temp * 16)];
                }
            }
        }
        else if ( row > 7 )    //完全在右半屏顯示
        {
            for ( temp = 0; temp < 2; temp++ )
            {
                LcdWaitIdle ();
                LcdAddr_wrir = x + temp;   //寫入地址
                LcdWaitIdle ();
                LcdAddr_wrir = y;
                for ( count = 0; count < 16; count++ )    //寫入數據
                {
                    LcdWaitIdle ();
                    LcdAddr_wrdr = reverse ? ~dat[count + (temp * 16)] : dat[count + (temp * 16)];
                }
            }
        }
        else        //左右半屏各半個字符
        {
            for ( temp = 0; temp < 2; temp++ )
            {
                LcdWaitIdle ();
                LcdAddr_wril = x + temp;    //寫入地址
                LcdWaitIdle ();
                LcdAddr_wril = y;
                for ( count = 0; count < 8; count++ )   //寫入數據
                {
                    LcdWaitIdle ();
                    LcdAddr_wrdl = reverse ? ~dat[count + (temp * 16)] : dat[count + (temp * 16)];
                }
                LcdWaitIdle ();
                LcdAddr_wrir = x + temp;    //寫入地址
                LcdWaitIdle ();
                LcdAddr_wrir = ROW;
                for ( count = 8; count < 16; count++ )    //寫入數據
                {
                    LcdWaitIdle ();
                    LcdAddr_wrdr = reverse ? ~dat[count + (temp * 16)] : dat[count + (temp * 16)];
                }
            }
        }
    }
    else     //半角字符
    {
        if ( row < 8 )  //左半屏顯示
        {
            for ( temp = 0; temp < 2; temp++ )
            {
                LcdWaitIdle ();
                LcdAddr_wril = x + temp;    //寫入地址
                LcdWaitIdle ();
                LcdAddr_wril = y;
                for ( count = 0; count < 8; count++ )   //寫入數據
                {
                    LcdWaitIdle ();
                    LcdAddr_wrdl = reverse ? ~dat[count + (temp * 8)] : dat[count + (temp * 8)];
                }
            }
        }
        else        //右半屏顯示
        {
            for ( temp = 0; temp < 2; temp++ )
            {
                LcdWaitIdle ();
                LcdAddr_wrir = x + temp;   //寫入地址
                LcdWaitIdle ();
                LcdAddr_wrir = y;
                for ( count = 0; count < 8; count++ )    //寫入數據
                {
                    LcdWaitIdle ();
                    LcdAddr_wrdr = reverse ? ~dat[count + (temp * 8)] : dat[count + (temp * 8)];
                }
            }
        }
    }
}


//#endif  //_12864A_H_

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产伦精品一区二区三区免费| 国产精品传媒入口麻豆| 国产综合色精品一区二区三区| 尤物av一区二区| 国产性天天综合网| 日韩女同互慰一区二区| 在线免费观看日本一区| 粉嫩av亚洲一区二区图片| 美女爽到高潮91| 亚洲国产成人va在线观看天堂| 中文字幕成人网| 国产婷婷一区二区| 久久久久久久久伊人| 欧美日韩成人在线一区| 国产成人精品免费| 成人性色生活片免费看爆迷你毛片| 日韩av中文字幕一区二区| 555www色欧美视频| 国产精品色眯眯| 精品少妇一区二区| 日韩视频免费直播| 日韩免费电影网站| 欧美日韩亚洲高清一区二区| 成人av免费在线观看| 一本到不卡免费一区二区| 从欧美一区二区三区| 国产大片一区二区| 成人综合婷婷国产精品久久免费| 国产成人精品1024| 9人人澡人人爽人人精品| 99久久精品国产一区| 97精品国产露脸对白| 一本色道久久综合亚洲精品按摩| 国产成人午夜99999| 高清国产一区二区| av在线播放一区二区三区| 91亚洲精品久久久蜜桃网站 | 麻豆专区一区二区三区四区五区| 天堂一区二区在线| 精品一区二区综合| 国产99久久久国产精品免费看| eeuss鲁片一区二区三区在线观看| 97久久人人超碰| 宅男噜噜噜66一区二区66| 精品国产乱码久久久久久久久| 国产日韩三级在线| 色婷婷av一区二区三区gif| 成人av电影免费观看| 91小宝寻花一区二区三区| 欧美精品在欧美一区二区少妇| 欧美一级日韩免费不卡| 99国产精品99久久久久久| 91麻豆国产香蕉久久精品| 99精品视频一区| 欧美久久久久久久久| 日韩欧美国产综合一区| 久久久久国产成人精品亚洲午夜 | 久久精品国产亚洲高清剧情介绍| 久久66热偷产精品| 99精品国产视频| 正在播放一区二区| 国产三级精品三级| 天天做天天摸天天爽国产一区| 国产在线精品一区二区| 欧美日韩综合色| 国产日韩欧美不卡在线| 亚洲妇女屁股眼交7| 东方aⅴ免费观看久久av| 欧美精品三级在线观看| 欧美一区二区免费视频| 福利一区福利二区| 欧美天堂亚洲电影院在线播放| 精品成人私密视频| 亚洲一区在线观看免费| 韩国v欧美v日本v亚洲v| 在线播放一区二区三区| 日韩美女啊v在线免费观看| 久久国内精品视频| 在线观看欧美日本| 中文字幕中文字幕在线一区 | 在线91免费看| 一区二区三区在线观看动漫| 岛国一区二区在线观看| 精品国产一区久久| 青青青伊人色综合久久| 蜜臀久久久99精品久久久久久| 日韩片之四级片| ...av二区三区久久精品| 热久久一区二区| 欧美亚洲一区二区在线| 国产精品免费丝袜| 国产麻豆视频一区| 欧美一区二区三区免费大片| 开心九九激情九九欧美日韩精美视频电影 | 国产精品三级av在线播放| 亚洲激情图片小说视频| 国产99精品国产| 久久影院电视剧免费观看| 久久99精品国产麻豆婷婷| 欧美精品一区视频| 亚洲一区二区av在线| 91免费看`日韩一区二区| 中文字幕中文字幕一区| 99精品一区二区三区| 国产精品乱码人人做人人爱| 国产在线播放一区| 2020国产精品自拍| 国产伦精品一区二区三区视频青涩| 精品免费日韩av| 精品无人区卡一卡二卡三乱码免费卡| 6080日韩午夜伦伦午夜伦| 日本女人一区二区三区| 日韩精品一区国产麻豆| 国产一区三区三区| 中文字幕一区二区视频| 91麻豆国产香蕉久久精品| 亚洲激情自拍视频| 风间由美一区二区av101| 中文字幕第一区第二区| 欧美在线观看视频在线| 日韩精品成人一区二区在线| 亚洲婷婷综合色高清在线| 激情综合网最新| 久久久久国产成人精品亚洲午夜| 国产美女在线精品| 一区在线观看免费| 欧美日韩一区二区三区在线看| 麻豆成人久久精品二区三区红 | 91成人看片片| 亚洲高清久久久| 久久精品日产第一区二区三区高清版| 风间由美中文字幕在线看视频国产欧美| 国产精品视频观看| 欧美丝袜自拍制服另类| 国产精品一区在线| 亚洲综合激情另类小说区| 久久影院午夜论| 欧美午夜一区二区三区免费大片| 亚洲一区视频在线观看视频| 欧美国产精品久久| 欧美日韩一区二区三区高清| 青青青伊人色综合久久| 国产日本欧洲亚洲| 欧美视频一区在线观看| 捆绑紧缚一区二区三区视频| 欧美不卡一区二区| 成人精品在线视频观看| 日韩一区精品字幕| 久久蜜桃一区二区| 7777精品伊人久久久大香线蕉完整版 | 欧美精品日韩综合在线| 粉嫩aⅴ一区二区三区四区| 亚洲va中文字幕| 一区二区三区四区不卡视频| 久久久精品免费观看| 日韩一区二区电影| 欧美精品日韩综合在线| 亚洲一线二线三线久久久| 国产午夜亚洲精品午夜鲁丝片| 欧美日精品一区视频| 99久免费精品视频在线观看 | 欧美怡红院视频| av网站一区二区三区| 国产盗摄精品一区二区三区在线| 婷婷久久综合九色综合绿巨人| 亚洲欧洲日韩在线| 欧美一级黄色大片| 欧美日韩免费在线视频| 91久久香蕉国产日韩欧美9色| 成人精品高清在线| 风间由美一区二区av101| 国产一区二三区| 国内精品伊人久久久久av影院 | 国产精品99久久久久久有的能看 | 国产欧美日韩综合| 久久综合久久久久88| 精品成人在线观看| 日韩一区二区高清| 2020国产精品自拍| 久久免费看少妇高潮| 国产天堂亚洲国产碰碰| 精品国产麻豆免费人成网站| 精品国产免费视频| 久久精品视频免费| 中文字幕 久热精品 视频在线 | 欧美性大战xxxxx久久久| 日韩欧美一级在线播放| 国产精品毛片大码女人| 亚洲va中文字幕| 国产成+人+日韩+欧美+亚洲| 欧美综合一区二区| 久久久久久久久一| 亚洲一区在线电影| 高清日韩电视剧大全免费| 欧美午夜一区二区三区免费大片| 久久影院午夜论| 天天影视网天天综合色在线播放| 成人综合在线观看| 欧美一级理论片| 色哟哟国产精品|