TWI직렬 통신프로그램 [마컴 예비레포트]
본 자료는 3페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
해당 자료는 3페이지 까지만 미리보기를 제공합니다.
3페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

1. 실험 목적

2. 실험도구

3. 실험 이론

TWI 란?

TWI의 동작

4. 실행 코드 분석

본문내용

ondition
STSTWCR,AL
RET
;------------------------------------------------
;AT24C16 Write (BH:BL=address, DL=data)
;------------------------------------------------
WRITE:LDIAL,0b10100100; START condition
STSTWCR,AL// TWINT, TWSTA, TWEN을 활성화 한다.
// TWINT : TWI가 현재의 동작을 완료하고 응용 소프트웨어를 사용한 적절한 조치가 필요한 경우에 1로 셋트 되면서 인터럽트를 요청한다.
// TWSTA : 1로 설정하면 TWI가 마스터로서 동작하여 TWI는 버스가 사용 가능한 상태인지를 체크하여 START 조건을 출력하며, 만약 버스가 비지 상태라면 STOP 조건이 검출될 때까지 기다렸다가 START 조건이 출력되고 나면 이 비트는 응용 소프트웨어에 의하여 클리어 되어야한다.
// TWEN : TWI가 동작하는 것을 가능하게 하며, SDA 및 SCL 핀을 유효하게 한다.
WRITE1:LDSAL,TWCR; START complete ?
SBRSAL,TWINT
RJMPWRITE1
WRITE2:LDSAL,TWSR// START 전송이 완료되면 TWINT이 1로 셋트 되면서, TWSR의 상태코드가 0x08로 된다.
ANDIAL,0b11111000
CPIAL,0x08 // AL이 0x08이 아니면 분기한다.
BRNEWRITE2
MOVAL,BH; SLA+W
LSLAL//DEVICE Address+W를 출력한다. TWDR 레지스터에 SLA+W를 저장한다. 만약 SLA+W의 전송이 완료되고 슬레이브로 부터 확인비트가 수신되면 TWINT가 1로 셋트되며 , TWSR 상태코드가 0x18 되고, 수신이 안 되면 0x20으로 된다.
ANDIAL,0b00001110 // 선택적으로 리셋한다.
ORIAL,0b10100000// 선택적으로 반전시킨다.
STSTWDR,AL// AL을 TWDR에 저장한다.
LDIAL,0b10000100
STSTWCR,AL// TWINT, TWEN을 활성화 한다.
WRITE3:LDSAL,TWCR; SLA+W complete ?
SBRSAL,TWINT
RJMPWRITE3
WRITE4:LDSAL,TWSR// WORD Address를 보낸다. 확인비트가 수신되면 TWINT가 1로 셋트되며, TWSR 상태코드가 0x28 되고, 수신 안 되면 0x30으로 된다.
ANDIAL,0b11111000
CPIAL,0x18 //AL이 0x18이 아니면 분기한다.
BRNEWRITE4
STSTWDR,BL; word address
LDIAL,0b10000100
STSTWCR,AL
WRITE5:LDSAL,TWCR; address complete ?
SBRSAL,TWINT
RJMPWRITE5
WRITE6:LDSAL,TWSR // Write DataSLA+W의 전송이 완료되면 TWDR 레지스터에 전송할 데이터 바이트를 쓰고 전송 데이터 전송이 완료되어 확인비트가 수신되면 TWINT가 1로 셋팅되며 , TWSR 상태코드가 0x28되고 수신이 되지 않으면 0x30으로 된다.
ANDIAL,0b11111000
CPIAL,0x28// AL이 0x28이 아닌 경우 분기한다.
BRNEWRITE6
STSTWDR,DL; write data
LDIAL,0b10000100
STSTWCR,AL
WRITE7:LDSAL,TWCR; data complete ?
SBRSAL,TWINT
RJMPWRITE7
WRITE8:LDSAL,TWSR// 상태코드가 0x28 = 0b0010 1000이 되면 STOP 조건을 출력하고 write를 마친다.
ANDIAL,0b11111000// AL = 0b0000 0000
CPIAL,0x28
BRNEWRITE8// AL이 0x28dl 되면 분기한다.
LDIAL,0b10010100; STOP condition
STSTWCR,AL
CALLD5MS; delay 5 ms for twr time
RET
;====================================================================
;Include User Subroutine File
;====================================================================
.include "OK128SUB.INC"; include OK-128 subroutine file

키워드

  • 가격1,000
  • 페이지수9페이지
  • 등록일2012.05.22
  • 저작시기2011.5
  • 파일형식한글(hwp)
  • 자료번호#748641
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니