본문 바로가기

자동제어/PC 제어

PC제어프로그램 4일차 (20.05.12) -

반응형

그레이(gray) 코드

int a,b;
int c=10, d=20;

 ■ 연속된 수가 1개의 비트만 다름

 ■ 비가중치 (non-weighted) 코드

 ■ A/D 변환기(analog-to-digital converter)에 사용

가중치 : 2진수 값이 10진수로 나타냈을때 대소가 확실히 알 수 있는것

1010(2) -> 10 

0100(2) ->  4 

0001(2) ->  1 

 

그레이 코드 - DC모터를 제어할 때 사용한다.

 

모터의 회전속도(RPM)은 1600~1800정도이다(초당 30바퀴정도 돈다. 눈으로 확인 어렵다)

감속기를 넣으면 초당 1~2바퀴정도로 감소시킨다. (각도 제어도 가능하다)

안에 작은기어에 큰기어를 걸어서 속도를 줄여준다.

 

큰기어에 모터 걸고 판을 만들어 구멍을 뚫는다. 빛을 쏘아 센서로 확인 가능하다.

구멍은 12개 뚫는다. 30도로 확인 가능 -> 30도로 제어 가능하다.

 

그레이(gray) 코드 변환 방법

 ■ 2진수를 그레이 코드로 변환

 ■

 ■

 

1 0 1 0 (2) 

1 1 1 1 (G)

1 0 1 0 (2) 

 

해밍(hamming) 코드

 ■ 코드 전송시 발생하는 오류를 검출(detecting)하고 수정(correcting)이 가능한 코드

 ■ 미국 Bell 연구소의 R.W.Hamming에 의하여 개발

 

 

3초과 코드 (생략)

보수 (생략)

 

수치 자료의 표현

 ■ 수치 자료는 프로그램 실행 중 사칙연산이 가능한 자료

 ■ 컴퓨터 내부에서 계산할 때만 상ㅇ하고, 그 결과는 문자로 출력

 ■ 수치 자료의 표현 방식

    ◆ 

    ◆ 

         
    0 . 1
  0 . 1 3
  2 . 3 5
1 . 2 3 4

 

 

영상 및 음성자료의 표현

 ■ 영상 자료의 표현

    ◆ 영상 자료는 화면에 그림 등이 수 많은 점의 집합으로 표현

    ◆ 그래픽스 (graphics) : 점들의 집합으로 그림을 나타내는 방식

        칼라는 빛의 3원색(rgb)으로 표현 

R G B

    ◆ 화소(pixel)

        그래픽스에 나타나는 각각의 점

        흑백화면 : 각 점을 화소에 2진수 0과 1을 대응시켜 명암을 표현

        칼라화면 : 3개 또는 그 이상의 비트를 이용하여 색과 명암을 표시

 ■

 ■

 

 

프로그래밍 언어

 ■ 프로그래밍 언어란 무엇인가?

    ◆ 사람과 컴파일러(& 어셈블러)가 이해할 수 있는 약속된 형태의 언어

    ◆ 저급언어 - 컴퓨터가 이해하기 쉬운언어 ex) 어셈블리어

    ◆ 고급언어 - 인간에게 친근한 언어 ex) C언어 외

 

Comp. CPU

기계어

(0,1의 조합)

해독기


컴파일러
어셈블러
프로그래밍 언어

고급언어
저급언어

 

어셈블리어 

 ■ Mnemonic code에 명령어를 첨가한 것.

 ■ 기계어의 명령부와 번지부를 사람이 이해하기 쉬운 기호와 1:1로 대응시켜 기호화한 프로그램 언어

 ■ Mnemonic code

    ◆ 프로그래밍의 비효율성 극복을 위해 기계어의 비트 형식을 연상코드화

    ◆ 심벌화로 프로그램의 이해와 작성이 쉽다

    ◆ 기계어로 직접 변환 가능

    ◆ 프로그램 작성이 쉽다.

 ■ Assemble

    ◆ 어셈블리어(Source) 프로그램을 기계어 (Object)로 바꾸는 것.

 

 

 

고급 수준 언어

 ■ FORTRAN

    ◆ FORmula TRANslating system(수식번역 시스템)

    ◆ 가장 오래된 언어. 계산 위주로 단순, 간결.

    ◆ 기술 계산 분야에 사용

 ■ BASIC

 ■ COBOL

 ■ PASCAL

 ■ 

    ◆ B언어에서 발전한 언어

    ◆ 1972년경 UNIX의 운영체제 개발을 위한 시스템 프로그래밍 언어로 설계

    ◆ 컴파일러나 많은 소프트웨어 TOOL들이 C로 개발됨

        C언어를 기계어로 바꾸어주는 컴파일러도 C로 개발되었다

        한글에서 프린터 아이콘 누르면 화면이 뜨는데, 그것도 C로 개발되었다

    ◆ 기계어에 가까워 하드웨어에 대한 확실한 통제 가능

    ◆ 이식성(portability)이 높다

    ◆ 풍부한 연산자와 데이터 type

    ◆ 범용 프로그래밍 언어와 응용소프트웨어 개발에 많이 사용

 ■ C++ 

    ◆ 객체지향 프로그래밍(OOP : Object-Oriented Program 독립적인 각각의 객체로 프로그램이나 시스템을 구성하는 일)을 지원하기 위한 언어

    ◆ C언어의 장점을 계승하고 객체의 상속성의 개념을 추가하여 1983년 개발한 언어

독립적으로 실행하는 과정에서 다른 프로그램을 넣어서 돌릴 수 있다.

 ■ JAVA

 

 

컴파일

 고급언어로 작성된 프로그램을 컴퓨터가 이해할 수 있도록 기계어로 번역해주는 역할을 하는 번역기

 

 

C로 장치를 액추에이터를 구동하기 때문에 깊이 있게 다룬다.

 

 

전처리기

 컴파일을 하기 전에 먼저 읽어 삽입하는 역할

    ◆ 

    ◆ 

 컴파일러는 전처리기의 처리 결과인 소스를 컴파일한다.

    ◆ 

    ◆ 

 

 

헤더파일

 

    ◆ 

    ◆ 

 

 

    ◆ 

    ◆ 

 

 

지시자 #include와 define

 

 

 

키워드와 식별자

 

 

변수

임시로 자료값을 저장하는 저장장소

사용전에 변수 선언을 해야 함

선언과 함께 초기값을 저장할 수 있다.

마지막 값만 저장한다.

int a,b;
int c=10, d=20;