8051/PIC > DT516-012.c LED table 흩어졌다 모이기

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

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


BASIC4MCU | 8051/PIC | DT-516 강좌 | DT516-012.c LED table 흩어졌다 모이기

페이지 정보

작성자 키트 작성일2017-08-21 16:59 조회285회 댓글0건

첨부파일

본문

//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-012.c
// LED table 흩어졌다 모이기
//-------------------------------------------------------------
#include <REG_MPC82G516.H>
//
code char table[]={
    0x81,    //0b10000001
    0x42,    //0b01000010,
    0x24,    //0b00100100,
    0x18,    //0b00011000,
    0x18,    //0b00011000,
    0x24,    //0b00100100,
    0x42,    //0b01000010,
    0x81     //0b10000001
};
//
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 <8;c++){ P1=~table[c]; delay_ms(100); }
    }
}
//-------------------------------------------------------------

table[] 배열을 이용한 방법입니다.

8051은 램이 부족하므로 code를 지정 해서 플래시에 상수 배열을 사용 합니다.

82G516은 0x3FF의 XDATA 공간이 있어서 충분하지만 상수값은 습관적으로 플래시메모리를 사용 하는 것이 좋습니다.

 

위 코드를 실행 하면 이전의 두개의 예제와 동일 하게 동작 합니다.

조금 바꿔서 동작 시켜보죠

 

//-------------------------------------------------------------
// 82G516 E/V BOARD ( DT-516 )
//-------------------------------------------------------------
// XTAL : 22.1184Hz
//-------------------------------------------------------------
// filename: DT516-012-1.c
// LED table 흩어졌다 모이기
//-------------------------------------------------------------
#include <REG_MPC82G516.H>
//
code char table[]={
    0x81,    //0b10000001
    0x42,    //0b01000010,
    0x24,    //0b00100100,
//  0x18,    //0b00011000,
    0x18,    //0b00011000,
    0x24,    //0b00100100,
    0x42,    //0b01000010,
    0x81     //0b10000001
};
//
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 <7;c++){ P1=~table[c]; delay_ms(100); }
    }
}
//-------------------------------------------------------------

좌우로 크로스해서 지나가는 것처럼 보이나요?

댓글 0

조회수 285

등록된 댓글이 없습니다.

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