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

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

?? lcd.c

?? 一款收款機C源代碼!因為是幾年前的代碼了
?? C
字號:
#include "ecrsys.h"
#include "lcd.h"
#include <string.h>

#define  CMDOFF      0     //Power Off control words
#define  CMDON    	1     //Power On control words
#define  CMDLCDON    3     //ON the LCD display
#define  CMDLCDOFF   2     //OFF the LCD display
#define  CMDB3C4     0x29  //Control Work Mode.

void  LCD_Back(CHR flag)
{
   if (flag == ON)
      LCD_BL = LCD_BL_ON;
   else
      LCD_BL = LCD_BL_OFF;
}

#ifdef LCD_DISP

/*          1        2     3     4     5     6     7     8 */
const CHR   LCD_CHAR_SEG[] = 
      {
         CHAR_MINUS, CHAR_A,  CHAR_b,  CHAR_C,  CHAR_d,  CHAR_E,  CHAR_F,  CHAR_G,
         CHAR_H,     CHAR_1,  CHAR_J,  CHAR_K,  CHAR_L,  CHAR_M,  CHAR_n,  CHAR_O,
         CHAR_P,     CHAR_Q,  CHAR_R,  CHAR_S,  CHAR_t,  CHAR_U,  CHAR_V,  CHAR_W,
         CHAR_X,     CHAR_y,  CHAR_Z
      };

const CHR   LCD_NUM_SEG[] =
      {  
         CHAR_0,  CHAR_1,  CHAR_2,  CHAR_3,  CHAR_4,  CHAR_5,
         CHAR_6,  CHAR_7,  CHAR_8,  CHAR_9,  CHAR_A,  CHAR_b,
         CHAR_C,  CHAR_d,  CHAR_E,  CHAR_F
      };

const CHR   LCD_SECT_SEG[]=
      {
         SECT_NULL,SECT_RA,SECT_PO,SECT_TAIL
      };

volatile byte LCD_Buff[MAX_LCD_NUM];			/* The LCD buffer, store the last display data */

/**********************************************************************************************
*  Send 1 -bit to LCD, and the data in CY register                         
**********************************************************************************************/
void LCD_Send_Out_Bit(CHR send_bit)
{
   if (send_bit != 0)   
      LCD_DI = 1;
   else
      LCD_DI = 0;
   LCD_CLK = 1;
   LCD_CLK = 0;
   LCD_CLK = 1;
}

/******************************************************************************************************
*  Procedure:  Send_Data_LCD
*           :  Send the data which stored in the Special_buf[96] to LCD controller.
*  
*  Input    :  the Display data ( Segment - Digit data)
*  Output   :  None
*
*  Send the Control data to LCD 
******************************************************************************************************/
void Wr_Cntrl_LCD(CHR Cmd)
{
   CHR tmp;

   LCD_EN = 1;
   LCD_EN = 0;
   LCD_Send_Out_Bit(1);
   LCD_Send_Out_Bit(0);
   LCD_Send_Out_Bit(0);
   for (tmp = 0; tmp < 9; tmp ++ )
   {
      if ( (Cmd & 0x80 ) != 0 )
         LCD_Send_Out_Bit(1);
      else
         LCD_Send_Out_Bit(0);
      Cmd <<= 1;
   }
   LCD_DI = 1;
   LCD_EN = 1;
}

/* Send the data to LCD */
void Wr_Data_LCD(CHR Send_Data, CHR Addr)
{
   CHR tmp;

   LCD_EN = 1;          
   LCD_EN = 0;
   LCD_Send_Out_Bit(1);          //CMD for 101
   LCD_Send_Out_Bit(0);
   LCD_Send_Out_Bit(1);
                              //Send the Address first.  
   for (tmp = 0; tmp < 6; tmp ++ )
   {
      if ( ( Addr & 0x20 ) != 0 )
         LCD_Send_Out_Bit(1);
      else
         LCD_Send_Out_Bit(0);
      Addr <<= 1;
   }                          //Send the Data second.
   for (tmp = 0; tmp < 8; tmp ++ )
   {
      if ( ( Send_Data & 0x01 )  != 0 )
         LCD_Send_Out_Bit(1);
      else
         LCD_Send_Out_Bit(0);
      Send_Data >>= 1;
   }
   LCD_DI = 1;
   LCD_EN = 1;
}
/**********************************************************************************************
   Reset the LCD controller chip.
   03-1-15 11:54  by    ZhengXiaoChun
**********************************************************************************************/
void Reset_LCD(void)
{
   Wr_Cntrl_LCD(CMDON);
   Wr_Cntrl_LCD(CMDLCDON);
   Wr_Cntrl_LCD(CMDB3C4);
}

