목차
SPI 직렬 통신 프로그램
1. 실험 목적
2. 실험도구
3. 이론
⑴ 마스터 모드
⑵ 슬레이브 모드
4. 실험 소스 코드 분석
⑴ EXP11.1.asm
1. 실험 목적
2. 실험도구
3. 이론
⑴ 마스터 모드
⑵ 슬레이브 모드
4. 실험 소스 코드 분석
⑴ EXP11.1.asm
본문내용
리어 되어있으면 반복한다.
INDH,SPDR; read upper byte
// 송신/ 수신한 데이터가 저장된 SPDR 중 upper byte를 DH에 저장한다.
LDIAL,0b00000000; dummy 0000 0000
OUTSPDR,AL// SPDR을 초기화 한다.
READ4:SBISSPSR,SPIF; transmit complete ?
RJMPREAD4// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
INDL,SPDR; read lower byte
// 송신/ 수신한 데이터가 저장된 SPDR 중 lower byte를 DL에 저장한다.
LDIAL,0b00000000; CS = 0
OUTPORTB,AL// PORTB 초기화
LSLDH; return data
LSRDL
LSRDL
LSRDL
LSRDL
LSRDL
LSRDL
LSRDL// DL을 64로 나눈다.
ADDDL,DH// DL와 DH를 더한다.
RET
;------------------------------------------------
;AT93C56 Write (BL=address, DL=data)
;------------------------------------------------
WRITE:LDIAL,0b00000001; CS = 1
OUTPORTB,AL// PORTB 에 0b00000001을 저장
LDIAL,0b00001010; 0000 1010
OUTSPDR,AL// SPDR에 0b00001010을 Store.
WRITE1:SBISSPSR,SPIF; transmit complete ?
RJMPWRITE1
// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
OUTSPDR,BL; A7 - A0
// SPDR에 Address를 Store.
WRITE2:SBISSPSR,SPIF; transmit complete ?
RJMPWRITE2
// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
OUTSPDR,DL; D7 - D0
// SPDR에 read data을 Store
WRITE3:SBISSPSR,SPIF; transmit complete ?
RJMPWRITE3
// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
LDIAL,0b00000000; CS = 0
OUTPORTB,AL// PORTB를 초기화
CALLD5MS; delay 5 ms for twp time
RET
;====================================================================
;Include User Subroutine File
;====================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file
INDH,SPDR; read upper byte
// 송신/ 수신한 데이터가 저장된 SPDR 중 upper byte를 DH에 저장한다.
LDIAL,0b00000000; dummy 0000 0000
OUTSPDR,AL// SPDR을 초기화 한다.
READ4:SBISSPSR,SPIF; transmit complete ?
RJMPREAD4// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
INDL,SPDR; read lower byte
// 송신/ 수신한 데이터가 저장된 SPDR 중 lower byte를 DL에 저장한다.
LDIAL,0b00000000; CS = 0
OUTPORTB,AL// PORTB 초기화
LSLDH; return data
LSRDL
LSRDL
LSRDL
LSRDL
LSRDL
LSRDL
LSRDL// DL을 64로 나눈다.
ADDDL,DH// DL와 DH를 더한다.
RET
;------------------------------------------------
;AT93C56 Write (BL=address, DL=data)
;------------------------------------------------
WRITE:LDIAL,0b00000001; CS = 1
OUTPORTB,AL// PORTB 에 0b00000001을 저장
LDIAL,0b00001010; 0000 1010
OUTSPDR,AL// SPDR에 0b00001010을 Store.
WRITE1:SBISSPSR,SPIF; transmit complete ?
RJMPWRITE1
// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
OUTSPDR,BL; A7 - A0
// SPDR에 Address를 Store.
WRITE2:SBISSPSR,SPIF; transmit complete ?
RJMPWRITE2
// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
OUTSPDR,DL; D7 - D0
// SPDR에 read data을 Store
WRITE3:SBISSPSR,SPIF; transmit complete ?
RJMPWRITE3
// SPSR의 SPIF가 1로 셋팅 되어있으면 반복하지 않고 만약 0으로 클리어 되어있으면 반복한다.
LDIAL,0b00000000; CS = 0
OUTPORTB,AL// PORTB를 초기화
CALLD5MS; delay 5 ms for twp time
RET
;====================================================================
;Include User Subroutine File
;====================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file
추천자료
컴퓨터의 내부장치와 구조
컴퓨터를 통한 수학 학습과 수학적 오류의 진단·처방 문장제 학습에의 적용
컴퓨터 활용능력 요약
빌게이츠 기업가 사례보고서
병렬처리 컴퓨터
제 2.3.4세대 컴퓨터
컴퓨터의 이해 문제풀이 레포트
20세기에 영향을 끼친 인물 - 빌게이츠
MS사의 독점 (마이크로 소프트)
[레지스트리의 의미][레지스트리의 구조][레지스트리의 백업][레지스트리의 복구][레지스트리...
컴퓨터 공학과의 진보적 입장
전공 컴퓨터와 기초 - 7~80만우너 조립컴퓨터 구성, 인터넷 사기
[Bill-Gates부터Steven-Ballmer까지]Microsoft의 성장과 Leadership의 변화
마이크로소프트 (MS : Microsoft) - 마이크로소프트 기업분석, 마이크로-소프트 창업, MS 운...