Sari la conținut
ELFORUM - Forumul electronistilor

Probleme de incepatori


ole

Postări Recomandate

Se pot cupla la acelasi LCD doua sau mai multe CIP-uri (Device-uri). Conditia este ca sa se cupleze terminalele de date si de comanda cu diode de comutatie rapida (1N4148) de la fiecare cip in parte spre LCD. deasemenea ca sa comute diodele trebuie sa fie "incarcate" pe sarcina de 1K la masa. Vezi foto.P.S. Dupa ce am postat am vazut ca te-ai documentat. Oricum las poza sa o vada cei interesati.

Multumesc pentru ajutorul acordat atat aici cat si pe mail (in legatura cu SMT-ul), aceasta poza chiar e de mare ajutor... :da
Link spre comentariu
  • 4 săptămâni mai târziu...

Salutare.Am o problema cu un releu...Am simulat in proteus o schema cu atmega8 care printr-un port trebuie sa activeze respectiv sa dezactiveze un releu de 12V care este legat printr-un tranzistor PNP la tensiunea pozitiva a unui stabilizator de 12v.....insa problema este ca acel releu sta cuplat si daca portul este 1 si daca portul este 0, deci releul este cuplat si cand ar trebui sa fie decuplat.....sa fie doar la simulare asa? momentan nu am inca piesele sa pot verifica, dar nici cand vin nu e usor de verificat deoarece am comandat atmega8SMD si nu vreu sa fac cablajulcu greseli...Multumesc.L.E. Problema rezolvata, se pare ca trebuia tranzistori NPN.

Link spre comentariu

buna ziuace trebuie sa modific la cod ca sa merga cu cristal de 12 mhz? $regfile "m8def.dat" $crystal = 8000000$baud = 19200Declare Sub Lover_text()Config Pind.2 = InputConfig Pind.3 = InputConfig Pind.4 = InputConfig Pind.6 = OutputPortd.2 = 1Portd.3 = 1Portd.4 = 1Portd.6 = 0Dim A As IntegerDim Secounds As ByteDim Minutes As ByteDim Hours As ByteLet Secounds = 0Let Minutes = 0Let Hours = 0Let A = 0Config Lcd = 16 * 2Deflcdchar 0 , 32 , 21 , 14 , 4 , 4 , 10 , 17 , 17 ' replace ? with number (0-7)Deflcdchar 1 , 32 , 4 , 14 , 14 , 14 , 4 , 4 , 4 ' replace ? with number (0-7)Config Timer1 = Timer , Prescale = 1024On Ovf1 Tim1_isrLoad Timer1 , 7812Setclock:Disable InterruptsLet Secounds = 0ClsCursor On BlinkLcd "Time: "LowerlineLcd "Setati Ora!"Locate 1 , 9Lcd ":"Locate 1 , 12Lcd "."Do If Pind.3 = 0 Then Minutes = Minutes + 1 If Minutes = 60 Then Minutes = 0 Waitms 200 End If If Pind.2 = 0 Then Hours = Hours + 1 If Hours = 24 Then Hours = 0 Waitms 200 End If If Pind.4 = 0 Then Exit Do Locate 1 , 7 Lcd " " Locate 1 , 7 Lcd Hours Locate 1 , 10 Lcd " " Locate 1 , 10 Lcd Minutes Locate 1 , 13 Lcd " " Locate 1 , 13 Lcd Secounds Waitms 50LoopEnable Timer1Enable InterruptsCursor Off NoblinkCall Lover_text()Do Toggle Portd.6 Waitms 100 If Pind.4 = 0 Then Waitms 10 While Pind.4 = 0 Nop Wend Goto Setclock End IfLoopTim1_isr: Load Timer1 , 7812 If Secounds = 60 Then Secounds = 0 Minutes = Minutes + 1 If Minutes = 60 Then Minutes = 0 Locate 1 , 10 Lcd " " Hours = Hours + 1 If Hours = 24 Then Hours = 0 Locate 1 , 7 Lcd " " Call Lover_text() nop nop End If End If End If Locate 1 , 7 Lcd Hours Locate 1 , 10 Lcd Minutes Locate 1 , 13 Lcd " " Locate 1 , 13 Lcd Secounds Locate 1 , 16 If A = 0 Then Lcd Chr(0) A = 1 Elseif A = 1 Then Lcd Chr(1) A = 0 End If Secounds = Secounds + 1ReturnEndSub Lover_text() Locate 2 , 0 Lcd " Hello"End Sub

Link spre comentariu

buna ziuace trebuie sa modific la cod ca sa merga cu cristal de 12 mhz?$regfile "m8def.dat"$crystal = 8000000$baud = 19200............................................................

Pai prima data trebuie sa-i spui compilerului ca ai cristal de 12Mhz :$crystal = 12000000dar nu e de ajuns trebuie sa scrii si fusebitii de cristal extern si sa ai si cristalul deja conectat la microcontroler conform cu schema din datasheet.Dar de ce vrei sa treci uC la 12 Mhz ????
Link spre comentariu

pentru ca nu gasesc 8Mhz daca il las pe oscilator intern, si sterg cristalul din cod, o secunda pe ceasul meu este echivalenta cu vreo 8-10 secunde pe un ceas normal :)mda, nu prea as avea curaj sa ma bag la fusebiti

Link spre comentariu

pentru ca nu gasesc 8Mhz daca il las pe oscilator intern, si sterg cristalul din cod, o secunda pe ceasul meu este echivalenta cu vreo 8-10 secunde pe un ceas normal :)mda, nu prea as avea curaj sa ma bag la fusebiti

