Elektronik ve Teknoloji Merkezi Elektrotekno.com
Elektronik ve Teknoloji Merkezi



Click here to go to the original topic
Sayfaya git Önceki  1, 2
Elektrotekno.com Ana Sayfa Devre ve proje istekleriniz
Yazar Mesaj
kaselsan
Tarih: 25.03.2007, 16:50 Mesaj konusu:

bu devre işinizi görebilir.






Hex:

'----- CONFIGURO PUERTOS-----
'Configuro el portA:
TRISA.0 = 0 'Salida (LED 1)
TRISA.1 = 0 'Salida (LED 2)
TRISA.2 = 1 'Entrada (Pulsador 1)
TRISA.3 = 1 'Entrada (Pulsador 2)
TRISA.4 = 0 'Salida (NO USADO)

'Configuro el portB:
TRISB.0 = 0 'Salida
TRISB.1 = 0 'Salida
TRISB.2 = 0 'Salida
TRISB.3 = 0 'Salida
TRISB.4 = 0 'Salida
TRISB.5 = 0 'Salida
TRISB.6 = 0 'Salida
TRISB.7 = 0 'Salida

'------VARIABLES Y CONSTANTES------------------

'Defino constantes:
Symbol led1 = PORTA.0 'LED 1
Symbol led2 = PORTA.1 'LED 2
Symbol p1 = PORTA.2 'Pulsador 1
Symbol p2 = PORTA.3 'Pulsador 2


'Variables
Dim aux As Word
Dim i As Byte
Dim flag As Bit
aux = 0
flag = 0
i = 0


'----COMIENZA EL PROGRAMA EN SI-----
'Apago todos los leds del emisor
led1 = 0
led2 = 0

loop: 'Bucle principal del programa
'Veo si se pulso algun boton
If p1 = 1 Then 'Presionaron el pulsador 1
Gosub cablenormal
Endif

If p2 = 1 Then 'Presionaron el pulsador 2
Gosub cablecruzado
Endif

Goto loop 'Repite eternamente
End

cablenormal: 'Enciende Leds en orden 1-2-3-4-5-6-7-8

led1 = 1 'Enciendo el LED1 (indicador de funcion)
aux = 1 'Led Encendido: el 8
flag = 0 'Asumo el otro boton sin pulsar

While flag = 0 'mientras No se pulse el otro, funciona.
If aux = 1 Then 'Enciendo LED 1
PORTB = %10000000
Endif

If aux = 2 Then 'Enciendo LED 2
PORTB = %01000000
Endif

If aux = 3 Then 'Enciendo LED 3
PORTB = %00100000
Endif

If aux = 4 Then 'Enciendo LED 4
PORTB = %00010000
Endif

If aux = 5 Then 'Enciendo LED 5
PORTB = %00001000
Endif

If aux = 6 Then 'Enciendo LED 6
PORTB = %00000100
Endif

If aux = 7 Then 'Enciendo LED 7
PORTB = %00000010
Endif

If aux = 8 Then 'Enciendo LED 8
PORTB = %00000001
aux = 0 'Pongo a uno para reiniciar la cuenta
Endif

aux = aux + 1

For i = 1 To 255 '255
WaitMs 1 'espera 1/1000 de segundo.
If p2 = 1 Then 'Se pulso el otro boton
flag = 1 'Pongo el flag para salir de la rutina
PORTB = %00000000 'Apago todos los leds
led1 = 0 'Apago el led "piloto"
WaitMs 500 '500 milisegundos para darle tiempo a soltar el boton
i = 255
Endif
Next i

Wend
Return

cablecruzado: 'Enciende Leds en orden 1-2-4-3-6-5-7-8

led2 = 1 'Enciendo el LED2 (indicador de funcion)
aux = 1 'Led Encendido: el 8
flag = 0 'Asumo el otro boton sin pulsar

While flag = 0 'mientras No se pulse el otro, funciona.
If aux = 1 Then 'Enciendo LED 3
PORTB = %00100000
Endif

If aux = 2 Then 'Enciendo LED 6
PORTB = %00000100
Endif

If aux = 3 Then 'Enciendo LED 1
PORTB = %10000000
Endif

If aux = 4 Then 'Enciendo LED 4
PORTB = %00010000
Endif

If aux = 5 Then 'Enciendo LED 5
PORTB = %00001000
Endif

If aux = 6 Then 'Enciendo LED 2
PORTB = %01000000
Endif

If aux = 7 Then 'Enciendo LED 7
PORTB = %00000010
Endif

If aux = 8 Then 'Enciendo LED 8
PORTB = %00000001
aux = 0 'Pongo a uno para reiniciar la cuenta
Endif

aux = aux + 1

For i = 1 To 255 '255
WaitMs 1 'espera 1/1000 de segundo.
If p1 = 1 Then 'Se pulso el otro boton
flag = 1 'Pongo el flag para salir de la rutina
PORTB = %00000000 'Apago todos los leds
led2 = 0 'Apago el led "piloto"
WaitMs 500 '500 milisegundos para darle tiempo a soltar el boton
i = 255
Endif
Next i

Wend
Return




iyi çalışmlar.
-----------------------------------------------------

immortalover
Tarih: 04.11.2007, 22:13 Mesaj konusu: tşk ederim

verdiğin bilgi için tşk ederim.yalnız benim yapmak istediğim proje 8 kabloyla sınırlı olmaması aynı anda misal 60 tane noktanın testini yapacak.
shift register kullanarak giriş çıkış sayısını artırsak olurmu diye düşünüyorum ama bu sefer işin kötüsü hafızaya almak gerekiyor neden dersen yaptığım bi grupta 30 kablo var diğerinde 50 kablo var sıralamaları farklı bi şekilde.
elimde bi tane hazır yapılmış var ATMEL AT89S8253 ile yapılmış mikroişlemci hafızaya alma işlemlerini,sonucu display ve IR vericiyle dışarı veren bir kart.yalnız işlemcisi kilitli kopyasını alamıorum.
tşkler
timpati
Tarih: 09.11.2007, 18:40 Mesaj konusu: sayıcı

benzer bir sistemi çalıştığım firmanın eternet kablolarını bulmak ve sıralamasını test etmek için kullandım. yapılacak şey aslında çok basit. 4017 veya benzeri bir devreyle koşan ışık devresi yapacaksın. sayı arttıkça bunun adı shift register oluyor. yani kabloların bir ucunda devre diğer yanında ise sadece ledler olacak. doğru sıralamada iseler ledler sırayla yanacaklar değilse atlama olan yeri zaten göreceksin.

4017 tek başına sadece 10 ledi koşturabilir, çok sayıda kablo için ister 4017leri kaskadla isterse başka seri lojik entegreler kullan. sayıyı belirlemek için tek yapacağın geri dönüş için sonuncu ledden ilk sayıcının reset girişine bir geribesleme yapmak.
immortalover
Tarih: 12.01.2008, 00:39 Mesaj konusu: mrb



mrb arkadaşlar yaptığım bu devrede 3 kablonun iletim ve sıralama testini başarılı bir şekilde yapmakta.
mantığı şu şekilde 1.kablo için portb.0 dan gönderilen +5v u portb.3 den alması gerekiyor.eğer şart doğru ise yeşil led değilse kırmızı led yanıyor.3 kablo içinde iletim ve sıralama ok ise portb.6 ya bağlı olan yeşil led (ok) yanıyor.
bu projedeki kablo sayısını en fazla 12 kablo için yapabiliyorum...
benim size sorum şu olacak nasıl birşey yapsam bu çıkış portu ve giriş portunu artırabilirim.74hc595 ve 74hc165 entegrelerini kullansam kodları nasıl ayarlamam gerekir ?
yardımcı olursanız sevinirim... kodlarımda şu şekilde

grup:
hıgh portb.0
hıgh portb.1
hıgh portb.2
ıf ((portb.3=1) or (portb.4=1) or (portb.5=1)) then
low portb.0
low portb.1
low portb.2
goto test
else
low portd.0
low portd.1
low portd.2
low portd.3
low portd.4
low portd.5
goto grup
endif
test:
high portb.0
if portb.3=1 then
high portd.0
low portd.3
else
high portd.3
low portd.0
low portb.0
endif
'-----------------------------------------------------------
high portb.1
if portb.4=1 then
high portd.1
low portd.4
else
high portd.4
low portd.1
low portb.1
endif
'-----------------------------------------------------------
high portb.2
if portb.5=1 then
high portd.2
low portd.5
else
high portd.5
low portd.2
low portb.2
endif
'------------------------------------------------------------
if ((portb.3=1) and (portb.4=1) and (portb.5=1)) then
high portb.6
else
low portb.6
endif
Elektrotekno.com Ana Sayfa Devre ve proje istekleriniz
2. sayfa (Toplam 2 sayfa)
Sayfaya git Önceki  1, 2

kablo test devresi !

Gizlilik Politikası

PLC programming