PDA

View Full Version : giải thích dùm đoạn code giải mã assembly


levanluc
23-05-2012, 10:46 AM
đây là đoạn code giải mã tín hiệu remote tivi của sony nhưng giờ e muốn viết cho c của pic 16f887 nhưng mình lại chưa có lập trình cho assembly nên không hiểu hết chương trình của đoạn code nhờ các a,chị trong diễn đoàn ai biết giải thích giùm e ah.e đang cần gấp đê lập trình cho con pic mong các anh giúpa h.e xin cảm ơn ah.
đây là toàn bộ chương trình viết trên ASSEMBLY :

ORG 000H
MAIN:
MOV P1,#00000000B
MOV P0,#11111111B
MOV P2,#00000000B
LCALL DELAY
TD:
SETB P3.2
MOV A,#01000000B
X1: JB P3.2,X1
X2: JNB P3.2,X2
X3: JB P3.2,X3
LCALL DELAY
MOV C,P3.2
JC BIT0
SETB C
RRC A
JC END_SIGNAL
SJMP X2
BIT0:
CLR C
RRC A
JC END_SIGNAL
SJMP X3
END_SIGNAL:
LCALL DELAY
RR A
MOV P1,A


KEY_1:
CJNE A,#00000000B,KEY_2 ;MUTING
MOV P2,#00000001B
MOV P0,#01111001B ; SO 1
CALL DELAY
CALL DELAY
SJMP TD
KEY_2:
CJN A,#00000001B,KEY_3 ;DISPLAY
MOV P2,#00000010B
MOV P0,#00100100B ;SO 2
CALL DELAY
CALL DELAY
SJMP TD
KEY_3:
CJNE A,#00000010B,KEY_OTHER ;A/B
MOV P2,#00000100B
MOV P0,#00110000B ;SO 3
CALL DELAY
CALL DELAY
SJMP TD
KEY_OTHER:
LJMP MAIN


DELAY:
MOV R6,#10H
DEL: MOV R7,#0H
DJNZ R7,$
DJNZ R6,DEL
RET

END

hein_ts
24-06-2012, 05:03 PM
Dễ thì bạn nên dùng CCS, còn việc giải nghĩa thì bạn nên tìm hiểu các lệnh cơ bản thì sẽ hay hơn