欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 16669|回復: 1
收起左側

LCD1602顯示初始化 為什么0x38命令要寫很多遍?延時是為什么?

[復制鏈接]
ID:187249 發表于 2017-5-28 13:51 | 顯示全部樓層 |閱讀模式
LCD初始化程序我看到的兩種形式:

  • void lcd_init()
  • {
  • lcd_wcmd(0x38);
  • DelayMs(5);
  • lcd_wcmd(0x38);
  • DelayMs(5);
  • lcd_wcmd(0x38);
  • DelayMs(5);
  • lcd_wcmd(0x38);    //8位數據,雙行顯示,5*7點陣
  • lcd_wcmd(0x08);    //顯示關閉,無光標,光標不顯示
  • lcd_wcmd(0x01);    //清顯示
  • lcd_wcmd(0x06);    //光標右移
  • DelayMs(5);
  • lcd_wcmd(0x0c);    //開顯示,有光標,光標閃爍
  • }



  • void lcd_init(void)        //LCD初始化設定
  • {
  •                 lcd_wcmd(0x38);        //設置顯示格式為:16*2行顯示,5*7點陣,8位數據接口
  •                 delay(1);
  •                 lcd_wcmd(0x0c);//0x0f--顯示開關設置,顯示光標并閃爍
  •                 delay(1);
  •                 lcd_wcmd(0x06);//0x06--讀寫后指針加1
  •                 delay(1);
  •                 lcd_wcmd(0x01);        // 清除LCD顯示內容
第二個程序中的延時:
  • void delay(uchar ms)
  • {
  •         uchar i;
  •                 while(ms--)
  •                         {
  •                                 for(i=0;i<120;i++);
  •                         }
  • }


請問這兩種初始化程序有什么不同,第一個程序中為什么0x38命令要寫很多遍?初始化程序中加延時是為什么?謝謝大家!(程序都是在論壇中一個大神半年前上傳的,怕聯系不到先在這里問問大家。)


回復

使用道具 舉報

ID:155507 發表于 2017-5-29 07:16 | 顯示全部樓層
1602有時反映不過來, 為了保險吧。。。。三次兩次都行
寫多少次不是單片機或者C語言決定的,是由液晶屏的資料決定的,液晶屏內部也有一個MCU控制,它的操作指令是出廠就定好了的,不同廠家的屏它的指令也可能會不一樣。

初始化時需要加點延時,
是 時序圖 沒讀到位 就認為延時沒必要 在時序上 時間觀念比較強

你說的每送數據后,是每送一個BIT ,還是一個BYTE ,還是整個數據包,?如果是每個數據包后要延時 ,那看你的LCD 要求的了,是否收一個數據包后要延時才可以收第二個,本來這個延時是不合理的了,也不應該的了。你可以把延時去掉看看,結果是如何,在具體分析一下,為什么這樣的了
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表