AVR > 74HC595 출력 포트 확장

TODAY1,111 TOTAL2,933,397
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | AVR | 포트 | 74HC595 출력 포트 확장

페이지 정보

작성자 키트 작성일2017-08-25 17:13 조회3,381회 댓글0건

본문

for(i=31;i>=0;i--){ DATA=(0x80000000>>i)&1;

 

i가 31부터 시작해서 1씩 감소하는 것에 주의 하시고요

0x80000000 이 값을 595로 출력하기 위한 연산입니다.

1000 0000 0000 0000 0000 0000 0000 0000 32비트라서 기네요..

 

i가 31일 때 0x80000000>>31 이렇게 되겠죠?

1000 0000 0000 0000 0000 0000 0000 0000  이 값이 31 우측으로 시프트하면 비트31이 비트0이 됩니다.

0000 0000 0000 0000 0000 0000 0000 0001  이렇게 말이죠..

이 값을 &1 연산하면 비트0만 &연산 하는 것이라서

비트0이 1이면 1이남고

비트0이 0이면 0이남습니다.

결국 DATA에는 비트31이 출력 되는 것입니다.

 

그 다음에

i가 30 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트30이 DATA에 출력되고

i가 29 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트29이 DATA에 출력되고

i가 28 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트28이 DATA에 출력되고

.

.

i가 1 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트1이 DATA에 출력되고

i가 0 일 때는 1000 0000 0000 0000 0000 0000 0000 0000 비트0이 DATA에 출력됩니다.

댓글 0

조회수 3,381

등록된 댓글이 없습니다.

AVRHOME > AVR > 전체 목록

게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기