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
****************************
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?
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
Kysäsenpäs tässä, että miksi et käytä tuon pic piirin mukana tullutta vuokaaviosuunnittelu ohjelmaa? Sillä saisit paljon helpommin tuon tehtyä.
Ongelma on se, että piirin mukana ei tullut yhtää mitää. Voisitko pistä ohjelman nimi?
Aihe on jo aika vanha, joten et voi enää vastata siihen.