PIC začátečnický problém "vstup ovlvnuje vystupy"

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Pavel Samek

PIC začátečnický problém "vstup ovlvnuje vystupy"

#1 Příspěvek od Pavel Samek »

Ahoj, začínám ze stavbou obvodu z PIC a nastal mě takový malý naočkovávaný problém. Mám jeden vstup na (PORTA.0) který zapne výstup na (PORTA.1) a pokd je zapnuty tak ho shodí. Přidělal jsem tam ještě jeden výstup který je nahozený stále (PORTA.2).

Problem:

Pokud stisknu tlačítko (PORTA.0) aktivují se všechny výstupy PORTA (teda pouze po dobu stisku)
Nevíte kde by mohl být problém, toto mě to dělá u všech jiných programů.



Schema zapojení : http://pandatron.cz/elektronika2/skolapic5.gif
prg:

Kód: Vybrat vše

LIST P=16F84A
   INCLUDE<P16F84A.INC>
   __CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC

#DEFINE   TLAC   PORTA,0      
#DEFINE   LED      PORTA,1      
#DEFINE   LED2   PORTA,2   

   BSF   STATUS,RP0
   MOVLW   B'00000001'
   MOVWF   TRISA
   BCF   STATUS,RP0

   BCF   LED
   BSF LED2

START   BTFSS   TLAC
   GOTO   $-1
   BSF   LED
   BTFSC   TLAC
   GOTO   $-1

   BTFSS   TLAC
   GOTO   $-1
   BCF   LED
   BTFSC   TLAC
   GOTO   $-1

   GOTO   START

   END
Uživatelský avatar
eljaro
Příspěvky: 441
Registrován: 03 pro 2004, 00:00
Bydliště: Krnov
Kontaktovat uživatele:

#2 Příspěvek od eljaro »

základem je simulace - program odsimulovat - pak teprver skoušet !
Ten kod nevypadá nijak vedle

dopň začátek o
org 00h
CLRF PORTA

snad to zabere !

a čkoliv to sice nic nevylučuje obyčejně se používa u výstupů jako aktivní úroven 0 a vstupů je tomu skoro vždy - tlačítko vstup ukostřuje a na vstupu je zvedací odpor ! aktivní stisk odpovídá nule pokud tomu chceš na opak - jak libo jen tam dej tedy nějaky odpor na zem jimž přikostříš vstup : a pokud ta 84 má vnitřní odpory byloby dobré je vypnout !

toliko ve skratce u snídaně

PS: omluvte pravopis !
Pavel Samek

#3 Příspěvek od Pavel Samek »

Zkoušel jsem přehodit logiku, tlačítko přizemňuje a pull-up odpor jde do +.
Výstup jsem také obrátil. A začalo to fungovat, teda jenom tato část. Tlačítko nahodí výstup a je-li nahozený tak jej shodí. ... Potom mnou přidávaná "funkce" stále sepnutého výstupu PORTA.2 ta se moc nedaří. Pokud LEDku odsud vyndám tak přestane fungovat tlačítko. Pokud je LEDka zapojená tak nesvítí (jak jsem si myslel) Při stisku tlačítka slabounce svítí. A když jsem zhasl světlo tak jsem viděl, že obě ledky v nečinnosti malinko mžouraj (v nečinnosti).
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#4 Příspěvek od Atlan »

MAs to pripojene na dobrych pinoch ? Daj tu scemu pre istotu a procik mas blokovany 100n + nejaky kondik k tomu ?
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#5 Příspěvek od Chenzee »

Ještě by mohl být problém v zákmitech tlačítka.
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#6 Příspěvek od Atlan »

Takze bud sowtvarove riesenie alebo kondik 100n k tlacitku :)
len to stale neriesi to led2...
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#7 Příspěvek od Andrea »

Pavel Samek píše:Zkoušel jsem přehodit logiku, tlačítko přizemňuje a pull-up odpor jde do +.
Výstup jsem také obrátil. A začalo to fungovat, teda jenom tato část. Tlačítko nahodí výstup a je-li nahozený tak jej shodí. ... Potom mnou přidávaná "funkce" stále sepnutého výstupu PORTA.2 ta se moc nedaří. Pokud LEDku odsud vyndám tak přestane fungovat tlačítko. Pokud je LEDka zapojená tak nesvítí (jak jsem si myslel) Při stisku tlačítka slabounce svítí. A když jsem zhasl světlo tak jsem viděl, že obě ledky v nečinnosti malinko mžouraj (v nečinnosti).

Máš v sérii s těma LEDkama odpory?
hakamusai
Příspěvky: 939
Registrován: 17 dub 2007, 00:00

#8 Příspěvek od hakamusai »

Pavel Samek > Zkus sem hodit schéma
Pavel Samek

#9 Příspěvek od Pavel Samek »

Přikládám 3 různé druhy zapojení co jsem zkoušel. Ale nevyhovovalo ani jedno.

1 - Prvni dioda
Led D1 svítí slabě trvale, po dobu stiku tlačítka pohasne.
Led D2 nereaguje.

2, 3 -
PORTA.1 pracuje jak by měl podle stisku tlačítka
Není na první pohled vidět žádná změna. PORTA.2 Nesvítí. Pouze při připojení napětí krátce obě ledky probliknou. Pokud vyndám led D1 tak led D2 již neraguje na stisk tlačítka. Pak se musí odpojit od zdroje a znovu připojit D1.


Ani jedna varianta není to co bych se představoval
Přílohy
SECHEMA.PNG
(51.38 KiB) Staženo 219 x
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#10 Příspěvek od Atlan »

NO vyvod MCLR sa pripokjuje na vcc cez odpor napr 4k7 alebo 10k. DAj si kondik 100n co najbliszsie k napajacim vyvodom procika.
Uživatelský avatar
Chenzee
Příspěvky: 464
Registrován: 26 čer 2007, 00:00
Bydliště: Vysočina

#11 Příspěvek od Chenzee »

Jaký tam máš diody a Ucc, odpory 1K3 mi nějak nesedí :nevim:
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#12 Příspěvek od Atlan »

To tam mas vazne 100n na oscilator ? :) aky to ma takt 1 inst za 5min ?
Nemalo tam byt 100p
Pavel Samek

#13 Příspěvek od Pavel Samek »

Ahoj,

Stále kvoká, stále kvoká .... vyměnil jsem odpory u ledky (za 500R) jediný poruce. Přendal jsem 100n mezi + / - procesoru. Na původní místo oscilátoru jsem dal menší kondenzátor (ale zjistil jsem že to má stejný efekt jako když tam nic není) A pin MCLR je přes 10K rezistor a změny budete se divit žádný ...

Co teď, co potom?
Uživatelský avatar
Atlan
Příspěvky: 4514
Registrován: 10 kvě 2004, 00:00
Bydliště: Košice

#14 Příspěvek od Atlan »

A cim to programujes hardware software ?
a dufam ze to mas takto...

LIST P=16F84A
INCLUDE<P16F84A.INC>
__CONFIG _PWRTE_ON & _WDT_OFF & _RC_OSC


#DEFINE TLAC PORTA,0
#DEFINE LED PORTA,1
#DEFINE LED2 PORTA,2


org 00h

BSF STATUS,RP0
MOVLW B'00000001'
MOVWF TRISA
BCF STATUS,RP0

BCF LED
BSF LED2

START BTFSS TLAC
GOTO $-1
BSF LED
BTFSC TLAC
GOTO $-1

BTFSS TLAC
GOTO $-1
BCF LED
BTFSC TLAC
GOTO $-1

GOTO START

END
Naposledy upravil(a) Atlan dne 27 led 2009, 18:44, celkem upraveno 1 x.
Andrea
Příspěvky: 9340
Registrován: 07 zář 2007, 00:00

#15 Příspěvek od Andrea »

Zkus z programu vyhodit tu část s tlačítkem, nech jen to rozsvícení LED2 a pak za to dej nekonečkou smyčku, jestli se LED2 rozsvítí.
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“