Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: pic16f84 ohjelmointi

ApTyp [09.05.2006 10:36:09]

#

Moro!
kuka tajua PIC:in ohjelmointi?
Voisitko joku autaa?
Mä teen semmonen ohjelma, joka muunnnetaan muistipaikkassa 20H oleva 16-bittisen heksaluvun BCD-koodiin. BCD-luvun ykköset on muistipaikassa 34H, kympit paikassa 33H, sadat paikassa 32H, tuhannet paikassa 31H, kympituhannet paikassa 30H
Alkuarvot ovat seuraavat. Muistipaikkat:

heksaluku msb 20h
heksaluku lsb 21h

BCD-luku 10000 30H (Hex 2710)
BCD-luku 1000 31H (Hex 03EB)
BCD-luku 100 32H (Hex 0064)
BCD-luku 10 33H (Hex 000A)
BCD-luku 1 34H (Hex 0001)

Autakaa pliiz!
Mä taisteleen jo kaksi viikoa eikö vielä onistuu =(
Kiitos jo etukäteen avusta!!

siina on alku osaa koodia, mutta se voi olla väärin.

***********************
list p=16F84
#include <P16F84.inc>

__CONFIG 0X3FF1


;****OHJELMAKOODI***

binluku equ 0xff
bin equ 0x21
apubin 0x21

kymtuhannet 0x30
tuhannet 0x31
sadat 0x32
kympit 0x33
ykko 0x34

kymtuhat equ .10000 ;0x2710
tuhat equ .1000 ;0x03e8
sata equ .100 ;0x64
kym equ .10 ;0x0a

org 0x00
goto alku

org 0x0006

alku

clrf kymtehannet
clrf tuhannet
clrf sadat
clrf kympit

movlw binluku
movwf bin

tak
subwf apubin,f
movlw kymtuhat d'10000' ;lataa 10000
movwf tuhat
btfss status,c
movwf kymtuhat

ohi1

call cmp, nsh
btfss status,c,a ; k jos x>=k
goto tak1
call cub, nsh ;x=x-k
incf kymtuhat, f
goto ohi1

****************************

miiro [09.05.2006 11:20:42]

#

No ainakin kymmenten tuhansien kohdalla kutsutaan(?) aina eri juttuja:
kymtuhannet 0x30
kymtuhat equ .10000 ;0x2710
clrf kymtehannet
movlw kymtuhat d'10000' ;lataa 10000
...
olisiko noissa virhe?

ApTyp [09.05.2006 13:08:22]

#

ei ole, se pitää paikansa.

tossa pieni pätkä joka mä teen uudesta.

kymtuhat	equ	0x30
tuhat		equ	0x31
sadat		equ	0x32
kympit		equ	0x33
ykko		equ	0x34

kymtuhat2	equ	.10000 	;2710
tuhat2		equ	.1000	;03e8
sadat2		equ	.100	;0064
kympit2		equ	.10	;000a

ja tossa on valmiina koodi ilman virheitä, mutta se ei toimii, sanokaa missä on virhe?

list	p=16f84
#include <p16F84.inc>
__config 0x3ff1

;***** Ohjelmakoodi***

binluku	equ	0xff ;255
bin		equ	0x20 ;32
apubin	equ	0x21 ;33


kymtuhat	equ	0x30
tuhat		equ	0x31
sadat		equ	0x32
kympit		equ	0x33
ykko		equ	0x34

kymtuhat2	equ	.10000 	;2710
tuhat2		equ	.1000	;03e8
sadat2		equ	.100	;0064
kympit2		equ	.10		;000a


			org	0x00
goto		alku
			org	0x0006

alku
	clrf kymtuhat2
 	clrf tuhat2
	clrf sadat2
	clrf kympit2

	movlw	binluku
	movwf	bin

	movf	bin,W
	movwf	apubin
	movlw	kymtuhat

tak
	subwf	apubin,f
	btfss	STATUS,C
	goto	ohi1
	incf	tuhat,f
	goto	tak

ohi1
	addwf	apubin,f
	movlw	tuhat2

tak2
	subwf	apubin,f
	btfss	STATUS,C
	goto	ohi2
	incf	tuhat,f
	goto	tak2

ohi2
	addwf	apubin,f
	movlw	sadat2

tak3
	subwf	apubin,f
	btfss	STATUS,C
	goto	ohi3
	incf	sadat,f
	goto	tak3

ohi3
	addwf	apubin,f
	movlw	kympit2

tak4
	subwf	apubin,f
	btfss	STATUS,C
	goto	ohi4
	incf	kympit,f
	goto	tak4

ohi4
	addwf	apubin,f
	movf	apubin,W
	movwf	ykko

	nop

	end

tesmu [10.05.2006 13:46:35]

#

Kysäsenpäs tässä, että miksi et käytä tuon pic piirin mukana tullutta vuokaaviosuunnittelu ohjelmaa? Sillä saisit paljon helpommin tuon tehtyä.

ApTyp [15.05.2006 09:37:58]

#

Ongelma on se, että piirin mukana ei tullut yhtää mitää. Voisitko pistä ohjelman nimi?

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta