8051/PIC > DT516-013.c LED 패턴시프트

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

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


BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-013.c LED 패턴시프트

페이지 정보

작성자 키트 작성일2017-08-21 17:01 조회311회 댓글0건

첨부파일

본문

//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-013.c
// LED 패턴시프트
//-------------------------------------------------------------
#include <REG_MPC82G516.H>
//
code char table[16]={
    0x00,
    0x80,    //0b10000000
    0xc0,    //0b11000000,
    0xe0,    //0b11100000,
    0xf0,    //0b11110000,
    0xf8,    //0b11111000,
    0xfc,    //0b11111100,
    0xfe,    //0b11111110,
    0xff,    //0b11111111
    0x7f,    //0b01111111
    0x3f,    //0b00111111
    0x1f,    //0b00011111
    0x0f,    //0b00001111
    0x07,    //0b00000111
    0x03,    //0b00000011
    0x01     //0b00000001
};
//
void delay_ms(unsigned int d) {  
    unsigned int  i,j;
    for(i=0;i<d;i++){ for(j=0;j<920;j++); }       // @22.118400Hz
}
//
void main(){
    char c;
    while(1){
        for(c=0;c<16;c++){ P1=~table[c]; delay_ms(100); }
    }
}
//-------------------------------------------------------------

테이블을 사용하면 복잡한 수식이 간단 해질 수도 있고

복잡한 패턴을 만들기 용이 합니다.

 

 

//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-013-1.c
// LED 패턴시프트
//-------------------------------------------------------------
#include <REG_MPC82G516.H>
//
void delay_ms(unsigned int d) {  
    unsigned int  i,j;
    for(i=0;i<d;i++){ for(j=0;j<920;j++); }       // @22.118400Hz
}
//
void main(){
    char c;
    while(1){
        for(c=0;c<16;c++){ P1=~(0xFF00>>c); delay_ms(100); }
    }
}
//-------------------------------------------------------------

이런 간단한 패턴은 테이블을 사용 하지 않아도 쉽게 만들 수 있습니다.

 

 

0xFF = 0b 1111 1111 0000 0000

0xFF00>>c) 시프트 시킨 후의 값을 보면

11111111 00000000 : c==0 일 때

01111111 10000000 : c==1 일 때

00111111 11000000 : c==2 일 때

00011111 11100000 : c==3 일 때

00001111 11110000 : c==4 일 때

00000111 11111000 : c==5 일 때

00000011 11111100 : c==6 일 때

00000001 11111110 : c==7 일 때

00000000 11111111 : c==8 일 때

00000000 01111111 : c==9 일 때

00000000 00111111 : c==10 일 때

00000000 00011111 : c==11 일 때

00000000 00001111 : c==12 일 때

00000000 00000111 : c==13 일 때

00000000 00000011 : c==14 일 때

00000000 00000001 : c==15 일 때

댓글 0

조회수 311

등록된 댓글이 없습니다.

8051/PICHOME > 8051/PIC > 전체 목록

게시물 검색

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 ⓒ 2017
모바일버전으로보기