마이크로프로세서 프로그램 코드 정리
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

마이크로프로세서 프로그램 코드 정리에 대한 보고서 자료입니다.

본문내용

GATE0=1, 타이머 모드1
MOV TH0, #4BH; 16진(4BFD) -> 19453
MOV TL0, #0FDH ; 인터럽트 발생 주기(1.085us x (65536-19453) = 50ms)
SETBET0; 타이머0 인에이블
MOV A, #0FFH; P1 포트 초기 출력값(LED 모두 OFF)
MOV P1, A
CLR A
MOV R2, #0
SETBEA; 전체 인터럽트 인에이블
SETBTR0; 타이머0 -> 카운터 시작
;
LOOP:CJNER2, #20, LOOP; 인터럽트 발생주기(50ms x 20 = 1s)
MOV R2, #0
JB F0, COUNT; F0=1 이면 COUNT로 점프
JMP LOOP; 대기
;
; BCD 카운터 서브루틴
COUNT: INC A
DA A; 10진 보정
MOV R3, A
CPL A
MOV P1, A
MOV A, R3
JMP LOOP; 대기
;
;타이머/카운터0 인터럽트 서브루틴
T0_SER:CLR TR0; 타이머0 -> 카운터 정지
MOV TH0, #4BH
MOV TL0, #0FDH
INC R2
SETBTR0; 타이머0 -> 카운터 시작
RETI; 리턴(인터럽트가 발생한 곳 -> LOOP)
;
END
■ 시리얼 포트
; SERIAL1.ASM
ORG 4000H
;
MOV PSW, #08H; BANK 1
CALLSINIT; 시리얼 포트 초기화
MOV R2, #26; R2 <- 전송할 문자수
MOV A, #'A'; A <- 전송 초기 문자
SLOOP:CALLSEND; 전송
INC A; A <- 다음 문자
DJNZR2, SLOOP
;
MOV PSW, #0H; BANK 0
JMP 0057H; 모니터 프로그램으로
;
; 시리얼 포트 초기화(모드1, 9600bps)
SINIT:MOV TMOD, #00100000B ; 타이머1, 타이머 모드2
MOV PCON, #0 ; SMOD=0
MOV TH1, #0FDH ; 시간상수 9600 보레이트
SETBTR1 ; 타이머 런
;
MOV SCON, #01010010B ; TI=1,RI=0,REN=1,모드1
RET
;
; 전송 루틴(어큐뮬레이터값 전송)
SEND:JNB TI, SEND; TI=0이면 SEND
MOV SBUF, A ; 송신
CLR TI ; 다음 송신을 위해 클리어
RET
;
END
------------------------------------------------------------------------------------------------
; SERIAL2.ASM
ORG 4000H
;
CALLSINIT; 시리얼 포트 초기화
LOOP:CALLRECEIVE; 데이터 수신
CPL A; 수신 데이터 반전
MOV P1, A; P1포트의 LED에 표시
SJMPLOOP
;
; 시리얼 포트 초기화(모드1, 9600bps)
SINIT:MOV TMOD, #00100000B ; 타이머1, 타이머 모드2
MOV PCON, #0 ; SMOD=0
MOV TH1, #0FDH ; 시간상수 9600 보레이트
SETBTR1 ; 타이머 런
;
MOV SCON, #01010010B ; TI=1,RI=0,REN=1,모드1
RET
;
; 수신 루틴(수신한 값 어큐뮬레이터 저장)
RECEIVE:JNB RI, RECEIVE ; RI=0이면 RECEIVE
MOV A, SBUF ; 수신
CLR RI ; 다음 수신을 위하여 클리어
RET
;
END
------------------------------------------------------------------------------------------------
; SERIAL3.ASM
ORG 4000H
SJMPSTART
;
ORG 4023H; 시리얼 인터럽트 서비스 루틴 번지
SJMPSERIAL ; SERIAL로 점프
;
START:CALLSINIT ; 시리얼 포트 초기화
LOOP:SJMPLOOP
;
; 시리얼 포트 초기화(모드1, 9600bps)
SINIT:CLR EA
MOV TMOD, #00100000B ; 타이머1, 타이머 모드2
MOV PCON, #0 ; SMOD=0
MOV TH1, #0FDH ; 시간상수 9600 보레이트
SETBTR1 ; 타이머 런
;
MOV SCON, #01010000B ; TI=0,RI=0,REN=1,모드1
SETBES ; 시리얼 인터럽트 인에이블
SETBEA; 인터럽트 전체 인에이블
RET
;
SERIAL:JNB RI, SEEND; 수신 인터럽트가 아니면 리턴
CLR EA ; 수신동안 인터럽트 디스에이블
MOV A, SBUF ; 수신
CPL A; 수신 데이터 반전
MOV P1, A; P1포트 출력
CLR RI ; 다음 수신을 위해 클리어
SETBEA ; 인터럽트 인에이블
SEEND:RETI; 리턴(인터럽트가 발생한 곳 -> LOOP)
;
END
------------------------------------------------------------------------------------------------
; SERIAL_EXCISE1.ASM
ORG 4000H
;
CALLSINIT; 시리얼 포트 초기화
LOOP:CALLRECEIVE; 데이터 수신
CPL A; 수신 데이터 반전
MOV P1, A; P1포트의 LED에 표시
CALLSEND; 전송
JMP LOOP
;
; 시리얼 포트 초기화(모드1, 9600bps)
SINIT:MOV TMOD, #00100000B ; 타이머1, 타이머 모드2
MOV PCON, #0 ; SMOD=0
MOV TH1, #0FDH ; 시간상수 9600 보레이트
SETBTR1 ; 타이머 런
;
MOV SCON, #01010010B ; TI=1,RI=0,REN=1,모드1
RET
;
; 수신 루틴(수신한 값 어큐뮬레이터 저장)
RECEIVE:JNB RI, RECEIVE ; RI=0이면 RECEIVE
MOV A, SBUF ; 수신
CLR RI ; 다음 수신을 위하여 클리어
RET
;
; 전송 루틴(어큐뮬레이터값 전송)
SEND:JNB TI, SEND; TI=0이면 SEND
CPL A
INC A; A <- 다음 문자
MOV SBUF, A ; 송신
CLR TI ; 다음 송신을 위해 클리어
RET
;
END
  • 가격1,000
  • 페이지수10페이지
  • 등록일2007.01.21
  • 저작시기2006.12
  • 파일형식한글(hwp)
  • 자료번호#389923
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니