Asm Kod Hatası
-
Merhaba arkadaşlar pic16f877 b portundan pcye 8 bitlik data göndercem ama asm kodumda hata var 7 bit gönderiyo yani 127,toplam 255 göndermiyo bu sorunu bi türlü çözemedim devrede hata yok ama kodda hata var bi yerde bulamadım yardımcı olursanız çok sevinirim bnm için çok önmli.Şimdiden Teşekkürler...
LIST P=16F877
INCLUDE "P16F877.INC"
SAY EQU H'10'
SAY1 EQU H'11'
SERI_BILGI EQU H'12'
SERI_SAY EQU H'13'
BT EQU H'14'
; Kurulum: Pic icin uclarin giris ve cikis ayarlari yapilir.
BSF STATUS,RP0 ;Bank1'e gec
BCF STATUS,RP1
MOVLW B'111110' ;PORTA 0.'bit cikis, digerleri giris
MOVWF TRISA
MOVLW H'FF' ;PORTB >> tamami giris
MOVWF TRISB
MOVWF H'FF' ;PORTC >> tamami giris
MOVLW TRISC
MOVWF H'FF' ;PORTD >> tamami giris
MOVLW TRISD
MOVWF H'FF' ;PORTE >> tamami giris
MOVLW TRISE
BCF STATUS,RP0 ;Bank0'a gec
BCF STATUS,RP1
BSF PORTA,0 ;RS232C port << yuksek
;gonder butonu kontrol edilir
MOVF PORTB,W ;PORTB'deki 8 bitlik bilgiyi W kaydedicisina atar.
MOVWF SERI_BILGI ;yani verdigimiz datayi kendi icine kaydeder(!)
CALL MAIN ;Ana programi cagirir
STOP GOTO STOP
;ana program seri bilgiler gonderilir.
MAIN
SND BCF PORTA,0 ;Baslam biti >> dusuk >> Seri iletisimi baslatir
CALL TIMER ;3.3ms timer >> 300bps
MOVLW 8 ;bilgi >> 8bit
MOVWF SERI_SAY ;
SND1 RRF SERI_BILGI,F ;1 bit saga kaydirir.
BTFSC STATUS,C ;carry bitini kontrol et (check data bit)
GOTO BITON ;carry bit = 1 >> goto BITON
BCF PORTA,0 ;carry bit = 0 >> RA0 bit dusuk
GOTO SND2 ;BITON'u atla
BITON BSF PORTA,0 ;Eğer bilgi (data) =1
SND2 CALL TIMER ;3.3ms timer >> 300bps
DECFSZ SERI_SAY,1 ;Bilgi sonu?
GOTO SND1 ;bilgi sonu degilse SND1 e git
BSF PORTA,0 ;bitis biti >> yuksek >> seri iletisi sona erdirir.
CALL TIMER
CALL TIMER
RETURN
; Baud Rate = 2400
TIMER
MOVLW H'86'
MOVWF BT
NEXT DECFSZ BT,F
GOTO NEXT
RETURN
END
-
fireexxx biri seni çağırıo galiba...
şaka bi yana arkadaşım anlamadıım az sayıdaki dillerden biride Asambly -->Kolay gelsin[gelmez ya]
-
Hoca bi yerde bişe var ama onu bi bulsam diyordum...bulamadım :D
-
ByLord bunu yazdı:
-----------------------------
Hoca bi yerde bişe var ama onu bi bulsam diyordum...bulamadım :D
-----------------------------DECFSZ REGİSTERİN YANINDAKİ BTF yanlış yazmış olabilirsin
-
; timer = 1+1+10*(1+1+110*(1+2)+1+2)+2 =3354us=3.4ms
TIMER
MOVLW D'10' ;1CLOCK
MOVWF CNT ;1CLOCK
DLY1 MOVLW D'110' ;1CLOCK
MOVWF CNT1 ;1CLOCK
DLY11 DECFSZ CNT1,1 ;1CLOCK
GOTO DLY11 ;2CLOCK
DECFSZ CNT,1 ;1CLOCK
GOTO DLY1 ;2CLOCK
RETURN ;2CLOCK
ENDbi önceki kodlamada bu vardı ama yok aynı hata :D
1111111=7 bit bu şekilde yazıyo 01111111 bu şekilde yazmıyo sondaki 8 biti hiç yazmıyo... -
:100000009128A501A400B3172730A30010301420B5
:100010000330A300E8301420A30164301420A301AE
:100020000A30142024081F28A2002508A100240853
:10003000A00070202008031DB313B31B0800303E3E
:10004000A600360884000930A70003102C20A60C57
:10005000A70B262803142C288413B31D3B28000863
:100060003404331D34068000841700083404031C54
:1000700034068000462800083404031C3406331973
:10008000340680008417340980054628330D06396C
:10009000A0004F20A100A00A4F2000005C280030E3
:1000A0008A00200882070134753403341534003483
:1000B0003C340C34D934A101E83EA000A109FC3045
:1000C000031C6528A00703186228A0076400A10F7D
:1000D000622820186B28A01C6F2800006F280800D9
:1000E000A501A4011030A600210DA40DA50D220824
:1000F000A4022308031C230FA50203188628220844
:10010000A40723080318230FA5070310A00DA10DB2
:10011000A60B742820088C28831303138312640011
:10012000080083161E308500FF308600FF308700F0
:10013000FF308800FF308900831264008A110A12A0
:100140008518A5288A110A12A7288A019D28060861
:10015000B8000530B6000130B4008C30B300380868
:080160008A0101208A019D289B
:02400E00753FFC
:00000001FFkardeş sen şu yukardaki ni notpade yapıştır uzantısnı .hex olrak deişitirp bi denesene
porta nın 1 nolu pininde buton var yazdıım programa göre noramlde 1 butona basınca sıfır olcak şekilde
butona basınca portbdeki bilgiyi seri olrak yolluor 2400 baud rate ile dene bir oluyomu -
Ravage bunu yazdı:
-----------------------------fireexxx biri seni çağırıo galiba...
şaka bi yana arkadaşım anlamadıım az sayıdaki dillerden biride Asambly -->Kolay gelsin[gelmez ya]
-----------------------------
Hoca elektronik devreler,pic hakkında bilgim yok. x86 işlemcilerde win32,dos uygulamaları için yardımcı olabilirim. -
8051 serii mikro denetleyicilerde seriport için mod seçim olayı vardı.
pic te de olmasın öyle bişi?
