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

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

?? lcd12864.h

?? C51語言程序的驅(qū)動
?? H
字號:
/*----------------------------------------------------------------------------------------------------*/
/*-----------------------注意: 本編譯器只支持8.3格式(即:DOS格式)的文件--------------------------------*/
/*----------------------------------------------------------------------------------------------------*/
//系統(tǒng)庫
//#include "Reg51.h"
#include "absacc.h"


//自定義庫   在"C:\comp51\UserLib\"文件夾中
#include ".\inc\ASCII816.h" //字符點陣庫 32-127
#include ".\inc\HZTable.h"  //漢字點陣庫(自做)
#include ".\inc\Menu.h"     //漢字點陣庫(自做)


// LCD128*64  數(shù)據(jù)線
#define LCD12864DataPort  P1

// LCD128*64  I/O 信號管腳
sbit di   =P3^1;  // 數(shù)據(jù)\指令 選擇
sbit rw   =P3^3;  // 讀\寫 選擇
sbit en   =P3^2;  // 讀\寫使能
sbit cs1  =P3^4;  // 片選1,低有效(前64列)
sbit cs2  =P3^5;  // 片選2,低有效(后64列)

//sbit reset=P1^4;  //P3^5;  // 復位



/*----------------------------------------------------------------------------------------------------*/
/*  ****函數(shù)列表****

//開關(guān)顯示
void SetOnOff(unsigned char onoff)

//選擇屏幕
//screen: 0-全屏,1-左屏,2-右
void SelectScreen(unsigned char screen)

//清屏
//screen: 0-全屏,1-左屏,2-右
void ClearScreen(unsigned char screen)

//顯示8*8點陣
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-7), column: 列(0-15)
//address : 字模區(qū)首地址
void Show88(unsigned char lin,unsigned char column,unsigned int address)

//顯示8*16字符
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-3), column: 列(0-15)
//character:字符代碼(標準ASCII碼)
void ShowChar(unsigned char lin,unsigned char column,unsigned char character)

//顯示8*16字符串
//!!!只能顯示在一行上即: 串長+column <=15
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-3), column: 列(0-15)
//address : 字模區(qū)首地址
void ShowString(unsigned char lin,unsigned char column, unsigned char *string)

//顯示一個漢字
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-3), column: 列(0-15)
//hzcode: 漢字代碼(自定義的)
void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)

//顯示圖片
//旋轉(zhuǎn)90度   :字模被豎著切分
//startline  :開始行
//startcolumn:開始列
//linechar   :圖片行點除8(圖片以8*8點陣為單位)
//columnchar :圖片列點除8(圖片以8*8點陣為單位)
//address    : 字模區(qū)首地址
void ShowPicture(unsigned char startline,unsigned char startcolumn,unsigned char linechar,unsigned char columnchar,unsigned int address)
//!!問題大戶
//顯示一行漢字
//lin:行
//lineheadaddr: 此行漢字代碼區(qū)首地址
void ShowLine(unsigned char lin,unsigned int lineheadaddr)

//顯示一屏漢字
//pageheadaddr:此屏漢字代碼地址區(qū)首地址
void ShowPage(unsigned int pageheadaddr)

//反顯一個8*8字塊
//lin:行(0-3), column: 列(0-7)
void ReverseShow88(unsigned char lin,unsigned char column)


//反顯一個字符
//lin:行(0-4), column: 列(0-15)
void ReverseShowChar(unsigned char lin,unsigned char column)


//反顯一個漢字
//lin:行(0-3), column: 列(0-7)
ReverseShowHZ(unsigned char lin,unsigned char column)

//反顯一行漢字
//lin:行
ReverseShow(unsigned char lin)

//初始化LCD
void InitLCD()

****函數(shù)列表結(jié)束****   */
/*----------------------------------------------------------------------------------------------------*/
/*--基本函數(shù)源程序------------------------------------------------------------------------------------*/
//延時
Lcd12864delay()
{
unsigned int i=500;
while(i--)  {;}
}
/*----------------------------------------------------------------------------------------------------*/
//狀態(tài)檢查
void CheckState()
{
   unsigned char dat;
   di=0;
   rw=1;
do{
      LCD12864DataPort=0xff;
      en=1; dat=LCD12864DataPort; en=0;
      dat=0x90 & dat;  //僅當?shù)?,7位為0時才可操作
    }while(!(dat==0x00));
}
/*----------------------------------------------------------------------------------------------------*/
//寫顯示數(shù)據(jù)
//dat:顯示數(shù)據(jù)
void WriteByte(unsigned char dat)
{
  CheckState();
  di=1; rw=0;
  LCD12864DataPort=dat;
  en=1; en=0;
}
/*-----------------------------------------------------------------------------------------------------*/
//向LCD發(fā)送命令
//command :命令
SendCommandToLCD(unsigned char command)
{
  CheckState();
  rw=0;
  LCD12864DataPort=command;
  en=1;  en=0;
}
/*----------------------------------------------------------------------------------------------------*/
//設定行地址(頁)--X 0-7
void SetLine(unsigned char line)
{
       line=line & 0x07;   // 0<=line<=7
       line=line|0xb8; //1011 1xxx
       SendCommandToLCD(line);
}
//設定列地址--Y 0-63
void SetColumn(unsigned char column)
{
       column=column &0x3f;   // 0=<column<=63
       column=column | 0x40;  //01xx xxxx
       SendCommandToLCD(column);
}
//設定顯示開始行--XX
void SetStartLine(unsigned char startline)  //0--63
{
       startline=startline & 0x07;
       startline=startline|0xc0; //1100 0000
       SendCommandToLCD(startline);
}
//開關(guān)顯示
void SetOnOff(unsigned char onoff)
{
     onoff=0x3e | onoff; //0011 111x
     SendCommandToLCD(onoff);
}
/*---------------------------------------------------------------------------------------------------*/
//選擇屏幕
//screen: 0-全屏,1-左屏,2-右屏
void SelectScreen(unsigned char screen)
{  //北京顯示器:負有效  cs1: 0--右; cs2: 0--左
   switch(screen)
    { case 0:  cs1=1;//全屏
               cs2=1; break;
      case 1:  cs1=1;//左屏
               cs2=0; break;
      case 2:  cs1=0;//右屏
               cs2=1; break;
    }
}
/*---------------------------------------------------------------------------------------------------*/
//清屏
//screen: 0-全屏,1-左屏,2-右
void ClearScreen(unsigned char screen)
{  unsigned char i,j;
   SelectScreen(screen);
    for(i=0;i<8;i++)
    { SetLine(i);
          for(j=0;j<64;j++)
         {
            WriteByte(0x00);
         }
     }
}
/*--------------------------------------------------------------------------------------------------*/
//顯示8*8點陣
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-7), column: 列(0-15)
//address : 字模區(qū)首地址
void Show88(unsigned char lin,unsigned char column,unsigned int address)
{   unsigned char i;
    if(column>16) {return;}
    if(column<8)  SelectScreen(1); //如果列數(shù)<8(0,1,2,3,4,5,6,7)則寫在第一屏上
    else  {
            SelectScreen(2);       //否則      (8,9,10,11,12,13,14,15)寫在第二屏上
            column=column & 0x07;  //防止越界
          }
    SetLine(lin);
    SetColumn(column<<3);
    for(i=0;i<8;i++)  WriteByte( CBYTE[address+i] );
}
/*------------------------------------------------------------------------------------------------*/
//顯示8*16字符
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-3), column: 列(0-15)
//character:字符代碼(標準ASCII碼)
void ShowChar(unsigned char lin,unsigned char column,unsigned char character)
{     lin=lin<<1;
      Show88(lin  ,column,ASCII816[character-0x20] );
      Show88(lin+1,column,ASCII816[character-0x20]+8 );
}
/*-----------------------------------------------------------------------------------------------*/
/*
//顯示8*16字符串
//!!!只能顯示在一行上即: 串長+column <=15
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-3), column: 列(0-15)
//address : 字模區(qū)首地址
void ShowString(unsigned char lin,unsigned char column, unsigned char *string)
{      unsigned char ch;
       unsigned char i=0;

         while(*string!='\0')
	{
        	ch=*string;
                if(i+column >15) break; //(只能顯示在一行上即: 串長+column <=15)
		ShowChar(lin,i+column,ch);
		string++; i++;
        }
}
*/
/*----------------------------------------------------------------------------------------------*/
//顯示一個漢字
//旋轉(zhuǎn)90度:字模被豎著切分
//lin:行(0-3), column: 列(0-7)
//hzcode: 漢字代碼(自定義的)
//uchar code HZtable
void ShowHZ(unsigned char lin,unsigned char column,unsigned int hzcode)
{
   lin=lin<<1;          //lin*2

   Show88(lin,column,HZTable[hzcode]);
   Show88(lin,column+1,HZTable[hzcode]+8);
   Show88(lin+1,column,HZTable[hzcode]+16);
   Show88(lin+1,column+1,HZTable[hzcode]+24);
}
/*----------------------------------------------------------------------------------------------*/
//顯示圖片
//旋轉(zhuǎn)90度   :字模被豎著切分
//startline  :開始行
//startcolumn:開始列
//linechar   :圖片行點除8(圖片以8*8點陣為單位)
//columnchar :圖片列點除8(圖片以8*8點陣為單位)
//address    : 字模區(qū)首地址
void ShowPicture(unsigned char startline,unsigned char startcolumn,unsigned char linechar,unsigned char columnchar,unsigned int address)
{   unsigned char i,j;
     for(i=0;i<columnchar;i++)
        for(j=0;j<linechar;j++)
            Show88(startline+i , startcolumn+j , address+(i*linechar+j)*8 );
}
/*----------------------------------------------------------------------------------------------*/
//顯示一行字符串(漢字,字母混排,一行16字節(jié))
//lin:行
//lineheadaddr: 此行漢字代碼區(qū)首地址
void ShowLine(unsigned char lin,unsigned char linehead[])
{     unsigned char i;
      unsigned char byte;
      unsigned int hzcode;
   for( i=0; i<16; )
       {  byte=linehead[i];
          if(byte < 0x80)  //字母
                {
                   if(i>15) return;   //!!編譯器有問題,須強制退出

                 ShowChar(lin, i , byte);
                  i=i+1;

                }
          else    // byte >= 0x80(漢字)
               {
                  if(i>15) return; //!!編譯器有問題,須強制退出

                  byte=byte & 0x7f;  //最高位置0,即:減去0x8000
                  hzcode=(unsigned int)byte<<8;    //??        //高8位
                  hzcode=hzcode+linehead[i+1]; //加低8位,組合成整型數(shù)地址
                  ShowHZ( lin,i,hzcode);
                  i=i+2;
               }
       }
}
/*----------------------------------------------------------------------------------------------------*/
//顯示一屏漢字
//pageheadaddr:此屏漢字代碼地址區(qū)首地址
void ShowPage(unsigned char pagehead[][16])
{  unsigned char i;
  for(i=0;i<4;i++)    ShowLine(i,pagehead[i]); //1行8個漢字,16字節(jié)
}
/*----------------------------------------------------------------------------------------------------*/
//讀顯示數(shù)據(jù)
unsigned char ReadByte()
{
  unsigned char dat;
  CheckState();
  di=1; rw=1;
  LCD12864DataPort=0xff;
  en=1;  dat=LCD12864DataPort;  en=0;
  return(dat);
}

/*----------------------------------------------------------------------------------------------------*/
//反顯一個8*8字塊
//lin:行(0-3), column: 列(0-7)
void ReverseShow88(unsigned char lin,unsigned char column)
{  unsigned char i;
   unsigned char tab[8];

       if(column<8)  SelectScreen(1); //如果列數(shù)<4(0,1,2,3),則寫在第一屏上
       else          SelectScreen(2); //否則      (4,5,6,7),  寫在第二屏上
//讀上部8列
        column=column<<3;       //每個方塊8*8大小
        SetLine(lin);
        SetColumn(column);
        tab[0]=ReadByte();  //空讀!!!!!             //?
        for(i=0;i<8;i++)  tab[i]=~ReadByte();
   //寫回
        SetLine(lin);
        SetColumn(column);
        for(i=0;i<8;i++)  WriteByte(tab[i]);
}
/*----------------------------------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------------------------------*/
//反顯一個字符
//lin:行(0-4), column: 列(0-15)
void ReverseShowChar(unsigned char lin,unsigned char column)
{  lin=lin<<1;
   ReverseShow88(lin  ,column);
   ReverseShow88(lin+1,column);
}
/*----------------------------------------------------------------------------------------------------*/
//反顯一個漢字
//lin:行(0-3), column: 列(0-7)
ReverseShowHZ(unsigned char lin,unsigned char column)
{
  lin=lin<<1;
  column=column<<1;
  ReverseShow88(lin  ,column  );
  ReverseShow88(lin  ,column+1);
  ReverseShow88(lin+1,column  );
  ReverseShow88(lin+1,column+1);
}
/*----------------------------------------------------------------------------------------------------*/
//反顯一行漢字
//lin:行
ReverseShow(unsigned char lin)
{    unsigned char i;
  for(i=0;i<8;i++)   ReverseShowHZ(lin,i);
}
/*----------------------------------------------------------------------------------------------------*/
void InitLCD()   //初始化LCD
{  unsigned char i=250; //延時
   while(i--);

   //reset=0;//復位
   //reset=1;

   SelectScreen(0);
   SetOnOff(0); //關(guān)顯示

   ClearScreen(1);//清屏
   ClearScreen(2);

   SelectScreen(0);
   SetOnOff(1); //開顯示
   SelectScreen(0);
   SetStartLine(0); //開始行:0
}
/*----------------------------------------------------------------------------------------------------*/


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.视频一区| 日韩午夜激情电影| 欧美日精品一区视频| 欧美午夜一区二区| 91精品国产91久久综合桃花| 欧美男生操女生| 精品国产三级a在线观看| 欧美激情一区在线| 一个色在线综合| 蜜臀av亚洲一区中文字幕| 韩国精品主播一区二区在线观看| 日韩精品一区在线| 欧美精品一区二区三区四区| 国产三级精品在线| 亚洲成人高清在线| 国产精品99久久久久| 在线观看网站黄不卡| 久久久久久免费网| 亚洲国产人成综合网站| 国产在线视频不卡二| 色综合天天综合色综合av| 久久综合色之久久综合| 亚洲一区在线电影| 高清视频一区二区| 欧美一区二区精品久久911| 综合久久国产九一剧情麻豆| 免费观看成人av| 在线亚洲精品福利网址导航| 久久久久国产精品人| 亚洲成人黄色影院| eeuss影院一区二区三区| 久久先锋资源网| 日本美女一区二区三区| 在线亚洲一区观看| 国产精品国产三级国产aⅴ原创| 麻豆成人av在线| 欧美巨大另类极品videosbest| 国产精品第一页第二页第三页| 秋霞国产午夜精品免费视频| 欧美视频精品在线| 亚洲免费在线视频一区 二区| 国产成人h网站| 久久久久久久久久久黄色| 六月婷婷色综合| 精品国产三级电影在线观看| 国产真实乱对白精彩久久| 日韩精品一区二区三区视频播放 | 欧美日韩免费不卡视频一区二区三区 | 久久电影网站中文字幕| 在线成人小视频| 日本 国产 欧美色综合| 欧美一二三四在线| 久久福利资源站| 久久久精品一品道一区| 国产高清不卡二三区| 中文字幕精品一区二区精品绿巨人 | 欧美日韩国产免费一区二区| 丝袜亚洲另类丝袜在线| www一区二区| www.成人在线| 婷婷丁香久久五月婷婷| 日韩三级中文字幕| 白白色 亚洲乱淫| 亚洲午夜电影在线| 久久精品欧美日韩| 色综合久久久久久久久| 日韩av午夜在线观看| 国产夜色精品一区二区av| 国产网站一区二区三区| 成人午夜碰碰视频| 亚洲成年人网站在线观看| 国产色91在线| 91麻豆精品国产91久久久| 成人a区在线观看| 另类小说一区二区三区| 成人免费一区二区三区在线观看| 337p亚洲精品色噜噜狠狠| 波波电影院一区二区三区| 免费久久99精品国产| 一区二区三区在线观看动漫 | 精品美女在线播放| 欧洲精品中文字幕| 成人动漫视频在线| 国模无码大尺度一区二区三区| 亚洲午夜激情网站| 一区二区在线免费观看| 久久精品亚洲国产奇米99| 91麻豆精品国产91久久久久| 欧美在线色视频| 99久久精品国产一区二区三区 | 蓝色福利精品导航| 天天综合色天天综合| 亚洲黄色性网站| 亚洲日本在线a| 国产亚洲污的网站| 精品国产乱码久久久久久夜甘婷婷| 欧美日韩一级黄| 欧美日韩另类国产亚洲欧美一级| 91国产福利在线| 在线欧美一区二区| 欧美性一区二区| 欧美日韩国产综合视频在线观看 | 国产拍欧美日韩视频二区| 精品国产一区二区三区av性色 | 亚洲国产精品一区二区久久 | 欧美xxxxxxxx| 国产日韩欧美在线一区| 国产日韩欧美高清| 中文字幕亚洲成人| 亚洲国产精品欧美一二99| 亚洲影视在线观看| 青青草国产成人av片免费| 久久精品国产亚洲高清剧情介绍| 久久爱另类一区二区小说| 国产一区二区三区在线观看免费 | 欧美韩日一区二区三区| 亚洲日本成人在线观看| 五月天中文字幕一区二区| 久久99久国产精品黄毛片色诱| 国产精品一区二区免费不卡| 91蜜桃免费观看视频| 欧美精品日韩一区| 久久久精品天堂| 亚洲电影第三页| 国产suv精品一区二区6| 欧美亚洲禁片免费| 久久久久久久综合| 日本不卡免费在线视频| 不卡的电视剧免费网站有什么| 欧美日韩精品免费观看视频| 久久精品一区二区三区不卡| 亚洲最大的成人av| 国产高清久久久久| 欧美一级淫片007| 一区在线观看视频| 国产一区二区免费在线| 欧美一区二区三区公司| 亚洲女厕所小便bbb| 国产成人一区在线| 精品剧情v国产在线观看在线| 一区二区在线看| 91色porny在线视频| 中文字幕精品在线不卡| 精品影视av免费| 精品国产髙清在线看国产毛片| 一区二区成人在线| 色婷婷狠狠综合| 亚洲精品一二三四区| 波多野结衣亚洲| 自拍偷拍国产精品| 色呦呦日韩精品| 亚洲男帅同性gay1069| 成人国产视频在线观看| 国产精品网站在线| 成人精品视频一区二区三区尤物| 精品国内二区三区| 国产乱子伦视频一区二区三区| 欧美一区二区日韩| 狠狠色丁香久久婷婷综| 久久蜜臀精品av| 成人高清在线视频| 亚洲色图都市小说| 欧美群妇大交群中文字幕| 青青草一区二区三区| 亚洲精品一区二区三区蜜桃下载 | 亚洲私人影院在线观看| 色综合视频在线观看| 午夜精品一区二区三区免费视频| 正在播放亚洲一区| 国内精品国产成人国产三级粉色| 久久久一区二区| 在线观看免费视频综合| 日韩va亚洲va欧美va久久| 久久精品日韩一区二区三区| 91老司机福利 在线| 日韩av一级电影| 中文字幕在线播放不卡一区| 欧美老人xxxx18| 成人精品视频一区二区三区| 日日摸夜夜添夜夜添国产精品| 日韩精品在线看片z| 99久精品国产| 久色婷婷小香蕉久久| 成人欧美一区二区三区1314| 日韩免费看的电影| 日本高清不卡视频| 国产成人免费视频一区| 日韩精品免费专区| 一区在线中文字幕| 精品国产一区二区三区久久久蜜月| 91在线无精精品入口| 国产成人啪免费观看软件| 日韩不卡在线观看日韩不卡视频| 国产精品国产三级国产普通话99 | 美女视频一区二区三区| 亚洲美女在线一区| 亚洲欧美在线aaa| 久久久蜜桃精品| 精品国免费一区二区三区| 欧美一区二区在线观看|