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

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

?? glasslcd.c

?? LCD液晶顯示驅動,芯片為ST7565,
?? C
?? 第 1 頁 / 共 2 頁
字號:
  if (*c==0x20)
  {
    car =0x00;
  }
  
#ifdef USE_LCD_REF_PD_878   
  if (point==1)
  {
    car|=0x0004;
  }
#endif

#ifdef USE_LCD_REF_CT4_098   
  if (point==1)
  {
    car|=0x8000;
  }
#endif
  
  for (i=0;i<3;i++)
  {
    tmp = car&mask[i];
    digit[i] = tmp>>shift[i];
  }
  
  digit[3] = (car&mask[3]); 
}

/*******************************************************************************
* Function Name  : LCD_WriteChar
* Description    : This function writes a char in the LCD frame buffer
* Input          : - car: the caracter to dispaly.
*                  - point: a point to add in front of char
*                     0: no point to add in front of char.
*                     1: add a point in front of char.  
*                  - position: position in the LCD of the caracter to write. 
*                    it can be: [0:3] (in case of CT4-098 LCD glass)
*                               [0:7] (in case of PD_878 LCD glass)
* Output         : None.
* Return         : None.
*******************************************************************************/
void LCD_WriteChar(char* car,u8 point,u8 position)
  {
   u8 i;
   const u16 mask[4]={0x000F,0x00F0,0x0F00,0xF000};
   u16 Digits_Lower_Quarter[4];
   
#ifdef USE_LCD_REF_PD_878    
   u16 Digits_Higher_Quarter[4];
#endif    
   Convert(car,point);
  
   switch(position)
   {
     /* Position 0 on LCD (Digit1)*/
     case 0: for (i=0;i<4;i++)
             {
               Digits_Lower_Quarter[i] = digit[i];
#ifdef USE_LCD_REF_PD_878                 
               Digits_Higher_Quarter[i]=0;
#endif                
              }
              break;
             
     /* Position 1 on LCD (Digit2)*/
     case 1: for (i=0;i<4;i++)
             {
               Digits_Lower_Quarter[i] =(digit[i]<<4);
#ifdef USE_LCD_REF_PD_878                 
               Digits_Higher_Quarter[i]=0;
#endif               
             }
             break;
             
     /* Position 2 on LCD (Digit3)*/
     case 2: for (i=0;i<4;i++)
             {
               Digits_Lower_Quarter[i]=(digit[i]<<8);
#ifdef USE_LCD_REF_PD_878                 
               Digits_Higher_Quarter[i]=0;
#endif                
             }
             break;
 
     /* Position 3 on LCD (Digit4)*/
     case 3: for (i=0;i<4;i++)
             {
               Digits_Lower_Quarter[i]=(digit[i]<<12);
#ifdef USE_LCD_REF_PD_878               
               Digits_Higher_Quarter[i]=0;
#endif               
             }
             break;

#ifdef USE_LCD_REF_PD_878   /* Higher quarter digits in LCD (position from 4 to 7) */
             
     /* Position 4 on LCD (Digit5)*/
     case 4: for (i=0;i<4;i++)
             {
               Digits_Higher_Quarter[i]= digit[i];
               Digits_Lower_Quarter[i]=0;
             }
             break;
             
     /* Position 5 on LCD (Digit6)*/
     case 5: for (i=0;i<4;i++)
             {
               Digits_Higher_Quarter[i]=(digit[i]<<4);
               Digits_Lower_Quarter[i]=0;
             }
             break;
             
     /* Position 6 on LCD (Digit7)*/
     case 6: for (i=0;i<4;i++) 
             {
               Digits_Higher_Quarter[i]=(digit[i]<<8);
               Digits_Lower_Quarter[i]=0;
             }
             break;
             
     /* Position 7 on LCD (Digit8)*/
     case 7: for (i=0;i<4;i++)
             {
               Digits_Higher_Quarter[i]=(digit[i]<<12);
               Digits_Lower_Quarter[i]=0;
             }
             break;
#endif             
             
     default:break;
    }

   if (position < 4) /* Segments of lower quarter digits in LCD (position from 4 to 7) */
   {
     for (i=0;i<4;i++)
     {
       SegmentsValues_Lower_Quarter_Digits[i] = \
      (SegmentsValues_Lower_Quarter_Digits[i]&~mask[position])| Digits_Lower_Quarter[i];
                                                   
     }
   }
#ifdef USE_LCD_REF_PD_878    
   else  /* Segments of higher quarter digits in LCD (position from 4 to 7) */
   { 
     for (i=0;i<4;i++)
     {
       SegmentsValues_Higher_Quarter_Digits[i] = \
      (SegmentsValues_Higher_Quarter_Digits[i]&~mask[position-4])| Digits_Higher_Quarter[i];
                                                  
     }
   }
#endif
   
  }


