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

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

?? lcd.c

?? ad準(zhǔn)確采集
?? C
字號(hào):
//#include <C8051F020.H>
#include <lcd.H>
#include <intrins.h>
#include <main.h>

void SYSCLK_Init_LCD(void)
{
   
    WDTCN = 0xde;                       // disable watchdog timer
    WDTCN = 0xad;
    //OSCICN |= 0x01;                      //Use internal oscillator as SYSCLK:4MHz

    //while (!(OSCICN & 0x10)) ;          // Wait for crystal osc. to settle
    SFRPAGE =0x0F;
    OSCICN = 0x85;                      // Use internal oscillator as SYSCLK:4MHz

}          

/********************************************************
1. ???:void LCD_Prepare(void)
2. ??:T6963???
3. ??:?
4. ???:?
5. ????:
6. ??????:
7. ????:
8. ????:T6963????
9. ???:???
10.????:2004.11.1
11.?????:Ver 0.1
12.?????:???
13.??????:2004.12.12
14.????:
15.??????:
********************************************************/
void LCD_Prepare(void)
{   
    /* Initialise the controller */
 	LCD_Initialise();
    /* Clear Graphic RAM */
    LCD_Clear_Graphics();
    /* Clear Text RAM */
    LCD_Clear_Text();
    /* Set Text Mode and Graphics Mode On */
    LCD_Write_Command(LCD_DISPLAY_MODES_GRAPHICS_ON|LCD_DISPLAY_MODES_TEXT_ON);

    /* Set Address Pointer To GRAPHIC Home */
    LCD_Write_Data(LCD_GRAPHICS_HOME); /* LSB */
    LCD_Write_Data(LCD_GRAPHICS_HOME >> 8); /* MSB */
    LCD_Write_Command(LCD_ADDRESS_POINTER_SET);
}
/********************************************
 * Function name: initialise                *
 * Description:   Initialise PIC and LCD    *
 *******************************************/
void LCD_Initialise(void)
{
        SFRPAGE=0x0F;
    XBR2 = 0x40;

	P0MDOUT |= 0x20;    //Control the direction of 1# 245. From A to B.
    P0 |= 0x20;

    /* Set Control Lines to outputs and High */
    P4MDOUT |=0xC0;
	P4 |=0xC0;
    P1MDOUT |=0xC1;
	P1 |=0xC1;
    
    /*??LCD*/
	P1MDOUT |=0x40;
	P1 &=0xBF;

	/*??LCD*/
	P1MDOUT |=0x80;
    P1 &=0x7F;
    
	//delay_ms(2000);
    /* Hold Reset Line for 5 SYSTEM CLOCK */            //ADD NEW
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    /*????*/
    P1 |=0x80;
    /* Set Char Gen Up */
    LCD_Write_Command(LCD_CG_ROM_MODE_OR);
   
    /* Set Graphic Home Address */
    LCD_Write_Data(LCD_GRAPHICS_HOME);
    LCD_Write_Data(LCD_GRAPHICS_HOME >> 8);
    LCD_Write_Command(LCD_GRAPHIC_HOME_ADDRESS_SET);

    /* Set Graphic Area */
    LCD_Write_Data(LCD_GRAPHICS_AREA); /* Width of 32 Chars */
    LCD_Write_Data(0x00);
    LCD_Write_Command(LCD_GRAPHIC_AREA_SET);

    /* Set Text Home Address */
    LCD_Write_Data(LCD_TEXT_HOME);
    LCD_Write_Data(LCD_TEXT_HOME >> 8);
    LCD_Write_Command(LCD_TEXT_HOME_ADDRESS_SET);

    /* Set Text Area */
    LCD_Write_Data(LCD_TEXT_AREA); /* Width of 32 Chars */
    LCD_Write_Data(0x00);
    LCD_Write_Command(LCD_TEXT_AREA_SET);
}

/********************************************
 * Function name: LCD_Write_Data            *
 * Description:   Write Data to LCD         *
 *******************************************/
