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

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

?? lcd.c

?? HY-12896A-T01 LCD的驅動
?? C
?? 第 1 頁 / 共 2 頁
字號:
	      }
	}
   }

   gCurCol++;
}



/********************************************************************/
//功能:    在屏幕上顯示一個漢字
//         str指向這個漢字的顯示矩陣
//         reverse為是否要反顯 reverse = 0 為正顯, reverse = 1 為反顯.
//
/********************************************************************/
void print_chinese(unsigned char * str,int reverse)
{
    unsigned char j,k;

    if(gCurCol >= 15)//一共有十六列, 每個漢字占用兩列
    {
	 gCurCol = 0;
         gCurRow++;
    }

    if(gCurRow >= 6)	//一共有六行(編號從零開始).
    {
     gCurRow = 0;
    }

   set_cursor(gCurRow,gCurCol);

   for(j = 0; j < 2; j++)
   {
      set_pos(gCurRow * 2 + j, gCurCol * 8);
		
      if(reverse == 0)//正顯
      {
         for(k = 0; k < 16; k++)	//漢字的寬度是十六個點陣
	 {
	     wdata(str[j*16 +k]);
	     wdata(str[j*16 +k]);
	 }
      }
      else if(reverse == 1)//反顯
      {
          for(k=0;k<16;k++)	
	  {
	     wdata(~str[j*16 +k]);
	     wdata(~str[j*16 +k]);
	  }
      }
  }

   gCurCol+=2;
}


/**********************************************************************/
//將一個字符的編碼轉換成符合HY-12896A-T01顯示器編碼
//
//ASCII 字符的矩陣為 8*16  以下是字庫中字符的的編碼模式
//       0       (7,6,5,4,3,2,1,0)
//       2       (7,6,5,4,3,2,1,0)
//       :        ...............
//       :        ...............
//      14       (7,6,5,4,3,2,1,0)
//      15       (7,6,5,4,3,2,1,0)
//
//
//而且字符字庫中的編碼是反面顯示的.
/**********************************************************************/
void disp_character( char * str, int reverse)
{
	unsigned char j,k;
	unsigned char ldata,result;
	unsigned char printf_buffer[16];
	
	for(j = 0; j < 8; j++)//
	{
		result = 0;
		
		//for(k = 0; k < 8; k++) //closed by ChengDong Lu at 03/27/2006
                for(k = 2; k < 8; k++)//added by ChengDong Lu at 03/27/2006
		{
			//ldata = str[k]; //closed by ChengDong Lu at 03/27/2006
                        ldata = str[ k - 2 ];//added by ChengDong Lu at 03/27/2006
			ldata = ldata << j;
			ldata = ldata & 0x80;
			result = result >> 1;
			result = result | ldata;
		}

		printf_buffer[ 7 - j ] = result;
	}
	
	
	for(j = 0; j < 8; j++)//顯示字符的下半部位
	{
		result = 0;
		
		//for(k = 0; k < 4; k++)//closed by ChengDong Lu at 03/27/2006
                for(k = 0; k < 6; k++) //added by ChengDong Lu at 03/27/2006
		{
			//ldata = str[8 + k];//closed by ChengDong Lu at 03/27/2006
                        ldata = str[8 + k - 2 ];//added by ChengDong Lu at 03/27/2006
			ldata = ldata << j;
			ldata = ldata & 0x80;
			result = result >> 1;
			result = result | ldata;
		}

		//result = result >> 4;//closed by ChengDong Lu at 03/27/2006
                result = result >> 2;//added by ChengDong Lu at 03/27/2006
		printf_buffer[ 15 - j] = result;
	}

	print_character(printf_buffer,reverse);
}



/*********************************************************************/
//將字庫中的漢字編碼轉換成符合  HY-12896A-T01 顯示的編碼.
//                  字庫中的漢字的編碼
//0(15,14,13,12,11,10,9,8)  1 (7,6,5,4,3,2,1,0)
//2(15,14,13,12,11,10,9,8)  3 (7,6,5,4,3,2,1,0)
//4(15,14,13,12,11,10,9,8)  5 (7,6,5,4,3,2,1,0)
//                        :
//                        :
//30(15,14,13,12,11,10,9,8) 31 (7,6,5,4,3,2,1,0)
//
//
/*********************************************************************/
void disp_chinese(unsigned char * str, int reverse)
{
	unsigned char j,k;
	unsigned char ldata,result;
	unsigned char printf_buffer[32];
	
	for(j = 0; j < 8; j++)//換算漢字的上半部分的左部分
	{
		result = 0;

		for(k = 0; k < 8; k++)
		{
			ldata = str[2 * k ];
			ldata = ldata << j;
			ldata = ldata & 0x80;
			result = result >> 1;
			result = result | ldata;
		}
		
		printf_buffer[ j ] = result;
	}
	
	
	for(j = 0; j < 8; j++)//換算漢字的上半部分的右部分
	{
		result = 0;
		
		for(k = 0; k < 8; k++)
		{
			ldata = str[2 * k + 1];
			ldata = ldata << j;
			ldata = ldata & 0x80;
			result = result >> 1;
			result = result | ldata;
		}
		
		printf_buffer[ 8 + j] = result;
	}
	
	for(j = 0; j < 8; j++)//換算漢字的下半部分的左部分
	{
		result = 0;
		
		for(k = 0; k < 8; k++)
		{
			ldata = str[16 + 2 * k ];
			ldata = ldata << j;
			ldata = ldata & 0x80;
			result = result >> 1;
			result = result | ldata;
		}
		
		printf_buffer[16 + j] = result;
	}
	
	for(j = 0; j < 8; j++)//換算漢字的下半部分的右部分
	{
        result = 0;

		for(k = 0; k < 8; k++)
		{
			ldata = str[16 + 2 * k + 1];
			ldata = ldata << j;
			ldata = ldata & 0x80;
			result = result >> 1;
			result = result | ldata;
		}
		
		printf_buffer[ 24 + j] = result;
	}

	print_chinese(printf_buffer,reverse);//將轉換好的編碼寫入到相應的顯存中去.
}


/*****************************************************/
//從漢字庫中找出當前該漢字的編碼
//返回值: i = -1 沒有找到
//        i >= 0 當前該漢字在字庫character_dots[]中的位置
/******************************************************/
int get_hzk_dots(unsigned char hightbyte,unsigned char lowbyte)
 {
    int i;
    int j;

   j = get_charactor_dots_size();

    for(i = 0; i < j; i++)
    {
        if(hightbyte == charactor_dots[i].index[0] && lowbyte == charactor_dots[i].index[1])
        {
          return i;
        }
    }

    return ( -1);

 }






/*************************************************************/
//應用層調用這個函數在顯示屏上顯示字符
//row      :   為要顯示的行號(一共有六行,行號從零開始編號)
//col      :   為要顯示的列號(一共有十六列,每個漢字占用兩列,字符占用一列)
//pstr     :   為要顯示的字符串
//reverse  :   為是否是么顯 reverse = 0時為正顯 ,reverse = 1時為反顯
//flash    :   為是否閃爍    flash = 0 時為不閃爍 flash = 1 時閃爍
/**************************************************************/

int  lcd_print(int row, int col, char *pStr, int reverse, int flash)
{
    unsigned char c1,c2;//cData;
    //unsigned char tmpBuf[64];
    unsigned char tmpBuf[96];//changed by ChengDong Lu at 04/03/2006
    unsigned char i,uLen;
    unsigned char uRow,uCol;
    unsigned char *pDots;
    int location;
	
    if(row <6 && row >=0 && col < 16 && col >=0 )
    {
	set_cursor(row,col);
    }
	
    strcpy(tmpBuf,pStr);
    uLen=strlen(tmpBuf);

    i=0;

    while(i<uLen)
    {
        c1 = tmpBuf[i];
        c2 = tmpBuf[i+1];

        uRow = fnGetRow();
        uCol = fnGetCol();

        if( c1<0x80)  // ASCII
        {
            if(c1 < 0x20)
            {
                switch(c1)
                {
                case CR:
                case LF: // ??3μ?ò??DD
                    i++;
                    if(uRow < 5)
                    {
                       set_cursor(uRow + 1,0);
                    }
                    else
                    {
                         set_cursor(0,0);
                    }
                    continue;
                case BS: // í???
                    if(uCol > 0)
                    {
		      uCol--;
		    }
						
		    set_cursor(uRow,uCol);
                   // cData = 0x00;
                    break;

                default: // ????
                    c1 = 0x1f;
                    break;
                }
            }
	
	         //pDots=get_asc_dots(c1)£? //é????a??oˉêyμ?1|?üê???μ?μ±?°×?·?μ?±à???ú×??a?Dμ?ê×μ??·
	         // disp_character(pDots);
             disp_character(ASC_MSK + (c1-0x1f) * 12, reverse);

            if(c1 != BS) // ·?í???
            {
                uCol++;
            }

        }
        else
        { // ?D??
		
          //  pDots=get_hzk_dots(c1,c2); //closed by ChengDong Lu at 03/12/2006
          // é????a??oˉêyμ?1|?üê???μ?μ±?°oo×?μ?±à???ú×??a?Dμ?ê×μ??·
          // μ?ê??ò??×?oóòa?¨×??oμ?×??a£?μ??ù?Yêμ?ê?é??è¥D′3ìDò
            location = get_hzk_dots(c1, c2);
            if(location >= 0)
            {
                pDots = &charactor_dots[location].dots[0];
                print_chinese(pDots, reverse);
            }

            uCol += 2;
            i++;
        }

        i++;
    }
    return uLen;
}




/******************************************************************************/
	//PB2 		RST 		    重啟		
	//PB3 		CS		    片選			
	//PB4 		SCK		    時鐘
	//PB1 		SDA 		    Serial data		
	//PB0 		A0 		    Register selection
/*****************************************************************************/
void lcd_main(void)
{

        lcd_init();
        lcd_EnLight( );

/*
        set_cursor(2,4);
	disp_chinese(GB_16, 1);
	lcd_delay(50);//??ê??°2a?±
	
	disp_chinese(GB_16 + 32, 1);
	lcd_delay(50);//??ê??°ê??±
	
	disp_chinese(GB_16 + 64, 0);
	lcd_delay(50);//??ê??°?D?±
	
	disp_chinese(GB_16 + 96, 0);
	lcd_delay(50);//??ê??°???±
	
	// lcd_print(0,1,"WELLCOME !",1,0);
	// lcd_print(1,1,"GOOD FRIEND !",1,0);

*/
        lcd_DisLight( );
	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久国产精品色婷婷| 91麻豆精品国产自产在线观看一区| 亚洲狠狠爱一区二区三区| 国产欧美一区二区精品久导航 | 日本国产一区二区| 国产一区福利在线| 一区二区三区精品| 亚洲欧洲日韩综合一区二区| 国产午夜亚洲精品午夜鲁丝片| 制服丝袜亚洲精品中文字幕| 不卡av免费在线观看| 国产成人高清在线| 成人免费精品视频| 国产精华液一区二区三区| 捆绑变态av一区二区三区| 日韩国产精品91| 日韩在线观看一区二区| 亚洲成人福利片| 国产精品不卡一区二区三区| 国产精品日韩成人| 国产精品乱码人人做人人爱| 国产精品女上位| 最新日韩在线视频| 亚洲国产毛片aaaaa无费看| 综合激情成人伊人| 伊人夜夜躁av伊人久久| 一区二区三区影院| 亚洲超碰精品一区二区| 丝袜美腿亚洲综合| 精品一区二区影视| 成人在线视频首页| 一本久久综合亚洲鲁鲁五月天| 91色视频在线| 色综合亚洲欧洲| 欧美精品在线一区二区三区| 日韩欧美区一区二| 中文字幕 久热精品 视频在线| 亚洲人成精品久久久久久| 洋洋成人永久网站入口| 亚洲色图.com| 日本欧美大码aⅴ在线播放| 韩国女主播一区| www.av亚洲| 欧美区在线观看| 国产亚洲欧美中文| 一区二区三区欧美| 老汉av免费一区二区三区| 国产美女视频91| 91色九色蝌蚪| 久久综合成人精品亚洲另类欧美| 国产欧美日韩亚州综合 | 在线观看国产日韩| 欧美成人伊人久久综合网| 欧美日韩成人综合天天影院| 欧美一区二区在线免费观看| 国产日产欧美精品一区二区三区| 亚洲一区二区欧美日韩| 国产盗摄精品一区二区三区在线| 精品视频在线看| 国产清纯美女被跳蛋高潮一区二区久久w | 99视频国产精品| 51精品国自产在线| 一区二区三区精品| 国产伦精品一区二区三区视频青涩| 91蜜桃视频在线| 久久婷婷色综合| 日韩激情av在线| 91最新地址在线播放| 欧美变态tickling挠脚心| 亚洲午夜电影网| 色噜噜久久综合| 国产无人区一区二区三区| 日本成人在线网站| 欧美中文字幕一区二区三区| 国产午夜精品一区二区三区嫩草| 亚洲国产综合91精品麻豆| av在线免费不卡| 国产日韩在线不卡| 久久成人久久爱| 日韩欧美电影一二三| 丝袜美腿亚洲色图| 欧美日韩高清一区二区不卡| 亚洲人成伊人成综合网小说| 高清不卡在线观看av| 久久久久久一二三区| 亚洲va欧美va人人爽| 欧美性做爰猛烈叫床潮| 亚洲人成网站影音先锋播放| 成人免费视频网站在线观看| 国产色一区二区| 国产二区国产一区在线观看| 国产午夜精品福利| 国产69精品久久99不卡| 久久―日本道色综合久久| 国产一区二区在线电影| 亚洲精品一线二线三线无人区| 伊人夜夜躁av伊人久久| 在线观看欧美精品| 日韩精品色哟哟| 日韩欧美一区二区在线视频| 美腿丝袜亚洲色图| 91精品国产欧美一区二区18 | 国产精品青草综合久久久久99| 国产成人在线电影| 国产精品成人一区二区艾草| 成人免费看的视频| 亚洲综合在线第一页| 欧美三电影在线| 亚洲chinese男男1069| 欧美一区二区三区在线视频| 六月丁香婷婷色狠狠久久| 久久午夜电影网| 国产另类ts人妖一区二区| 亚洲国产成人午夜在线一区 | 国产欧美中文在线| 色综合色狠狠天天综合色| 午夜电影久久久| 亚洲一区视频在线| 欧美精三区欧美精三区| 不卡欧美aaaaa| 精品伊人久久久久7777人| 一区二区三区四区亚洲| 久久久久97国产精华液好用吗| 欧美亚男人的天堂| 成人国产亚洲欧美成人综合网 | 精品久久久久久久一区二区蜜臀| 色综合咪咪久久| 国产在线国偷精品免费看| 亚洲h动漫在线| 亚洲一区在线视频| ...中文天堂在线一区| 国产网红主播福利一区二区| 欧美一区二区三区日韩视频| 在线免费观看不卡av| caoporn国产精品| 国产精品综合一区二区三区| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲最大的成人av| 亚洲人快播电影网| 亚洲欧美在线另类| 亚洲欧美综合在线精品| 国产精品色婷婷| 国产日产欧产精品推荐色| 国产亚洲精品福利| 久久久久久久久久看片| 欧美大片顶级少妇| 亚洲精品在线免费播放| 日韩女同互慰一区二区| 日韩免费观看2025年上映的电影| 欧美久久高跟鞋激| 日韩一卡二卡三卡国产欧美| 欧美日韩免费观看一区二区三区| 在线观看不卡一区| 欧美片在线播放| 4438成人网| 精品国产91洋老外米糕| 国产欧美综合在线观看第十页| 欧美精彩视频一区二区三区| 国产免费观看久久| 亚洲欧美一区二区久久| 亚洲免费观看高清在线观看| 一区二区三区四区中文字幕| 天天av天天翘天天综合网 | 亚洲777理论| 丝袜美腿成人在线| 六月丁香综合在线视频| 国产一区二区三区香蕉| 不卡的电影网站| 欧美性生交片4| 日韩一级免费一区| 国产精品天天摸av网| 亚洲乱码中文字幕综合| 天堂va蜜桃一区二区三区| 九九久久精品视频| 成人福利视频在线| 欧美专区亚洲专区| 久久综合色8888| 中文字幕一区二区三区蜜月| 亚洲成av人片一区二区梦乃| 国产一区二区三区免费在线观看| 成人黄色在线网站| 欧美剧在线免费观看网站| 国产欧美视频一区二区| 亚洲国产精品视频| 国产成人一区在线| 91精品婷婷国产综合久久| 国产亚洲欧洲997久久综合 | 久久精品国产精品青草| 99精品欧美一区| 日韩欧美专区在线| 樱桃视频在线观看一区| 国产精品伊人色| 制服丝袜一区二区三区| 国产欧美一区二区精品性色 | 久久午夜色播影院免费高清| 亚洲美女偷拍久久| 国产精品亚洲专一区二区三区| 色婷婷av一区二区| 欧美国产精品久久| 日韩电影免费在线观看网站|