/*******************************************************************************
* Function Name  : LCD_WriteString
* Description    : This function writes a string in the LCD
* Input          : - str: string to dispaly in the LCD.
* Output         : None.
* Return         : None.
*******************************************************************************/
void LCD_WriteString(char* str)
{
  u8 i;
  
  for (i=0;i<NumberOfUsedDigits;i++)
  {
    LCD_WriteChar(str+i,0,i);
  }
} 

/*******************************************************************************
* Function Name  : LCD_GPIO_Init
* Description    : Initialize GPIOs to set segments lines and common line
*                  values to 0.
* Input          : None.
* Output         : None.
* Return         : None.
*******************************************************************************/
void LCD_GPIO_Init(void)
{
  /* Compute and load the GPIOs masks of the Common lines */
  LCD_GPIO_Coms_Masks_Init();
    
  /* All common lines = 0 */
  CommonLines_Port->ODR &= ~ALL_COMMON_LINES;
    
  /* All segment lines = 0 ( all SegmentsLines_LQD_Port pins = 0 ) */
  GPIO_Write(SegmentsLines_LQD_Port, (u16)~ALL_SEGMENT_LINES);
    
#ifdef USE_LCD_REF_PD_878 
  GPIO_Write(SegmentsLines_HQD_Port, (u16)~ALL_SEGMENT_LINES);
#endif          
   
  /* Configure all common lines on CommonLines port pins as Out_PP */    
  CommonLines_Port->PinsConfig &= (0xFFFF0000 << ((CommonLines_Pin_Offset) * 4)) \
                                  + OffsetValue(CommonLines_Pin_Offset);
  CommonLines_Port->PinsConfig |= ALL_COMMON_LINES_PP;
    
  /* Configure all segment lines of Lower Quarter digits as Out_PP */ 
  SegmentsLines_LQD_Port->CRL = ALL_SEGMENT_LINES_PP;
  SegmentsLines_LQD_Port->CRH = ALL_SEGMENT_LINES_PP;
       
#ifdef USE_LCD_REF_PD_878 
  /* Configure all segment lines of Higher Quarter digits as Out_PP */ 
  SegmentsLines_HQD_Port->CRL = ALL_SEGMENT_LINES_PP;
  SegmentsLines_HQD_Port->CRH = ALL_SEGMENT_LINES_PP;
#endif 
}

/*******************************************************************************
* Function Name  : LCD_SettingContrast
* Description    : Set the LCD contrast.
* Input          : - LCD_ContrastVAlue: the contrast value.
* Output         : None.
* Return         : None.
*******************************************************************************/
void LCD_SettingContrast(u16 LCD_ContrastValue)
{
  TIM_OCInitTypeDef TIM_OCInitStructure;
  
  /* Set LCD contrast */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;
  TIM_OCInitStructure.TIM_Pulse = LCD_ContrastValue;  
  TIM_OCInitStructure.TIM_OutputState = ENABLE;
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OC2Init(TIMER_LCD, &TIM_OCInitStructure);
}

