본문 마이크로 프로세서 및 실습 3주차 실험목적 ATmega128 기본 회로를 구성하여 연결을 합니다. LED 모듈을 구성합니다. Code Vision avr을 이용하여 C언어로 LED 순차 점등 코딩을 하여 회로에 다운로드 합니다. 실험내용 <회로도> 다음의 회로를 구성합니다 . <소스 파일> LED가 1-2-3-4-5-6-7-8-7-6-5-4-3-2 . 와 같은 순으로 순차적으로 점등되게 합니다. while 구문을 사용하여 무한 반복되게 합니다. if - else 구문을 사용하여 반대방향 , 순방향을 제어합니다. delay를 주어 순차 점등이 구동하게 합니다 #include<avr/io.h> // AVR 이용할 때에는 헤더를 avr/io.h를 사용합니다 void Delay_us(unsigned char time_us) /* time delay for us */ register unsigned char i; for(i = 0; i < time_us; i++) // 4 cycle + asm volatile( PUSH R0 ); // 2 cycle + asm volatile( POP R0 ); // 2 cycle + asm volatile( PUSH R0 ); // 2 cycle + asm volatile( POP R0 ); // 2 cycle + asm volatile( PUSH R0 ); // 2 cycle + asm volatile( POP R0 ); // 2 cycle = 16 cycle = 1 us for 16MHz void Delay_ms(unsigned int time_ms) /* time delay for ms */ register unsigned int i; for(i = 0; i < time_ms; i++) Delay_us(250); Delay_us(250); Delay_us(250); Delay_us(250); // ok 128.c에서 딜레이에 대한 내용을 따온 부분 int main(void) int led,i; // LED와 I를 지정합니다. DDRA=0xff; // 모든 데이터를 출력합니다. led = 1; // LED의 초기값은 1입니다 while(1) if(led 128) // ( 8개 LED가 있으므로 2의 7승인 128이 마지막) for(i=0;i<7;i++) // ( LED가 128 이 될 때까지) led=led/2; // ( 왼쪽으로 쉬프트 시킵니다 ) PORTA=~led; Delay_ms(100); //( 딜레이는 0.1초입니다 ) else //( LED 가 128이 되지않았으면 ) led=led*2; //( 왼쪽으로 쉬프트 됩니다 ) PORTA=~led; //입력이 반대로 들어와서 반전시켜줍니다 Delay_ms(100); // 01.초의 딜레이를 주었습니다. return 0; 해당 소스파일을 code vision avr을 통하여 구성하고 코딩한후 ponyprog를 이용하여 회로에 해당 소스를 다운로드 합니다. 전원을 연결하고 동작을 실험합니다. 하고 싶은 말 좀 더 업그레이드하여 자료를 보완하여, 과제물을 꼼꼼하게 정성을 들어 작성했습니다. 위 자료 요약정리 잘되어 있으니 잘 참고하시어 학업에 나날이 발전이 있기를 기원합니다 ^^ 구입자 분의 앞날에 항상 무궁한 발전과 행복과 행운이 깃들기를 홧팅 키워드 실험, 순차, 회로, 쉬프트, 구문, 마이크 |
2018년 8월 19일 일요일
마이크로 프로세서 및 실험 실험 레폿 ( LED 순차점등 )
마이크로 프로세서 및 실험 실험 레폿 ( LED 순차점등 )
피드 구독하기:
댓글 (Atom)
댓글 없음:
댓글 쓰기