Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr
강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법 Chap7. LED, LCD 와 7- 세그먼트켜기및 IIC 통신 Chap8. 인터럽트와타이머 Chap9. 직렬통신과 PS2 키보드인터페이스 Chap10. 리모콘수신과 RTC 및 Speaker Chap11. AD 컨버터와 DA 컨버터 Chap12. OSD (On-Screen Display)
1
Visual C++ 실행하기 (1/4) Visual C++ 셋업후실행화면
Visual C++ 실행하기 (2/4) File -> New Win32 Console Application
Visual C++ 실행하기 (3/4) A simple application
Visual C++ 실행하기 (4/4)
C 프로그램의구조 #include <stdio.h> // 전처리기명령 // 프로그램내용 - 대, 소문자를구별 - 함수를기본 -main 함수에서시작 //Visual C++ 에서자동코딩되어나온함수 int main(int argc, char* argv[]) // 프로그램내용 return 0;
기본입출력함수 (1/3) 출력함수 -printf() #include "stdio.h" int num1 = 12; // 0x0C (2진수는사용못함 ) int num2 = 34; // 0x22 %d : 10 진수 %o : 8 진수 %x : 16 진수 %c : 문자출력 %f : 소숫점형태로출력 printf(" 안녕하세요. 스마트디스플레이입니다. \n"); printf("%d %d \n ", num1, num2);
기본입출력함수 (2/3) 입력함수 -scanf() #include "stdio.h" int num; printf(" 좋아하는숫자를입력하세요.. \n"); scanf("%d", &num); printf(" 당신이좋아하는숫자는 %d 입니다. \n", num);
기본입출력함수 (3/3) 문자와문자열의입출력 #include "stdio.h" char ch; char name[20]; char c; // 문자 a char *s; // 문자열 smartdisplay printf(" 알파벳문자한개만입력하세요.\n"); scanf("%c", &ch); printf(" 이름을써보아요.\n"); scanf("%s", name); // name = &name[0] printf("%s씨알파벳 %c를선택했네요 \n",name, ch);
데이터형 (1/1) 자료형의크기정수형 : Int, short, long, unsigned int, unsigned short, unsigned long 실수형 : float, double, long 문자형 : int, unsigned char #include "stdio.h" printf("int = %d BYTE\n", sizeof(int)); printf("short = %d BYTE\n", sizeof(short)); printf("long = %d BYTE\n", sizeof(long)); printf("unsigned = %d BYTE\n", sizeof(unsigned)); printf("float = %d BYTE\n", sizeof(float)); printf("double = %d BYTE\n", sizeof(double)); printf("char = %d BYTE\n", sizeof(char));
연산자 (1/2) 변수나상수를어떻게처리할것인가를지시하는기호 산술연산자 : +, -, *, /, % 관계연산자 : <. <=, ==, >=, >,!= 논리연산자 : &&, 증감연산자 : ++, -- 비트연산자 : &,, ~, <<, >> 포인터연산자 : &, *
연산자 (1/2) 산술연산자 2 + 4, A * B, A % B 5 % 3 = 2 관계연산자 3 < 5, 4 <= 5, 4 <= 4, 4 == 4, 5 > 4, 5!= 4 논리연산자 A and B, A or B 증감연산자 ++A, A++ --A, A-- Ex) A = 10 (1) B = ++A; // B = 11 (2) B = A++; // B = 10 비트연산자 A=b 10100001 B=b 00110011 A & B = b 00100001 A B = b 10110011 ~A = b 01011110 A << 3 = b 00000100 A >> 3 = b 00010100 포인터연산자 & : 주소 * : 내용
제어문 (1/9) 프로그램의처리순서를변경시킬때사용 - 선택문 : if, switch - 반복문 : for, while, do while - 분기문 : break, continue, goto
제어문 (2/9) 선택문 1 : if Type 1) If ( 수식 ) 실행문 ; If ( 수식 ) 실행문 ; #include "stdio.h" int num; printf("1 과 2 중하나를선택하세요...?"); scanf("%d", &num); Type 2) If ( 수식 ) 실행문 ; else 실행문 ; if(num == 1) printf("1 을선택하셨습니다.\n"); else if(num == 2) printf("2 을선택하셨습니다.\n"); else printf(" 말을잘안들으시네요..\n");
제어문 (3/9) #include "stdio.h" 선택문 2 : switch switch ( 변수 ) case 수식 1: 문장 1; break; case 수식 2: 문장 2; break; default : 문장 3; int num; printf("1 과 2 중하나를선택하세요...?"); scanf("%d", &num); switch(num) case 1: case 2: default : printf("1 을선택하셨습니다.\n"); break; printf("2 을선택하셨습니다.\n"); break; printf(" 말을잘안들으시네요..\n");
제어문 (4/9) #include "stdio.h" 반복문 1 : for for ( 초기값 ; 최종값 ; 증가값 ) 문장 ; int i; int num = 0; for(i = 0; i <= 100; i++) num += i; //num = num + i printf("0 부터 100 까지의합은 %d 입니다.\n", num);
제어문 (5/9) 반복문 2 : while While ( 수식 ) 문장 ; #include "stdio.h" int i = 0; int num; while(i++ < 3) printf("1 과 2 중하나를선택하세요...?"); scanf("%d", &num); switch(num) case 1: printf("1 을선택하셨습니다.\n"); break; case 2: printf("2 을선택하셨습니다.\n"); break; default : printf(" 말을잘안들으시네요..\n");
제어문 (6/9) 반복문 2 : do ~ while do 문장 ; while( 수식 ); #include "stdio.h" int i = 0; int num; do printf("1 과 2 중하나를선택하세요...?"); scanf("%d", &num); switch(num) case 1: printf("1 을선택하셨습니다.\n"); break; case 2: printf("2 을선택하셨습니다.\n"); break; default : printf(" 말을잘안들으시네요..\n"); while(i++ < 3);
제어문 (7/9) 분기문 1 : break break; #include "stdio.h" int i; int num = 0; for(i = 0; i <= 10; i++) if(i == 5) break; printf("i 의값 = %d\n", i);
제어문 (8/9) 분기문 2 : continue continue; #include "stdio.h" int i; int num = 0; for(i = 0; i <= 10; i++) if(i == 5) continue; printf("i 의값 = %d\n", i);
제어문 (9/9) #include "stdio.h" 분기문 3 : goto int i; int num = 0; goto 레이블 : loop1: for(i = 0; i <= 10; i++) if(i == 5) goto loop1; printf("i 의값 = %d\n", i);
숙제 1~1000 까지의숫자중짝수와홀수의합은? 구구단프로그램을짜세요. 100 팩토리알은몰까요? ex) 100*99*98* *1 =?
다음강의내용 펌웨어작성을위한 C 언어나머지부분