/******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲高清视频的网址| 风间由美一区二区三区在线观看| 成人免费小视频| 亚洲午夜视频在线观看| 视频一区在线视频| 九九视频精品免费| 国产精品888| 成人激情视频网站| 欧洲亚洲精品在线| 欧美一区二区三区视频免费| 精品国产一区二区亚洲人成毛片| youjizz久久| 777久久久精品| 欧美videossexotv100| 中文字幕免费不卡在线| 91色在线porny| 91久久精品网| 亚洲精品午夜久久久| 强制捆绑调教一区二区| 色激情天天射综合网| 中文字幕欧美三区| 国产精品每日更新| 午夜成人免费视频| 国产91在线观看| 4438x亚洲最大成人网| 久久精品一区二区三区不卡| 亚洲精品视频一区| 美女视频黄 久久| 欧美色图天堂网| 国产午夜精品一区二区三区四区| 亚洲制服欧美中文字幕中文字幕| 97超碰欧美中文字幕| 国产精品二三区| av在线不卡观看免费观看| 国产亚洲成aⅴ人片在线观看| 日韩av在线播放中文字幕| 欧美日韩精品系列| 夜夜精品浪潮av一区二区三区| 国产一区二区精品久久| 久久久久99精品国产片| 韩国v欧美v日本v亚洲v| 中文欧美字幕免费| 久久99久久99| 精品人在线二区三区| 久久成人免费网| 精品播放一区二区| 色婷婷亚洲精品| 国产一区二区视频在线| 一区二区三区四区中文字幕| 欧美午夜片在线看| 午夜激情一区二区三区| 欧美日韩国产乱码电影| 国产一二精品视频| 亚洲激情成人在线| 久久综合视频网| 欧美无乱码久久久免费午夜一区| 日韩国产在线观看一区| 精品乱人伦一区二区三区| 不卡区在线中文字幕| 亚洲国产精品精华液网站| 91麻豆国产福利精品| 亚洲另类在线制服丝袜| 91色九色蝌蚪| 国产亚洲精品精华液| 欧美一区二区成人| 日本高清不卡视频| 国产精品一二三四| 免费在线观看一区二区三区| 亚洲一区二区三区三| 欧美中文字幕久久| 日韩高清欧美激情| 一本久久精品一区二区| 亚洲少妇30p| 色国产精品一区在线观看| 亚洲欧美日韩一区二区 | 中文字幕成人网| 国产午夜亚洲精品理论片色戒| 18欧美乱大交hd1984| 久久亚洲精品小早川怜子| 九色综合狠狠综合久久| 欧美xxxxxxxx| 国产在线一区二区| 久久网这里都是精品| 国产福利一区二区三区视频在线| 久久这里只有精品6| 极品尤物av久久免费看| 激情综合网天天干| 1区2区3区欧美| 日韩精品中文字幕在线一区| 免费久久99精品国产| 欧美一区二区三区性视频| 精品在线播放午夜| 26uuu另类欧美| 国产盗摄精品一区二区三区在线| 精品国产亚洲在线| 国产麻豆91精品| 国产精品色呦呦| 99re6这里只有精品视频在线观看| 亚洲欧美乱综合| 欧美日韩免费不卡视频一区二区三区| 舔着乳尖日韩一区| 欧美一区二区啪啪| 国产麻豆精品在线观看| 中国色在线观看另类| 国产中文字幕精品| 夜色激情一区二区| 精品久久久三级丝袜| 欧美年轻男男videosbes| 国产成人精品www牛牛影视| 久久激情五月激情| 亚洲一区二区三区不卡国产欧美 | 不卡的av在线播放| 久久精品国产久精国产| 亚洲最新视频在线播放| 亚洲免费高清视频在线| 国产精品私房写真福利视频| 日韩免费性生活视频播放| 欧美高清hd18日本| 欧美成人a在线| 欧美成人女星排行榜| 欧美日韩亚洲高清一区二区| 日韩一二在线观看| 日韩欧美在线综合网| 国产精品美女久久久久aⅴ| 一个色综合av| 欧美国产丝袜视频| 欧美日韩成人高清| 欧美日韩一区二区电影| 精品视频在线视频| 日韩三级视频中文字幕| 日韩免费一区二区| 中文字幕不卡的av| 一区二区三区在线观看国产| 视频在线观看一区| 图片区小说区国产精品视频| 日韩精品电影一区亚洲| 国产成人精品影院| 成人美女在线观看| 欧美精品久久久久久久久老牛影院| 精品国产一区二区三区四区四 | 麻豆精品视频在线观看| 国产精品免费aⅴ片在线观看| 欧美精品v国产精品v日韩精品| 国产成人免费在线观看| 亚洲mv在线观看| 欧美精品一区二区三区在线播放 | 欧美激情一区二区三区蜜桃视频| 欧美精品在线观看一区二区| 国产成人免费视频网站| 日韩黄色在线观看| 一区二区三区资源| 国产亚洲一本大道中文在线| 欧美日韩亚洲另类| 成人毛片在线观看| 国产一区二区三区电影在线观看| 天天综合色天天| 亚洲综合视频在线| 综合中文字幕亚洲| 欧美高清在线一区二区| 久久超碰97中文字幕| 亚洲欧美二区三区| 国产情人综合久久777777| 欧美xxxx老人做受| 欧美日韩aaaaa| 欧洲国内综合视频| 在线视频你懂得一区二区三区| 成人av电影在线观看| 久久国内精品自在自线400部| 亚洲综合丝袜美腿| 亚洲欧洲美洲综合色网| 中文字幕免费不卡在线| 国产日韩欧美麻豆| 国产欧美日韩不卡| 亚洲精品在线电影| 日韩一区二区三区高清免费看看| 在线观看国产日韩| 91小视频免费观看| 色哟哟一区二区三区| 99久久精品免费| 99久久精品国产一区| jizzjizzjizz欧美| 成人aaaa免费全部观看| 成人听书哪个软件好| 成人免费观看男女羞羞视频| 成人动漫一区二区三区| 国产成人精品一区二 | 久久精品欧美一区二区三区麻豆| 欧美刺激午夜性久久久久久久| 欧美v国产在线一区二区三区| 精品剧情v国产在线观看在线| 欧美一区二区播放| 日韩欧美成人激情| 久久久久青草大香线综合精品| 久久综合久久鬼色中文字| 久久毛片高清国产| 国产精品久久久久久久久晋中 | 欧美自拍丝袜亚洲| 欧美日韩国产色站一区二区三区| 欧美日韩国产综合久久| 日韩小视频在线观看专区|