Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 9 odgovora
  • 3.688 pregleda

Najnovija ↓

Molim pomoc oko pic 12f683 i shift registra 09.11.2014. u 23:21 · pre 145 meseci
izmenjeno 2 puta, poslednji put alarmi ns 10.11.2014. u 00:59
  1. alarmi ns10.11.2014. u 00:59zapis iz teksta poruke
  2. alarmi ns09.11.2014. u 23:35zapis iz teksta poruke
#1
Molio bi za malu pomoc treba da napravim uredjaj koi ce zamenjivati sesmaist tasterta u simlaciji moja ideja radi super al na uredjaju nece moja zamisao je da pic 12f683 gura u dva shift registra 74hc595 i nakon toga da ide na draiver,kad uredjaju dam napon ledice vezane za izlazne pinove samo blicnu,program kucam u pbp evo koda molim vas nek mi neko kaze gde gresim
Code:
#CONFIG 
     __CONFIG  _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF  & _BOD_OFF & _CP_OFF & _PWRTE_ON
    #ENDCONFIG
    DEFINE OSC 4
  Include "modedefs.bas"  ' Pozivanje moda sift registra

'-------------------------- PDESAVANJA -------------------------------
    
    ANSEL = $30
    WPU = $37
    
    CMCON0 = 7                ' Analog comparators off

    TRISIO = %111000          '5-ULAZ
 
 '---------------------- definicije sift recistra-----------------------  
      
 gore var GPIO.4
 dole var GPIO.5 
 stanje var GPIO.3
 INPUT stanje
   'DEFINICIJA PINOVA ZA SIFT REGISTER
'***************************************************   
DataPin var     GPIO.0         ' Shift data pin 0  *
ClkPin  var     GPIO.1         ' Shift clock pin 1 *
Strobe  var     GPIO.2   'PUSTA BBOJ KROZ REGISTAR *
'***************************************************

Strobe = 0

x var word
y var word
x1  var word
y1 var word

x1=0
y1=0
x = 0  'GORE 
y = 0  'DOLE
I VAR BYTE

PAUSE 500
pocetak:
'**************PODIZE**************************

if stanje=0 then podize
if stanje=1 then spusta

podize:
y=0
DO while gore = 1 
loop



do while gore = 0 
loop

x=1
CALL IZLAZ
for i = 1 to 7
x=x*2
call izlaz 
next i
'*************SPUSTA***************
spusta:

x=0
do while dole = 1 
loop


do while gore = 0
loop
y=1
call izlaz


for i = 1 to 7
y=y*2
call izlaz
next i
goto podize
'*********************************************





izlaz:
x1=x
y1=y

Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
pause 500
'*****************STAVLJA GA NA NULU*******************

X1=0
Y1=0 
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
pause 500


return        
End 
   
      
Re: Molim pomoc oko pic 12f683 i shift registra 10.11.2014. u 11:28 · pre 145 meseci #3
Sad sam napisao program koji ce paliti dve ledice preko shift registra ni ovo na masini neradi,u simulatoru radi moze li mi neko reci gde gresim
Code:
#CONFIG 
     __CONFIG  _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF  & _BOD_OFF & _CP_OFF & _PWRTE_ON
    #ENDCONFIG
    DEFINE OSC 4
  Include "modedefs.bas"  ' Pozivanje moda sift registra
 'DEFINE SHIFT_PAUSEUS 1000
'-------------------------- PDESAVANJA -------------------------------
    
    ANSEL = $30
    WPU = $37
    
    CMCON0 = 7                ' Analog comparators off

    TRISIO = %111000          '5-ULAZ
 
 '---------------------- definicije sift recistra-----------------------  
      
 gore var GPIO.4
 dole var GPIO.5 
 stanje var GPIO.3
 INPUT stanje
   'DEFINICIJA PINOVA ZA SIFT REGISTER
'***************************************************   
DataPin var     GPIO.0         ' Shift data pin 0  *
ClkPin  var     GPIO.1         ' Shift clock pin 1 *
Strobe  var     GPIO.2   'PUSTA BBOJ KROZ REGISTAR *
'***************************************************

Strobe = 0

x var byte
y var byte
x1  var byte
y1 var byte

x1=0
y1=0
x = 0  'GORE 
y = 0  'DOLE
I VAR BYTE

'PAUSE 500

 izlaz:
do
x1=1
y1=1


Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
pause 500
'*****************STAVLJA GA NA NULU*******************

X1=0
Y1=0 
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
pause 500

  loop