void LCD_Write_Data(unsigned char lwd_data)
{
    
    STA_RST();
    SFRPAGE=0x0F;

	/* Clear C/D#   Set bit /RD */
	P1MDOUT |=0x01;
	P1 &=0xFE;    
	P4MDOUT |=0x40;
	P4 |=0x40;
	/* Set Data Lines to Output */ 
    LCD_DATA_BUS = lwd_data;
    
	XBR2 = 0x40;
	P0MDOUT |= 0x20;    //Control the direction of 1# 245. From A to B.
 	P0 |= 0x20;
    LCD_DATA_BUS_TRIS |= ALL_OUTPUTS;
    
   
    
	/* Clear CE and WR */
	P1MDOUT |=0x40;
	P1 &=0xBF;
	P4MDOUT |=0x80;
	P4 &=0x7F;
    _nop_();
    _nop_();
	_nop_();    
  
    /* Set CE and WR and C/D*/
	P1MDOUT |=0x40;
	P1 |=0x40;
	P4MDOUT |=0x80;
	P4 |=0x80;	
	P1MDOUT |=0x01;
	P1 |=0x01;

	/* Set Data Lines to Input */
//    P0MDOUT &= 0xDF;    //Control the direction of 1# 245. From B to A.
// 	P0 &= 0xDF;
//    P0MDOUT |= 0x20;    //Control the direction of 1# 245. From B to A.
// 	P0 &= 0xDF;
//    LCD_DATA_BUS_TRIS &= ALL_INPUTS;
}

/********************************************
 * Function name: LCD_Write_Command         *
 * Description:   Write Command to LCD      *
 *******************************************/
void LCD_Write_Command(unsigned char lwc_data)
{
    //unsigned char status;

    STA_RST();

    SFRPAGE=0x0F;
    /* Set C/D,/RD */
	P1MDOUT |=0x01;
	P1 |=0x01;
	P4MDOUT |=0x40;
	P4 |=0x40;

	/* Set Data Lines to Output */
    LCD_DATA_BUS = lwc_data;

    XBR2 = 0x40;
	P0MDOUT |= 0x20;    //Control the direction of 1# 245. From A to B.
 	P0 |= 0x20;
    LCD_DATA_BUS_TRIS |= ALL_OUTPUTS;
    /* Clear CE and WR*/
    P1MDOUT |=0x40;
	P1 &=0xBF;
	P4MDOUT |=0x80;
	P4 &=0x7F;
    _nop_();
    _nop_();

	/* Set CE and WR */
	P1MDOUT |=0x40;
	P1 |=0x40;
	P4MDOUT |=0x80;
	P4 |=0x80;
	P1MDOUT |=0x01;
	P1 |=0x01;

	/* Set Data Lines to Input */
//    P0MDOUT &= 0xDF;    //Control the direction of 1# 245. From B to A.
// 	P0 &= 0xDF;
//    LCD_DATA_BUS_TRIS &= ALL_INPUTS;
}



/********************************************
 * Function name: lcd_clear_graphics        *
 * Description:   Wipe Graphics RAM         *
 *******************************************/
void LCD_Clear_Graphics(void)
{
    unsigned char address_l, address_h;
    unsigned int address, address_limit;
    /* Set Address Pointer */
    address = LCD_GRAPHICS_HOME;
    address_l = address & 0xff;
    address_h = address >> 8;
    LCD_Write_Data(address_l);
    LCD_Write_Data(address_h);
    LCD_Write_Command(LCD_ADDRESS_POINTER_SET);

    address_limit = (LCD_GRAPHICS_HOME + LCD_GRAPHICS_SIZE);

    while (address < address_limit)
    {
        
		LCD_Write_Command(LCD_DATA_WRITE_AUTO_INCREMENT);//MODIFY: REPLACE THE sequence.
		LCD_Write_Data(0x00);
        //LCD_Write_Command(LCD_DATA_WRITE_AUTO_INCREMENT);
        address = address + 1;
    }

}
/********************************************
 * Function name: lcd_clear_text            *
 * Description:   Wipe Text RAM             *
 *******************************************/
void LCD_Clear_Text(void)
{
    unsigned char address_l, address_h;
    unsigned int address, address_limit;
    /* Set Address Pointer */
    address = LCD_TEXT_HOME;
    address_l = address & 0xff;
    address_h = address >> 8;
    LCD_Write_Data(address_l);
    LCD_Write_Data(address_h);
    LCD_Write_Command(LCD_ADDRESS_POINTER_SET);
        address_limit =  (LCD_TEXT_HOME + LCD_TEXT_SIZE);
        while (address < address_limit)
    {
        LCD_Write_Command(LCD_DATA_WRITE_AUTO_INCREMENT);   //MODIFY: REPLACE THE sequence. 
		LCD_Write_Data(0x00);
        
        address = address + 1;
    }
}

/********************************************
 * Function name: LCD_Write_Text            *
 * Description:   Write Character to X, Y   *
 *                0 <= X <= LCD Text Width  *
 *                0 <= Y <= LCD Text Height *
 *******************************************/
void LCD_Write_Text(unsigned char character, unsigned char x, unsigned char y)   //Will modify. Address is not correct!!!!!!!!
{
    unsigned int address;

    address = (y * LCD_TEXT_AREA) + x + LCD_TEXT_HOME;                   //Will modify. Address is not correct!!!!!!!!
  
    character = character - 0x20;   /* Adjust standard ASCII to T6963 ASCII */

    LCD_Write_Data(address & 0xff);
    LCD_Write_Data(address >> 0x08);
    LCD_Write_Command(LCD_ADDRESS_POINTER_SET);
    LCD_Write_Data(character);
    LCD_Write_Command(LCD_DATA_WRITE_AUTO_INCREMENT);
}


void New_Write_Under_Picture(unsigned char  o_x,unsigned char o_y,char cch[2],int reverse)  //reverse=1???
{                        //???????????????????????????
  unsigned int data add;
  unsigned char data dat1,dat2,i,j,k=0;
   
  add=(unsigned int)(o_y*0x01E0+o_x*2)+0x01E0;
  for(k=0;k<size;k++) 
     {                                                             
       if((HANZIKU[k].ch[0]==cch[0])&&(HANZIKU[k].ch[1]==cch[1]))   //????????
       break;//???????
     }
  if(k>=(sizeof(HANZIKU)/sizeof(HANZIKU[0])))
     return;
  for(i=16,j=0;i>0;i--,j+=2)
   {
     dat1=(unsigned char)add&0xff;
     dat2=(unsigned char)((add>>8)&0xff);
     
     LCD_Write_Data(dat1);
     LCD_Write_Data(dat2);         
     LCD_Write_Command(LCD_ADDRESS_POINTER_SET); 
	 
	 if(reverse==0) 
        LCD_Write_Data(HANZIKU[k].dat[j]);
     else if(reverse==1)
	    LCD_Write_Data(~HANZIKU[k].dat[j]);
	 LCD_Write_Command(LCD_DATA_WRITE_AUTO_INCREMENT);

	 if(reverse==0) 
        LCD_Write_Data(HANZIKU[k].dat[j+1]);
     else if(reverse==1)
	    LCD_Write_Data(~HANZIKU[k].dat[j+1]);
	 LCD_Write_Command(LCD_DATA_WRITE_AUTO_INCREMENT);
	 add+=30;
   }
    
}   
  