/* Display the data to the LCD, and store the data to the display buffer */
void LCD_Disp(byte data, byte posi)
{
	LCD_Buff[posi] = data;
	Wr_Data_LCD( data, posi * 2 );
}

void LCD_DispChar(byte posi, byte dsp_char, byte dots)
{
    byte tmp;
    
    if(posi >= MAX_LCD_NUM)
        return;
    
    posi = MAX_LCD_NUM - posi - 1;
    if(dsp_char < 16)//數字
    {
        tmp = LCD_NUM_SEG[dsp_char]|dots;
    }
    else if(dsp_char == '-')// '-'
        tmp = LCD_CHAR_SEG[0] | dots;
    else if(dsp_char == ' ') // ' '
          tmp = 0 | dots;
    else if(dsp_char == '.')// '.'
          tmp = 1;
    else if((dsp_char >= '0')&&(dsp_char <= '9'))// '0' ~ '9'
    {
        dsp_char -= '0';
        tmp = LCD_NUM_SEG[dsp_char] | dots;
    }
    else if((dsp_char >= 'a') && (dsp_char <= 'z'))// 'a' ~ 'z'
    {
     dsp_char -= 'a';
     tmp = LCD_CHAR_SEG[dsp_char] | dots;
    }
    else if((dsp_char >= 'A') && (dsp_char <= 'Z'))//'A'~ 'Z'
    {
       dsp_char -= 'A';             //Skip the not used area.
       tmp = LCD_CHAR_SEG[dsp_char] | dots;
    }
    else
        tmp = 0 | dots;
    
     LCD_Disp(tmp,posi);
}

/*--------------------------------------------------------------------------------*
 *                Insert a sect to the LCD display.
 *--------------------------------------------------------------------------------*/
void LCD_Insert_Sect(CHR dsp_data,CHR posi, byte dots)
{
    byte tmp;
    byte i;

    if(posi >= MAX_LCD_NUM)
   	    return;
   
    posi = MAX_LCD_NUM - 1 - posi;
    
    for(i=0;LCD_SECT_SEG[i]!=SECT_TAIL;i++)
      if(LCD_SECT_SEG[i] == dsp_data)
         break;
    if(LCD_SECT_SEG[i] == SECT_TAIL)
        return;
    tmp = LCD_SECT_SEG[i] | dots;

	LCD_Disp(tmp,posi);
}


/*----------------------------------------------------------------------------------------
*  void  LCD_Back(CHAR flag);
*  In:   On / Off the LCD backlight.
*  03-4-2 11:23   by ZhengXC
*---------------------------------------------------------------------------------------*/
void  LCD_Back(CHR flag)
{
   if (flag == ON)
      LCD_BL = LCD_BL_ON;
   else
      LCD_BL = LCD_BL_OFF;
}

void  LCD_Init(void)
{
    byte i;
    
    LCD_EN_DIR    = 1;
    LCD_CLK_DIR   = 1;
    LCD_DI_DIR    = 1;
    LCD_BL_DIR    = 1;
    LCD_Close_Disp();
}


/* Display the data to the LCD, and store the data to the display buffer */

void LCD_InsPeriod(byte posi)
{
    byte tmp;

    if(posi >= MAX_LCD_NUM)
        return;
    
    posi = MAX_LCD_NUM - posi - 1;
    tmp = LCD_Buff[posi];   /* Get the last display data */
    tmp |= 0x01;                /* 0000 0001B, set the flag */
    LCD_Buff[posi] = tmp;
    Wr_Data_LCD( tmp , posi * 2 );
}

void LCD_ClrPeriod(byte posi)
{
    byte tmp;

    if(posi >= MAX_LCD_NUM)
        return;
    
    posi = MAX_LCD_NUM - posi - 1;
    tmp = LCD_Buff[posi];   /* Get the last display data */
    tmp &= 0xfe;                /* 1111 1110B, clear the flag */
    LCD_Buff[posi] = tmp;
    Wr_Data_LCD( tmp , posi * 2 );
}


/*------------------------------------------------------------------------*
					Clear the all display information.
		注意: 推薦不用這個函數, 因為用這個函數比較危險; 因為無法清除VFD的顯示. 
 *------------------------------------------------------------------------*/
void LCD_Close_Disp(void)
/* Remain, has't used it in the function */
{
	byte i;

	Reset_LCD();
	for( i = 0; i < MAX_LCD_NUM; i ++)
	{
		LCD_Buff[MAX_LCD_NUM - i - 1] = 0;
		Wr_Data_LCD( 0, (MAX_LCD_NUM - i - 1) * 2 );
	}
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区欧美视频| 激情丁香综合五月| 美国一区二区三区在线播放| 国产宾馆实践打屁股91| 欧美日韩一区不卡| 中文字幕亚洲电影| 韩国欧美国产一区| 精品视频一区二区不卡| 亚洲欧洲av色图| 国产乱码精品1区2区3区| 91精品免费观看| 亚洲国产成人av好男人在线观看| 国产成a人亚洲| 精品久久久三级丝袜| 日韩1区2区日韩1区2区| 色先锋aa成人| 亚洲视频一区二区免费在线观看| 韩国成人精品a∨在线观看| 91精品国产综合久久婷婷香蕉| 亚洲一区二区黄色| 色婷婷精品久久二区二区蜜臀av| 国产精品久久久久三级| 国产高清不卡一区二区| 欧美成人女星排行榜| 午夜精品一区在线观看| 欧美亚洲国产一区二区三区va| 亚洲免费观看高清完整版在线观看熊| 成人免费av在线| 亚洲国产精品国自产拍av| 国产一区二区视频在线| 久久久亚洲欧洲日产国码αv| 久久国产精品第一页| 精品国产一区二区三区久久久蜜月 | 91色porny在线视频| 国产精品萝li| 99国产精品99久久久久久| 中文字幕一区免费在线观看| 日韩欧美一卡二卡| 日韩vs国产vs欧美| 精品欧美乱码久久久久久| 国产一区二区不卡老阿姨| 久久精品一区二区三区av| 岛国精品在线观看| 亚洲日本va午夜在线影院| 在线观看91精品国产入口| 午夜激情一区二区| 日韩美女在线视频| 国产精品 日产精品 欧美精品| 一区视频在线播放| 日本高清视频一区二区| 日韩成人午夜电影| 久久久www免费人成精品| 成人免费毛片a| 夜夜嗨av一区二区三区四季av | 色国产综合视频| 天天亚洲美女在线视频| 欧美精品一区二区蜜臀亚洲| 成人一级视频在线观看| 亚洲妇女屁股眼交7| 精品日韩在线观看| 99精品在线观看视频| 日本中文字幕一区二区有限公司| 欧美精品一区二区三| 91麻豆文化传媒在线观看| 免费在线视频一区| 亚洲欧洲99久久| 91精品国产综合久久久久久 | 国产精品成人免费| 欧美久久久久免费| 国产成人精品亚洲日本在线桃色| 一区二区在线观看视频在线观看| 欧美成人video| 色猫猫国产区一区二在线视频| 日本成人在线电影网| 国产精品色在线| 日韩欧美一区二区视频| 成人app在线| 久久99久国产精品黄毛片色诱| 日韩毛片精品高清免费| 精品久久久久av影院| 欧美亚洲国产bt| 成人教育av在线| 黄色日韩三级电影| 五月婷婷综合在线| 国产精品国模大尺度视频| 日韩欧美亚洲一区二区| 欧美日韩一区久久| 91视频在线观看免费| 国产乱理伦片在线观看夜一区| 日韩高清国产一区在线| 亚洲综合色区另类av| 中文字幕一区二区三区在线不卡 | 亚洲国产成人av| 17c精品麻豆一区二区免费| 精品成人在线观看| 91精品国产综合久久久久| 欧美少妇性性性| 精品国产精品一区二区夜夜嗨| 欧美日韩一级大片网址| 91免费观看视频| 99国产精品久久久久久久久久 | 国产精品网站一区| 久久人人97超碰com| 亚洲精品一区二区三区蜜桃下载 | 91精品视频网| 在线不卡的av| 欧美美女喷水视频| 欧美亚洲国产一卡| 欧美日韩国产首页| 在线观看三级视频欧美| 91蝌蚪国产九色| 色天天综合久久久久综合片| 9久草视频在线视频精品| 成人免费电影视频| 白白色亚洲国产精品| www.欧美精品一二区| 东方欧美亚洲色图在线| 国产白丝精品91爽爽久久| 成人福利视频网站| 成人一级黄色片| 97精品久久久午夜一区二区三区| av在线播放一区二区三区| 99久久国产综合色|国产精品| 91视频在线看| 欧美性猛片aaaaaaa做受| 欧美老肥妇做.爰bbww视频| 欧美日产在线观看| 日韩精品一区二区三区老鸭窝 | 成人在线一区二区三区| 成人免费视频免费观看| fc2成人免费人成在线观看播放 | 欧美精品一区二区在线播放| 国产欧美日韩视频在线观看| 自拍av一区二区三区| 亚洲国产综合在线| 免费观看久久久4p| 国产91在线看| 久久久久久久久久久电影| 国产精品久久久久久久久久久免费看 | 制服.丝袜.亚洲.另类.中文| 亚洲精品在线免费观看视频| 国产精品传媒入口麻豆| 亚洲国产精品自拍| 国产在线麻豆精品观看| 成人性生交大片免费看在线播放| 91成人免费电影| 精品国产乱子伦一区| 国产精品麻豆视频| 日本欧美一区二区三区乱码| 国产精品一区二区久久精品爱涩| 91日韩精品一区| 3d成人动漫网站| 国产精品私人影院| 香蕉成人伊视频在线观看| 国产真实乱子伦精品视频| 欧洲av一区二区嗯嗯嗯啊| 日韩一区二区三区av| 一区在线播放视频| 精品一区二区三区欧美| 91理论电影在线观看| 精品电影一区二区三区| 亚洲午夜成aⅴ人片| 大白屁股一区二区视频| 日韩午夜激情免费电影| 亚洲少妇最新在线视频| 韩国成人福利片在线播放| 欧洲激情一区二区| 国产精品久久久久影院| 狠狠色丁香久久婷婷综合丁香| 中文字幕av免费专区久久| 青椒成人免费视频| 色一情一乱一乱一91av| 国产欧美日韩在线看| 久久疯狂做爰流白浆xx| 欧美视频一二三区| 亚洲精品欧美在线| 成人午夜av在线| 精品国内片67194| 美女看a上一区| 在线成人免费视频| 一二三四区精品视频| 成人久久久精品乱码一区二区三区| 日韩欧美久久一区| 青青草97国产精品免费观看无弹窗版| 在线免费不卡电影| 一区二区三区久久| 91黄色免费版| 一区二区三区高清不卡| 91亚洲精品久久久蜜桃| 中文字幕av一区二区三区高| 国产传媒久久文化传媒| 日韩一区二区三区观看| 麻豆免费看一区二区三区| 日韩一区二区不卡| 青青草国产成人99久久| 日韩欧美成人一区| 青青草97国产精品免费观看无弹窗版 | 99精品国产热久久91蜜凸| 亚洲欧洲国产日韩| 91麻豆国产福利精品|