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

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

?? t6963液晶驅(qū)動(5行漢字).c

?? msp430芯片驅(qū)動T6963液晶的驅(qū)動程序
?? C
字號:

#include "extern.h"
#include "fontlib.h"//顯示字符庫。
#include <stdarg.h>
#include <stdio.h>
// T6963C 命令定義
#define LC_ADD_POS 0x24 // 地址指針位置
#define LC_TXT_STP 0x40 // 文本區(qū)首址
#define LC_TXT_WID 0x41 // 文本區(qū)寬度
#define LC_GRH_STP 0x42 // 圖形區(qū)首址
#define LC_GRH_WID 0x43 // 圖形區(qū)寬度
#define LC_MOD_OR 0x80 // 顯示方式:邏輯“或”
#define LC_MOD_XOR 0x81 // 顯示方式:邏輯“異或”
#define LC_MOD_AND 0x82 // 顯示方式:邏輯“與”
#define LC_MOD_TCH 0x83 // 顯示方式:文本特征
#define LC_DIS_SW 0x90 // 顯示開關(guān):D0=1/0:光標(biāo)閃爍啟用/禁用;
   // D1=1/0:光標(biāo)顯示啟用/禁用;
   // D2=1/0:文本顯示啟用/禁用;
   // D3=1/0:圖形顯示啟用/禁用;
#define LC_CUR_SHP 0xA0 // 光標(biāo)形狀選擇:0xA0-0xA7 表示光標(biāo)占的行數(shù)
#define LC_AUT_WR 0xB0 // 自動寫設(shè)置
#define LC_AUT_RD 0xB1 // 自動讀設(shè)置
#define LC_AUT_OVR 0xB2 // 自動讀/寫結(jié)束
#define LC_INC_WR 0xC0 // 數(shù)據(jù)一次寫,地址加1
#define LC_INC_RD 0xC1 // 數(shù)據(jù)一次讀,地址加1
#define LC_DEC_WR 0xC2 // 數(shù)據(jù)一次寫,地址減1
#define LC_DEC_RD 0xC3 // 數(shù)據(jù)一次讀,地址減1
#define LC_NOC_WR 0xC4 // 數(shù)據(jù)一次寫,地址不變
#define LC_NOC_RD 0xC5 // 數(shù)據(jù)一次讀,地址不變
#define LC_SCN_RD 0xE0 // 屏讀
#define LC_SCN_CP 0xE8 // 屏拷貝
#define LC_BIT_OP 0xF0 // 位操作:D0-D2:定義D0-D7 位;D3:1 置位;0:清除

char gCurRow=0,gCurCol=0,revfonthead=0,revfontnum=0;

char busyRCMD(void)
{
  char cmd;
  D_PDIR=0x00;
  CD_1; CE_0; RD_0;
  cmd=D_PIN;
  RD_1; CE_1;
  D_PDIR=0xff;
  return(cmd);
}

void busyWCMD(char cmd)
{
  CD_1; CE_0;
  D_POUT=cmd;
  WR_0;WR_1;CE_1;
}

void busyWDAT(char data)
{
  CD_0;CE_0;
  D_POUT=data;
  WR_0;WR_1;CE_1;
}

char GetSTA(char n)
{
  char i;
  for(i=5;i>0;i--){ if((busyRCMD() & n) == n) break;}
  return i;
}

char WrCMD2(char uCmd,char uPar1,char uPar2)
{
  if ( GetSTA(0x03) == 0 ) return 1;
  busyWDAT(uPar1);
  if ( GetSTA(0x03) == 0 ) return 2;
  busyWDAT(uPar2);
  if ( GetSTA(0x03) == 0 ) return 3;
  busyWCMD(uCmd);
  return 0;
}

char WrCMD0(char uCmd)
{
  if( GetSTA(0x03) == 0 ) return 1;
  busyWCMD(uCmd);
  return 0;
}

char WrData(char uData)
{
  if(GetSTA(0x08) == 0)  return 1;
  busyWDAT(uData);
  return 0;
}
//****************設(shè)置光標(biāo)(行0~63,列0~15)************************//
void SetPos(char urow, char ucol)
{
  unsigned int iPos;
  gCurRow = urow+(ucol/16)*16;
  gCurCol = ucol%16;
  iPos = gCurRow * 30 + gCurCol;
  WrCMD2(LC_ADD_POS,iPos & 0xFF,iPos / 256);
}
//****************清行(首行0~63,尾行0~15)*********************//
void ClrFromTo(char x0,char y0)
{
  int length,i;
  char x=x0,y=y0;
  length=y-x;
  length*=30;
  SetPos(x,0);
  WrCMD0(LC_AUT_WR);
  for(i=0;i<length;i++)
  {
  while(GetSTA(0x08)== 0);
  WrData(0x00);
  }
  WrCMD0(LC_AUT_OVR);
}
//**************** 清屏 *********************//
void Cls(void)
{
  ClrFromTo(0,64);
  WrCMD2(LC_ADD_POS,0x00,0x00);
  gCurRow = 0;
  gCurCol = 0;
}
//**************** T6963初始化 *********************//
char LcmInit(void)
{
  if(WrCMD2(LC_TXT_STP,0x00,0x00) != 0) return 0xff;
  WrCMD2(LC_TXT_WID,0x1E,0x00);
  WrCMD2(LC_GRH_STP,0x00,0x00);
  WrCMD2(LC_GRH_WID,0x1E,0x00);
  WrCMD0(LC_CUR_SHP | 0x01);
  WrCMD0(LC_MOD_OR);
  WrCMD0(LC_DIS_SW | 0x08);
  return 0;
}
//*********** 反顯光標(biāo)設(shè)置(反顯字節(jié)相對當(dāng)前光標(biāo)首位置,反顯字節(jié)個數(shù)) **********//
void RevPos(char head,char num){revfonthead=head;revfontnum=num;}

//**************** 文字顯示 *********************//
// 通過RevPos設(shè)置反顯文字
// 程序調(diào)用vsprintf(),顯示符點(diǎn)數(shù),prinf formatter 應(yīng)設(shè)為large
// 僅用于顯示1行數(shù)據(jù)。

void Dprintf(char disprow,char dispcol,char *fmt, ...)
{
  va_list arg_ptr;
  signed char c1,c2,stype[22],type;
  char tmpBuf[69];
  char const *pcstr[22];
  char i=0,j,k,uLen,byte;
  char temprevnum;

  va_start(arg_ptr, fmt);
  uLen = (char)vsprintf(tmpBuf, fmt, arg_ptr);
  va_end(arg_ptr);

  if(uLen>69)while(1);//error
  if(uLen>22)uLen=22;//overflow a line
  while(i<uLen)
  {
      c1 = tmpBuf[i];
      c2 = tmpBuf[i+1];
      stype[i]=c1;
      if(c1 >= 0)//字符
      {
          if(c1 < STARTNUM)pcstr[i] = ASC_MSK;
          else pcstr[i]=&ASC_MSK[(c1-STARTNUM)*12];
          i++;
      }
      else //漢字
      {
          pcstr[i]=ASC_MSK;
          pcstr[i+1]=ASC_MSK;
          stype[i+1]=0;
          for(j=0;j<sizeof(GB_16)/sizeof(GB_16[0]);j++)//查找漢字
          {
              if(c1 == GB_16[j].Index[0] && c2 == GB_16[j].Index[1])
              {
                  pcstr[i]=GB_16[j].Msk;
                  pcstr[i+1]=pcstr[i]+12;
                  break;
              }
          }
          i+=2;
      }
  }
  for(i=0;i<ASC_CHR_HEIGHT;i++)
  {
      k=0;
      temprevnum=revfontnum;
      SetPos(disprow,dispcol);
      for(j=0;j<uLen;j++)
      {
          type=stype[j];
          byte=*pcstr[j]++;
          if( temprevnum && revfonthead <= j+1)
          {
              byte = ~byte;
              temprevnum--;
          }
          if(type)
		  {
              tmpBuf[k++]=byte & 0xC0; byte <<= 2;
              tmpBuf[k++]=byte & 0xC0; byte <<= 2;
              tmpBuf[k++]=byte & 0xC0; byte <<= 2;
              if(type<0)tmpBuf[k++]=byte & 0xC0;
          }
          else
          {
              tmpBuf[k++]=byte & 0xC0; byte <<= 2;
              tmpBuf[k++]=byte & 0xC0; byte <<= 2;
          }
      }
      j=k/4;if(k%4)j++;
      tmpBuf[k++]=0;tmpBuf[k++]=0;tmpBuf[k]=0;
      WrCMD0(LC_AUT_WR);
	  for(k=0;k<j;k++)
	  {
	      byte=tmpBuf[k*4]+tmpBuf[k*4+1]/4+tmpBuf[k*4+2]/16+tmpBuf[k*4+3]/64;
	      WrData(byte);
	  }
      WrCMD0(LC_AUT_OVR);
      disprow++;
  }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲综合免费观看高清在线观看| 久久亚洲综合色| 亚洲国产中文字幕在线视频综合| 色婷婷狠狠综合| 亚洲一区免费视频| 欧美一区二区三区在线观看视频| 国产乱国产乱300精品| 日本一区二区三区高清不卡| 成人午夜碰碰视频| 亚洲综合色成人| 91精品国产综合久久久久久漫画 | 日本一区二区三区国色天香 | 色狠狠桃花综合| 亚洲成av人片一区二区三区| 91精品国产综合久久福利| 国内精品写真在线观看| 中文字幕不卡在线观看| 色婷婷av一区二区三区软件| 日韩高清在线一区| 国产女同互慰高潮91漫画| 91免费视频观看| 奇米一区二区三区| 国产精品美女久久久久av爽李琼| 欧美在线免费播放| 黄色日韩三级电影| 一区二区三区日本| 精品美女一区二区三区| 99国产精品久久久久久久久久| 亚洲成国产人片在线观看| 久久久久久免费| 欧美丝袜丝交足nylons图片| 国产在线精品一区二区三区不卡| 亚洲免费在线视频一区 二区| 中文字幕在线观看不卡| 欧美日高清视频| 国产精品18久久久久久vr| 亚洲精选免费视频| 国产亚洲一本大道中文在线| 欧美偷拍一区二区| 99热在这里有精品免费| 麻豆精品蜜桃视频网站| 亚洲精品欧美专区| 国产人成亚洲第一网站在线播放| 欧美二区乱c少妇| 91色视频在线| 丁香六月久久综合狠狠色| 日本不卡一二三区黄网| 一区二区三区免费观看| 中文字幕精品三区| 欧美sm极限捆绑bd| 欧美精品xxxxbbbb| 色欧美日韩亚洲| 不卡的电视剧免费网站有什么| 秋霞午夜鲁丝一区二区老狼| 亚洲一区av在线| 亚洲视频免费在线观看| 国产三级三级三级精品8ⅰ区| 日韩西西人体444www| 在线欧美日韩精品| 99久久精品一区| 粉嫩av一区二区三区| 经典三级视频一区| 美女视频黄a大片欧美| 婷婷一区二区三区| 亚洲成国产人片在线观看| 有坂深雪av一区二区精品| 综合色中文字幕| 国产精品久久久久久久蜜臀| 国产欧美精品一区| 国产欧美日韩在线看| 久久久亚洲高清| 久久尤物电影视频在线观看| 久久亚洲影视婷婷| 久久久久久久久久久电影| 久久香蕉国产线看观看99| 日韩欧美亚洲另类制服综合在线| 欧美精品色综合| 91精品国产91久久久久久一区二区 | 香港成人在线视频| 丰满少妇久久久久久久| 国产99久久久精品| 成人性色生活片| 成人av在线网站| 99精品黄色片免费大全| 91污在线观看| 欧美三级电影一区| 欧美精品 国产精品| 日韩午夜电影av| 久久嫩草精品久久久精品| 久久久国产午夜精品 | 久久久久久久久久久电影| 久久人人97超碰com| 久久九九99视频| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品丝袜黑色高跟| 一区二区高清视频在线观看| 午夜欧美在线一二页| 久久国产成人午夜av影院| 国产成人在线视频免费播放| 一本大道久久a久久精二百| 欧美日韩一区二区在线观看视频| 欧美一区二区三区小说| 久久久久久久久免费| 亚洲欧美中日韩| 天堂久久久久va久久久久| 极品尤物av久久免费看| 不卡电影一区二区三区| 欧美日韩中文字幕一区| 精品国产一区二区三区久久久蜜月| 国产片一区二区| 亚洲成av人片一区二区梦乃| 国内久久婷婷综合| 色婷婷久久久综合中文字幕| 日韩一二三区视频| ●精品国产综合乱码久久久久| 亚洲成人黄色影院| 国产白丝网站精品污在线入口| 欧美做爰猛烈大尺度电影无法无天| 日韩欧美一区二区免费| 成人免费在线视频| 久88久久88久久久| 在线视频综合导航| 久久你懂得1024| 亚洲成人综合在线| 不卡的电影网站| 欧美电影免费观看完整版| 亚洲精品高清在线| 国产精品 日产精品 欧美精品| 欧美中文字幕一二三区视频| 久久精品亚洲乱码伦伦中文 | 欧美日韩一卡二卡三卡| 国产亚洲精品精华液| 午夜精品福利一区二区三区av | 国产精品国产三级国产普通话三级 | 在线国产电影不卡| 久久久综合激的五月天| 日韩不卡一区二区三区| 91网页版在线| 欧美国产一区二区在线观看| 日韩电影在线观看电影| 日本电影欧美片| 欧美激情一区三区| 国产中文字幕一区| 67194成人在线观看| 亚洲男人都懂的| 成人黄色小视频在线观看| 欧美大片在线观看一区| 亚洲chinese男男1069| 91成人网在线| 成人欧美一区二区三区白人 | 欧美精品三级在线观看| 综合av第一页| 懂色av一区二区三区免费观看| 欧美精品久久天天躁| 亚洲精品视频一区| av午夜精品一区二区三区| 国产午夜一区二区三区| 激情图区综合网| 欧美va亚洲va国产综合| 毛片不卡一区二区| 日韩一级二级三级| 蜜桃精品视频在线| 日韩欧美aaaaaa| 精品综合久久久久久8888| 欧美一区中文字幕| 日本不卡123| 精品国偷自产国产一区| 精品影视av免费| 久久这里只有精品首页| 国产一区二区三区观看| 久久免费午夜影院| 成人午夜激情在线| **网站欧美大片在线观看| 99国产精品国产精品久久| 亚洲免费av高清| 欧美午夜片在线看| 三级一区在线视频先锋| 欧美一区二区黄| 韩国欧美国产一区| 国产欧美一区二区在线| 成人激情av网| 最新不卡av在线| 欧美午夜精品久久久| 日韩电影在线免费| 精品av综合导航| av资源网一区| 亚洲图片一区二区| 日韩欧美一级特黄在线播放| 国内精品国产成人| 中文字幕一区二区三区四区| 97se亚洲国产综合自在线| 亚洲1区2区3区视频| 日韩欧美123| 成人18视频日本| 亚洲午夜日本在线观看| 精品久久久久久亚洲综合网| 成人黄页在线观看| 亚洲不卡av一区二区三区| 欧美精品一区二区三区在线| av激情综合网|