74hc595 tek pin lcd kullanımı

Başlatan eozkantar, 28 Kasım 2020, 21:56:47

eozkantar

arkadaşlar salam
74hc595 ile tek pin lcd kullanan varmı?
nettekileri denedim sonuç alamadım...
tşk

M.Salim GÜLLÜCE

Tek pin LCD den kastın ne.?
Kullandığın malzeme kodu falan warmı yada fotosu.?
Ben henüz öyle birşey görmedim  ::)

Tagli

Paralel arayüzlü 2x16 karakter LCD'lerden mi bahsediyorsun? Bunları 595 ile süremeye çalışmak bence anlamsız. 595 için zaten Data, Clock, Latch olmak üzere 3 pin gerekecek. Halbuki LCD'yi 4 Data pini, R/W ve E olmak üzere 6 pin ile zaten doğrudan sürebiliyorsun. Üstelik 595 kullandığında yazılım da zorlaşacak. Hiç uğraşma bence.
Gökçe Tağlıoğlu


z

Bu projeyi gormustum fakat bu tasarim sekli gurultuye dayanikli degil.
Bunun yerine LCD ye bir islemci baglayip onu tek hat uzerinden ana islemci ile konusturmak daha mantikli.


Bana e^st de diyebilirsiniz.   www.cncdesigner.com


CLR

#6
74hc595 ile 3 pin üzerinden 2x16 lcd sürdüm, hatta pcb'side var bende(ben çizmiştim), I/O expander olarak iyi bir mantık ama @z'ninde dediği gibi 74HC595 gürültüye duyarlı bir komponent, latch pini etkilenirse çıkışlar değişir, onun yerine mcp23s08 serisi kullanılabilir, asla gürültüden etkilenmez, hatta uygun bir tasarım yapabilirsen hem lcd hemde keypad'i 3-4 pinden okuyup yazabilirsin(4 pin kullanılırsa keypad için interrupt bile üretir)
I2C olan versiyonuda var o kullanılırsa 1 tane daha az I/O kullanılır ama I2C'yi hiç tercih etmem.
Knowledge and Experience are Power

magnetron

https://www.direnc.net/lcd-serial-interface-board

ben bunu kullanıyorum STM32 ile  ama çok yavaş
2x16 LCD de tek satır yazmak 120 ms sürüyor

CLR

sanırım o kartta mcp23008 var, yani sevmediğimden, I2C, muhtemelen I2C frekansı 100Khz'dir, 1.7Mhz'e kadar arttırılabiliyor(tabii lcd'i uzakta kullanmıyorsan arttırabilirsin), spı olan olsaydı 10mhz olurdu
Knowledge and Experience are Power

RaMu

Ben denemiştim ama hiç bir yerde kullanmam
z'nin dediklerine aynen tekrarlıyorum:
Alıntı yapılan: z - 29 Kasım 2020, 17:41:24Bu projeyi gormustum fakat bu tasarim sekli gurultuye dayanikli degil.
Bunun yerine LCD ye bir islemci baglayip onu tek hat uzerinden ana islemci ile konusturmak daha mantikli.




Asm ile denediğim kodlar:
(Herhalde CcsC ilede denedim ama onları bir yere yükledim mi hatırlamıyorum)
https://rmtulay.wordpress.com/2015/05/21/asm-ile-one-wire-lcd/


;3) GELISTIRMELER DENEMELER EKLER
;LED R HARFI YAZILANA KADAR YANIYOR SONRA SONDURULUYOR

;2) LCD UYARLAMASI KOMUT DATA GONDERIM ALTPROGRAMLARI DENEMESI
;DENENDİ İSİSTE ÇALIŞIYOR

;1 WIRE LCD 2*16 KARAKTER 1)
;KURULAN ISIS SEMASINDAKI 74HC595 E DEGER YUKLEME

;1 GONDERMEK ICIN 1US LOW * 15 US HIGH
;0 GONDERMEK ICIN 15US LOW * 30 US HIGH
;LATCH GONDERMEK ICIN 200US LOW * 300 US HIGH
;TOPLAM 8 BIT GONDERILIR, Q0 HEP SIFIR OLACAKTIR DEVREDEN OTURU


ERRORLEVEL		-203,-205,-302
	list      p=16f628A
	#include 
	__CONFIG   	_CP_OFF & _CPD_OFF & _LVP_OFF & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON & _INTRC_OSC_NOCLKOUT


ORG	00H

S_REG		EQU		20H
CNT_1		EQU		21H
TEMP		EQU		22H
LCD_T1		EQU		23H
LCD_T2		EQU		24H
CNT_2		EQU		25H
MSG_CNT		EQU		26H
LCD_L		EQU		27H

CNT_3		EQU		28H
ISIK		EQU		29H




#DEFINE	S_O_PORT	PORTB	;(1)SERIAL OUT PIN PORT VE TRIS TANIMLAMA
#DEFINE	S_O_TRIS	TRISB	;(2)
S_O_PIN		EQU		0		;(3)PIN DEGISTIRMEK ISTENDIGINDE SADECE BU 3 SATIR YETERLI
	
#DEFINE		S_O_P	S_O_PORT,S_O_PIN		;S_O_P = SERIAL OUT PIN
#DEFINE		S_O_T	S_O_TRIS,S_O_PIN
BANKSEL	TRISB
BCF		S_O_T		;TANIMLANAN SERIAL OUT TRIS CLEAR ILE CIKIS YAPILIR
BANKSEL	PORTB
BSF		S_O_P		;GIRIS DEGERI
CALL	W_300US




CALL	LCD_INIT

MOVLW	85H		;85H ADRESINE GIT ORAYA YAZILACAK
CALL	S_L_C	;SERIAL LCD COMMAND	LCD YE KOMUTU GONDERIR

MOVLW	'R'
CALL	S_L_D	;SERIAL	LCD DATA LCD YE DATAYI GONDERIR
 
MOVLW	0C0H	;2.SATIR BASI
CALL	S_L_C

;CLRF	LCD_L	;LCD ISIGI SONDUR


CALL	MESSAGE
CALL	D_1S		;1 SANIYE BEKLE

;--------------
MOVLW	.10
MOVWF	ISIK

ISIK_OYUN

CLRF	LCD_L	;LCD ISIK SONDR
MOVLW	0CFH	;2.SATIR SONU
CALL	S_L_C

CALL	D_1S


MOVLW	0FFH
MOVWF	LCD_L	;LCD ISIK AC
MOVLW	0CFH	;2.SATIR SONU
CALL	S_L_C

CALL	D_1S


DECFSZ	ISIK,F
GOTO	ISIK_OYUN
GOTO	$
;---------------





GOTO	$


MESSAGE	
MOVLW	00H
MOVWF	MSG_CNT

MESSAGE_LOOP
MOVLW	0FEH
MOVWF	TEMP

MOVF	MSG_CNT,W
CALL	TABLE
SUBWF	TEMP,F
BTFSC	STATUS,Z
RETURN				;DEGER FEH MIŞ
CALL	S_L_D

INCF	MSG_CNT,F
GOTO	MESSAGE_LOOP

TABLE	ADDWF	PCL,F
DT	"RaMu SERiAL LCD",0FEH		;

GOTO	$




;SERIAL LCD COMMAND GONDERICI ALTPROGRAM
S_L_C
MOVWF	LCD_T1		;UST 4 BIT GONDERMEK ICIN
MOVWF	LCD_T2		;ALT 4 BIT GONDERMEK ICIN

MOVLW	0FFH
MOVWF	LCD_T2

;UST 4 BIT GONDERIMI
;LCD_T1 DE GONDERILMESI ISTENEN DATA VAR
;LCD_T2 DATAYI 74HC ILE GONDERILEBILECEK UYGUN FORMATA SOKACAK
;LCD_T1= D7 D6 D5 D4   D3 D2 D1 D0
;LCD_T2= _  _  _  D4   D5 D6 D7 _
;        L  RS E                X



BTFSS	LCD_T1,7	;BILGI7 1 MI
BCF		LCD_T2,1	;HAYIR, GONDERILECEKTE 0 YAP
BTFSS	LCD_T1,6	;
BCF		LCD_T2,2
BTFSS	LCD_T1,5
BCF		LCD_T2,3
BTFSS	LCD_T1,4
BCF		LCD_T2,4

BSF		LCD_T2,5	;UST 4 BIT ICIN ENABLE HAZIRLA
BCF		LCD_T2,6	;RS=0 KOMUT


;BSF		LCD_T1,1	;L=1	(LED KONTROL = L)
;led kontrol rutını
MOVLW	0FFH
SUBWF	LCD_L,W		;W YE AT YOKSA LCD_L DEGISIR 
BTFSS	STATUS,Z
BCF		LCD_T2,7	;LED SONSUN
BTFSC	STATUS,Z
BSF		LCD_T2,7	;LED YANSIN
;

MOVF	LCD_T2,W	;HAZIRLANAN DEGERI 74HC595 E GONDER
CALL	S_SEND
CALL	D_1MS		;1 miliS BEKLE

BCF		LCD_T2,5	;UST 4 BIT ICIN ENABLE VERELIM
MOVF	LCD_T2,W
CALL	S_SEND
CALL	D_1MS




;ALT 4 BIT GONDERIMI
;LCD_T1 DE GONDERILMESI ISTENEN DATA VAR
;LCD_T2 DATAYI 74HC ILE GONDERILEBILECEK UYGUN FORMATA SOKACAK
;LCD_T1= D7 D6 D5 D4   D3 D2 D1 D0
;LCD_T2= _  _  _  D0   D1 D2 D3 _
;        L  RS E                X

;ÖNCELİKLE T2 YI SETM YAPMAYI UNUTMUSUM
MOVLW 0FFH
MOVWF	LCD_T2


BTFSS	LCD_T1,3	;BILGI3 1 MI
BCF		LCD_T2,1	;HAYIR, GONDERILECEKTE 0 YAP
BTFSS	LCD_T1,2	;
BCF		LCD_T2,2
BTFSS	LCD_T1,1
BCF		LCD_T2,3
BTFSS	LCD_T1,0
BCF		LCD_T2,4



BSF		LCD_T2,5	;E=1		
BCF		LCD_T2,6	;RS=0

;BSF		LCD_T2,1	;L=1	(LED KONTROL = L)
;led kontrol rutını
MOVLW	0FFH
SUBWF	LCD_L,W		;W YE AT YOKSA LCD_L DEGISIR
BTFSS	STATUS,Z
BCF		LCD_T2,7	;LED SONSUN
BTFSC	STATUS,Z
BSF		LCD_T2,7	;LED YANSIN
;

MOVF	LCD_T2,W
CALL	S_SEND
CALL	D_1MS

BCF		LCD_T2,5	;ALT 4 BIT ICIN ENABLE VERELIM
MOVF	LCD_T2,W
CALL	S_SEND
CALL	D_1MS

RETURN

;---------------------------------------









;SERIAL LCD DATA GONDERICI ALTPROGRAM
S_L_D
MOVWF	LCD_T1		;UST 4 BIT GONDERMEK ICIN
MOVWF	LCD_T2		;ALT 4 BIT GONDERMEK ICIN

MOVLW	0FFH
MOVWF	LCD_T2

;UST 4 BIT GONDERIMI
;LCD_T1 DE GONDERILMESI ISTENEN DATA VAR
;LCD_T2 DATAYI 74HC ILE GONDERILEBILECEK UYGUN FORMATA SOKACAK
;LCD_T1= D7 D6 D5 D4   D3 D2 D1 D0
;LCD_T2= _  _  _  D4   D5 D6 D7 _
;        L  RS E                X



BTFSS	LCD_T1,7	;BILGI7 1 MI
BCF		LCD_T2,1	;HAYIR, GONDERILECEKTE 0 YAP
BTFSS	LCD_T1,6	;
BCF		LCD_T2,2
BTFSS	LCD_T1,5
BCF		LCD_T2,3
BTFSS	LCD_T1,4
BCF		LCD_T2,4

BSF		LCD_T2,5	;UST 4 BIT ICIN ENABLE HAZIRLA
BSF		LCD_T2,6	;RS=1 VERI


;BSF		LCD_T1,1	;L=1	(LED KONTROL = L)
;led kontrol rutını
MOVLW	0FFH
SUBWF	LCD_L,W		;W YE AT YOKSA LCD_L DEGISIR 
BTFSS	STATUS,Z
BCF		LCD_T2,7	;LED SONSUN
BTFSC	STATUS,Z
BSF		LCD_T2,7	;LED YANSIN
;

MOVF	LCD_T2,W	;HAZIRLANAN DEGERI 74HC595 E GONDER
CALL	S_SEND
CALL	D_1MS		;1 miliS BEKLE

BCF		LCD_T2,5	;UST 4 BIT ICIN ENABLE VERELIM
MOVF	LCD_T2,W
CALL	S_SEND
CALL	D_1MS




;UST 4 BIT GONDERIMI
;LCD_T1 DE GONDERILMESI ISTENEN DATA VAR
;LCD_T2 DATAYI 74HC ILE GONDERILEBILECEK UYGUN FORMATA SOKACAK
;LCD_T1= D7 D6 D5 D4   D3 D2 D1 D0
;LCD_T2= _  _  _  D0   D1 D2 D3 _
;        L  RS E                X


;ÖNCELİKLE T2 YI SETM YAPMAYI UNUTMUSUM
MOVLW 0FFH
MOVWF	LCD_T2

BTFSS	LCD_T1,3	;BILGI3 1 MI
BCF		LCD_T2,1	;HAYIR, GONDERILECEKTE 0 YAP
BTFSS	LCD_T1,2	;
BCF		LCD_T2,2
BTFSS	LCD_T1,1
BCF		LCD_T2,3
BTFSS	LCD_T1,0
BCF		LCD_T2,4



BSF		LCD_T2,5	;E=1		
BSF		LCD_T2,6	;RS=1 VERI

;BSF		LCD_T2,1	;L=1	(LED KONTROL = L)
;led kontrol rutını
MOVLW	0FFH
SUBWF	LCD_L,W		;W YE AT YOKSA LCD_L DEGISIR
BTFSS	STATUS,Z
BCF		LCD_T2,7	;LED SONSUN
BTFSC	STATUS,Z
BSF		LCD_T2,7	;LED YANSIN
;

MOVF	LCD_T2,W
CALL	S_SEND
CALL	D_1MS

BCF		LCD_T2,5	;ALT 4 BIT ICIN ENABLE VERELIM
MOVF	LCD_T2,W
CALL	S_SEND
CALL	D_1MS

RETURN

;---------------------------------------



;--------------
;W DAKI VERIYI 74HC595 ÇIKIŞLARINA GONDERIR 
S_SEND
MOVWF	S_REG	;GONDERILECEK DATA SHIFT ICIN S_REG E ALINIR

MOVLW	07H		;GECICI DEGISKEN BURADA 8 BIT GONDERILDIMI BAKAR
MOVWF	TEMP

S_LOOP
BTFSS	S_REG,7
CALL	S_LOW
BTFSC	S_REG,7
CALL	S_HIGH

RLF		S_REG,F

DECFSZ	TEMP,F
GOTO	S_LOOP

CALL	LATCH

RETURN


S_HIGH
BCF		S_O_P			;LOW
;NOP
BSF		S_O_P	;1US	;HIGH
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
RETURN			;2US	;TOPLAM 15 US HIGH

S_LOW
BCF		S_O_P			;LOW
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US	;15US LOW

BSF		S_O_P			;HIGH
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
GOTO	$+1		;2US
RETURN			;2US	TOPLAM	31US HIGH

LATCH
BCF		S_O_P
CALL	W_200US
BSF		S_O_P
CALL	W_300US
RETURN


D_1S		MOVLW	.3
			MOVWF	CNT_3
			CALL	D_50MS
			DECFSZ	CNT_3,F
			GOTO	$-2

D_50MS		MOVLW	.50
			MOVWF	CNT_2

D_50MS_L	CALL	D_1MS
			DECFSZ	CNT_2,F
			GOTO	D_50MS_L	
	RETURN

D_1MS
MOVLW	.200
MOVWF	CNT_1
GOTO	W_LOOP
;RETURN

W_200US
MOVLW	.50
MOVWF	CNT_1
GOTO	W_LOOP
;RETURN
	
W_300US
MOVLW	.60
MOVWF	CNT_1
;GOTO	W_LOOP
;RETURN

