久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2786|回復: 17
打印 上一主題 下一主題
收起左側

LCD1602采用4線控制不成功,該如何排查錯誤

[復制鏈接]
跳轉到指定樓層
樓主
使用8根數據線控制沒問題,但是使用4根數據線控制的時候不成功,請問有知道是什么原因的嗎?連線是高四位,發送的數據也是先發的高四位后發的低四位,初始化的時候也設置成了0x28(4線控制,2行顯示)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:883242 發表于 2022-5-23 20:43 | 只看該作者
第一步要確定LCD的主控芯片是什么型號才能繼續進行下去。
回復

使用道具 舉報

板凳
ID:155507 發表于 2022-5-23 20:55 | 只看該作者
哦不是,是在Lcd1602_Write_Cmd(0x28);前面又加了Lcd1602_Write_Cmd(0x32);
回復

使用道具 舉報

地板
ID:161164 發表于 2022-5-24 10:51 | 只看該作者
這是成功的初始化函數



上電之后要延時15ms才初始化

發送數據之間要40us延時,如
發(高位)
延時40us
發(低位)
延時40us

發送0x01命令后要延時1.7ms
回復

使用道具 舉報

5#
ID:1028584 發表于 2022-5-24 21:50 | 只看該作者
angmall 發表于 2022-5-23 20:55
哦不是,是在Lcd1602_Write_Cmd(0x28);前面又加了Lcd1602_Write_Cmd(0x32);

我也看了個帖子說是要先發0x33,0x32然后再發0x28,0x0c啥的這些,最后確實也能控制了,但是我在指令集里沒有找到32和33對應的指令,這兩句指令是什么意思啊,另外好像不用發33也可以
回復

使用道具 舉報

6#
ID:1028584 發表于 2022-5-24 21:52 | 只看該作者
lkc8210 發表于 2022-5-24 10:51
這是成功的初始化函數

為什么初始化之前要先發個02啊,我看02是光標歸位啊
回復

使用道具 舉報

7#
ID:1028584 發表于 2022-5-24 21:54 | 只看該作者
Hephaestus 發表于 2022-5-23 20:43
第一步要確定LCD的主控芯片是什么型號才能繼續進行下去。

手邊沒有實物,只能仿真。查了下,proteus中的LM016L液晶顯示的主控芯片是HD44780
回復

使用道具 舉報

8#
ID:161164 發表于 2022-5-24 23:51 | 只看該作者
chuangyu1897 發表于 2022-5-24 21:52
為什么初始化之前要先發個02啊,我看02是光標歸位啊

由于LCD復位后默認是8線輸入,
指令一定要寫滿8個位。
所以其實在初始化的第一條指令,
只要后4位輸入“0010”(2),
就初始化設置成了4線模式

出處:<<求助:關于4線接法的LCD1602初始化函數的困惑--4樓>>
回復

使用道具 舉報

9#
ID:149451 發表于 2022-5-25 06:53 | 只看該作者
chuangyu1897 發表于 2022-5-24 21:50
我也看了個帖子說是要先發0x33,0x32然后再發0x28,0x0c啥的這些,最后確實也能控制了,但是我在指令集里 ...

我用過一個4pin的驅動,它的初始化如下(注釋是原文未修改,它標明了原因):
void LCD_init(void)
{
        delay(50);
        LCD_en_com(0x33);//原來1602初始化成4位數據線之前必需先初始化成8位(此時命令發送方式是8位格式,但數據線只需接4位)
        delay(10);
        LCD_en_com(0x32);//然后再改到4位線寬,這樣初始化才穩定
        delay(10);
        LCD_en_com(0x28);//四線模式設置
        delay(10);
        LCD_en_com(0x0c);//顯示開--對應開關顯示控制指令
        delay(10);
        CLEARSCREEN;
        delay(30);
}

回復

使用道具 舉報

10#
ID:824490 發表于 2022-5-25 09:17 | 只看該作者
本帖最后由 名字不是重點 于 2022-5-25 09:45 編輯
chuangyu1897 發表于 2022-5-24 21:50
我也看了個帖子說是要先發0x33,0x32然后再發0x28,0x0c啥的這些,最后確實也能控制了,但是我在指令集里 ...

你認真看一下手冊就能明白,不發0x33/0x32,直接發0X28,多發2次效果也是一樣的,相同功能的指令,能覆蓋以前的指令。生效的是最后一條。哪怕在發0X28之前,空等40ms一樣可以,只要等驅動芯片復位初始化過后,啥姿勢你說了算
回復

使用道具 舉報

11#
ID:824490 發表于 2022-5-25 09:39 | 只看該作者
lkc8210 發表于 2022-5-24 23:51
由于LCD復位后默認是8線輸入,
指令一定要寫滿8個位。
所以其實在初始化的第一條指令,

不全是這樣的。
1602的指令數據判斷,從DB7-->DB0,從高位到低位,讀到第一位“1”則開始:
DB7=1,則表示是<設置DDRAM地址>,而DB6~DB0則為要設置的DDRAM地址;
DB6=1,則表示是<設置CGRAM地址>,而DB5~DB0則為要設置的CGRAM地址;
DB5=1,則表示是<設置功能指令>,而DB4=1是8線,DB4=0為4線;DB3為顯示多少行;DB2字體選擇,DB1/DB0則無所謂了;
DB4=1,則表示是<光標設置指令>,從略。。。

