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

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

?? lcd.c

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

//typedef unsigned short unsigned int ;
//typedef unsigned int unsigned int ;
//typedef unsigned char  unsigned char ;


#include "LCD.h"
#include "Board.h"
#include "lcd_mask_chinese.h"
#include "clock.h"

extern   int  get_charactor_dots_size(void);  //獲取當前漢字字庫的大小
//extern   TYPE_CCT_TM  clock_time;             //用來存放當前系統(tǒng)時間
extern   TYPE_CH_DOTS charactor_dots[];       //漢字庫
extern   char  ASC_MSK[96*12];                //字符庫

extern unsigned char GB_16[4*32];//ls 臨時的字庫 為調試用的

unsigned char  gCurRow,gCurCol;
unsigned char  gPage_addr,gPhysics_col;


/***********************************************************/
//open the back light
/**********************************************************/
 lcd_EnLight( )
 {
     AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB9); //enable backlignt
     return 1;
 }



 /*********************************************************/
 //close the back light
 /*********************************************************/
 lcd_DisLight( )
 {
   AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB9);	//Disabke backlignt
   return 1;
 }


/*************************************************************/
//返回光標所在的行號
/**************************************************************/
unsigned int fnGetRow(void)
{
	return gCurRow;
}


/*************************************************************/
//返回光標所在的列號
/**************************************************************/
unsigned int fnGetCol(void)
{
	return gCurCol;
}




/*************************************************************/
//廷時
/**************************************************************/
void lcd_delay(unsigned int nnn)
{
	unsigned int mmm;
	while(nnn-->0)
		for(mmm=0;mmm<1000;mmm++)
		{ }
}



/*************************************************************/
//寫命令
/**************************************************************/
void wcomd(unsigned char cdat)
{
    unsigned int ic;
    int Bit ;
	
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB4); //  SCK=0;
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB0); //  RS=0;	
    AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB3); //  CS=0;	

	for(ic = 0; ic < 8; ic++)
	{
		Bit = cdat >> (7 - ic) & 0x01;
		
		if ( Bit == 1 )	
		{
                        AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1); // SDA=1 ;
		}
		else
		{
                        AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1); // SDA=0;	
		}
		
		AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB4); //    SCK=1;
		AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB4); //  SCK=0;	
	}
	
        AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB3); //  CS=1;
}



/*************************************************************/
//寫數據
/**************************************************************/
void wdata(unsigned char ddat)
{
	unsigned int id;
	int Bit ;
	
	if( gPhysics_col < 127)
	{
                AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1);     //  SDA = 0;
		AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB4);     //  SCK = 0;
                AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB0);       //  RS = 1;
                AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB3);     //  CS = 0;
		
		for(id = 0; id < 8; id++)
		{
			Bit = ddat >> (7 - id) & 0x01;
			
			if ( Bit == 1 )	
			{
                                AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1); // SDA=1 ;
			}
			else
			{
                                AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB1); // SDA=0;
			}
			
			AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB4); //    SCK=1;
			AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB4); //	SCK=0;	
		}
		
                AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB3); //  CS=1;
		//gPhysics_col++;
	}
}


/************************************************************************/
//設置熱物理頁碼號和熱處理列號
/************************************************************************/
void set_pos(unsigned char uPage, unsigned char uPhysics_col)
{
		unsigned char temp;

		if( uPage < 12  && uPhysics_col < 128)
		{
			wcomd(uPage + 0xb0);//set page address
			
			temp = uPhysics_col & 0x7F;
			temp = temp >> 4;
			temp = temp | 0x10;
			wcomd(temp);        //set col MSB
			
			temp = uPhysics_col & 0x0F;
			wcomd(temp);       //set col LSB

			gPage_addr = uPage;
			gPhysics_col = uPhysics_col;
		}
}