W_LOOP	NOP					;HERBIR LOOP 5 US
		NOP
		DECFSZ		CNT_1,F
		GOTO		W_LOOP
RETURN

;--------------


;-------------------
LCD_INIT

MOVLW	0FFH	;LCD LED BASLANGICTA YANSIN
MOVWF	LCD_L

CALL	D_50MS	;ÖNCELİKLE 3 DEFA 00H GONDERILIR
MOVLW	00H		;1
CALL	S_L_C
CALL	D_50MS
MOVLW	00H		;2
CALL	S_L_C
CALL	D_50MS
MOVLW	00H		;3
CALL	S_L_C
CALL	D_50MS


           MOVLW  01H      ;DISPLAY TEMİZLE
           CALL	S_L_C
           MOVLW  02H      ;KURSOR Ü BAŞA AL   
           CALL	S_L_C
           MOVLW  28H      ;2 SATIR, 5*7 KARAKTER,  4BİT MOD
           CALL	S_L_C
           MOVLW  0FH      ;DISPLAY AÇIK  KURSOR AÇIK KURSOR YAN-SÖN
           CALL	S_L_C 
           MOVLW  06H      ;06=HER KARAKTER YAZMADA KURSÖR SAĞA KAYACAK EKRAN SABİT
           CALL	S_L_C 
RETURN

;---------------






END
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

CLR

Bu durum sadece one wire kullanım için geçerli değil, 3 wire'da kullansan 74hc595 yine güvenilmez.
Knowledge and Experience are Power

Tagli

74HC595'i güvenilmez yapan nedir? LCD için sormuyorum, yani genel olarak bu entegreyi kullanmaktan hangi durumlarda kaçınmalıyız? Gürültüye karşı dayanıksız olduğu söylenmiş ama bunun sebebi nedir ya da hangi şartlarda geçerli?
Gökçe Tağlıoğlu

M.Salim GÜLLÜCE

Alıntı yapılan: Tagli - 30 Kasım 2020, 16:36:2574HC595'i güvenilmez yapan nedir? LCD için sormuyorum, yani genel olarak bu entegreyi kullanmaktan hangi durumlarda kaçınmalıyız? Gürültüye karşı dayanıksız olduğu söylenmiş ama bunun sebebi nedir ya da hangi şartlarda geçerli?
Girişler Schmitlenmemiş olduğundan olsa gerek.
Schmittbuffer ve iyi bir besleme filitresiyle aşılabilir diye düşünüyorum.
Rastladığım bir problem warsa o da ilk-start anında tamamen random bilgilerle başlaması.
LCD gibi bir aygıt için önem arzeder.
Önce 595 i sürüp sonra LCD yi resetlemekle de o aşılabilir.(Emin değilim)

Ben birkaç megawatlık inverter devrelerinde kullanıyorum.
Çok aşırı gürültü olmasına karşılık şimdiye kadar tek bir yerde sapıttığına rastladım.
O da inverter tarafındaki bir arızadan kaynaklanıyordu.

Ancak benim MCU ve 595 ler aynı board da.




CLR

Alıntı yapılan: Tagli - 30 Kasım 2020, 16:36:2574HC595'i güvenilmez yapan nedir? LCD için sormuyorum, yani genel olarak bu entegreyi kullanmaktan hangi durumlarda kaçınmalıyız? Gürültüye karşı dayanıksız olduğu söylenmiş ama bunun sebebi nedir ya da hangi şartlarda geçerli?

74HC595 'i ben endüstriyel uygulamarda kullanmam çünkü 8 bit registere bir spike(load veya latch pininde oluşan) ile yazabilirsin. aynı şekilde data ve clock hattı içinde aynı. iyi besleme, filtre veya girişlerde güçlü pull-down vs iyileştirebilir ama ben güvenmem çünkü tek puls çıkışı değiştirir. 
Knowledge and Experience are Power

ByTEK

#14
http://www.sercanca.com/jalv2-12f675-lm35-termometre-v3/

hobi amaçlı bir uygulamamda 74HC164 1 pin ile kullanmıştım. jalv2 ile yazdım ama mantığı anlatıyor. fikir verecektir.

diğer kaynak :https://320volt.com/one-wire-lcd/