Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

Jednotlačítkový spínač s PIC 16F84A
Jdi na stránku Předchozí  1, 2
 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
PPavel
Neregistrovaný





PříspěvekZaslal: čt srpen 31 2006, 12:04    Předmět: Citovat

Watch Dog mam OFF a oscilator XT
Návrat nahoru
jezevec
Hlavní moderátor


Založen: Jun 13, 2004
Příspěvky: 5726
Bydliště: Břeclavsko

PříspěvekZaslal: čt srpen 31 2006, 14:07    Předmět: Citovat

PPavel napsal(a):

Ale...
1/ Kdyz zkusim tim stejnym tlacitkem zapnout LED na portu RB1 (misto #DEFINE LED PORTB,0 dam #DEFINE LED PORTB,1) tak to nejede.
2/ pokud pridam v simulatoru do zapojeni zbyvajici tlacitka, tak aby to odpovidalo schematu, nejde uz zapinat ani LED na portu RB0

?????

Teď se dívám pořádně na to schema, odpory do serie s LED jsou příliš malé a port je přetížený, odtud možná ty problémy. Vždy se snaž co nejméně zatěžovat PIC, taky je lépe spínat LED proti zemi. Totéž platí pro tlačítka, dají se pak využít vnitřní upínací odpory k Ucc a nemusí být externí. Odpor 100R a dioda v obvodu resetu jsou zbytečné.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
jezevec
Hlavní moderátor


Založen: Jun 13, 2004
Příspěvky: 5726
Bydliště: Břeclavsko

PříspěvekZaslal: čt srpen 31 2006, 17:01    Předmět: Citovat

Tady máš zapojení a funkční program, můžeš si doplnit ošetření tlačítek proti zákmitům.



;*****************************************************************************
;
; Ovladani 4 LED tlacitky ON -OFF
;
; PIC 16F84A
; Osc. -XT 4MHz
;
; Konfigurace programatoru: CP - NE; PWRTE - Disabled; WDTE - NE; OSC - XT
; !!!!!!!! NEJSOU OSETRENA TLACITKA PROTI ZAKMITUM !!!!!!!!!!!!
;
;******************************************************************************

LIST p=16f84A, R=DEC ;direktivy prekladace
include<p16f84A.inc> ;definice nazvu registru

;********************* definice zapojeni hardware ***************************

#DEFINE LED1 PORTB,0 ;1. LEDka
#DEFINE LED2 PORTB,1 ;2. LEDka
#DEFINE LED3 PORTB,2 ;3. LEDka
#DEFINE LED4 PORTB,3 ;4. LEDka
#DEFINE TL1 PORTB,4 ;Tlacitko 1, ovlada LED1
#DEFINE TL2 PORTB,5 ;Tlacitko 2, ovlada LED2
#DEFINE TL3 PORTB,6 ;Tlacitko 3, ovlada LED3
#DEFINE TL4 PORTB,7 ;Tlacitko 4, ovlada LED4

;******************** Promenne *******************************************

OffRam EQU 0x0C ;offset pameti pro PIC16F84

;******************** kod programu ****************************************
;
ORG 0
GOTO Start ;skok na zacatek programu
; ORG 4
; GOTO Prerus ;skok na obsluhu preruseni

;******************** Inicializace **********************************

Start BSF STATUS,RP0 ;banka1
MOVLW 0x00 ;nastaveni OPTION
MOVWF OPTION_REG
MOVLW 0x00 ;vse na PORTA - OUT
MOVWF TRISA
MOVLW 0xF0 ;nastaveni PORTB 11110000
MOVWF TRISB
MOVLW 0x00
MOVWF INTCON
BCF STATUS,RP0 ;banka0

BSF LED1 ;vypne LED1
BSF LED2
BSF LED3
BSF LED4

;******************* Hlavni program ***************************************

Start1 BTFSS TL1 ;testuje TL1, je-li sepnuto skok na podprogram
CALL Ledka1 ;kde testuje stav LED diody
BTFSS TL1 ;ceka na uvolneni tlacitka
GOTO $-1
BTFSS TL2
CALL Ledka2
BTFSS TL2
GOTO $-1
BTFSS TL3
CALL Ledka3
BTFSS TL3
GOTO $-1
BTFSS TL4
CALL Ledka4
BTFSS TL4
GOTO $-1
GOTO Start1


;******************* Podprogramy **************************************

Ledka1 BTFSS LED1 ;testuje predchozi stav LED1 a zmeni ji na opacny
GOTO $+3
BCF LED1
GOTO $+2
BSF LED1
RETURN
Ledka2 BTFSS LED2 ;testuje predchozi stav LED2 a zmeni ji na opacny
GOTO $+3
BCF LED2
GOTO $+2
BSF LED2
RETURN
Ledka3 BTFSS LED3 ;testuje predchozi stav LED3 a zmeni ji na opacny
GOTO $+3
BCF LED3
GOTO $+2
BSF LED3
RETURN
Ledka4 BTFSS LED4 ;testuje predchozi stav LED4 a zmeni ji na opacny
GOTO $+3
BCF LED4
GOTO $+2
BSF LED4
RETURN

;************************ Konec programu ************************************

END
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PPavel
Neregistrovaný





PříspěvekZaslal: čt srpen 31 2006, 17:10    Předmět: Citovat

Dobre, tlacitka i LED proti zemi... to zatim chapu. Jak se to potom projevi na programu, kdyz to budu mit zapojeny misto na +5V na ZEM?

Dioda a odpor u resetu tam byly davana kvuli moznosti programovat PIC pres ICP konektor.

Ty LEDky jsou vysocesvitive, modre 3.3V/20mA , mely slouzit pouze jako kontrolky a soucasne bud na stejnych portech PICu nebo na dalsich 4 volnych se mela pres tranzistory BC337 a BD139 spinat vetsi zatez.

Ted uz jsem se do toho tak zamotal, ze i kdyz zapojim, ja mi radite, LEDky a tlacitka proti zemi tak uz nevim jak k PICu pripojit tranzistor BC337. Puvodne jsem chtel z portu PICu pres odpor 1k2 na bazi BC337 a dale na BD139... ted nevim
Návrat nahoru
jezevec
Hlavní moderátor


Založen: Jun 13, 2004
Příspěvky: 5726
Bydliště: Břeclavsko

PříspěvekZaslal: čt srpen 31 2006, 18:14    Předmět: Citovat

Dal jsem ti ten program v asm na upload, abys sis ho mohl nahrát do MPLABu, je tam přeci jenom přehlednější.
S těmi tranzistory je to jednoduché
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
PPavel
Neregistrovaný





PříspěvekZaslal: čt srpen 31 2006, 19:05    Předmět: Citovat

Diky moc, zkusim to predelat a uvidim
Návrat nahoru
ViPali



Založen: Nov 21, 2005
Příspěvky: 524
Bydliště: Bratislava

PříspěvekZaslal: pá září 01 2006, 11:35    Předmět: Citovat

Chcel som niečo hodiť do mplabu, ale nedostal som sa k tomu. Myslím, že k jezevcovi niet čo dodať, snáď len toľko,
ak začínaš, tak si program komentuj. Na každý riadok (aj keď je tam NOP) napíš komentár. Pomôže ti to pri hľadaní chýb, a najmä aj o hodinu budeš vedieť, čo si chcel aby procesor robil.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
anonym






PříspěvekZaslal: po červen 01 2009, 17:43    Předmět: Citovat

nieco som skusil napisat v C tak ked to niekomu pomoze , je to sice na ATMEL ale ani s PICkom by nemal byt problem mozno to niekomu pomoze

kód:
/*

4 LED jednym tlacitkom
*/

#include <util/delay.h>
#include "avr/io.h"
#include <io.h>


unsigned int b,c,d,e;
unsigned char temp;


int main(void)
{
 
while (1)
 
   {

if (bit_is_clear(PIND,0)) temp = 2;//pri log "0" na PIND 0 zapise do temp 2
 
else if (temp==2) //po prichode LOG "1" na vstup PIND 0 vykona prikaz

{
d++;      //inkrementuje premennu d (urcuje pocet LED prip. kombinacie)
temp = 0; //do premennej temp zapise 0 t.j. cyklus sa bude opakovat az pri
        //prichode najblizsej log "0" na    PIND 0
}

else if (d==5) d = 0; //po (5) cykloch nastavi premennu d na 0


if (d==1)    PORTB = 1; //LED 1
if (d==2)   PORTB = 2; //LED 2
if (d==3)   PORTB = 4; //LED 3
if (d==4)   PORTB = 8; //LED 4
if (d==5)   PORTB = 0; //LED OFF   

   };
};
//end;








Návrat nahoru
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2
Strana 2 z 2

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.14 sekund