ORG 2000H
MOV SP,#50H
MOV R2,#00H
ACALL SINIT
LOOP: ACALL RX_DATA
ACALL TX_DATA
SJMP LOOP
SINIT: CLR EA
MOV TMOD,#00100000B
MOV 87H,#0
MOV TH1,#0FDH
SETB TR1
MOV SCON,#01010010B
MOV SBUF,#0
RET
RX_DATA:
JNB RI,$
MOV A,SBUF
PUSH ACC ;스텍에 입력 값을 저장
CLR RI
INC R2 ;입력 값의 수를 카운팅
CJNE A,#0DH,RX_DATA
MOV SP,#52H
RET
TX_DATA:MOV SP,#52H
TX_LOP1:
JNB TI,$
CLR TI
POP ACC ;스텍의 내용을 A레지스터에 저장
INC SP ;스텍포인 터증가
INC SP
MOV SBUF,A ;전송한다
DJNZ R2,TX_LOP1 ;R2 의 수만급 반복 실행
MOV SP,#52H
RET
END
MOV SP,#50H
MOV R2,#00H
ACALL SINIT
LOOP: ACALL RX_DATA
ACALL TX_DATA
SJMP LOOP
SINIT: CLR EA
MOV TMOD,#00100000B
MOV 87H,#0
MOV TH1,#0FDH
SETB TR1
MOV SCON,#01010010B
MOV SBUF,#0
RET
RX_DATA:
JNB RI,$
MOV A,SBUF
PUSH ACC ;스텍에 입력 값을 저장
CLR RI
INC R2 ;입력 값의 수를 카운팅
CJNE A,#0DH,RX_DATA
MOV SP,#52H
RET
TX_DATA:MOV SP,#52H
TX_LOP1:
JNB TI,$
CLR TI
POP ACC ;스텍의 내용을 A레지스터에 저장
INC SP ;스텍포인 터증가
INC SP
MOV SBUF,A ;전송한다
DJNZ R2,TX_LOP1 ;R2 의 수만급 반복 실행
MOV SP,#52H
RET
END
직접 작성한 8051자료이다 예제의 답인데 설명하자면 너무길기에 속성으로 적어 남겨둬야 겠다
프로그랭 목적은 시리얼 통산으로 데이더가 입력 되면 데이터를 저장하다 엔터키가 감지 되면 입력되어 있는 데이터를 출력하는 형태이다
YOUR COMMENT IS THE CRITICAL SUCCESS FACTOR FOR THE QUALITY OF BLOG POST







