Fórum témák

» Több friss téma
Fórum » PIC BASIC
 
Témaindító: hinar_, idő: Máj 7, 2008
Témakörök:
Lapozás: OK   10 / 23
(#) icserny válasza Jack Byrnes hozzászólására (») Márc 28, 2011 / 1
 
Nem írtad, hogy az LCD R/W bitje földre van kötve!
(#) Peti027 hozzászólása Ápr 11, 2011 /
 
PICBASIC-ben hogyan tudom megadni hogy a PORTA.3 és a PORTA.0 portokat egyként kezeljem kimenetként? Tehát mondjuk hogy elég legyen annyit írni hogy
  1. HIGH kimenetek
(#) icserny válasza Peti027 hozzászólására (») Ápr 11, 2011 /
 
Írj egy saját szubrutint, ami egyenként beállítja a kimeneteidet. Utána csak ezt a szubrutint kell hívogatni...
(#) Peti027 válasza icserny hozzászólására (») Ápr 11, 2011 /
 
Köszi, közben sikerült ezzel a módszerrel:

  1. PORTA = %1111111


(#) gabilow hozzászólása Ápr 12, 2011 /
 
Sziasztok!
Szeretném kérdezni, hogy milyen utasítást kellene használni és hogyan kell bekötni, ha egy lábon feszültséget akarok mérni? Pl. egy akkutöltőnél lekapcsolom a töltést majd rámérek a feszre?
(#) Thowra válasza gabilow hozzászólására (») Ápr 13, 2011 / 1
 
Üdv!
Először be kell állítani az adcon regisztert
pl:
  1. ADCON1 = %10000000
  2. Declare ADIN_RES 10       ' 10-bit result required
  3. Declare ADIN_TAD FRC      ' RC OSC chosen
  4. Declare ADIN_STIME 50     ' Allow 50us sample time

Ezután le tudod kérdezni az értéket pl:
  1. p1 = ADIn 0
  2. p2 = ADIn 1
  3. p3 = ADIn 2
  4. lm35 = ADIn 4

Fontos, hogy az ALL_DIGITAL TRUE ne legyen bent mert az tiltja!
Hardveresen ha több mint 5V a bemenő akkor fesz osztót kell alkalmazni.
(#) Peti027 hozzászólása Ápr 13, 2011 /
 
Sziasztok!

Két PIC között mi a legegyszerűbb módja a kommunikációnak? Mondjuk az adó PIC-en elküldök egy 1-est, és ha a másik veszi az 1-est akkor csinálna valamit.

Alkalmas erre a SERIN és a SEROUT ? (PicBasic Pro 2.60)
(#) gabilow válasza Thowra hozzászólására (») Ápr 13, 2011 /
 
Kösz a választ. Ezt ( a mért feszültséget) ki lehetne íratni valahogy LCD-re? Proton basic-et használok és 16F628A-t
(#) Medve válasza Peti027 hozzászólására (») Ápr 13, 2011 /
 
Hello, a legegyszerűbb az, ha az egyik port kimenetet összekötöd a másik bemenetével. Ám a SERIN-SEROUT páros is alkalmas -hosszabb távon- erre a feladatra.
(#) Thowra válasza gabilow hozzászólására (») Ápr 13, 2011 /
 
Ki lehet íratni pl: print at 1,1,@lm35
A 628A ba ha jól emlékszek nincs A/D cak komparátor, az nem jó neked.
(#) Laciveszp hozzászólása Jún 20, 2011 /
 
Sziasztok, én is az Ostonsoft PIC Simulator IDE programot használom. Most készültem el egy közlekedési lámpa szimulátorral. (Lásd itt). Ám nem tudom, hogyan lehetne egy potival beállítani a lépések közti időt. Mondjuk a P-P lenne 5*x, a PS-P lenne 2*x, a Z-P lenne 6*x. És az x értékét hogyan tudnám változtatni potival? A programot 16F628-ra írtam. Előre is köszi a segítségeteket.
(#) vilmosd válasza Laciveszp hozzászólására (») Jún 21, 2011 /
 
Eleg nehezen, mert a 16F628A egynel kevesebb AD csatornaval rendelkezik, tehat nehezen tud analog jelet olvasni.
(#) mgy válasza Thowra hozzászólására (») Aug 17, 2011 /
 
Sziasztok !
A PICBASIC sound port, [fr,time] utasítását szeretném felhasználni jelzőhangra (dallamra).
Az fr értéke 0-127 között lehet.
Vagy 10 éve már kijátszottam, hogy milyen fr érték tartozik egy adott hangr ( pl.: 440 Hz A hang), de nem találom.
Ha valakinél kéznél van ez a táblázat, megköszönném.
Üdv mgy
(#) gyerek67 válasza mgy hozzászólására (») Aug 17, 2011 /
 
(#) mgy válasza gyerek67 hozzászólására (») Aug 17, 2011 /
 
Kösz !
Jobb, mint amit vártam.
(#) mgy válasza mgy hozzászólására (») Aug 17, 2011 /
 
De még sem az igazi.
A midi számértékének kevés köze van a SOUND utasításban megadandó értékhez.
Első nekifutásra jónak tünt, de a boci boci tarkánál, már kilógott a lóláb.
Magyarul egy "énekből felmentettnek" is fals volt.
(#) Peti027 válasza mgy hozzászólására (») Aug 17, 2011 /
 
Ez kell neked:
Bővebben: Link
(#) mgy válasza Peti027 hozzászólására (») Aug 18, 2011 /
 
Kösz !
Ebből már lehetett számolgatni.

Üdv mgy
(#) Jack Byrnes hozzászólása Okt 29, 2011 /
 
Hello! Tud valaki mutatni egy üzemképes LCD vezérlést? Nekem sehogy sem akar összejönni. Bekötések:
D4: RD0
D5: RD1
D6: RD2
D7: RD3
E: RC5
RS: RC4
(#) Thowra válasza Jack Byrnes hozzászólására (») Okt 29, 2011 /
 
  1. Declare LCD_TYPE 0
  2. Declare LCD_DTPIN PORTD.4
  3. Declare LCD_RSPIN PORTC.4
  4. Declare LCD_ENPIN PORTC.5
  5. Declare LCD_INTERFACE 4
  6.  
  7. Cls
  8.  
  9. print at 1,1,"   LCD proba!   "'szöveg kiírása
(#) brato válasza Jack Byrnes hozzászólására (») Okt 29, 2011 /
 
  1. Declare LCD_TYPE      0                 'Nem grafikus
  2. Declare LCD_DTPIN     PORTB.4           'Felső bit az adatbusz
  3. Declare LCD_ENPIN     PORTB.3           'EN
  4. Declare LCD_RSPIN     PORTB.2           'RS
  5. Declare LCD_INTERFACE 4                 '4 bites adatbusz
  6. Declare LCD_LINES     2                 '2 soros
(#) brato válasza brato hozzászólására (») Okt 29, 2011 /
 
Az előbbi hozzászólásomat nem tudtam javítani.
  1. Declare LCD_TYPE      0                 'Nem grafikus
  2. Declare LCD_DTPIN     PORTD.0           'Alsó bit az adatbusz
  3. Declare LCD_ENPIN     PORTC.5           'EN
  4. Declare LCD_RSPIN     PORTC.4           'RS
  5. Declare LCD_INTERFACE 4                 '4 bites adatbusz
  6. Declare LCD_LINES     2                 '2 soros
(#) HDD hozzászólása Okt 31, 2011 /
 
Sziasztok
Valaki tud segíteni hol rontottam el?
Találtam minta programokat de nem nagyon működnek
A led villog de az LCD nem

DEFINE LCD_DREG PORTB ' Az LCD adatvezeteket a B portrol vezereljuk
DEFINE LCD_DBIT 4 ' Az elso adatvezetek az RB port 4. tagja. (Az RB4)
DEFINE LCD_RSREGPORTB ' Az LCD Register Select kivezetese a B portra
DEFINE LCD_RSBIT7 ' megpedig a 7. labra. (Tehat az LCD RS - az RB7 porton
DEFINE LCD_EREG PORTB ' Az enable vezerlo bit is a B porton,
DEFINE LCD_EBIT 5 ' az RB5 portra van kiosztva. (LCD EN - RB5 port.)
DEFINE LCD_BITS 4 ' 4 bites uzemmod
DEFINE LCD_LINES2 ' 2 soros LCD

LCDOUT $fe,1 ' LCD torles, es iras az elso sorba
LCDOUT "*Csapo Laszlo*"
LCDOUT $fe,$C0 ' LCD torles, es iras a masodik sorba
LCDOUT " Csapoteam "

PAUSE 3000 ' 3 masodperc szunet. (Egy kis pause...)


' A LED villogtatas:

LED VAR PORTB.0 ' Assign name "LED" to PORTB.0

mainloop:

High LED ' Turn on LED connected to PORTB.0
Pause 500 ' Delay for .5 seconds

Low LED ' Turn off LED connected to PORTB.0
Pause 500 ' Delay for .5 seconds

Goto mainloop ' Go back to loop and blink LED forever

End


Aztán próbáltam így is
De így se működik

DEFINE LCD_TYPE 0 'Nem grafikus
DEFINE LCD_DTPIN PORTB.4 'Alsó bit az adatbusz
DEFINE LCD_ENPIN PORTB.5 'EN
DEFINE LCD_RSPIN PORTB.7 'RS
DEFINE LCD_INTERFACE 4 '4 bites adatbusz
DEFINE LCD_LINES 2 '2 soros

LCDOUT $fe,1 ' LCD torles, es iras az elso sorba
LCDOUT "*Csapo Laszlo*"
LCDOUT $fe,$C0 ' LCD torles, es iras a masodik sorba
LCDOUT " Csapoteam "

PAUSE 3000' 3 masodperc szunet. (Egy kis pause...)


' A LED villogtatas:

LED VAR PORTB.0 ' Assign name "LED" to PORTB.0

mainloop:
High LED ' Turn on LED connected to PORTB.0
Pause 500 ' Delay for .5 seconds

Low LED ' Turn off LED connected to PORTB.0
Pause 500 ' Delay for .5 seconds

Goto mainloop ' Go back to loop and blink LED forever

End
(#) BIP válasza HDD hozzászólására (») Nov 1, 2011 /
 
Talán póbáld így:

DEFINE LCD_DREG PORTB '
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 7
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5

DEFINE LCD_COMMANDUS 2000 ' Késleltetések
DEFINE LCD_DATAUS 100 '

Ha kétsoros LCD-t használsz szerintem nem kell a sorok számát megadni.
(#) BIP válasza BIP hozzászólására (») Nov 1, 2011 / 1
 
De van más hiba is, csak az előbb nem figyeltem!
Helyesen:
DEFINE LCD_DREG PORTB '
DEFINE LCD_DBIT 4 '!!!!!!!!!!!!!!!!!
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 7 ' ezt változtasd meg mert a felső 4 bit foglalt
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 5 ' itt szintén foglalt az 5-ös láb a B porton.

DEFINE LCD_COMMANDUS 2000 ' Késleltetések
DEFINE LCD_DATAUS 100 '
(#) HDD válasza BIP hozzászólására (») Nov 1, 2011 /
 
Szia
Ezt a bekötést egy működő kapcsolásban láttam
Nem nagyon vágom még ezt sajnos

Ez egy 16F887
Az LCD - PIC:

4 RS - 40 RB7
6 E - 38 RB5
11 BD4 ? RB4
12 BD5 ? RB3
13 BD6 ? RB2
14 BD7 ? RB1

Így van be kötve
Segítetek értelmezni és kijavítani
Ott akadtam el, hogy lehet foglalat
Köszönöm
(#) brato válasza HDD hozzászólására (») Nov 1, 2011 /
 
Üdv!

Ha basicben akarod leprogramozni akkor az adatport 4 bites módban csak a következő lehet a beépített függvénnyel: DB0-DB3 alsó biteken RB0-RB3
DB4-DB7 felső biteken RB4-RB7
(#) BIP válasza HDD hozzászólására (») Nov 1, 2011 /
 
Sajnos valamennyire ismerni kell az adott chipet, mert annélkül nem fogsz boldogulni, különösen igaz ez a 887-esre.
De pánikra semmi ok, rengeteg anyag van a neten, pl. Bővebben: Link
Ez az oldal alaposan kivesézi a16F887-est, találsz példákat az LCD bekötésére is. Igaz a példák nem PcBasic-re íródtak, de előbb néhány alapdologgal tisztában kell lenned. Próbáld először az ábra (EXAMPLE 15) alapján bekötni az LCD-t, majd értelemszerűen definiálni a portokat és a lábakat, ahová a valóságban kötve vannak. Ahogy leírtad az úgy valóban nem működik.
(#) mgy válasza HDD hozzászólására (») Nov 2, 2011 /
 
A mellékletből mazsolázd ki az LCD vezérlést.
Én mindig a felső 4 adatbitet használom és az biztos.
Jelen esetben az RD4-RD7.

887lcdad.txt
    
(#) imbra hozzászólása Nov 6, 2011 /
 
Üdv!

Írtam egy led villogtatót. Pic 16F84A 6-os lábát 1-szer, a 7-es lábát 3-szor villantja fel. Szimulációban jól megy de próbapanelen már a 6-os láb kigyullad és nem alszik el, a hetes pedig 2-őt villan harmadikra szintén égve marad. Mit rontottam el?

Pause 1000
LEDA VAR PORTB.0
LEDB VAR PORTB.1
TRISB.0 = 0
LEDA = 1
PAUSE 1000
LEDA = 0
PAUSE 1000
TRISB.1 = 0
LEDB = 1
PAUSE 1000
LEDB = 0
PAUSE 1000
LEDB = 1
PAUSE 1000
LEDB = 0
PAUSE 1000
LEDB = 1
PAUSE 1000
LEDB = 0
PAUSE 1000
END
Következő: »»   10 / 23
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem