부산IT학원/스마트컨트롤러

20140408 (회로도 최적화, 4bit 덧셈, 구조체)

EHOzlO 2014. 4. 8. 16:19

37일차

 

 

----------------

회로도 최적화

----------------

- 어제 했던 내용을 이어서

어제는 sum을 계산했고 오늘은 carry를 계산한다.

방식은 같다. 

 

실습

 

A     1

B     1

Ci    1 

인 경우

 

 

A     1

B     1

Ci    0 

인 경우

 

 

A     0

B     1

Ci    0

인 경우

 

 

A     0

B     0

Ci    0 

인 경우

 

 

--- 4bit 덧셈

4bit 덧셈을 하려면 전가산기 3개와 반가산기 1개가 필요하다

 

 

 

 

--- ATMEL

- 메모리 회사

- cpu사업도 시작했음.

- cpu 시리즈 중에 AVR, AT91.. 등등 있음

- AVR 시리즈 중에 Mega 모델 중 ATMega128을 공부할 예정.

 

--- ATMega128

- Microcontroller

- 8bit

- 128 Flash Memory

 

 

 

 

 

 

 

----------------

구  조  체

----------------

- 새로운 타입을 정의.

typedef와 다른점은 아래를 참고하자.

 

struct (타입이름)

{ (내용) };

 

- 전역에서 사용해야 하니 전역에 정의.

 

ex)

#include <stdio.h>

struct smart
{
  char  Name[7];
  char  Phone[14];
  int  Age;
};

int main()
{
  struct smart  people[3];
  int    iCnt;

  for(iCnt = 03 > iCnt; ++iCnt)
  {
    printf("이름 : ");
    scanf("%s", people[iCnt].Name);
    fflush(stdin);

    printf("전화번호 : ");
    scanf("%s", people[iCnt].Phone);
    fflush(stdin);

    printf("나이 : ");
    scanf("%d"&people[iCnt].Age);
  }

  for(iCnt = 03 > iCnt; ++iCnt)
  {
    printf("이름 : [%s], 전화번호 : [%s], 나이 : [%d] \n", people[iCnt].Name, people[iCnt].Phone, people[iCnt].Age);
  }

  return 0;
}

이런식으로 사용.

 

- 초기화

#include <stdio.h>

struct employee
{
  char  Name[7];
  char  Phone[14];
  int  Age;
};

struct employer
{
  char  Name[7];
  char  Phone[14];
  int  Age;
};

int main()
{
  struct employee  people[3= {
      {"James""010-0100-0101"10000},
      {"Ayin""010-1111-2220"9999},
      {"Watson""010-1234-5678"8000}
      };
  struct employer  CEO = {"IamCEO""000-0000-0000"40000};
  int    iCnt;

  printf("이름 : [%s], 전화번호 : [%s], 나이 : [%d] \n", CEO.Name, CEO.Phone, CEO.Age);
  
  for(iCnt = 03 > iCnt; ++iCnt)
  {
    printf("이름 : [%s], 전화번호 : [%s], 나이 : [%d] \n", people[iCnt].Name, people[iCnt].Phone, people[iCnt].Age);
  }

  return 0;
}

출력 화면