Re: Molim pomoc oko pic 12f683 i shift registra 11.11.2014. u 08:37 · pre 145 meseci #6
Treba prvo da proveriš da li tvoj PIC uopšte nešto radi sa postavkama u konfiguraciji koju si odabrao. Predlažem ti da napišeš najobičniji program koji će ti u petlji, podizati na jedan i spuštati na nulu naponski nivo na data pinu. Pošto imaš osciloskop videćeš da li PIC radi bar nešto. Nakon toga možeš dalje.
Potpis
gorankg
Re: Molim pomoc oko pic 12f683 i shift registra 11.11.2014. u 09:59 · pre 145 meseci #7
radi sa ovim postavkama pali gasi led,cita stanje tastera sve radi sem shift registra a ploca je dobra napisao mi je drugar tesst cod u protonu koji radi,znaci greska je u mom kodu
Re: Molim pomoc oko pic 12f683 i shift registra 12.11.2014. u 18:21 · pre 145 meseci #9
Bio bi red da napišeš i gde si pogrešio, barem da drugi početnici ne naprave istu grešku.
Potpis
--
Make no mistake between my personality and my attitude.
My personality is who I am.
My attitude depends on who you are.
Re: Molim pomoc oko pic 12f683 i shift registra 13.11.2014. u 00:45 · pre 145 meseci #10
Izvinjavan se u konfiguraciji je bio problem evo koda koji radi:
Code:
#CONFIG 
     __CONFIG  _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF  & _BOD_OFF & _CP_OFF & _PWRTE_ON
 #ENDCONFIG
 DEFINE OSC 8
' Include "modedefs.bas"            ' Pozivanje moda sift registra
' Shiftout Modes
Symbol LSBFIRST = 0     ' LSB first
Symbol MSBFIRST = 1     ' MSB first
DEFINE SHIFT_PAUSEUS 100
'-------------------------- PDESAVANJA --------------
        ANSEL = 0        ' Set all digital
        CMCON0 = 7       ' Analog comparators off
        WPU = 0 '??????????
     TRISIO     = %00111000  ' TRISIO     = %111000     '012-Izlaz 345 Ulaz
        OPTION_REG = %11000000
'        ANSEL      = %00000000     ' select all digital
        OSCCON     = %01110101     ' 8Mhz
'        CMCON0     = %00000111     ' disable comparator
      
 
 
 
 
 
 gore var GPIO.4
 dole var GPIO.5 
 stanje var GPIO.3
 INPUT stanje
   'DEFINICIJA PINOVA ZA SIFT REGISTER
'***************************************************   
DataPin var     GPIO.0         ' Shift data pin 0  *
ClkPin  var     GPIO.1         ' Shift clock pin 1 *
Strobe  var     GPIO.2   'PUSTA BBOJ KROZ REGISTAR *
'***************************************************

Strobe = 0

x var byte
y var byte
x1  var byte
y1 var byte

x1=0
y1=0
x = 0  'GORE 
y = 0  'DOLE
I VAR BYTE

Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10

;PAUSE 500
pocetak:
'**************PODIZE**************************

if stanje=0 then goto podize
if stanje=1 then goto spusta

podize:
y=0
DO while gore = 1 

'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0 
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
'************************************************************
loop



do while gore = 0 
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0 
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
'************************************************************

loop

x=1
gosub IZLAZ
for i = 1 to 7
x=x*2
gosub izlaz 
next i
'*************SPUSTA***************
spusta:

x=0
do while dole = 1 
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0 
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
'************************************************************

loop


do while gore = 0
'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0 
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
'************************************************************
loop
y=1
gosub izlaz


for i = 1 to 7
y=y*2
gosub izlaz
next i
goto podize
'*********************************************





izlaz:
x1=x
y1=y

Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
'pause 500
'***************PODESAVANJE PAUZA************************
'X1-GORNJI RED
'Y DONJI RED
IF X1 = 1 THEN PAUSE 1000 'pin J8
if x1 = 2 then pause 1000  'PIN J7
IF X1 = 4 THEN PAUSE 2000  'PIN J6
if x1 = 8 then pause 4000   'PIN J5
if x1 = 16 then pause 2000   'PIN J4
if x1 = 32 then pause 2000   'PIN J3
if x1 = 64 then pause 2000    'PIN J2
if x1 = 128 then pause 2000   'PIN J1



if y1 = 1 then pause 2000     'PIN J16
IF Y1 = 2 THEN pause 2000      'PIN 15
if y1 = 4 then pause 2000      'PIN 14
if y1 = 8 then pause 2000      'PIN 13
if y1 = 16 then pause 2000     'PIN 12
if y1 = 32 then pause 2000     'PIN 11
IF Y1 = 64 then pause 2000     'PIN 10
if y1 = 128 then pause 1000    'PIN 9




'*****************STAVLJA GA NA NULU*******************
X1=0
Y1=0 
Shiftout DataPin, ClkPin, MSBFIRST,[Y1,X1]'PRVI BROJ JE ZADNJI SHIFT REGISTAR 
Pulsout Strobe,10
'************************************************************
pause 500


return        
End
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme