51微控制器液晶顯示方案,請C語言大師解答

發布 科技 2024-05-09
5個回答
  1. 匿名使用者2024-02-09

    不知道你用的是什麼型號的LCD,好像不是1602。

    如果該值小於 1000,則正常顯示十個白色數字的數字,例如 345; 如果大於 1000,則所有 3 個分配都0x39,即 ASCII 字元“9”,結果將顯示在 LCD 上,指示範圍大於 1000。

    猜想REQ是寫入LCD的控制訊號,busy是LCD返回的“忙”訊號,迴圈16次是將LCDTEM字元陣列中的16個字元寫入LCD進行顯示。

  2. 匿名使用者2024-02-08

    大致的意思就是:首先你要明白,它是怎麼儲存在微控制器裡的,其實他儲存了000,小數點在哪裡顯示是你人為確定的,微控制器不能計算小數位,所以溫度是儲存在000--999的,而不是,明白了嗎? 當它大於或等於1000時,將顯示相同的內容,即為0x39對應的內容。

    因為無非是將 lcdtem 的內容一一傳送出去。 我說到這個程度,你應該能夠理解,如果你還不明白,**強大的基礎積累。 我也是初學者出身,我知道這並不容易,所以看到來就幫你分析,其實不是每個人都有耐心幫你分析,你要比較獨立分析,你不問能不能......不要問

  3. 匿名使用者2024-02-07

    樓上說得很對,我想補充以下幾點:

    unsigned char lcdtem=0xf9,0x06,0x08,0x30,0xf9,0x07,0x08,0x30,0xf9,0x08,0x08,0x2e,0xf9,0x09,0x08,0x30};

    0xf9,它可能是乙個顯示寫入命令; 0x06,它可能是顯示器的第 6 列; 下乙個0x08可能是顯示器的第 8 行; 0x30 是此行中要顯示的資料,即 ASCII 程式碼; 0xf9、0x06、0x08,0x30組成一套完整的命令,這裡有4組,其中第三組的最後一組是0x2e,是小數點的ASCII碼。

    因此,它將在顯示屏上顯示的內容將如下所示:

    在顯示屏的第 8 行中,第 6 列開始顯示溫度的百位、小數位、小數點和小數位。

  4. 匿名使用者2024-02-06

    if 語句是 C 語言中的選擇語句,這個過程的意思是,如果溫度 (if) 滿足 “=1000”,則將值 0x39 分別分配給 lcdtem[3]、lcdtem[7] 和 lcdtem[15],0x39 是 ASCII 字元“9”,所以 LCD 上顯示的結果是,如果溫度大於 1000,則條件不滿足, 陣列 lcdtem 中的 10 個資料將正常顯示。

    在for迴圈中,REQ用於控制LCD顯示,1為true,0為FLASE,I=0; i<16;i++ 將此操作迴圈 16 次。

  5. 匿名使用者2024-02-05

    在數字系統中,字元有其編碼,例如,如果你在LCD上顯示7,這個7的含義是乙個棗字,那麼你就得加乙個引號,因為加了乙個引號後,編譯器就會知道它是乙個“字元”而不是乙個數字(其實 引號 7 將被編譯器翻譯成 37h,對應於 ASIIIC 程式碼 7)。為什麼一定要用“字元”,因為液晶屏只識別字元,它只顯示“字元”,就像上面的例子一樣,液晶屏知道37h是字元7,所以會顯示文字魯子7。 如果不使用引號,那麼編譯器只需將其作為常量傳送,當涉及到 LCD 時,LCD 就會“看起來”。"到 07h,它肯定不會顯示字元 7 出來。

    要從 PC 顯示陣列,請重寫函式,如下所示:

    void lcd_printstr(unsigned char * pch)

    unsigned char chnum=20;乙個字串中最多有幾個字元,這裡有 20 個,可以更改。

    while(chnum!=0)當字串不能超過 20 個時迴圈獲取字元,以防止陷入無限迴圈。

    if (*pch)!=0x0d ;陣列中的字串以0x0d結尾,即回車符,如果不是回車符,則表示字串的末尾還沒有到達,從PC傳出的字串應該以0x0d結尾,當然是別的東西。

    特殊字元也可用。

    lcd_write_data(* pch);顯示字元。

    如果上面的函式在顯示後沒有自動向右移動,請新增乙個函式來移動角色的位置。

    pch++;指向知道下乙個角色的角色。

    chnum--;字元數為負 1

    週期結束。 例如,如果將字元陣列儲存在 unsgiend char str 中,則可以按如下方式呼叫該函式:

    lcd_printstr(&str);

    丹丰吉祥,龍呈,紅桃歡,杏迎春,人間充滿祝福。

相關回答
4個回答2024-05-09

你使用乙個P1埠來控制8個數碼管的動態掃瞄,數碼管的動態掃瞄顯示需要被遮蔽。 >>>More

18個回答2024-05-09

房東,組織 0030h。

你怎麼理解我的意思? >>>More

16個回答2024-05-09

定時中斷,外部中斷?

5個回答2024-05-09

如果你真的想學習,你不需要買開發板。 找到乙個最小的系統板,然後學習一些東西,購買元件並自己構建小電路。 自己經營電子市場,自己搭電路,為了知道問題,為了學習一些東西,買一塊開發板,按照說明書上的電路,然後把程式放進去,然後程式基本理解了,這不叫學習...... >>>More

9個回答2024-05-09

16 和 7 是查詢命令時 PC 和資料之間的位元組數。 >>>More