Nu cred ! Gresesti ceva !Nu am timp acum sa ma uit dar nu cred ca ai setat bine timerul .de acolo cred ca e problema.
Link spre comentariu

Pentru @costyy86. E normal ca un pmp legat la +12 V sa ramana deschis, are tot timpul un minus pe baza. Pune un npn legat la minusul comun si schimba logica iesirii. Se poate si cu pnp daca se pune plusul sursei Atmega la + 12 V (plusul comun).

Link spre comentariu

am reusit sa scriu fusebitii pentru 4mhzdar ceasul tot ramane putin in urmaadica 1 secunda de a lui acuma e chivalenta cu 2 secunde pe un ceas obisnuitce trebuie sa ii mai fac?

Link spre comentariu

Poate te ajuta asta ca idee. Softul nu l-am testat hardware. Poti sa schimbi lcd-ul grafic cu unul alphanumeric.

Trebuie sa folosesti intre TOSC1 si TOSC2 un quartz de 32.768 KHz.

 

Bafta!

 

$regfile = "m128def.DAT"$crystal = 8000000'$baud = 19200'$eepleave'$loadersize = 512$hwstack = 100$swstack = 75$framesize = 40Config Graphlcd = 240 * 128 , Dataport = Porta , Controlport = Portc , Ce = 3 , Cd = 0 , Wr = 2 , Rd = 1 , Reset = 4 , Fs = 5 , Mode = 6Config Portb.0 = Input : Portb.0 = 1                        ' EnterConfig Portb.1 = Input : Portb.1 = 1                        ' SUS buttonConfig Portb.2 = Input : Portb.2 = 1                        ' JOS buttonConfig Portb.3 = Input : Portb.3 = 1                        ' Go to Select MenuConfig Clock = SoftEnable InterruptsDeclare Sub Seteaza_timpul()Declare Sub Ceas()Dim Hour As Byte , Minut As ByteDim Password As String * 5 , A As Byte , B As Byte , Pass1 As Word , Pass As Word , Menu_byte As Byte Menu_sel:   Do' ******************** SELECTEAZA MENIUL   Cls   Locate 1 , 1   Lcd " START "   Locate 3 , 1   Lcd " Intra in meniu (apasa butonul SUS) "   Bitwait Pinb.1 , Reset   Menu_byte = 1Do  If Pinb.0 = 0 Then Exit Do  If Pinb.1 = 0 Then     Incr Menu_byte     If Menu_byte > 2 Then Menu_byte = 1     Cls     Locate 1 , 1     Lcd " ESTI IN MENIU (apasa butonul SUS pentru                a selecta submeniurile) "     Locate 4 , 1     If Menu_byte = 1 Then Lcd " 2. CEAS (apasa ENTER)           "     If Menu_byte = 2 Then Lcd " 1. SETEAZA TIMPUL (apasa ENTER) "     Waitms 200  End IfLoop   Bitwait Pinb.0 , Set   Select Case Menu_byte   Case 1 : Call Ceas()   Case 2 : Call Seteaza_timpul()   Case Else : Cls              Lcd "ERROR"              Wait 2   End SelectLoopDoIf Pinb.1 = 0 Then                                          'UP   Incr A   If A > 9 Then A = 0   Waitms 200   Locate 4 , B   Lcd A   Locate 4 , BEnd IfIf Pinb.2 = 0 Then                                          'DOWN   Decr A   If A > 9 Then A = 9   Waitms 200   Locate 4 , B   Lcd A   Locate 4 , BEnd IfIf Pinb.0 = 0 Then                                          'ENTER   Incr B  Password = Password + Str(a)   If B < 5 Then     'Shiftcursor Right      Waitms 300   End IfEnd IfLoop Until B = 5Cursor Off' ******************* SETEAZA TIMPULSub Seteaza_timpul()ClsLocate 1 , 1Lcd "SETEAZA TIMPUL, butonul SUS setezaza                    minutele si JOS seteaza                 ora, apoi apesi ENTER"Locate 4 , 1Time$ = "00:00:00"Lcd Time$Hour = _hourMinut = _minDoIf Pinb.1 = 0 Then                                          'UP  for edit minute   Incr Minut   If Minut > 59 Then Minut = 0   Waitms 200   Locate 4 , 4   If Minut < 10 Then Lcd "0"   Lcd MinutEnd IfIf Pinb.2 = 0 Then                                          'DOWN  for edit hour   Incr Hour   If Hour > 23 Then Hour = 0   Waitms 200   Locate 4 , 1   If Hour < 10 Then Lcd "0"   Lcd HourEnd IfIf Pinb.0 = 0 Then                                          'ENTER   for exit and save time   _hour = Hour   _min = Minut   'Exit Do   Goto Afiseaza_oraEnd If  If Pinb.3 = 0 ThenClsLcd "EXIT TO MENU"   Bitwait Pinb.3 , Set   Goto Menu_sel End IfLoopEnd Sub' *******************   ClockAfiseaza_ora:Sub Ceas()   Cls   Do Locate 1 , 1   Lcd Time$ ; " (pentru revenire la START apesi          EXIT) " If Pinb.3 = 0 ThenClsLcd "EXIT TO MENU"   Bitwait Pinb.3 , Set   Goto Menu_sel End IfLoopEnd Sub
Link spre comentariu

Poate te ajuta asta ca idee. Softul nu l-am testat hardware. Poti sa schimbi lcd-ul grafic cu unul alphanumeric.Trebuie sa folosesti intre TOSC1 si TOSC2 un quartz de 32.768 KHz.

$crystal = 8000000cristalul vad ca e de 8 mhz de ce 32.768KHz??
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