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

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

?? 單片機(jī)坐標(biāo)240x128液晶t6963控制器驅(qū)動(dòng)程序(c51).txt

?? 240x128液晶T6963控制器驅(qū)動(dòng)程序(C51)。功能較強(qiáng)
?? TXT
字號(hào):


                        240x128液晶T6963控制器驅(qū)動(dòng)程序(C51)

                  /*------------------------------------------------------------------------------------------
                  
                  ===========================================================================================*/ 

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

                  #include "ASCII816.h" //標(biāo)準(zhǔn)ASCII庫(kù)
                  #include "HZTable.h"  //漢字點(diǎn)陣庫(kù)(自做)
                  #include "menu.h"     //菜單庫(kù)(自做)
                  #define ComPort 0xB101
                  #define DataPort 0xB000
                  #define GraphAddr 0x0000 //head of graph
                  //以8*8字符計(jì)算,顯示屏橫向、縱向可以顯示的字符個(gè)數(shù)
                  //以240*128為例:
                  #define LineChar 30 //一行16個(gè)字符(8*8)
                  #define ColumnChar 16 //總共16列

                  //指令,數(shù)據(jù) 讀寫(xiě)狀態(tài)檢查
                  #define RWCheck() { unsigned char sta; do{ sta=XBYTE[ComPort] 
                  & 0x03; } while(sta!=0x03); }
                  //數(shù)據(jù)自動(dòng)讀 狀態(tài)檢查
                  #define AutoRCheck() { unsigned char sta; do{ 
                  sta=XBYTE[ComPort] & 0x04; } while(sta!=0x04); }
                  //數(shù)據(jù)自動(dòng)寫(xiě) 狀態(tài)檢查
                  #define AutoWCheck() { unsigned char sta; do{ 
                  sta=XBYTE[ComPort] & 0x08; } while(sta!=0x08); }
                  /*------輸入/出函數(shù),與T6963通訊------------------------------------------------*/
                  /*------------------------------------------------------------------------*/
                  // 向數(shù)據(jù)口發(fā)Data
                  #define OutPortData(dat ) { RWCheck(); XBYTE[DataPort]=dat; }
                  //寫(xiě)有 1 個(gè)參數(shù)命令
                  #define OutPortCom1(command) { RWCheck(); XBYTE[ComPort]= 
                  command; }
                  //寫(xiě)有 2 個(gè)參數(shù)命令
                  #define OutPortCom2(dat, command) { OutPortData(dat); 
                  OutPortCom1(command); }
                  //寫(xiě)有 3 個(gè)參數(shù)命令
                  #define OutPortCom3(data1, data2, command) { 
                  OutPortData(data1); OutPortData(data2); OutPortCom1(command);}

                  unsigned char InPortData() { RWCheck(); 
                  return(XBYTE[DataPort]); }
                  /*-----------------------------------------------------------------------------------*/
                  //顯示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;
                  }
                  }
                  /*----------------------------------------------------------------------------------------------*/
                  //顯示一個(gè)漢字(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;
                  }
                  }
                  /////////////////////////////////////////////////////////////////////////////////////////////
                  //顯示一個(gè)漢字(16*16點(diǎn)陣)
                  //lin:行(0-7), column: 列(0-7)
                  //hzcode: 漢字代碼(自定義的)
                  void ShowHZD(unsigned char lin,unsigned char column,unsigned 
                  int hzcode)
                  {
                  unsigned char i,j;
                  unsigned int StartAddr;
                  StartAddr=lin*LineChar*16 +column; //定位起始行
                  for(i=0;i<35;i++)
                  {
                  OutPortCom3( (unsigned char)(StartAddr), (unsigned 
                  char)(StartAddr>>8), 0x24); //定位當(dāng)前操作位置
                  for(j=0;j<5;j++) OutPortCom2( HZTable[hzcode][i*5+j], 0xc0); 
                  //顯示當(dāng)前一行
                  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 lin,unsigned char column1,unsigned 
                  char pagehead[][14])
                  {
                  unsigned char i;
                  for(i=0;i< 4 ;i++)
                  ShowLine((lin+i*20),column1,pagehead[i]); //1行8個(gè)漢字,16字節(jié)
                  }
                  /*----------------------------------------------------------------------------------------------------*/
                  //反顯一個(gè)字符
                  //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;
                  }
                  }

                  /*----------------------------------------------------------------------------------------------------*/
                  //反顯一個(gè)漢字
                  //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)畫(huà)圖
                  //---------------------------------------------------------------------------
                  //在指定位置顯示一個(gè)點(diǎn)
                  //如果顯示屏超過(guò)了256*256,請(qǐng)修改這個(gè)函數(shù) PointX,PointY的類(lèi)型
                  //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);
                  }
                  //-------------------------------------------------------------------------------
                  //劃線(xiàn)函數(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è)置自動(dòng)寫(xiě)狀態(tài)
                  for(i=0x00;i<0x2000;i++) OutPortData(0x00); // data=0;
                  OutPortCom1(0xb2); // 自動(dòng)寫(xiě)結(jié)束
                  }
                  //初始化LCD
                  //需要手動(dòng)設(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è)置顯示開(kāi)關(guān): 1001 1100 圖形
                  ClearScreen();
                  }

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






 

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线播放日韩导航| 日韩欧美一二区| 日本人妖一区二区| 国产精品乱人伦一区二区| 欧美三区在线视频| 国产一区二区剧情av在线| 亚洲综合一区二区| 国产精品久久久一区麻豆最新章节| 欧美电影在哪看比较好| www.久久精品| 国产一区二区精品在线观看| 日韩电影在线观看一区| 一区二区三区欧美日韩| 日韩精品影音先锋| 欧美日韩一区在线观看| 99riav一区二区三区| 国产精品白丝av| 蜜桃视频免费观看一区| 亚洲线精品一区二区三区 | 91在线观看地址| 国产麻豆视频一区二区| 欧美天天综合网| 99视频有精品| 国产成人免费视频一区| 久久国产福利国产秒拍| 日本色综合中文字幕| 爽好多水快深点欧美视频| 亚洲精品成人少妇| 亚洲欧美激情小说另类| 国产精品久久久久久亚洲毛片| 国产午夜精品在线观看| 久久久久国产免费免费| 久久综合久久综合久久| 日韩精品一区二区三区四区视频| 日韩午夜中文字幕| 欧美成人性战久久| 欧美成人激情免费网| 日韩视频免费观看高清完整版在线观看| 欧美日韩成人综合在线一区二区| 欧美一a一片一级一片| 在线视频国产一区| 欧美视频你懂的| 91精品啪在线观看国产60岁| 日韩一区二区三区视频在线观看| 日韩丝袜美女视频| 精品福利在线导航| 国产欧美久久久精品影院| 中文字幕成人av| 亚洲欧美综合在线精品| 亚洲综合精品久久| 午夜精品福利一区二区三区av | 首页综合国产亚洲丝袜| 免费一级片91| 精品一区二区三区日韩| 国产精品自拍三区| 粉嫩在线一区二区三区视频| 97精品久久久久中文字幕| 在线观看免费视频综合| 欧美精品一级二级三级| 日韩欧美国产麻豆| 国产人妖乱国产精品人妖| |精品福利一区二区三区| 亚洲综合在线电影| 在线观看免费亚洲| 日韩一区二区三区观看| 久久精品夜夜夜夜久久| 亚洲欧洲精品天堂一级 | 一区二区三区鲁丝不卡| 天天色综合成人网| 国产一区二区精品久久91| av一本久道久久综合久久鬼色| 色婷婷精品久久二区二区蜜臀av| 4438x亚洲最大成人网| 国产丝袜在线精品| 一区二区三区四区视频精品免费 | 午夜激情综合网| 久久99精品国产.久久久久久| 成人精品国产福利| 欧美日韩一区在线| 久久久久国产精品人| 一区二区理论电影在线观看| 免费成人在线播放| 91亚洲精品久久久蜜桃网站 | 91在线播放网址| 欧美成人艳星乳罩| 一区二区三区精品视频| 久久疯狂做爰流白浆xx| 色噜噜狠狠成人中文综合| 日韩欧美国产高清| 亚洲影视资源网| 成人综合在线观看| 欧美一级精品在线| 国产精品理伦片| 美国精品在线观看| 日本精品一级二级| 久久精品一区二区三区av| 午夜影院在线观看欧美| av中文字幕亚洲| 精品卡一卡二卡三卡四在线| 亚洲一区二区三区四区五区中文| 成人午夜看片网址| 日韩女同互慰一区二区| 一区二区三区在线不卡| 成人黄色综合网站| 精品免费国产一区二区三区四区| 亚洲一二三四在线| 色综合一个色综合亚洲| 国产日产欧产精品推荐色| 美腿丝袜亚洲色图| 欧美猛男gaygay网站| 亚洲欧洲中文日韩久久av乱码| 激情图片小说一区| 欧美一级生活片| 亚洲第一会所有码转帖| 色先锋久久av资源部| 国产精品久久久久精k8| 国产91对白在线观看九色| 欧美一区二区久久久| 亚洲成年人影院| 在线免费亚洲电影| 依依成人精品视频| 92精品国产成人观看免费| 91精品国产aⅴ一区二区| 日韩一二三区不卡| 亚洲午夜在线观看视频在线| 99久久精品99国产精品| 国产日本一区二区| 国产xxx精品视频大全| 亚洲不卡av一区二区三区| 91蝌蚪porny成人天涯| 国产精品久久一级| 99精品久久只有精品| 国产精品蜜臀在线观看| 成人午夜激情视频| 欧美国产欧美综合| av亚洲精华国产精华| 亚洲色图一区二区三区| 91猫先生在线| 亚洲一区二区3| 在线播放国产精品二区一二区四区 | 久久精品国产第一区二区三区| 制服丝袜亚洲网站| 麻豆传媒一区二区三区| 亚洲精品一区二区三区香蕉 | 精品一区二区免费视频| 欧美电影免费观看高清完整版在线 | 欧美日本在线看| 五月天激情小说综合| 7777精品久久久大香线蕉 | 91在线免费视频观看| ...xxx性欧美| 91激情五月电影| 午夜精品一区二区三区三上悠亚| 欧美精品一卡二卡| 久久99久久久久久久久久久| 国产清纯白嫩初高生在线观看91 | 性久久久久久久久久久久| 欧美日韩国产乱码电影| 另类成人小视频在线| 国产香蕉久久精品综合网| kk眼镜猥琐国模调教系列一区二区 | 色综合中文字幕国产| 午夜国产精品影院在线观看| 日韩午夜三级在线| 大尺度一区二区| 亚洲成人av一区二区三区| 精品99999| 99精品国产热久久91蜜凸| 亚洲成人av一区二区三区| 久久亚洲精华国产精华液| 99麻豆久久久国产精品免费优播| 亚洲成在人线在线播放| 精品粉嫩超白一线天av| 成人av网站免费观看| 午夜电影网一区| 国产亚洲一区二区三区在线观看| 91色|porny| 老司机午夜精品| 一级中文字幕一区二区| 日韩欧美在线综合网| 99久久久久免费精品国产| 日韩精品电影在线| 中文字幕一区免费在线观看| 4438成人网| 色婷婷av久久久久久久| 久久av资源网| 亚洲图片欧美综合| 日本一区二区不卡视频| 欧美老肥妇做.爰bbww视频| 成人在线视频一区| 日韩av成人高清| 亚洲免费毛片网站| 久久久综合网站| 亚洲乱码中文字幕| 久久伊人中文字幕| 精品视频123区在线观看| www.亚洲免费av| 国产精品一区2区| 久久精品久久99精品久久| 亚洲欧美国产77777|