所以用4線接線時,才要求必需從高4位(DB7~DB4)輸入,而指令0010xxxx,“x”可以任意電平,最終都是4線接口。
回復

使用道具 舉報

12#
ID:824490 發表于 2022-5-25 09:54 | 只看該作者



這是原資料。
回復

使用道具 舉報

13#
ID:161164 發表于 2022-5-25 10:40 | 只看該作者
名字不是重點 發表于 2022-5-25 09:39
不全是這樣的。
1602的指令數據判斷,從DB7-->DB0,從高位到低位,讀到第一位“1”則開始:
DB7=1,則表 ...

即是說,直接發 28 0C 06 01就會被解讀成
2 //進入4線
80 //Set DDRAM 0x00
C0 //Set DDRAM 0x40
60 //Set CGRAM 0x20
10 //Set Display Shift +  Left Shift
回復

使用道具 舉報

14#
ID:824490 發表于 2022-5-25 10:50 | 只看該作者
lkc8210 發表于 2022-5-25 10:40
即是說,直接發 28 0C 06 01就會被解讀成
2 //進入4線
80 //Set DDRAM 0x00

你試一下
回復

使用道具 舉報

15#
ID:383215 發表于 2022-5-26 14:22 | 只看該作者
lkc8210 發表于 2022-5-24 10:51
這是成功的初始化函數

按照你說的發送02、28、0c、06、01對LCD1602做4線初始化,無論如何都無法成功,這個問題我也很感興趣,百度了一個網頁,對這個問題說的很清楚,首先要初始化為8位,再改為4位,這樣初始化才更穩定,結果的確如此,發送33、32、28、0c、01,立即就成功了。

由于我的LCD1602是用兩片CD4094擴展的I/O口驅動,懶得拆下來用杜邦線連接,就用CD4094測試4線接口,成功之后以后只用一片CD4094就可以驅動LCD1602,結果走了彎路,折騰了一、兩天,走彎路的原因是沒有把低四位置1,低四位置1之后,立即成功。這個問題僅僅是我用兩片CD4094驅動LCD1602才存在的問題,低四位引腳懸空就不存在這個問題,LCD1602的8位數據接口好像有上拉電阻。

LCD1602用4線驅動,一共還要6個I/O口才能驅動,意義不是很大,我用兩片CD4094驅動,把oe端接電源正,只需要三個I/O口就可以驅動,相當于用標準的SPI接口驅動,比IIC的PCF8574簡單,速度更快,成本也低,4線驅動,只用一片CD4094,成本更低。PCF8574是具有中斷監控的雙向I/O口擴展IC,價格較高,手頭上正好有一片PCF8574,改天畫幾個板測試PCF8574、CD4094擴展4位驅動LCD1602。
4線驅動LCD1602,這個網頁說的很詳細https://blog.csdn.net/feinifi/article/details/122047239

回復

使用道具 舉報

16#
ID:155507 發表于 2022-5-26 18:25 | 只看該作者
用片HC595擴展4位驅動LCD1602


http://www.zg4o1577.cn/bbs/forum.p ... 5491&pid=978646
回復

使用道具 舉報

17#
ID:383215 發表于 2022-5-26 19:33 | 只看該作者
angmall 發表于 2022-5-26 18:25
用片HC595擴展4位驅動LCD1602

從來沒有想過同時驅動兩片以上的LCD1602,一片就夠我用了,用習慣了CD4094,74HC595還沒有用過,感覺74HC595更好布線,也用74HC595畫個板,哪個好用用哪個。
回復

使用道具 舉報

18#
ID:151348 發表于 2022-5-27 08:29 | 只看該作者
kmsj 發表于 2022-5-26 14:22
按照你說的發送02、28、0c、06、01對LCD1602做4線初始化,無論如何都無法成功,這個問題我也很感興趣,百 ...

學習了,原來要先初始化為8位,再改為4位。之前一直用4線驅動1602,確實存在初始化不成功的現象,多次重啟才行。有空試試你提供的方法。另外注意這個PCF8574,后綴不同,地址可能不一樣
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲www啪成人一区二区 | 自拍 亚洲 欧美 老师 丝袜 | 久久国产欧美日韩精品 | 国产精品一区二区三 | 午夜久久久久久久久久一区二区 | 国产精品一区三区 | 97精品国产97久久久久久免费 | 97caoporn国产免费人人 | 在线视频a | 午夜爱爱网 | 欧美性一级 | 欧美视频在线播放 | 毛片免费视频 | 亚洲成av | 午夜激情视频 | 99久久婷婷国产综合精品电影 | 日本午夜在线视频 | 亚洲一区二区三区免费观看 | 中文字幕精品一区 | 亚洲综合在线视频 | 夜夜干夜夜操 | 91人人看 | 手机在线不卡av | 天天天插 | 免费av毛片| 国产精品久久久久久久久婷婷 | 日韩一区二区黄色片 | 国产精品自产拍在线观看蜜 | 久久亚洲国产精品日日av夜夜 | 国产成人免费 | 午夜精品福利视频 | 成人网在线观看 | 春色av| 精品无码三级在线观看视频 | 欧美日高清| 日韩欧美国产成人一区二区 | 欧美在线视频观看 | 日韩精品久久一区二区三区 | 国产视频日韩 | 国产精品伦理一区二区三区 | av香港经典三级级 在线 |