回覆列表
  • 1 # 使用者9866520236700

    你好:

    void L1602_char(uchar hang,uchar lie,char sign) 這段函式就不解釋了,很簡單的,在指定地址寫一個數據進去。

    void L1602_string(uchar hang,uchar lie,uchar *p)

    {

    uchar a,b=0; //宣告兩個變數,a作行地址,b作行資料最大資料個數 16

    if(hang == 1) a = 0x80; //如果行為1,寫命令0x80

    if(hang == 2) a = 0xc0; //如果是第二行,則寫命令0xc0

    a = a + lie - 1; //0x80、0xc0是沒行第一個地址,再根據列來具體到某個位置。

    //為什麼要減1,因為傳遞引數進去時,第一個位置是寫1,但是 //1602每行第一行第一個位置是0。所以減1

    while(1)

    {

    wcmd(a++); //寫地址,然後把a自增一次

    b++; //對資料個數計數

    if((*p == "\0")||(b==16)) break; //如果遇到字串尾或者資料個數為16了,跳出

    wdata(*p); //寫資料,因為是指標,所以欠扁有*取值運算子,

    p++; //吧指標加1,準備取下一個資料

    }

    }

  • 中秋節和大豐收的關聯?
  • 王國紀元8-6英雄怎麼搭配怎麼過?