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

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

?? lcd.#2

?? ad準確采集
?? #2
字號:
//#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;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线播放网址| 欧美精品tushy高清| 日本亚洲视频在线| 亚洲欧洲精品天堂一级| 日韩一本二本av| 在线免费观看不卡av| 寂寞少妇一区二区三区| 三级欧美韩日大片在线看| 成人免费视频在线观看| 一区二区三区免费在线观看| 免费在线观看不卡| 欧美三级电影网站| 亚洲国产一二三| 国产精品国产三级国产aⅴ入口| 4438x成人网最大色成网站| 不卡一区在线观看| 国产a区久久久| 国产真实乱对白精彩久久| 图片区日韩欧美亚洲| 亚洲欧美一区二区不卡| 中日韩免费视频中文字幕| 欧美成人艳星乳罩| 欧美成人video| 日韩欧美一区二区不卡| 欧美一级搡bbbb搡bbbb| 欧美精品精品一区| 日韩一区二区免费电影| 日韩三级视频在线看| 91精品在线观看入口| 91精品国产一区二区三区蜜臀| 欧美视频一二三区| 9191精品国产综合久久久久久| 欧洲国内综合视频| 欧美久久免费观看| 欧美一级日韩不卡播放免费| 制服.丝袜.亚洲.另类.中文| 欧美日韩日日摸| 欧美一区二区三区公司| 欧美不卡视频一区| 久久精品一区四区| 中文字幕亚洲一区二区av在线| 最新中文字幕一区二区三区| 亚洲免费高清视频在线| 亚洲不卡一区二区三区| 蜜桃一区二区三区在线| 国产成人h网站| 91在线观看免费视频| 欧美日韩高清一区二区| 久久久久久久性| 亚洲欧美日韩精品久久久久| 亚洲成人激情av| 91国偷自产一区二区三区成为亚洲经典| 91麻豆福利精品推荐| 欧美三级在线看| 2017欧美狠狠色| 亚洲影院久久精品| 国产精品自拍一区| 欧美性猛交xxxxxxxx| 久久一区二区三区四区| 亚洲欧美偷拍卡通变态| 国产综合久久久久久久久久久久| 91亚洲国产成人精品一区二区三 | 日韩一卡二卡三卡| 国产精品久久久久久久久免费相片| 亚洲成人福利片| 成人av小说网| 欧美成人aa大片| 午夜精品久久久久影视| www.视频一区| 国产日产精品一区| 另类小说视频一区二区| 欧美日韩极品在线观看一区| 中文字幕在线观看不卡视频| 精品系列免费在线观看| 欧美三级视频在线播放| 亚洲欧美日韩精品久久久久| 国产98色在线|日韩| 日韩欧美黄色影院| 天天影视网天天综合色在线播放| 成人深夜福利app| 亚洲国产成人精品视频| 91福利小视频| 亚洲欧美区自拍先锋| av亚洲精华国产精华精华| 久久久久久毛片| 国产剧情一区在线| 日韩午夜激情电影| 毛片av一区二区| 日韩亚洲欧美综合| 日韩精品每日更新| 日韩精品一区二区三区四区| 日韩成人伦理电影在线观看| 欧美一级片免费看| 日产国产高清一区二区三区| 欧美亚州韩日在线看免费版国语版| 国产精品久久久久一区二区三区| 国产剧情一区二区三区| 日本一区二区三区在线不卡| 国产成人高清视频| 日韩一区中文字幕| 欧洲亚洲精品在线| 蜜桃久久久久久| 久久精品一区二区三区不卡牛牛 | 亚洲乱码中文字幕| 欧美性生活久久| 精品一区二区三区免费| 久久久久久久久伊人| av中文字幕亚洲| 五月开心婷婷久久| 国产香蕉久久精品综合网| 岛国精品一区二区| 亚洲国产精品久久一线不卡| 欧美一级日韩不卡播放免费| 粗大黑人巨茎大战欧美成人| 国产真实乱对白精彩久久| 中文字幕不卡在线播放| 欧美在线观看禁18| 国产米奇在线777精品观看| 亚洲免费色视频| 久久欧美一区二区| 欧美伊人精品成人久久综合97 | 国产精品伦一区二区三级视频| 色8久久精品久久久久久蜜| 免费视频一区二区| 国产精品成人在线观看| 在线电影院国产精品| 成人免费电影视频| 日韩电影在线观看电影| 亚洲欧美中日韩| 久久精品亚洲麻豆av一区二区 | 黄色日韩网站视频| 亚洲色图欧洲色图婷婷| 日韩一二三区视频| 欧美午夜精品一区二区三区| 粉嫩久久99精品久久久久久夜| 午夜一区二区三区在线观看| 中文字幕第一区二区| 日韩三区在线观看| 欧美精品亚洲二区| 欧美中文字幕一区二区三区亚洲| 国产精品一品二品| 麻豆成人91精品二区三区| 一区二区三区欧美视频| 久久精品99国产精品日本| 中文字幕一区二区三区在线观看| 精品999久久久| 欧美一区二区人人喊爽| 欧美理论电影在线| 欧美精品成人一区二区三区四区| 97超碰欧美中文字幕| 99精品久久只有精品| 国产精品一区2区| 国产不卡在线播放| 国产精品一二三区在线| 国产专区综合网| 国产福利不卡视频| 国产激情偷乱视频一区二区三区| 老司机午夜精品99久久| 欧美aaaaaa午夜精品| 麻豆国产精品一区二区三区| 日韩国产在线观看一区| 美女视频网站久久| 国产一区二区电影| 成人高清视频在线观看| 暴力调教一区二区三区| 色先锋资源久久综合| 欧美色网一区二区| 欧美电视剧在线看免费| 国产欧美精品一区| 亚洲精品水蜜桃| 视频一区二区国产| 国产资源在线一区| 91丝袜美腿高跟国产极品老师| 91香蕉视频mp4| 5566中文字幕一区二区电影| 91精品麻豆日日躁夜夜躁| 精品福利一二区| 亚洲欧美在线视频观看| 亚洲国产人成综合网站| 久草在线在线精品观看| www.激情成人| 欧美乱妇15p| 亚洲国产激情av| 亚洲电影在线免费观看| 欧美亚洲国产一区在线观看网站 | 国产欧美一区二区精品性色| 国产精品久久久久三级| 天天操天天综合网| 国产91清纯白嫩初高中在线观看| 欧美揉bbbbb揉bbbbb| 欧美韩国日本综合| 婷婷综合五月天| thepron国产精品| 2024国产精品| 亚洲成av人片在线观看| av激情成人网| 国产农村妇女精品| 久久激情五月激情| 欧美视频一区二区在线观看| 国产嫩草影院久久久久|