Fórum témák
» Több friss téma |
Nem írtad, hogy az LCD R/W bitje földre van kötve!
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
Írj egy saját szubrutint, ami egyenként beállítja a kimeneteidet. Utána csak ezt a szubrutint kell hívogatni...
Köszi, közben sikerült ezzel a módszerrel:
![]()
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?
Üdv!
Először be kell állítani az adcon regisztert pl:
Ezután le tudod kérdezni az értéket pl:
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.
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)
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
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.
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.
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.
Eleg nehezen, mert a 16F628A egynel kevesebb AD csatornaval rendelkezik, tehat nehezen tud analog jelet olvasni.
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
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.
Ez kell neked:
Bővebben: Link
Kösz !
Ebből már lehetett számolgatni. Üdv mgy
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
Az előbbi hozzászólásomat nem tudtam javítani.
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
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. ![]()
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 '
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
Ü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
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. ![]()
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.
Ü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 |
Bejelentkezés
Hirdetés |