> > display.Program works fine in MPLAB-SIM, but it doesn't work in target
> > system. It doesn't react on keypress at all. The only thing it does is
> that
> > 'g' segment is lit constantly.Here's my code ( part of it was taken from
> > mr.Ilmar Roosma from Weirdsoft ).Can anyone tell me, where the problem
> > is.Hardware is tested and works fine. Thanks for help,
> >
> > Samo
> >
> >
> > ; stolpci
> > ; Matrx.asm ============= shema prikljucitve na pic
> > ; | 1 2 3 4 | RB4
> > ; vrstice | 5 6 7 8 | RB5
> > ; | 9 0 a b | RB6
> > ; | c d e f | RB7
> > ; =============
> > ; RB0 1 2 3
> > ; pokličem:
> > ; call getkey
> > ; rezultat dobim v keychar
> > ;
> > ; pokliče DisplayOut za prikaz na led
> > ;
> > ; Martix klaviatuur v1.0 CopyLeft(c)1999 WeirdSoft Ilmar Roosmaa
> >
> > LIST P=16f84 ; definicija procesorja
> > ERRORLEVEL -302 ; utišam mpasm za napake pri bankah in
> tris
> >
> > __CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC
> >
> > INCLUDE "p16f84.inc"
> >
> > keychar equ 0x10 ; variables
> > zamik equ 0x11
> >
> > ORG 0x0000 ; začetek programa
> >
> > init bsf STATUS,RP0 ; bank 1
> > clrf PORTB
> > movlw b'00001111' ; RB4,5,6,7 vrstice definiram kot izhode
> > movwf TRISB
> > bcf STATUS,RP0 ; bank 0
> > clrf keychar
> >
> >
> > main call getkey ; pokliči rutino getkey
> > call DisplayOut
> >
> > clrf PORTA ; počisti porte, da ne gorijo
> > clrf PORTB ; segmenti, kadar ni treba
> >
> > goto main ; glavni program je neskončna zanka
> >
> > getkey
> >
> >
> > movlw b'11111111' ; postavi vse linije PORTB na '1'
> > movwf PORTB
> >
> > ;prva vrstica
> >
> > bcf PORTB,4 ; postavi prvo vrstico na logično '0'
> > btfss PORTB,0 ; ce je visoko, preskoči, če pa je tipka
> pritisnjena, pojdi
> > goto r0c0 ; na Row0 Column0
> > btfss PORTB,1 ; enako preveri še drugi, tretji
> > goto r0c1 ; in četrti stolpec (tipke
> > btfss PORTB,2 ;1,2,3,A)
> > goto r0c2 ;
> > btfss PORTB,3 ;
> > goto r0c3 ;
> > bsf PORTB,4 ; če ni nič, pojdi na drugo vrstico
> >
> > ;druga vrsta
> >
> > bcf PORTB,5
> > btfss PORTB,0
> > goto r1c0
> > btfss PORTB,1
> > goto r1c1 ; druga vrstica (tipke 4,5,6,B)
> > btfss PORTB,2
> > goto r1c2
> > btfss PORTB,3
> > goto r1c3
> > bsf PORTB,5
> >
> > ;tretja vrsta
> >
> > bcf PORTB,6
> > btfss PORTB,0
> > goto r2c0
> > btfss PORTB,1
> > goto r2c1
> > btfss PORTB,2
> > goto r2c2
> > btfss PORTB,3
> > goto r2c3
> > bsf PORTB,6
> >
> > ;četrta vrsta
> >
> > bcf PORTB,7
> > btfss PORTB,0
> > goto r3c0
> > btfss PORTB,1
> > goto r3c1
> > btfss PORTB,2
> > goto r3c2
> > btfss PORTB,3
> > goto r3c3
> > bsf PORTB,7 ; če pridem do sem, ni bilo nič
> pritisnjeno
> >
> >
> > return
> >
> > r0c0 movlw 1 ;1
> > goto savek
> > r0c1 movlw 2 ;2
> > goto savek
> > r0c2 movlw 3 ;3
> > goto savek
> > r0c3 movlw 10 ;A
> > goto savek
> > r1c0 movlw 4 ;4
> > goto savek
> > r1c1 movlw 5 ;5
> > goto savek
> > r1c2 movlw 6 ;6
> > goto savek
> > r1c3 movlw 11 ;B
> > goto savek
> > r2c0 movlw 7 ;7
> > goto savek
> > r2c1 movlw 8 ;8
> > goto savek
> > r2c2 movlw 9 ;9
> > goto savek
> > r2c3 movlw 12 ;C
> > goto savek
> > r3c0 movlw 14 ;*
> > goto savek
> > r3c1 movlw 0 ;0
> > goto savek
> > r3c2 movlw 15 ;#
> > goto savek
> > r3c3 movlw 13 ;D
> >
> > savek movwf keychar ; omista olek keychar-le
> >
> > return ; kodo pritisnjene tipke imam v keychar
> >
> > DisplayOut
> >
> >
> > movlw b'00000000' ; naredi portb vse izhode
> > tris PORTB
> >
> > call LedTable ; tam bom imel doloceno, kateri segmenti
> bodo
> > movwf PORTB ; prižgani
> >
> > movlw b'11111110'
> > tris PORTA ; omogoči digit sink na PORTA, 0
> > bsf PORTA, 0
> >
> > call delay
> >
> > return
> >
> > LedTable
> > movf keychar, w ; nalozi, katera tipka je
> pritisnjena in
> > addwf PCL, F ; prvi naslov v tabeli
> > retlw b'01000000' ; zato, da mi ni
> treba zmanjšati offseta za 1, ker
> > skoči
> > retlw b'00000110' ; na naslednji naslov + vrednost
v
> keychar
> > retlw b'01011011' ;2
> > retlw b'01001111' ;3
> > retlw b'01100110' ;4
> >
> > retlw b'01101101' ;5
> > retlw b'01111101' ;6
> > retlw b'00000111' ;7
> > retlw b'01111111' ;8
> >
> > retlw b'01101111' ;9
> > retlw b'00111111' ;0
> > retlw b'01110111' ;a
> > retlw b'01111100' ;b
> >
> > retlw b'00111001' ;c
> > retlw b'01011110' ;d
> > retlw b'01111001' ;e
> > retlw b'00110001' ;f
> >
> >
> > delay
> >
> > movlw .200
> > movwf zamik
> >
> > ;zanka decfsz zamik
> > ; goto zanka
> > ;
> > return
> >
> > end
> >
> > --
> >
http://www.piclist.com hint: PICList Posts must start with ONE topic:
> > "[PIC]:","[SX]:","[AVR]:"
> >
> >
> >
>
> --
>
http://www.piclist.com hint: The list server can filter out subtopics
> (like ads or off topics) for you. See
http://www.piclist.com/#topics
>
>
>
>