/*************************************************************/
//設置光標
/**************************************************************/
void set_cursor(unsigned int uUser_row, unsigned int uUser_col)
{
	if (uUser_row < 6   && uUser_col < 16)
	{
                set_pos(uUser_row * 2, uUser_col * 8);

		gCurRow = uUser_row;
		gCurCol = uUser_col;
	}

}



/*************************************************************/
//全部為亮或才全部為暗
//當d1 為0xff時顯示器上所有的點就全部為亮
//當d1 為0x00時顯示器上所有的點就全部為暗
/**************************************************************/
void disp_all(unsigned int d1)
{
	unsigned int i,j;

	for(j=0;j<12;j++)
	{
		wcomd(0xb0+j);
		wcomd(0x10);
		wcomd(0x00);

		for(i=0;i<64;i++)
		{
			wdata(d1);//每一個點得寫兩次才行
			wdata(d1);

			wdata(d1);
			wdata(d1);
		}
	}
}



/********************************************************************/
//清屏
//
/********************************************************************/
int  lcd_ClearScreen(void)
{
     disp_all(0x00);     //0x00 讓每一個點陣都為暗
     set_cursor(0,0);	//把光標設置在(0,0)這個位置
     return 0;
}

/*************************************************************/
//夜晶初始化
/**************************************************************/
int lcd_init()
{
	//配置輸出
	AT91F_PIO_CfgOutput(AT91C_BASE_PIOB,AT91C_PIO_PB0|AT91C_PIO_PB1|AT91C_PIO_PB2 |AT91C_PIO_PB3 | AT91C_PIO_PB4 | AT91C_PIO_PB9);
	lcd_DisLight( );

        //復位重啟鍵,廷時一會,然后重啟
        AT91F_PIO_ClearOutput(AT91C_BASE_PIOB,AT91C_PIO_PB2);	//  RST=0;
        lcd_delay(3);
        AT91F_PIO_SetOutput(AT91C_BASE_PIOB,AT91C_PIO_PB2);	//  RST=1;

	//display duty select
	wcomd(0x48);
	wcomd(0x60);  //1/96duty
	
        /*************************************************/
	//ADC select
	//SEG bi-directional selection
	//0xa0:normal direction
	//0xa1:reverse direction
        /***********************************************/
	// wcomd(0xa1); //s0 - s127 //closed by ChengDong Lu at 03/09/2006
	wcomd(0xa0);//added by ChengDong Lu at 03/09/2006
	
	
        /************************************************/
	//SHL select
	//COM bi-directional selection
	//0xc0:normal direction
	//0xc8:reverse direction
        /***********************************************/
	wcomd(0xc8);  //c0 - c127
	
	
	//com0 register select
	wcomd(0x44);
	wcomd(0x10);  //start from com0

	//////// set lcd operating voltage//////////
	//oscillator on start
	wcomd(0xab);
	//dc-dc step_up register select
	wcomd(0x67);  //6 times boosting circuit(64-3times,65-4times,66-5times)
	//regulator register select
	wcomd(0x27);  //(20-27): 1+(rb/ra)=2.3~7.2
	//set electronic volume register(select a from 0 to 63)
	wcomd(0x81);
	wcomd(0x24);  //(0~3f)

	//lcd bias select register
	wcomd(0x56);  //1/11
	wcomd(0x93);

	//lcd grap_scale set up
	wcomd(0x8f);
	wcomd(0xff);

	//power control
	wcomd(0x2c);	//internal voltage converter circuit is on
	lcd_delay(2);
	wcomd(0x2e);	//internal voltage regulator ciruit is on
	lcd_delay(2);
	wcomd(0x2f);	//internal voltage follower circuit is on
	lcd_delay(2);
	
	wcomd(0xaf);	//turns display on

	lcd_ClearScreen();   //清屏

	return 0;
}







/********************************************************************/
//功能:   請除某一行
//        row為當前要清除的行
/********************************************************************/
int  lcd_ClearLine(int row)
{
   unsigned char j , k;

   if(row >=0 && row <6)
   {
       for(j=0;j<2;j++)
       {
	   set_pos(row * 2 + j , 0);

	   for(k = 0; k < 64; k++)
	   {
	      wdata(0x00);
	      wdata(0x00);

	      wdata(0x00);
	      wdata(0x00);
	   }
       }

      set_cursor(row,0); //將光標設置在當前清除的行上.
      return 1;
   }
  return 0;
}


/********************************************************************/
//功能:  在顯示器上打印字符
//        str指向字符的顯示矩陣
//        reverse 為是否為反顯
/********************************************************************/
void print_character(unsigned char * str,int reverse)
{
   unsigned char j,k;

   if(gCurCol >= 16)
   {
     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 < 8; k++)	
           {
	      wdata(str[j*8 +k]);
	      wdata(str[j*8 +k]);
	   }
	}
	else if (reverse == 1)//反顯
	{
              for(k = 0; k < 8; k++)
	      {
		 wdata(~str[j*8 +k]);
		 wdata(~str[j*8 +k]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级资源在线| 亚洲蜜臀av乱码久久精品 | 欧美激情在线一区二区| 亚洲免费观看高清完整版在线观看 | 日韩午夜电影av| 亚洲精品日韩专区silk| 国产精品亚洲视频| 日韩一区二区在线观看视频| 一区二区三区四区在线免费观看| 久久不见久久见免费视频1| 欧美在线综合视频| 亚洲视频一区在线观看| 国产成人综合自拍| 精品日韩欧美在线| 日本三级亚洲精品| 91精品国产综合久久久蜜臀粉嫩 | 国产精品影音先锋| 日韩视频免费观看高清完整版| 亚洲精选免费视频| av在线一区二区| 国产精品你懂的在线| 国产一区二区福利视频| 精品日产卡一卡二卡麻豆| 婷婷一区二区三区| 欧美性三三影院| 亚洲电影激情视频网站| 欧美视频你懂的| 亚洲自拍都市欧美小说| 欧美图区在线视频| 亚洲高清免费视频| 91精品国产欧美日韩| 奇米色一区二区| 精品久久久久久久久久久久久久久 | 亚洲欧美日韩国产手机在线| 不卡的av在线| 亚洲欧美另类小说| 色视频欧美一区二区三区| 亚洲美女淫视频| 欧美视频中文字幕| 日本麻豆一区二区三区视频| 欧美刺激脚交jootjob| 国产在线视频一区二区三区| 久久久美女毛片| 成av人片一区二区| 亚洲免费观看在线观看| 欧美精品久久一区| 久久99精品久久久久| 欧美激情中文不卡| 欧美三级日韩在线| 久久成人羞羞网站| 国产精品久久久久三级| 欧美午夜精品一区二区蜜桃| 蜜臀久久久久久久| 亚洲国产精品成人久久综合一区| 97se狠狠狠综合亚洲狠狠| 亚洲成人www| 久久日韩精品一区二区五区| 不卡在线视频中文字幕| 亚洲综合在线视频| 精品精品国产高清一毛片一天堂| 成人福利视频网站| 亚洲综合免费观看高清完整版 | 在线视频一区二区三| 日本中文字幕一区二区有限公司| 久久久www成人免费无遮挡大片| 波多野结衣欧美| 日韩国产欧美三级| 国产精品热久久久久夜色精品三区 | 国产成人精品亚洲日本在线桃色| 亚洲三级免费电影| 日韩一区二区三区四区五区六区| 国产99久久久国产精品潘金| 亚洲国产综合视频在线观看| 欧美精品一区二| 在线视频综合导航| 国产成a人无v码亚洲福利| 亚洲高清不卡在线观看| 国产精品丝袜91| 欧美本精品男人aⅴ天堂| 色婷婷精品久久二区二区蜜臀av| 国产制服丝袜一区| 午夜精品在线视频一区| 国产精品毛片无遮挡高清| 91麻豆精品国产91久久久久久| caoporn国产精品| 国产伦精品一区二区三区免费迷| 依依成人精品视频| 中文字幕av一区二区三区免费看 | 蜜臀久久99精品久久久久久9 | 免费成人在线观看| 一二三区精品福利视频| 国产精品九色蝌蚪自拍| 久久综合色天天久久综合图片| 欧美精品日韩一本| 欧美性xxxxxx少妇| 色综合视频一区二区三区高清| 国产美女视频一区| 久久国产麻豆精品| 丝袜国产日韩另类美女| 一区二区三区精品久久久| 中文字幕日韩欧美一区二区三区| 亚洲精品一区二区在线观看| 欧美一区二区视频免费观看| 欧美系列日韩一区| 欧美色视频在线观看| 欧美亚洲精品一区| 欧美性一二三区| 欧美网站大全在线观看| 欧美优质美女网站| 欧洲精品一区二区| 91国偷自产一区二区三区观看| av资源网一区| 日本高清成人免费播放| 一本到三区不卡视频| 色老头久久综合| 在线精品亚洲一区二区不卡| 欧美色图天堂网| 91麻豆精品国产无毒不卡在线观看 | youjizz国产精品| 成人免费视频一区| 不卡一区在线观看| 色天天综合色天天久久| 欧美色爱综合网| 日韩一区二区免费在线观看| 日韩一区二区三区av| 久久色成人在线| 国产精品久久久久影院老司| 亚洲精品大片www| 性欧美疯狂xxxxbbbb| 久久精品国产精品青草| 久久99国产精品久久| 国产曰批免费观看久久久| 国产99久久精品| 欧美自拍丝袜亚洲| 欧美一二三在线| 久久美女艺术照精彩视频福利播放 | 成人高清av在线| 欧美在线视频不卡| 日韩欧美二区三区| 国产精品国产三级国产aⅴ中文| 亚洲欧洲制服丝袜| 久久精品国产一区二区| 成人激情视频网站| 欧美亚洲国产一区二区三区va | 欧美一级高清片| 国产精品久久毛片a| 亚洲不卡av一区二区三区| 老司机精品视频一区二区三区| 国产成人免费视| 欧美乱妇23p| 国产片一区二区| 三级影片在线观看欧美日韩一区二区| 免费一区二区视频| 99国产精品久久久久久久久久| 欧美人体做爰大胆视频| 中文字幕精品一区| 美腿丝袜亚洲三区| 色天天综合色天天久久| 久久奇米777| 婷婷开心激情综合| 99麻豆久久久国产精品免费| 欧美一区二区黄| 精品裸体舞一区二区三区| 亚洲激情六月丁香| 秋霞国产午夜精品免费视频| 韩国毛片一区二区三区| 日本道免费精品一区二区三区| 欧美一级一区二区| 亚洲乱码国产乱码精品精小说| 蜜臀av性久久久久蜜臀aⅴ流畅| 色婷婷综合久久久中文一区二区| 欧美成人三级电影在线| 亚洲午夜免费电影| 91网址在线看| 国产精品美女久久久久久久久久久| 免费一级欧美片在线观看| 欧美综合久久久| 亚洲男人的天堂网| 福利电影一区二区| 久久色在线视频| 精一区二区三区| 日韩欧美一区二区视频| 亚洲一区二区三区四区在线| 91麻豆自制传媒国产之光| 中文一区在线播放| 国产精品一区一区三区| 亚洲精品在线免费播放| 美女免费视频一区| 日韩欧美精品三级| 婷婷国产v国产偷v亚洲高清| 精品视频123区在线观看| 亚洲另类在线视频| 99国产精品久久久久久久久久| 国产精品高潮久久久久无| 国产成人亚洲综合a∨婷婷| 久久久精品影视| 国产精品1024久久| 国产精品黄色在线观看| 色综合久久久久综合体桃花网| 亚洲欧洲色图综合|