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: 200
Registrován: 07 kvě 2004, 02: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: 259
Registrován: 07 srp 2010, 02: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: 200
Registrován: 07 kvě 2004, 02: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: 259
Registrován: 07 srp 2010, 02:00

#19 Příspěvek od MiloPS3 »

jak to mas zapojeny ? schema..uka

Uživatelský avatar
net
Příspěvky: 200
Registrován: 07 kvě 2004, 02: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: 259
Registrován: 07 srp 2010, 02: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: 200
Registrován: 07 kvě 2004, 02: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: 200
Registrován: 07 kvě 2004, 02: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: 259
Registrován: 07 srp 2010, 02: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: 200
Registrován: 07 kvě 2004, 02: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: 259
Registrován: 07 srp 2010, 02: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: 200
Registrován: 07 kvě 2004, 02: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: 200
Registrován: 07 kvě 2004, 02: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 101 x

Uživatelský avatar
MiloPS3
Příspěvky: 259
Registrován: 07 srp 2010, 02: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: 200
Registrován: 07 kvě 2004, 02: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ů“