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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? t6963.h

?? 觸摸屏幕資料!還有電路圖!可以借鑒的!是初學(xué)者的好資料
?? H
字號:
//////////////////////////////////////////////////////////////////////////
//       LCD 驅(qū)動程序: Display        字符:8*8 漢字16*16
//       本庫函數(shù)適用于所有 T6963 控制的LCD(通用函數(shù))
//       用戶可以修改有關(guān)數(shù)據(jù),以適應(yīng)具體的LCD
//       修改庫函數(shù),將有關(guān) WindowsLineDot,WindowColumnDot,LineChar的計算簡化,可以提高速度
//       可修改的地方由 //?? 標(biāo)記

#include  "absacc.h"
#include  "math.h"


#include  "ASCII816.h" //字符點(diǎn)陣庫 0x20--0x7F

#include  "HZTable.h"  //漢字點(diǎn)陣庫(自做)
#include  "menu.h"  //漢字點(diǎn)陣庫(自做)

#include "intrins.h"

sbit P3_1 = P3^1;


//set following data by user according to LCD
#define   ComPort       0xB101
#define   DataPort      0xB000
#define   GraphAddr     0x0000      //head of graph

//以8*8字符計算,顯示屏橫向、縱向可以顯示的字符個數(shù)
//以240*128為例:
#define   LineChar      30   //一行16個字符(8*8)
#define   ColumnChar    16   //總共16列


//指令,數(shù)據(jù) 讀寫狀態(tài)檢查
#define  RWCheck()    {  unsigned char   sta;   do{ sta=XBYTE[ComPort] & 0x03; } while(sta!=0x03);  }
//數(shù)據(jù)自動讀 狀態(tài)檢查
#define  AutoRCheck() {  unsigned char   sta;   do{ sta=XBYTE[ComPort] & 0x04; } while(sta!=0x04);  }
//數(shù)據(jù)自動寫 狀態(tài)檢查
#define  AutoWCheck() {  unsigned char   sta;	do{ sta=XBYTE[ComPort] & 0x08; } while(sta!=0x08);  }

/*------輸入/出函數(shù),與T6963通訊------------------------------------------------*/
/*------------------------------------------------------------------------*/

// 向數(shù)據(jù)口發(fā)Data
#define  OutPortData(dat )   { P2=0xFF;  RWCheck();  XBYTE[DataPort]=dat; }

//寫有 1 個參數(shù)命令
#define  OutPortCom1(command) { P2=0xFF;  RWCheck();  XBYTE[ComPort]= command; }

//寫有 2 個參數(shù)命令
#define  OutPortCom2(dat, command)  { P2=0xFF; OutPortData(dat); OutPortCom1(command); }

//寫有 3 個參數(shù)命令
#define  OutPortCom3(data1, data2, command) { P2=0xFF; OutPortData(data1); OutPortData(data2); OutPortCom1(command);}


unsigned char  InPortData()  { RWCheck();   return(XBYTE[DataPort]); }

void ClearWork(unsigned int StartAddr,unsigned char K,unsigned char H);

delay(unsigned int t)
{
 while(t--);
}

/*-----------------------------------------------------------------------------------*/
//顯示8*16字符
//lin:行(0-7), column: 列(0-15)
//ch:字符代碼(標(biāo)準(zhǔn)ASCII碼)
void ShowChar(unsigned char lin,unsigned char column,unsigned char ch)
{
  unsigned char i;
  unsigned char dat;
  unsigned int  StartAddr;

  StartAddr=lin*LineChar +column;  //定位起始行

  for(i=0;i<16;i++)
     {
       dat=ASCII816[ ch-0x20 ][i];
       OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
       OutPortCom2( dat, 0xc4);

       StartAddr=StartAddr + LineChar;
     }
}



/*----------------------------------------------------------------------------------------------*/
//顯示一個漢字(16*16點(diǎn)陣)
//lin:行(0-7), column: 列(0-7)
//hzcode: 漢字代碼(自定義的)
void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)
{
  unsigned char i;
  unsigned int StartAddr;

  StartAddr=lin*LineChar + column;  //定位起始行

  for(i=0;i<16;i++)
     {
       OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24);
       OutPortCom2( HZTable[hzcode][i*2], 0xc0);     //左半部  地址加一
       OutPortCom2( HZTable[hzcode][i*2+1], 0xc4);   //右半部  字模地址加一

       StartAddr=StartAddr + LineChar;
     }
}
/*-----------------------------------------------------------------------------------*/
//顯示一行字符串(漢字,字母混排,一行16字節(jié))
//lin:行
//lineheadaddr: 此行漢字代碼區(qū)首地址
/*
void ShowLine(unsigned char lin,unsigned char column,unsigned char linehead[])
{
  unsigned char i,j;
  unsigned char byte;
  unsigned int hzcode;

  for( i= column,j=0; i< column+14 ; )
     {  byte=linehead[j];
        if(byte < 0x80)  //字母
          {
            ShowChar(lin, i , byte);
            i=i+1;j=j+1;
          }
        else    // byte >= 0x80(漢字)
          {
            byte=byte & 0x7f;  //最高位置0,即:減去0x8000
            hzcode=byte*256 + linehead[j+1]; //加低8位,組合成整型數(shù)地址
            ShowHZ( lin,i,hzcode);
            i=i+2;j=j+2;
          }
    }
}
*/
/*-----------------------------------------------------------------------------------*/
//顯示一屏漢字
//pageheadaddr:此屏漢字代碼地址區(qū)首地址
/*
void ShowPage(unsigned char pagehead[][16])
{ unsigned char i,j;
  ClearWork(641,100,18);
  for(i=29,j=0;i<=101;i+=18,j++)    ShowLine(i,11,pagehead[j]); //1行8個漢字,16字節(jié)
}
*/

/*----------------------------------------------------------------------------------------------------*/
//反顯一個字符
//lin:行(0-7), column: 列(0-15)
void ReverseShowChar(unsigned char lin,unsigned char column)
{
  unsigned char i;
  unsigned char dat;
  unsigned int  StartAddr;

  StartAddr=lin*LineChar +column;  //定位起始行

  for(i=0;i<16;i++)
     {
       OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
       OutPortCom1( 0xc5 );  //數(shù)據(jù)一次讀,地址不變
       dat=InPortData();     //讀入數(shù)據(jù)
       dat=~dat;             //取反
       OutPortCom2( dat, 0xc4); //送回

       StartAddr=StartAddr+ LineChar;
     }
}


/*----------------------------------------------------------------------------------------------------*/
//反顯一個漢字
//lin:行(0-7), column: 列(0-15)
/*void ReverseShowHZ(unsigned char lin,unsigned char column)
{
  ReverseShowChar(lin,column);
  ReverseShowChar(lin,column+1);
}*/
/*----------------------------------------------------------------------------------------------------*/
//反顯一行漢字
//lin:行(0-7)
/*void ReverseShowLine(unsigned char lin)
{
  unsigned char column;
  for(column=0; column< ColumnChar; column++)  ReverseShowChar(lin,column);
}

*/
//////////////////////////////////////////////////////////////////////////////////////
void ShowPicture(unsigned char Startline,unsigned char Startcolumn,unsigned char LineWidth,unsigned char ColumnWidth,unsigned int address)
{
    unsigned char i,j;
    unsigned int StartAddr;

    StartAddr=Startline*LineChar + Startcolumn;  //定位起始位置

    for(i=0;i<ColumnWidth;i++)
       {

          OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
          for(j=0;j<LineWidth;j++)
             {
                OutPortCom2( CBYTE[address + i*LineWidth+ j ], 0xc0);
             }
          StartAddr=StartAddr + LineChar;
       }
}

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
//圖形函數(shù),用于描點(diǎn)畫圖
//---------------------------------------------------------------------------
//在指定位置顯示一個點(diǎn)
//如果顯示屏超過了256*256,請修改這個函數(shù) PointX,PointY的類型
//Mode   1:顯示  0:清除該點(diǎn)
Pixel(unsigned char PointX,unsigned char PointY, bit Mode)
{
      unsigned int StartAddr=0;
      unsigned char dat;

      StartAddr=PointX*LineChar + PointY/8;
      dat=0xf0+7-PointY%8;
      if(Mode)  dat=dat|0x08;

      OutPortCom3( (unsigned char)(StartAddr),(unsigned char)(StartAddr>>8),0x24 ); //設(shè)置該點(diǎn)所在單元地址
      OutPortCom1(dat);
}

//-------------------------------------------------------------------------------
//劃線函數(shù)
void Line( unsigned char x1, unsigned char y1, unsigned char x2, unsigned char y2, bit Mode)
{
   unsigned char x,y;
   double k,b;

  if( abs(y1-y2) <= abs(x1-x2) )  // |k|<=1
    {
         k=(float)(y2-y1) / (float)(x2-x1) ;
         b=y1-k*x1;

         if( x1 <= x2 )
            {
                for(x=x1;x<=x2;x++)
                    {
                      y=k*x+b;
                      Pixel(x, y, Mode);
                    }
            }
         else
            {
              for(x=x2;x<=x1;x++)
                 { y=k*x+b;
                   Pixel(x, y, Mode);
                 }
           }
    }
  else   // abs(y1-y2) > abs(x1-x2)  |K|>1
    {
         k=(float)(x2-x1) / (float)(y2-y1) ;
         b=x1-k*y1;

         if( y1 <= y2 )
           {
             for(y=y1;y<=y2;y++)
                 { x=k*y+b;
                   Pixel( x , y,Mode );
                 }
           }
         else
           {
             for(y=y2;y<=y1;y++)
                {  x=k*y+b;
                   Pixel( x , y,Mode );
                }
          }
     }
}



/*---------------------------------------------------------------------------------------------------*/
void ClearScreen()
{

  unsigned  int i;
  /////////  清顯示 RAM 區(qū)   0000h--2000h  (8k)
  OutPortCom3(0x00,0x00,0x24);  //設(shè)置指針地址0000H

  OutPortCom1(0xb0);            //設(shè)置自動寫狀態(tài)
  for(i=0x00;i<0x2000;i++)  OutPortData(0x00);      // data=0;
  OutPortCom1(0xb2);            // 自動寫結(jié)束
}

//初始化LCD
//需要手動設(shè)置
void InitLCD()
{
       OutPortCom3( 0x00,0x00,0x42 );       //設(shè)置圖形顯示區(qū)域首地址GraphAddr
       OutPortCom3(   30,0x00,0x43 );   //設(shè)置圖形顯示區(qū)域?qū)挾?: LineChar

//       OutPortCom3( 0x00,0x00,0x42 );    //設(shè)置圖形顯示區(qū)域首地址GraphAddr
//       OutPortCom3( 0x10,0x00,0x43);                      //設(shè)置圖形顯示區(qū)域?qū)挾?10H

       OutPortCom1(0xa7);               //設(shè)置光標(biāo)形狀 cursor size 8x8
       OutPortCom1(0x80);               //設(shè)置顯示方式:  CGROM方式 文本\圖形 "或"
       OutPortCom1(0x98);               //設(shè)置顯示開關(guān):  1001 1100 圖形

       ClearScreen();
}

//清除任意區(qū)域       // strataddr開始地址 = 開始的行數(shù)*30+開始的列數(shù)   k=高度  h=寬度
void ClearWork(unsigned int StartAddr,unsigned char K,unsigned char H)
{
    unsigned char i,j;

    for(i=0;i<K;i++)
       {

          OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
          for(j=0;j<H;j++)
             {
                OutPortCom2( 0, 0xc0);
             }
          StartAddr=StartAddr + 30;
       }
}

//反顯任意區(qū)域     // strataddr開始地址 = 開始的行數(shù)*30+開始的列數(shù)    k=高度  h=寬度
void ReverseWork(unsigned int StartAddr,unsigned char K,unsigned char H)
{
  unsigned char i,j,dat;

    for(i=0;i<K;i++)
       {

          OutPortCom3( (unsigned char)(StartAddr), (unsigned char)(StartAddr>>8), 0x24); //set address
          for(j=0;j<H;j++)
             {
                OutPortCom1( 0xc5 );  //數(shù)據(jù)一次讀,地址不變
                dat=InPortData();     //讀入數(shù)據(jù)
                dat=~dat;
                OutPortCom2( dat, 0xc0);
             }
          StartAddr=StartAddr + 30;
       }
}

/*
restrest()  //液晶刷新
{
 P3_1=0;
 _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();
 P3_1=1;
 _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();   _nop_();
 OutPortCom1(0x98);
}
*/

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩区在线观看| 久久久另类综合| 国产高清不卡一区| 一区二区三区国产豹纹内裤在线| 欧美大片一区二区| 欧美视频你懂的| 97国产一区二区| 国模一区二区三区白浆| 天天免费综合色| 亚洲日本va午夜在线影院| 久久久久久久国产精品影院| 欧美日韩精品免费观看视频 | 国产精品白丝jk黑袜喷水| 亚洲a一区二区| 亚洲精品欧美在线| 国产精品国产三级国产普通话99 | 欧美老人xxxx18| 97国产精品videossex| 国产精品99久久久| 蜜桃av一区二区| 亚洲成人免费观看| 亚洲国产中文字幕| 亚洲蜜臀av乱码久久精品| 国产精品少妇自拍| 日本一区二区三区四区| 久久综合色8888| 久久蜜桃香蕉精品一区二区三区| 在线播放中文一区| 8x福利精品第一导航| 欧美色区777第一页| 色94色欧美sute亚洲13| 99re这里都是精品| 91亚洲男人天堂| 成人高清免费观看| 成人a免费在线看| 成人高清av在线| 99久久精品情趣| 91在线你懂得| 91网站在线观看视频| 99国产麻豆精品| 色悠悠久久综合| 亚洲欧洲一区二区三区| 亚洲国产成人午夜在线一区| 日本一区二区三区在线观看| 欧美激情一区二区三区蜜桃视频| 欧美国产日韩在线观看| 中文字幕一区二区三区四区| 亚洲免费观看高清在线观看| 一区二区三区毛片| 五月激情丁香一区二区三区| 蜜臀av在线播放一区二区三区| 久久99热狠狠色一区二区| 极品少妇xxxx精品少妇| 国产福利一区二区三区视频在线| 国产mv日韩mv欧美| 99九九99九九九视频精品| 91美女精品福利| 欧美性大战xxxxx久久久| 欧美三级日本三级少妇99| 69久久99精品久久久久婷婷| 精品日韩99亚洲| 国产精品黄色在线观看| 一区二区三区 在线观看视频| 日日摸夜夜添夜夜添亚洲女人| 久久精品国产精品亚洲红杏| 国产成人综合精品三级| 91久久精品一区二区三| 在线播放中文字幕一区| 国产三级欧美三级| 亚洲一区二区三区不卡国产欧美| 日韩av一区二区在线影视| 国产精品一区二区免费不卡| 色狠狠桃花综合| 精品国产制服丝袜高跟| 亚洲视频在线观看三级| 蜜臀久久99精品久久久久宅男| 韩日欧美一区二区三区| 91社区在线播放| 日韩视频免费观看高清在线视频| 中文字幕不卡在线播放| 午夜天堂影视香蕉久久| 国产精品77777竹菊影视小说| 色偷偷一区二区三区| 精品久久久久久久人人人人传媒 | 国产传媒日韩欧美成人| 欧美伊人久久久久久久久影院 | 国产一区二区三区免费在线观看| 972aa.com艺术欧美| 日韩一区二区三免费高清| 国产精品亲子伦对白| 日韩**一区毛片| 成人在线一区二区三区| 日韩视频中午一区| 亚洲日本va在线观看| 这里只有精品电影| 国产精品三级电影| 麻豆91在线播放| 色伊人久久综合中文字幕| 精品国产乱码久久久久久闺蜜| 亚洲激情自拍视频| 国产99精品视频| 精品美女一区二区三区| 亚洲成av人片| 91色综合久久久久婷婷| 国产日韩欧美精品综合| 美脚の诱脚舐め脚责91| 欧美日韩你懂得| 亚洲丝袜自拍清纯另类| 国产剧情av麻豆香蕉精品| 91精品国产综合久久国产大片| 亚洲激情综合网| av电影在线观看一区| 久久久久久一二三区| 久久国产精品72免费观看| 欧美乱妇一区二区三区不卡视频 | 国产成人精品在线看| 日韩欧美一级精品久久| 日韩电影在线免费| 欧美性大战久久| 一区二区三区日韩| 色偷偷成人一区二区三区91| 国产女主播视频一区二区| 国产精品自拍一区| 26uuu成人网一区二区三区| 日本亚洲三级在线| 欧美一区国产二区| 日韩国产欧美一区二区三区| 欧美日韩一区在线观看| 亚洲免费av在线| 在线一区二区三区做爰视频网站| 亚洲少妇最新在线视频| 99久久久国产精品免费蜜臀| 亚洲欧洲一区二区在线播放| a在线欧美一区| 《视频一区视频二区| 97久久超碰精品国产| 亚洲三级久久久| 在线精品视频小说1| 亚洲一区二区三区美女| 欧美日韩色一区| 日本在线不卡视频一二三区| 日韩欧美久久一区| 精品一区二区三区免费| 久久精品视频免费观看| 国产宾馆实践打屁股91| 亚洲丝袜精品丝袜在线| 欧美在线一区二区三区| 日韩成人一区二区三区在线观看| 欧美精品丝袜久久久中文字幕| 日本免费新一区视频| 精品粉嫩aⅴ一区二区三区四区| 极品少妇xxxx精品少妇偷拍| 久久久www免费人成精品| 大胆亚洲人体视频| 夜夜夜精品看看| 日韩三级av在线播放| 国产美女主播视频一区| 亚洲三级电影网站| 亚洲另类在线制服丝袜| 欧美在线观看视频一区二区| 日日骚欧美日韩| 国产清纯白嫩初高生在线观看91 | 午夜精品福利久久久| 日韩欧美三级在线| 成人黄色在线看| 亚洲成av人影院| 欧美精品一区二区蜜臀亚洲| av在线播放一区二区三区| 亚洲韩国精品一区| 久久精品一区二区三区av| 色婷婷久久久综合中文字幕| 日韩电影在线看| 亚洲欧洲av一区二区三区久久| 欧美视频一区在线| 国内精品国产成人国产三级粉色 | 精品久久人人做人人爰| av男人天堂一区| 日产国产欧美视频一区精品| 久久精品亚洲乱码伦伦中文| 欧美做爰猛烈大尺度电影无法无天| 麻豆成人久久精品二区三区小说| 国产精品色哟哟网站| 日韩视频国产视频| 99国产精品久久| 韩国理伦片一区二区三区在线播放 | 555夜色666亚洲国产免| 大胆亚洲人体视频| 免费成人结看片| 亚洲少妇30p| 久久先锋资源网| 欧美精品v国产精品v日韩精品| 日韩一区二区在线看| 91麻豆swag| 激情欧美日韩一区二区| 一区二区三区免费看视频| 国产清纯在线一区二区www| 91精品国产手机| 色噜噜偷拍精品综合在线| 粉嫩av一区二区三区| 久久激情综合网|