*용*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 10
검색어 입력폼
  • 마이크로 로봇 예제풀이 소스코드 exp205
    Exp 205 (마이크로 로봇)문제 설명출력포트는에는 7447 + 7-seg. LED 2개가 각각 상위 하위 4bit에 연결되어 있다. 처음에 00을 출력하고 대기하고 있다가 입력포트의 s/w중 하나를 누르면, 해당하는 s/w번호의 숫자를 하위 4bit 7seg. LED에 출력한다. 예를 들어 s/w5번을 누르면, 05가 나타난다. (2) 이 후, 또 한번 s/w 하나를 누르면 해당하는 s/w번호의 숫자를 하위 4bit 7seg. LED에 출력하며 (1)에서 나타난 숫자는 상위 4bit 7seg. LED로 이동한다. 예를 들어 (1)에서 s/w5를 눌러 05가 나타난 후, s/w7을 누르면 57이 Display된다. (3) 계속 s/w를 누르면 (1)(2)동작을 반복한다. (4) 단, 같은 s/w를 연속 누를 경우에는 입력되지 않는다.SimulationSwitch0 1 2 3 4 5 6 7초기화S/W 5 ONS/W 7 ONS/W 7 ONS/W 0 ONFlow_chart시작S/W 눌렸는가?초기화 상위 FND = 0 하위 FND = 0눌린 S/W 번호 알아내기 함수눌린 S/W가 전 Data와 다른가?상위 FND = Sw_old_data 하위 FND = Sw_new_data눌린 S/W 번호 알아내기 함수S/W 8개 모두 검사를 위해 i=0 초기화i 8 ?Shift_data | Sw_data 그 값이 0xff 인가?Sw_number = ireturn Sw_numberSw_number = 1 i++yesyesyesyesnonononoProgram source (initialization)#include avr/io.h #define Zero_data 0x00 #define Sw_off 0xff int Sw_State(int Sw_data); int main(void) { int Sw_data; int Sw_new_data, Sw_old_data; DDRA=0xff; DDRD=0x00; PORTA=Zero_data; //초기 출력값 상위FND 0, 하위 FND 0 Sw_old_data=Zero_data; //Sw_old 데이터 0으로 초기화Program source (main)while(1) { do{ Sw_data=PIND; }while(Sw_data==Sw_off); //Chattering 방지 while(Sw_data!=Sw_off) { Sw_new_data=Sw_State(Sw_data); //SW번호 알아내기 함수 if(Sw_new_data!=Sw_old_data) //다른 SW눌렸을 경우만 동작 { PORTA=(Sw_old_data 4)|Sw_new_data; Sw_old_data=Sw_new_data; } Sw_data=Sw_off; //SW 데이터 초기화 } } return 0; }Program source (functioin)int Sw_State(int Sw_data) { int i,Sw_number; int Shift_data=0x01; for(i=0; i 8; i++) { if((Shift_data|Sw_data)==0xff) // S/W 위치를 찾으면 { Sw_number=i; break; } Shift_data =1; } return Sw_number; // 눌린 S/W 번호 return }Thank you !{nameOfApplication=Show}
    공학/기술| 2010.04.21| 8페이지| 1,000원| 조회(110)
    미리보기
  • 마이크로 로봇 예제풀이 소스코드 exp111
    문제 풀이 exp111.[마이크로 로봇]목 차문제 exp111. 동작 설명1 동작 설명2 순서도(Flow Chart) Program 설명 Program Program 동작 확인문제 exp111.입력 포트에는 8개의 switch가 부착되어 있다. 몇 개의 switch를 동시에 눌렀을 때, 누른 switch의 개수를 세어 그 개수(2진수)를 출력포트로 출력하는 동작을 반복하는 프로그램을 작성하라. 예: 아무 switch나 동시에 3개를 눌렀을 때, 03H = 0000 0011를 출력하며, switch를 떼는 즉시 다시 0000 0000 을 출력한다.동작 설명 1.아무 Switch를 동시에 3개 눌렀을 때, 0000 0011 출력. Switch를 떼면 초기화.LED 동작 상태SW0SW1SW2SW3SW4SW5SW6SW7동작 설명 2.아무 Switch를 동시에 5개 눌렀을 때, 0000 0101 출력. Switch를 떼면 초기화.LED 동작 상태SW0SW1SW2SW3SW4SW5SW6SW7순서도 (Flow Chart)시 작입·출력PORT 설정PIND == 0xFF?YESNOPORTC = 0xFFwhileNOdelayindata = PINDindata == 0xFF?NOYESi = 7NOforwhile~indata check_bit == check_bit ?NOYESswitch_cnt++check_bit 1YESifwhilePORTC = ~switch_cntwhileProgram 설명switch_cnt = 0; check_bit = 0x01; for(i=0 ; i =7 ; i++) { if((~indata check_bit) == check_bit) switch_cnt++; check_bit = check_bit 1; }스위치 0, 3, 7번을 동시에 눌렀을 때, indata = 0111 0110 ~indata = 1000 1001 check_bit = 0000 0001 ---------------------- 0000 0001 check_bit가 왼쪽으로 쉬프트 하면서 ~indata와 (AND)를 함. 위의 값이 check_bit의 값과 같을 경우, switch_cnt는 증가함. (switch _cnt++)(AND)Program#include avr/io.h void delay(void); void delay(void) { unsigned int a, b; for(a=0;a 10000;a++) for(b=0;b 5;b++); }int main(void) { DDRC = 0xFF; DDRD = 0x00; unsigned char indata, switch_cnt, check_bit, i, sum; while(1) { while((PIND) == 0xFF) PORTC = 0xFF; do{ indata = PIND; }while(indata == 0xFF); delay();switch_cnt = 0; check_bit = 0x01; for(i=0 ; i =7 ; i++) { if((~indata check_bit) == check_bit) switch_cnt++; check_bit = check_bit 1; } PORTC = ~switch_cnt; } return 0; }Program 동작 확인감사합니다.{nameOfApplication=Show}
    공학/기술| 2010.04.21| 16페이지| 1,000원| 조회(69)
    미리보기
  • 마이크로 로봇 예제풀이 소스코드 exp110
    (EXP) 110목 차프로그램 문제 제시 동작 설명 Flow chart 설명 소스 코드 설명 보드 동작 시현프로그램을 실행하면 출력 포트의 LED가 전부 켜진 상태로 대기하고 있다. 스위치 어느 하나를 누르면 지정된 스위치 번호에 해당하는 2진수를 LED로 출력 하게 된다. 다시 스위치를 떼게 되면 모든 LED가 초기상태(ALL_LED_ON)로 대기된다. 이 동작을 반복하는 Program을 코딩 하시오! (동작예) SW0 를 눌렀을 경우 1=01H 0000 0001 로 출력된다. SW5 를 눌렀을 경우 6=06H 0000 0110 로 출력된다. SW7 을 눌렀을 경우 8=08H 0000 1000 로 출력된다.프로그램 문제 제시0x800x400x200x100x080x040x020x01SW1SW0SW2SW3SW4SW5SW6SW7동작 설명LEDSwitchFlow chart시작PORT_iniLED_all_ONSW0_ON?SW1_ON?0x01 출력0x02 출력NOYESYESNO* YES가 되었을경우 select함수 실행 함수 내에서 각각의 입력된 변수값 출력SW2_ON?SW3_ON?0x03 출력0x04 출력SW4_ON?SW5_ON?0x05 출력0x06 출력NONONONOYESYESYESYESSW6_ON?SW7_ON?0x07 출력0x08 출력YESYESNONONO소스 코드 설명#include avr/io.h #define IN 0x00 #define OUT 0xFF #define SW0 0x01 #define SW1 0x02 #define SW2 0x04 #define SW3 0x08 #define SW4 0x10 #define SW5 0x20 #define SW6 0x40 #define SW7 0x80 void ddr_ini(void){ DDRC=OUT; DDRD=IN; }// define 을 이용한 입,출력 방향 정의 (IN,OUT) 각각의 스위치 헥사 번지 정의//// DDRC 및 DDRD의 레지스터 설정 (DDRC=출력으로 사용) (DDRD=입력으로 사용)//void select(void){ const unsigned char num[8]={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08}; PORTC=0x00; if ((PIND SW0)==0x00) { while ((PIND SW0)==0x00) PORTC=~num[0]; } else if((PIND SW1)==0x00) { while ((PIND SW1)==0x00) PORTC=~num[1]; } else if((PIND SW2)==0x00){ while ((PIND SW2)==0x00) PORTC=~num[2]; } else if((PIND SW3)==0x00){ while ((PIND SW3)==0x00) PORTC=~num[3]; }// 각 스위치 입력 조건에 따라 해당 하는값 출력, //조건 만족시 출력 상태 유지//배열변수를 지정하여 각각의 조건에 해당하는 곳에 변수값 출력// PORTC에 0x00을 넘겨 모든 LED가 켜지도록…else if((PIND SW4)==0x00){ while ((PIND SW4)==0x00) PORTC=~num[4]; } else if((PIND SW5)==0x00){ while ((PIND SW5)==0x00) PORTC=~num[5]; } else if((PIND SW6)==0x00) { while ((PIND SW6)==0x00) PORTC=~num[6]; } else if((PIND SW7)==0x00) { while ((PIND SW7)==0x00) PORTC=~num[7]; } }// 각 스위치 입력 조건에 따라 해당 하는값 출력, //조건 만족시 출력 상태 유지int main(void) { ddr_ini(); while(1){ select(); } return 0; }// 메인함수 실행, 각각의 함수 호출 while(1) 을 통해 select함수가 계속 실행되도록..보드 동작 시현{nameOfApplication=Show}
    공학/기술| 2010.04.21| 12페이지| 1,000원| 조회(111)
    미리보기
  • 마이크로 로봇 예제풀이 소스코드 exp109
    AVR 예제문제 풀이목 차문제 시뮬레이션 순서도 프로그램예제 109번 문제처음에 출력포트의 8개 LED는 모두 OFF상태로 있다가 1. 입력포트의 push button switch 하나를 누르면, 출력포트의 해당비트 LED가 깜빡 거리고 switch를 OFF하여도 꺼지지 않고 계속 깜빡 거린다. 2. 이후, 다른 새로운 switch 하나를 누르면 이 때 비로서 꺼지며 새로운 switch에 해당하는 LED만 깜박거리는 동작을 반복하는 program을 작성하라.시뮬레이션OFF상태버튼1번 push버튼5번 push순 서 도STARTLED포트설정LED 초기화동작대기NOLED 점멸YES점멸 함수NOYESSW1 ONSW ON?SW1 OFFSW OFF?프 로 그 램#include avr/io.h #define IN 0x00 #define OUT 0xFF #define SW0 0x01 #define SW1 0x02 #define SW2 0x04 #define SW3 0x08 #define SW4 0x10 #define SW5 0x20 #define SW6 0x40 #define SW7 0x80 #define LED_OFF 0xFFunsigned char data; void ddr_ini(void){ DDRC=OUT; DDRD=IN; } void delay(void){ unsigned char l, k=200; unsigned int u, d=2000; for(l=0;l k;l++) for(u=0;u d;u++); }프 로 그 램void hold(unsigned char data){ while(PIND==0xff){ PORTC=~data; delay(); if (PIND!=0xff) break; PORTC=0xff; delay(); } }int main(void) { ddr_ini(); while(1){ PORTC=LED_OFF; while ((PIND SW0)==0x00){ data=0x01; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); }점멸함수프 로 그 램while ((PIND SW1)==0x00){ data=0x02; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); } while ((PIND SW2)==0x00){ data=0x04; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); }while ((PIND SW3)==0x00){ data=0x08; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); } while ((PIND SW4)==0x00){ data=0x10; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); }프 로 그 램while ((PIND SW5)==0x00){ data=0x20; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); } while ((PIND SW6)==0x00){ data=0x40; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); }while ((PIND SW7)==0x00){ data=0x80; if (PIND==0xFF) break; PORTC=~data; delay(); PORTC=0xFF; delay(); } hold(data); } return 0; }감 사 합 니 다질문 하세요{nameOfApplication=Show}
    공학/기술| 2010.04.21| 10페이지| 1,000원| 조회(97)
    미리보기
  • 마이크로 로봇 예제풀이 소스코드 exp108
    마이크로 로봇 :: LED 프로그램 구성 ::프로그램 개요프로그램을 RUN하면 처음에 출력포트의 8개 LED는 모두 OFF상태로 있다가 입력포트의 SW1을 눌렀다 반드시 뗄 때마다 출력포트의 LED가 1씩 증가하도록 프로그램을 작성하라 (스위치를 누르는 순간에는 증가하면 안됨)순서도 작성시작Unsigned char outdata;Initialize_PORT();PORTC= LED_OFF;Outdata=0x01;입,출력 포트 지정void initialize_PORT(void) { DDRD=INPUT; DDRC=OUTPUT; }((PIND SW1)==0x00) ((PIND SW1)!=0x00))delay(20000);PORTC=~outdata;Outdata++;YESNOChattering을 피하기 위한 시간지연void delay(unsigned int t2) { unsigned int t1; for(t1=0;t1 t2;t1++); }Chattering 이란?스위치에 의한 동작은 앞에 노이즈 필터가 없는 경우노 이즈가 들어오게 됩니다. 스위치를 누르는 순간 적게는 수회부터 많게는 수백회까지 전압이 LOW, HIGH를 반복 하는 체터링이 들어오게 됩니다. 당연히 해당되는 인터럽 트를 건드리기 때문에 원하지 않는 동작을 할 수가 있습 니다.프로그램#include avr/io.h #define INPUT 0x00 #define OUTPUT 0xFF #define LED_ON 0x00 #define LED_OFF 0xFF #define SW1 0x01 void initialize_PORT(void); void delay(unsigned int t2); void initialize_PORT(void) { DDRD=INPUT; DDRC=OUTPUT; }void delay(unsigned int t2) { unsigned int t1; for(t1=0;t1 t2;t1++); } int main(void) { unsigned char outdata; initialize_PORT(); PORTC=LED_OFF; outdata=0x01;while(1) { if(((PIND SW1)==0x00) ((PIND SW1)!=0x00)) { delay(10000); PORTC=~outdata; outdata++; } } }LED 동작 상태{nameOfApplication=Show}
    공학/기술| 2010.04.21| 9페이지| 1,000원| 조회(81)
    미리보기
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 20일 수요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
8:16 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감