程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> LCD1602小程序,lcd1602

LCD1602小程序,lcd1602

編輯:關於C語言

LCD1602小程序,lcd1602


1顯示數據

typedef struct 
{
  unsigned long int mL_data;
  unsigned long int L_data;
  unsigned long int M3_data;
}water_date;
extern water_date water_data1;

2數據處理函數

/**---------------------------------------------------------------------------------
  * @brief       數據處理函數
  * @param           無
  *    @arg         需處理數據結構體起始地址
  * @retval     數據起始地址
  ---------------------------------------------------------------------------------*/
unsigned char* DATA_DEAL(water_date t)
{
    unsigned char  DIS_DATA[] = {"000mL;000L;000M3"}; 
    if(t.mL_data || t.L_data || t.M3_data)
    {
        DIS_DATA[0] = (t.mL_data * 1000/450)%1000/100 + 0x30;
        DIS_DATA[1] = (t.mL_data * 1000/450)%100/10 + 0x30;
        DIS_DATA[2] = (t.mL_data * 1000/450)%10 + 0x30;
        
        DIS_DATA[6] = t.L_data%1000/100 + 0x30;
        DIS_DATA[7] = t.L_data%100/10 + 0x30;
        DIS_DATA[8] = t.L_data%10 + 0x30;
        
        DIS_DATA[11] = t.M3_data%1000/100 + 0x30;
        DIS_DATA[12] = t.M3_data%100/10 + 0x30;
        DIS_DATA[13] = t.M3_data%10 + 0x30;

        return DIS_DATA;
    }
    else return 0;

}

3顯示函數

/**---------------------------------------------------------------------------------
* @brief      對應位置顯示函數
* @param        y:1,2(從第幾行開始寫)
                            x:0-15(從改行的第幾位開始寫)
*    @arg         NULL
* @retval     null
---------------------------------------------------------------------------------*/
unsigned char LCD1602_WRITE(unsigned char y,unsigned char x,unsigned char *write_data)
{
    unsigned char i;
    lcd_wcmd(0x06);            //向右移動光標
    if(y == 1)
    {    
        lcd_pos(x);                //設置顯示位置為第一行的第1個字符
        i = 0;
        while(*(write_data + i) != '\0')
        {                           //顯示字符"WLCOME  TO"
            lcd_wdat(*(write_data + i));
            i++;
        //    delay(200);                //控制兩字之間顯示速度
            if(i > 15)
            {
                LCE1602_STATUS = WRITE_NO;
                return LCE1602_STATUS;        
            }     
        }
        LCE1602_STATUS = WRITE_OK;
      return LCE1602_STATUS;    
    }
    else
    {
        lcd_pos(0x40 + x);                //設置顯示位置為第一行的第1個字符
        i = 0;
        while(*(write_data + i) != '\0')
        {                           //顯示字符"WLCOME  TO"
            lcd_wdat(*(write_data + i));
            i++;
        //    delay(200);                //控制兩字之間顯示速度
            if(i > 15)
            {
                LCE1602_STATUS = WRITE_NO;
                return LCE1602_STATUS;        
            }     
        }
        LCE1602_STATUS = WRITE_OK;
      return LCE1602_STATUS;    
    }
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved