Sari la conținut
ELFORUM - Forumul electronistilor

Probleme de incepatori


Postări Recomandate

buna seara , mi am cumparat un lcd 16 x2 compatibil hd447... si am un atm 8535. Am copiat un cod de undeva sa mi afiseze ceva simplu dar doar imi apar "patratelele "de pe prima linie nimic scris. Am configurat in bascom dar si in soft db7- portb7, db6 -portb6, etc asa cum se vede in program si am legat si R/W la masa dar tot nu apare decat 1 linie. are cineva vreo idee? Pe unele site-uri din afara cineva dadea ca solutie configurarea "jtag" ceva de genul care habar nu am ce este $regfile = "m8535.dat"$crystal = 4000000Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2Dim A As ByteConfig Lcd = 16 * 2ClsLcd "Hello world."Wait 1LowerlineWait 1Lcd "Shift this."Wait 1End

Link spre comentariu

Incearca si cu, codul de mai jos.

Mie imi functioneaza perfect

 

$regfile = "m8535.dat"$crystal = 4000000Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2Config Lcd = 16 * 2Cursor OffWaitms 200ClsHome UpperLcd "  Hello world.  "Wait 1LowerlineLcd "  Shift this.  "Wait 1End
Link spre comentariu

faptul ca apare prima linie inseamna ca LCD-ul este alimentat (dooh) si ca s-a reglat contrastul la o valoare buna, dar mai inseamna ca desi e pornit, LCD-ul nu este initializat. Nu stiu cum lucreaza bascom dar stiu ca in C ai de definit si DDR (DATA DIRECTION REGISTER) pentru proturile folosite ca sa stie daca e intrare sau iesire. In cod-ul postat mai sus nu vad o asemenea definitie; face compilatorul automat? mai vad ca ai setat frecventa cristaulului la 4mhz... dar din fusebits sigur ai setat Osci. Int. 4 Mhz? si inca ceva as sugera... sa introduci un delay de la pornirea MCU-ului si pana la initializarea LCD-ului.Pe langa chestiile astea de soft sugerez sa folosesti conzi de 100nF atat la MCU cat si la LCD intre VCC(VDD) si GND(VSS) cat mai aproape de ele. Si o ultima chestie, pe liniile de date si de control sa folosesti PULL-UP RESISTORS (4.7kR - 10kR)

Link spre comentariu

Pe langa sfaturile celorlalti as adauga faptul ca, potrivit progarmului postat de tine, uC habar nu are ce trebuie sa faca cu Portul B atata timp cat nu ii spui ca este port de iesire sau de intrare.Introdu: Config PORTB = outputsi, eventual, INITLCDLate edit:Cu asta incepe orice program in BASCOM$regfile = "8535def.dat" ' specify the used micro$crystal = 8000000 ' used crystal frequency'$baud = 19200 ' use baud rate$hwstack = 32 ' default use 32 for the hardware stack$swstack = 8

Link spre comentariu

nu ma pricep deloc la lcd-uri acum invat si voi incerca cum mi ati spus. Problema este ca nimeni nu pune coduri complete doar ce v-am scris ca si cum ar vrea sa incurce :)) pun aproape tot inafara de init si de declararea porturilor care era normala pt celelalte softuri dar nu stiam ca si pt lcd. Oricum de ce le posteaza incomplet nu stiu. Nu ma refer la cei de aici ci de pe celelalte forumuri si tot netul(aproape :P)

Link spre comentariu

absolut nici un rezultat desi am setat in bascom pinii si am scris si softul:$regfile = "m8535.dat"$crystal = 4000000Config PORTB = outputConfig Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2Config Lcd = 16 * 2 INITLCDCursor OffWaitms 200ClsHome UpperLcd " Hello world. "Wait 1LowerlineLcd " Shift this. "Wait 1End

Link spre comentariu

ar mai fi ceva de adaugat... (btw... nu ai confirmat sugestiile hardware daca le-ai pus in practica)

 

libraria de control a lcd-ului poate are setat default sa lucreze pe 8 biti de date iar tu vad ca lucrezi cu 4 biti de date. cred ca trebuie sa definesti modul de lucru pe 4 biti inainte de initalizarea lcd-ului. mentionez ca nu stiu cum se face cu bascom ca ma uit ca si curca-n beton la codul ala.

 

fa si o schema/poza sa vedem ce e acolo.

 

uite asta am mai gasit pe goagal:

Config lcdmode = PORT

nu stiu ce face dar la tine lipseste... si cica default e pe 4 biti de date asa cum folosesti si tu, deci nu asta ar fi problema.

Link spre comentariu

absolut nici un rezultat desi am setat in bascom pinii si am scris si softul:

$regfile = "m8535.dat"

$crystal = 4000000

$hwstack = 32 ' default use 32 for the hardware stack

$swstack = 8 si astea trebuie introduse in program.

Config PORTB = output

 

Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.3 , Rs = Portb.2

Config Lcd = 16 * 2

INITLCD

 

 

Cursor Off

Waitms 200

Do

Cls

locate 1,1 ; pozitioneaza cursorul pe primul rand prima coloana

Lcd " Hello world. "

Wait 1

locate 2,1

Lcd " Shift this. "

Wait 1

loop

End

Daca nici asa nu merge, verifica:

-existenta unor scurturi intre pinii de date sau intre pinii RS/RW/E

-faptul ca pinul R/W(pinul 5) este pus la masa

- existenta tensiunii de alimentare pe pinul 2 (Vcc)

- faptul ca ce ai in program din pdv al conexiunilor la LCD corespund cu realitatea cruda/practica(intelegi ce vreau sa spun)

Link spre comentariu

Dupa 8-10 ore de stat incontinuu pana azi dimineata la 8 am realizat performanta sa mi afiseze mesajul pe lcd. Am schimbat pana si modulul de display cu altul, nici un rezultat. Am schimbat codul in toate variantele posibile, cu options di Bascom-> data mode: pin apoi bus si nr biti pe 4 sau 8 felul lc ului 16 x 2 si 16 x 1a si pana l urma foarte tarziu am reusit schimband atmega 8535 cu altul.Desi programatorul mi l recunoaste si scrie de ce nu a mers? Multumesc tuturor celor care m au ajutat :101

Link spre comentariu

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
×
×
  • Creează nouă...

Informații Importante

Am plasat cookie-uri pe dispozitivul tău pentru a îmbunătății navigarea pe acest site. Poți modifica setările cookie, altfel considerăm că ești de acord să continui.Termeni de Utilizare si Ghidări