void STA_RST(void)
{    	
     unsigned char x;
     //set_bit(LCD_CONTROL, LCD_CD_BIT);
     x = LCD_DATA_BUS;
     
//     LCD_CONTROL |= 0x08;  // setbit LCD_CD_BIT;
	 
	 SFRPAGE=0x0F;
	  /*????*/
     P1MDOUT |=0x01;
	 P1 |=0x01;

	 XBR2 = 0x40;	
	 P0MDOUT |= 0x20;    //Control the direction of 1# 245. From A to B.
 	 P0 |= 0x20;
     LCD_DATA_BUS_TRIS |= ALL_OUTPUTS;
	 
     LCD_DATA_BUS |= 0x8B; /*?????*/
     _nop_();
     _nop_();
     _nop_();
	 
     /* While BUSY1 and BUSY2 are not 1 */
//   	 while ( (LCD_Read_Status() & (LCD_STATUS_BUSY1 | LCD_STATUS_BUSY2 | LCD_STATUS_DAWRDY)) != (LCD_STATUS_BUSY1 | LCD_STATUS_BUSY2 | LCD_STATUS_DAWRDY));  //MODIFIED!
     LCD_DATA_BUS = x;

//	 P0MDOUT &= 0xDF;    //Control the direction of 1# 245. From B to A.
// 	 P0 &= 0xDF;
//     LCD_DATA_BUS_TRIS &= ALL_INPUTS;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
6080日韩午夜伦伦午夜伦| 在线综合亚洲欧美在线视频| 亚洲mv大片欧洲mv大片精品| 欧美成人三级电影在线| 成人动漫一区二区三区| 日韩精品一二三| 成人欧美一区二区三区视频网页| 欧美日韩中文字幕一区| 国产电影一区在线| 丝袜美腿高跟呻吟高潮一区| 国产精品系列在线| 欧美人与性动xxxx| 成人晚上爱看视频| 日韩av在线发布| 欧美一区二区三区四区高清| 国产98色在线|日韩| 亚洲综合一区二区三区| 精品久久久三级丝袜| 99r国产精品| 美女在线一区二区| 亚洲制服丝袜一区| 日韩欧美激情四射| 成人福利视频在线| 秋霞午夜av一区二区三区| 国产精品视频九色porn| 日韩欧美第一区| 欧美日韩在线三区| 成人av高清在线| 日本三级亚洲精品| 精品国产91亚洲一区二区三区婷婷| 豆国产96在线|亚洲| 蜜桃视频一区二区三区| 亚洲午夜在线观看视频在线| 国产精品传媒在线| 久久久久久久久99精品| 日韩欧美精品在线视频| 欧美喷潮久久久xxxxx| 99国产精品99久久久久久| 国产精品一区二区久久精品爱涩| 丝袜美腿成人在线| 亚洲图片欧美视频| 一区二区三区日韩在线观看| 国产三级一区二区三区| 精品免费国产一区二区三区四区| 欧美美女网站色| 色一区在线观看| 成人午夜碰碰视频| 福利91精品一区二区三区| 美女国产一区二区三区| 视频一区二区不卡| 一区二区三区日韩| 日本aⅴ亚洲精品中文乱码| 亚洲精品日日夜夜| 亚洲精品一卡二卡| 337p粉嫩大胆噜噜噜噜噜91av| 欧美日韩精品一区二区在线播放| 国产91清纯白嫩初高中在线观看| 亚洲高清三级视频| 曰韩精品一区二区| 国产精品成人午夜| 亚洲视频免费观看| 亚洲精品国久久99热| 亚洲欧美另类在线| 亚洲图片你懂的| 亚洲免费三区一区二区| 一区二区三区视频在线看| 久久人人97超碰com| 国产亚洲欧美色| 中文乱码免费一区二区| 欧美激情在线看| 亚洲人快播电影网| 亚洲资源在线观看| 日韩在线卡一卡二| 精品一区二区三区av| 国产大陆a不卡| caoporn国产精品| 色欧美片视频在线观看在线视频| 欧美中文字幕不卡| 欧美一二三四区在线| 日韩视频一区二区在线观看| 欧美一区二区三区四区高清| 精品不卡在线视频| 中文一区在线播放| 国产精品国产三级国产aⅴ入口 | 欧美日韩视频在线第一区| 欧美日韩久久久一区| 日韩一区二区三区在线观看| 精品国产sm最大网站| 亚洲欧洲一区二区在线播放| 一区二区三区精品在线| 偷拍与自拍一区| 国产精品99久久久| 91欧美激情一区二区三区成人| 久久麻豆一区二区| 自拍偷拍亚洲欧美日韩| 日一区二区三区| 国产成人免费在线观看不卡| 色婷婷狠狠综合| 日韩欧美一区二区在线视频| 久久午夜国产精品| 亚洲日本在线观看| 久久av老司机精品网站导航| 不卡一区在线观看| 51精品国自产在线| 国产精品第一页第二页第三页| 性久久久久久久久久久久| 国产专区欧美精品| 日本久久一区二区三区| 久久亚洲综合色| 亚洲成在线观看| 国产精品538一区二区在线| 欧美亚一区二区| 国产亚洲女人久久久久毛片| 亚洲中国最大av网站| 国产精品一二一区| 欧美日韩成人激情| 中文字幕一区二区日韩精品绯色| 久色婷婷小香蕉久久| 色天天综合久久久久综合片| 久久久精品综合| 日韩av网站免费在线| 99久久久精品免费观看国产蜜| 欧美www视频| 日韩影院在线观看| 色婷婷久久久综合中文字幕| 久久久久高清精品| 人妖欧美一区二区| www.在线成人| 91精品蜜臀在线一区尤物| 一区二区三区在线观看视频| 美女视频网站久久| 欧美日韩大陆一区二区| 国产精品传媒视频| 久久99精品国产91久久来源 | 91久久精品午夜一区二区| 久久精品夜色噜噜亚洲aⅴ| 日产欧产美韩系列久久99| 欧美亚洲另类激情小说| 香港成人在线视频| 欧美另类久久久品| 国产经典欧美精品| 欧美精品一区二区在线观看| 国产麻豆欧美日韩一区| 久久影视一区二区| 成人在线视频一区二区| 中文字幕一区二区三区色视频| av电影在线观看不卡| 亚洲色图欧洲色图婷婷| 欧洲在线/亚洲| 日韩—二三区免费观看av| 在线播放91灌醉迷j高跟美女| 午夜国产精品一区| 日韩欧美国产一区二区三区| 国内成人精品2018免费看| 久久精品男人天堂av| 91污片在线观看| 视频一区视频二区在线观看| 日韩一区国产二区欧美三区| 国产一区 二区| 亚洲日本在线视频观看| 欧美日韩视频在线一区二区| 久久国产麻豆精品| 国产欧美精品日韩区二区麻豆天美| 99riav一区二区三区| 亚洲在线成人精品| 欧美电视剧在线观看完整版| 国产一区二三区| 一区二区三区毛片| 日韩欧美一区二区久久婷婷| 高清不卡在线观看| 亚洲综合免费观看高清完整版在线 | 丝袜国产日韩另类美女| 久久夜色精品国产欧美乱极品| 成人动漫一区二区三区| 亚洲国产中文字幕| 精品久久久久久亚洲综合网| 99久久er热在这里只有精品15 | 日本亚洲最大的色成网站www| 日韩精品一区二区三区视频在线观看| 国产99久久久久久免费看农村| 一区av在线播放| 国产午夜精品美女毛片视频| 在线观看视频一区二区| 国产一区在线观看视频| 亚洲免费观看视频| 国产亚洲一区二区在线观看| 欧亚一区二区三区| 大美女一区二区三区| 午夜视频在线观看一区二区三区| 欧美激情艳妇裸体舞| 国产精品妹子av| 在线综合亚洲欧美在线视频| 99视频精品在线| 国产乱码精品1区2区3区| 亚洲国产美国国产综合一区二区 | 亚洲一级片在线观看| 中文字幕av不卡| 欧美xxxx老人做受| 欧美精品在线一区二区三区| 成人午夜电影小说|