找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3417|回復(fù): 17
收起左側(cè)

單片機(jī)小白求助,三個74hc595控制三個lcd1602的設(shè)計思路

[復(fù)制鏈接]
ID:897033 發(fā)表于 2021-4-19 17:41 | 顯示全部樓層 |閱讀模式
用三個74hc595控制三個lcd1602,請問三個1602端的rs rw en 如何連接呢?每個屏幕分別控制的話,整體編程的思路是什么樣子呢?三個lcd的寫入數(shù)據(jù),寫入指令,初始化都用一個么,還是分別用三個呢?

小白這兩天這個東西就是想不明白,求幫助。!謝謝大家!

回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2021-4-20 08:36 | 顯示全部樓層
鎖存器無論是并行的還是串行的都是一樣道理,不過是數(shù)據(jù)傳輸方法不同罷了。1602控制方法也有很多變化,看電路要如何設(shè)計,可并可分主要看IO口是否夠用還是要擴(kuò)展等等,電路確定了才能決定編寫程序。
回復(fù)

使用道具 舉報

ID:894154 發(fā)表于 2021-4-20 08:50 | 顯示全部樓層
用IIC的1602吧,三個1602 只要6個IO就夠用了
回復(fù)

使用道具 舉報

ID:897033 發(fā)表于 2021-4-20 11:24 | 顯示全部樓層
xianfajushi 發(fā)表于 2021-4-20 08:36
鎖存器無論是并行的還是串行的都是一樣道理,不過是數(shù)據(jù)傳輸方法不同罷了。1602控制方法也有很多變化,看電 ...

C:\Users\向陽星Young\Desktop
回復(fù)

使用道具 舉報

ID:897033 發(fā)表于 2021-4-20 11:26 | 顯示全部樓層
xianfajushi 發(fā)表于 2021-4-20 08:36
鎖存器無論是并行的還是串行的都是一樣道理,不過是數(shù)據(jù)傳輸方法不同罷了。1602控制方法也有很多變化,看電 ...

你好,我這自己編寫了一個程序,但是不知道哪里的問題,三個顯示屏都顯示不出來,您有時間的話能幫我看下么?謝謝。
回復(fù)

使用道具 舉報

ID:897033 發(fā)表于 2021-4-20 11:31 | 顯示全部樓層
我的仿真圖是這個樣子的:

這是仿真圖

這是仿真圖
回復(fù)

使用道具 舉報

ID:889094 發(fā)表于 2021-4-20 11:59 | 顯示全部樓層
3個LCD都接同樣的3個口,有問題沒有?我昨天插著LCD的時候點亮和它在一起接的LED燈是點不亮的,插掉LCD就可以點亮LED燈,我感覺相互之間可能會有影響,具體原因我也不清楚
回復(fù)

使用道具 舉報

ID:383215 發(fā)表于 2021-4-20 12:14 | 顯示全部樓層
實在搞不清楚為什么要搞三個1602同時顯示?不能搞個大一點的液晶?
   16021.jpg
16022.jpg

我有現(xiàn)成的兩片CD4094擴(kuò)展出來的1602顯示+74HC165+融合的6個感應(yīng)開關(guān),一共用了7個I/O口,我做這個板是為了減少I/O口,方便和我的實驗板連接,由于只需要一片,熱轉(zhuǎn)印做成單面就了事了,不想去打樣。壓根沒有想過要擴(kuò)兩個以上的1602,那也不難啊,一片1602有11個I/O口,三個就是33個,4片4094是32個O口,只差一個,有點尷尬,那就再借用一個單片機(jī)的I/O口,也就是是5個單片機(jī)I/O口+4片4094就可以擴(kuò)展出3個1602,但是,布線麻煩,建議每兩片4094擴(kuò)展一個1602,做出來的電路板是一模一樣的,三個電路板串聯(lián)起來就搞定,就是串聯(lián)8個10個1602也沒有問題,僅僅只需要4個I/O口。595沒有用過,看了管腳排列,工作原理和4094差不多,只是布線更容易一些,595的速度更快一些,不管是用4094還是595,和1602的連接沒有必要一一對應(yīng),數(shù)據(jù)在程序里調(diào)整,在原理圖里調(diào)整出PCB的最佳走線,編程也簡單,三個1602端的rs rw en加上8位數(shù)據(jù),一共湊成6個8位數(shù)據(jù),只管往595里面發(fā)送就是了,發(fā)完以后使能數(shù)據(jù)并行輸出,比如要改變rs rw en或者8位數(shù)據(jù),每改變一個,就發(fā)送一次,1602的D7不必檢測,和D0-D6一樣用就可以,51單片機(jī)不要用移位的方法編程,盡量用位操作,加快595的移位速度,每個1602單元的電路板很小,絕對不超過10×10,可以打來5個樣串聯(lián)5片1602,只要先編出一片的程序,5片8片10片都沒有問題。IIC也是個好主意,6個I/O口顯示三片1602,只是速度可能更慢一些。

回復(fù)

使用道具 舉報

ID:897033 發(fā)表于 2021-4-20 12:26 | 顯示全部樓層
birdzhyli 發(fā)表于 2021-4-20 11:59
3個LCD都接同樣的3個口,有問題沒有?我昨天插著LCD的時候點亮和它在一起接的LED燈是點不亮的,插掉LCD就可 ...

en口是分別接的,不知道能不能行
回復(fù)

使用道具 舉報

ID:897033 發(fā)表于 2021-4-20 12:27 | 顯示全部樓層
kmsj 發(fā)表于 2021-4-20 12:14
實在搞不清楚為什么要搞三個1602同時顯示?不能搞個大一點的液晶?
  

學(xué)校課程設(shè)計的內(nèi)容
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2021-4-20 13:57 | 顯示全部樓層
我覺得這樣電路不如級聯(lián)好,級聯(lián)寫一個函數(shù)即可,一次連續(xù)發(fā)三個數(shù)據(jù),數(shù)據(jù)發(fā)完成后同時控制,也能節(jié)省IO口,程序?qū)懙靡彩∈,分開沒什么優(yōu)勢同樣也需要發(fā)3次且代碼寫得也相對復(fù)雜點,當(dāng)然這樣電路形式不是不能寫,只是我覺得相對顯得比較麻煩,IO口也用的較多。
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2021-4-20 13:57 | 顯示全部樓層
回復(fù)

使用道具 舉報

ID:883031 發(fā)表于 2021-4-20 15:07 | 顯示全部樓層
按道理是可以的。
回復(fù)

使用道具 舉報

ID:518902 發(fā)表于 2021-4-20 15:21 | 顯示全部樓層
建議級聯(lián),3個595 控制線2根 數(shù)據(jù)線一根 然后3個lcd的三根控制線連在一起 總共也只要6根線
回復(fù)

使用道具 舉報

ID:897033 發(fā)表于 2021-4-20 15:25 | 顯示全部樓層
laopihappy123 發(fā)表于 2021-4-20 15:21
建議級聯(lián),3個595 控制線2根 數(shù)據(jù)線一根 然后3個lcd的三根控制線連在一起 總共也只要6根線

也就是說lcd1602的rw,rs,en也都連在一起是么?想單獨控制每個屏幕顯示的話en要分成三條線么?還是連在一起沒有影響?
回復(fù)

使用道具 舉報

ID:897033 發(fā)表于 2021-4-20 15:36 | 顯示全部樓層
xianfajushi 發(fā)表于 2021-4-20 13:57
595函數(shù)可參http://www.torrancerestoration.com/bbs/dpj-201714-1.html

http://www.torrancerestoration.com/bbs/dpj-205491-1.html能幫我看看這樣寫可以么?感謝
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2021-4-25 11:21 | 顯示全部樓層
剛好有另外的提問,一并做了個實例,一并回復(fù),我給的連接595驅(qū)動中的十進(jìn)制轉(zhuǎn)化代碼注釋掉,用十六進(jìn)制的代碼替換即可.
  1.                 ds=sj>>7;//十六進(jìn)制數(shù)據(jù)發(fā)送
  2.                 sj<<=1;
  3. //                ds=sj%2;//十進(jìn)制數(shù)據(jù)發(fā)送
  4. //                sj/=2;
復(fù)制代碼
  1. unsigned char code shuju[]={
  2. 0x00,0x38,0x44,0x54,0x44,0x38,0x00,0x00,0x00,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x00,0x00,0x00,0x40,0x40,0x40,0x4f,0x70,0x00,
  3. 0x00,0x00,0x0c,0x14,0x24,0x7f,0x04,0x00,0x00,0x82,0x82,0xFE,0x82,0x82,0x00,0x00,0x18,0x24,0x12,0x12,0x12,0x24,0x18,0x00,
  4. 0x00,0x7C,0x02,0x02,0x02,0x7C,0x00,0x00
  5. };//數(shù)據(jù)
  6. unsigned char code sjwei[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//位,用移位函數(shù),移位運(yùn)算符,數(shù)字.

  7. 主函數(shù):
  8.         unsigned char b=0, j=0, xd=0, h=0;
  9. QuDong595(shuju[b+j]);
  10. QuDong595(sjwei[b]);
復(fù)制代碼


這是2片級聯(lián)完成的運(yùn)行
錄像5_轉(zhuǎn).gif
回復(fù)

使用道具 舉報

ID:332444 發(fā)表于 2021-4-25 15:23 | 顯示全部樓層
如果說修改代碼也不會或懶得去修改能用我的595驅(qū)動函數(shù)?當(dāng)然可以了,那就要多做一步把十六進(jìn)制數(shù)據(jù)轉(zhuǎn)十進(jìn)位制數(shù)即可直接調(diào)用我十進(jìn)位制處理的驅(qū)動函數(shù)了,進(jìn)制轉(zhuǎn)換有2種方法,一種慢的,一種快的比使用位移7再位移1的處理方法更快.
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表