16F887

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Zpráva
Autor
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#16 Příspěvek od net »

Zdravím,může prosím MiloPS3 fungovat tvůj návrh jako up-down přepínač?Popř.jak se dá testovat,který výstupní pin je zrovna aktivní-nebo to funguje jinak?Díky.
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#17 Příspěvek od MiloPS3 »

ehmm, nejak nechapu na co vsecho se ptas ?
Aještě si dovolím další- např.na RB0 a RB1 tlačítka,na portd 0-7 led ,RB0 zapínat nahoru,RB1 zase dolu 7-0.Ještě jednou dík.

Kód: Vybrat vše

     LIST      p=16F887            ; nastavení typu procesoru
     #INCLUDE   <P16F887.INC>      ; definice proměnných pro tento procesor
   errorlevel -302

; === NASTAVENÍ KONFIGURAČNÍHO SLOVA ===
   __CONFIG    _CONFIG1, _LVP_OFF & _FCMEN_OFF & _IESO_OFF & _BOR_OFF & _CPD_OFF & _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_OSC_NOCLKOUT
   __CONFIG    _CONFIG2, _WRT_OFF & _BOR21V

; === PROGRAM ===

RESET   ORG      0x0000      ; začátek programu na adrese 0000h

; Inicializace portů

   BANKSEL ANSEL
   CLRF   ANSEL
   CLRF   ANSELH

   BANKSEL   PORTD
   CLRF   PORTD
   MOVLW   0x01
   MOVWF   PORTD
   BANKSEL   TRISD
   MOVLW   0x00
   MOVWF   TRISD

   BANKSEL   TRISB
   MOVLW   0x03
   MOVWF   TRISB
   BANKSEL   PORTB

#define tl_leva PORTB,0
#define tl_prava PORTB,1

   goto start

pauza
   ;cekaci smycka treba pro 50ms
   return
   
led_leva
   rlf PORTD,f
   call pauza
   return
   
led_prava
   rrf PORTD,f
   call pauza
   return
   
start
   btfss tl_leva
   call led_leva
   btfss tl_prava
   call led_prava
   MOVLW   0x0
   movf PORTD,w
   goto start


      END
ono to tak nefunguje ?
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#18 Příspěvek od net »

No zatím se mi nějak nedaří,možná se už blížím.Dík.
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#19 Příspěvek od MiloPS3 »

jak to mas zapojeny ? schema..uka
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#20 Příspěvek od net »

Schema zatím není jenom to zkouším na PICkitu2 a demo boardu osaz.16f887 na který jsem přidal další odpor a tlačítko na RB1-na RB0 je origo a dále potom je na výstup RD0-7 zapojeno 8 ks.LED.Dokumentaci můžu přiložit.Teď jsem ten asm rohodil totálně,připojím až to bude trochu funkční.Díky.
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#21 Příspěvek od MiloPS3 »

trochu funkcni ? jen sem upravil define pro tlacitko a pridal zpozdeni 100ms ...-> http://youtu.be/IzfcSoOj81w
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#22 Příspěvek od net »

Pěkné,už budu funkční asi taky,ještě jsem to nestihal nahrát do desky.V LABsimu to zatím maká.Jsem si to trochu zahnojil tím zpožděním.Jak to dám tak se ozvu.Zatím velké díky
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#23 Příspěvek od net »

Zdravim,konečně jsem se k tomu opět dostal,asm poopravil,nahrál a konečně funguje.Ještě dotaz,když se využije např.pouze šest pinů portud jako výstup-budu spínat 6ks.led,zbytek pinů nastavím jako vstup?Nevím zda je to předpisové s ohledem na možné pronikání rušení do vstupu kontroleru,nebo je možné jiné řešení?Díky
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#24 Příspěvek od MiloPS3 »

zbytek pinů nastavím jako vstup
ano, a pridat pullupy 20K+
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#25 Příspěvek od net »

Díky MiloPS3,máš dobré nervy.Ještě se vtom štourám dál a zkouším,aby při krokování nahoru,nebo dolu se mi to automaticky nevrátilo zpět na první led tzn.např.levá LED1-8,stisknu levá-bez reakce-pravá LED8-1.atd.Neví jak jsem to popsal.Díky za nápovědu.
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#26 Příspěvek od MiloPS3 »

V tomhle pripade muzes testovat az se nastavi 6 nebo 7 bit a upravit podletoho stav registru
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#27 Příspěvek od net »

Díky,mám na tejden o večery postaráno potom se ozvvu.
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#28 Příspěvek od net »

Zdravím,chci poděkovat především MiloPS3 za pomoc.Se mi to podařilo dokončit a otestovat v zapojení,pro kontrolu přikládám asm zda je to použitelné.Ještě jeden dotaz-chci,aby po zapnutí svitila první LED.Jsem to zkoušel při inicializaci dát na portd0 1,ale je to blbbost pač mi pak spolu posune vždy dvě LEDky.Možné řešení asi je uložit poslední stav portu do eeprom to si možná později zkusím.Zatím hledám řešení bez použití eep.
Děkuji.
Přílohy
tlac.txt
(1.5 KiB) Staženo 123 x
Uživatelský avatar
MiloPS3
Příspěvky: 279
Registrován: 07 srp 2010, 00:00

#29 Příspěvek od MiloPS3 »

Jsem to zkoušel při inicializaci dát na portd0 1,ale je to blbbost pač mi pak spolu posune vždy dvě LEDky
neni, koukni se jak funguje instrukce rotace a pak ti to mozna cvakne (kde se asi bere ta druha 1 na portu ??)
jinak pokud ti to funguje jak ma tak muzes bejt spokojenej...
Uživatelský avatar
net
Příspěvky: 205
Registrován: 07 kvě 2004, 00:00

#30 Příspěvek od net »

No domnívám se,že by mohlo fungovat nulování bitu carry ten tam asi tlačí další I.

start
bcf STATUS,C ?????
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“