AVR > 74HC595 출력 포트 확장

인기검색어 > 아두이노 센서 ATMEGA128

최신글 질문게시판 동영상강좌 가입하기

▼ BASIC4MCU 후원업체 신제품 정보 ▼

▲ BASIC4MCU 후원업체 신제품 정보 ▲

BASIC4MCU > AVR

포트 | 74HC595 출력 포트 확장

페이지 정보

작성자 키트 작성일17-08-25 17:12 조회2,673회 댓글0건

본문

3660040649_UtEMpjAH_hc595-1_ekit.gif3Ftype3Dw740

10번 크리어 단지는 Vcc처리 했습니다만
래치는 기본적으로 어떤 데이터가 들어있을지 모르므로 전원 투입시 출력이 지멋대로 나오게 됩니다.
이를 해결하기 위해서는 POWR-ON 리셋 회로를 만들어서 크리어 시키는 것이 좋습니다.
크게 신경쓰이지 않으면 VCC에 연결 하면 됩니다.

//--------------------------------------------------------------------

#include
#include
//
#define DATA  PORTC.0
#define CLK   PORTC.1
#define LATCH PORTC.2
//
void HC595_WR(char ch){
    signed char c;

    for(c=7; c>=0; c--){ DATA=(ch>>c)&1; CLK=1; CLK=0; } // MSB 먼저, LSB 나중
}
//

void main(void){
  DDRC=0xff;    //PORTC 출력
  while(1) {
    HC595_WR(4); // 1번째 HC595
    HC595_WR(3); // 2번째 HC595
    HC595_WR(2); // 3번째 HC595
    HC595_WR(1); // 4번째 HC595
    LATCH=1; LATCH=0;
    delay_ms(1000);
  }
}

//--------------------------------------------------------------------

//--------------------------------------------------------------------
#include
#include
//
#define DATA  PORTC.0
#define CLK   PORTC.1
#define LATCH PORTC.2
//
void HC595_WR(char ch){
    
signed char c;

    for(c=7; c>=0; c--){ DATA=(ch>>c)&1; CLK=1; CLK=0; } // MSB 먼저, LSB 나중
}
//

void main(void){
  unsigned long L=0;
  DDRC=0xff;    //PORTC 출력
  while(1) {
    HC595_WR(L>>24);  // 1번째 HC595
    HC595_WR(L>>16);  // 2번째 HC595
    HC595_WR(L>> 8);  // 3번째 HC595
    HC595_WR(L&0xFF); // 4번째 HC595
    LATCH=1; LATCH=0;
    delay_ms(100);
  }
}
//--------------------------------------------------------------------

//--------------------------------------------------------------------
#include
#include
//
#define DATA  PORTC.0
#define CLK   PORTC.1
#define LATCH PORTC.2
//
void HC595_WR(unsigned long sh){
    
signed char c;

    for(c=31; c>=0; c--){ DATA=(sh>>c)&1; CLK=1; CLK=0; } // MSB 먼저, LSB 나중
    LATCH=1; LATCH=0;
}
//

void main(void){
  unsigned long L=0;
  int i=0;
  DDRC=0xff; //PORTC 출력
  while(1){
      L=1<=32)i=0; delay_ms(100);
  }
}
//--------------------------------------------------------------------

//--------------------------------------------------------------------
#include
#include
//
#define DATA  PORTC.0
#define CLK   PORTC.1
#define LATCH PORTC.2
//
void main(void){
  int i;
  DDRC=0xff; //PORTC 출력
  while(1){
      for(i=31;i>=0;i--){ DATA=(0x80000000>>i)&1; CLK=1; CLK=0; LATCH=1; LATCH=0; delay_ms(100); } // MSB먼저
  }
}
//--------------------------------------------------------------------

댓글 : 0

조회수 : 2,673

등록된 댓글이 없습니다.

게시물 검색

AVR 목록

게시물 검색


Privacy Policy
MCU BASIC ⓒ 2017
PC버전