본문 바로가기

반응형

자동제어(PLC,PC,로봇) & 전장설계 & CNC/PC 제어

마지막수업 더보기
PC제어프로그램 10일차 (20.07.31) LED 점등 3_2 프로그램 LED 점등 3 PROGRAM 설명 이전 시간에 했던 LED점등 3 프로그램의 중요 로직을 설명한다. UINT Z(LPVOID lParam) { RunThread=1; flag=1; do{ if(stage==1) // 초기동작 조건 (초기동작이라면 ...) { Outputb(PPI_C, led); // led의 값(0부터4까지)을 8255보드의 C포트(PC)로 보내서 점등 할 것을 결정해준다. Sleep(500); // 0.5초 동안 유지시킨다. first=1; // 초기동작 후 기본동작 조건 } // stage==1 else if(stage==2) // 기본동작 조건 (기본동작이라면...) { if(first==1) // 초기동작 완료 조건 { for(i=0;iLoadIcon(IDR_MAINFRAME).. 더보기
PC제어프로그램 9일차 (20.07.30) LED 점등하기(LED3) 장비가 정상인지 확인해본다. 연결해 본다. 장비와 컴퓨터가 정상적으로 작동하고 있다. 과제 수행을 해본다. LED6개를 점등하는 프로그램을 새로 만든다. // LED1_0730_10Dlg.cpp : implementation file #include "stdafx.h" #include "LED1_0730_10.h" #include "LED1_0730_10Dlg.h" //#include "windows.h" #include "string" //#include "vector" //#include "iostream" //#define ENABLE_TRACE #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE_.. 더보기
PC제어프로그램 8일차 (20.07.24) FND 점등하기 LED 점등1 프로그램 - 해당 LED의 체크 박스를 선택 후, 수동구동 버튼을 누르면 LED가 점등하고 - 체크박스를 해제한 후, 수동구동 버튼을 누르면 LED가 소등 - 파일명 : LED1 PC 프로그램 데이타 PC와 미니 MPS 트레이너를 연결함. 프로그램 실행 - FILE - NEW - 창이 뜨면 MFC AppWizard [exe] 선택 파일구조를 보면 아래와 같다. 새로운 프로젝트를 만들때 링크를 걸어주어야 오류가 생기지 않는다. FTD2xx.lib led0... 소스를 더블 클릭해서 들여다 보자. // led1Dlg.cpp : implementation file #include "stdafx.h" #include "led1.h" #include "led1Dlg.h" #ifdef _DEBUG #.. 더보기
PC제어프로그램 7일차 (20.07.14) 지난시간에는 반복 출력까지 했었다. /*for_01.c */ #include int main() { int i; printf(" 1에서 7까지의 출력하는 프로그램입니다.\n"); printf(" ------------------------------------\n"); for(i=1; i 0 r_digit = value % 10; printf("%d", r_digit); value = value / 10; } printf("\n-------------------\n"); return 0; } 이번에는 입력한 수를 반대로 출력하는 프로그램을 for문으로 작성하시오 아래코드는 초기화를 하지 않고 증감도 필요없이 계속 돌린다. /* for_1.c */ #include int main(void) { int va.. 더보기
PC제어프로그램 5일차 (20.05.14) - 기본코딩2 변수 선언 연습 /*파일: year.c 변수 선언 연습*/ #include #include int main(void) { time_t t=time(NULL); struct tm tm = *localtime(&t); int year; int month; int date; year = 2020; month = tm.tm_mon+1; // month = 5; date = 14; printf("오늘 날짜는 %d년 %d월 %d일 입니다.\n", year, month, date); printf("now: %d-%d-%d %d:%d:%d\n", tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday, tm.tm_hour, tm.tm_min, tm.tm_sec); return 0; } 문자형 변수 선.. 더보기
PC제어프로그램 5일차 (20.05.14) - 기본코딩1 /*printf2.c 정수표현식 출력1 */ #include int main(void) { printf("%d \n", 1234); return 0; } Ctrl + F5 실행 후 출력결과 /* print2_1.c */ #include int main(void) { printf("%d %d \n",10,20); return 0; } Ctrl + F5 실행 후 출력결과 /* printf3.c 정수표현식 3 */ #include int main(void) { printf("Hello Everybody \n"); printf("%d \n", 1234); printf("%d %d \n", 10, 20); return 0; } Ctrl + F5 실행 후 출력결과 콘솔창을 보면 Debug 창에 아래와 같이 표시된다.. 더보기
PC제어프로그램 4일차 (20.05.12) - Visual C++ 사용하기 Microsoft Visual C++ 실행을 한다. 프로젝트를 만들고 프로그래밍 작업을 하면 '프로젝트명-작업 파일명'에 작성한 프로그램이 만들어진다. 프로젝트/파일 (hellow/hellow) file-new 선택하면 Projects탭이 활성화되어 있음 file-new 선택하면 Files탭이 활성화되어 있음 이제 프로그램 명령어를 입력한다. 대소문자 구분하고 숫자 '0'과 영문자 'o'와 구분한다. /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0; } 프로그램 코드를 입력하고 Comfile을 해준다. 컴파일은 고급언어를 기계어로 바꾸는 과정이다. Ctrl+F7을 누르고 F7을 누르고 옆에 느낌표(!)를 누르면 실행.. 더보기
PC제어프로그램 4일차 - 프로그래밍 언어(20.05.12) 프로그래밍 언어 ■ 프로그래밍 언어란 무엇인가? ◆ 사람과 컴파일러(& 어셈블러)가 이해할 수 있는 약속된 형태의 언어 ◆ 저급언어 - 컴퓨터가 이해하기 쉬운언어 ex) 어셈블리어 ◆ 고급언어 - 인간에게 친근한 언어 ex) C언어 외 Comp. CPU 기계어 (0,1의 조합) 해독기 컴파일러 어셈블러 프로그래밍 언어 고급언어 저급언어 어셈블리어 ■ Mnemonic code에 명령어를 첨가한 것. ■ 기계어의 명령부와 번지부를 사람이 이해하기 쉬운 기호와 1:1로 대응시켜 기호화한 프로그램 언어 ■ Mnemonic code ◆ 프로그래밍의 비효율성 극복을 위해 기계어의 비트 형식을 연상코드화 ◆ 심벌화로 프로그램의 이해와 작성이 쉽다 ◆ 기계어로 직접 변환 가능 ◆ 프로그램 작성이 쉽다. ■ Assemb.. 더보기
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바퀴정도로 감소시킨다. (각도 제어도 가능하다) 안에 작은기어에 큰기어를 걸어서 속도를 줄여준다. 큰기어에 모터 걸고 판을 만들어 구멍을 뚫는다. 빛을 쏘아 센.. 더보기
PC제어프로그램 3일차 - 문자 자료의 표현 외(20.05.07) 문자 자료의 표현 ■ 컴퓨터에 자료를 입력하거나 출력할 때는 모두 문자로 취급하여 처리 ■ 문자 자료 ◆ 영문자의 대 소문자, 한글, 특수기호, 숫자 등 ◆ 코드 : 문자 자료의 표현 규칙 ■ 문자 코드 ◆ 일반적으로 문자코드는 6~8비트로 구성된다. ◆ 왼쪽 2~4개 비트 : 문자의 성격을 나타내는 존 비트(zone bit)로 사용 ◆ 오른쪽 4개의 비트 : 문자를 구분하는 디지트 비트(digit bit)로 사용 8비트 경우 : OOOOOOOO 왼쪽은 ZONE BIT 오른쪽은 DIGIT BIT (항상4BIT) BCD코드 ■ BCD코드 (Binary Coded Decimal) 8421코드 ■ BCD코드는 숫자를 표현하기 위해 사용하던 4비트 코드를 확장한 코드 ■ 2개의 존비트(zone bit)와 4개의.. 더보기
PC제어프로그램 3일차 - 진수의 연산, 뺄셈 (20.05.07) 진수의 연산 ■ 10진수의 덧셈 ◆ 10진수는 각 자리의 최대수는 9 ◆ 두 수를 합하여 10이 되면 바로 윗자리에 1을 더하고, 그자리는 0이 된다. ■ 2진수의 덧셈 ◆ 2진수는 각 자리의 최대수가 1 ◆ 연산 결과가 2가 되면 바로 윗자리에 1을 더해주는 자리올림이 생기고, 그자리는 0이 된다. ■ 진수의 연산 7(10) +8(10) 15(10) 1(2) +1(2) 10(2) 1(2) +1(2) +1(2) 11(2) ◆ 10진수 6+5를 2진수로 변환시켜 계산해보자. 6(10) +5(10) ? -> 0110(2) +0101(2) 1011(2) 검산: 2진수 1011는 10진수로 11이다. 진수의 뺄셈 ■ 초기의 컴퓨터는 직접 뺄셈을 수행 ■ 최근 대부분의 컴퓨터는 보수를 사용하여 뺄셈을 덧셈으로 바.. 더보기
PC제어프로그램 2일차 - 진수의 변환 (200423) 3. 수의 표현과 연산 프로그램에서 쓰는 진수 : 10진수, 2진수, 8진수, 16진수 ■ 10진수 (Decimal number) ◆ 일상 생활에서 수치를 표현하거나 계산할 때 0~9의 10개의 수 ■ 2진수 (Binary number) ◆ 컴퓨터는 0, 1로 구성된 2진수를 사용 ■ 8, 16진수 (Octal / Hexadecimal number) ◆ 2진법으로 표현하면 판독과 작성이 어렵고 번거로워 간단히 나타내기 위해 사용 10진법 ■ 10진수 (Decimal number) ◆ 일상 생활에서 수치를 표현하거나 계산할 때 0~9의 10개의 수 ■ 각 진법에서 사용되는 기호의 수를 밑수(base) ■ 10진법에서는 밑수가 10이 된다. 2진법 ■ 0, 1의 2개의 숫자로 모든 수를 나타내는 방법 ■ 비.. 더보기
PC제어프로그램 2일차 - 마이크로프로세서 (200423) 1. 마이크로프로세서의 정의 마이크로프로세서 ■ 컴퓨터의 산술논리연산기, 레지스터, 프로그램카운터, 명령디코더, 제어회로 등의 연산장치와 제어장치를 1개의 작은 실리콘 칩에 모아놓은 처리장치 ■ 구성 ◆ 산술논리연산기, 레지스터, 프로그램 카운터, 명령 디코더, 제어회로 ■ 기능 ◆ 주기억장치에 저장되어 있는 명령어를 인출하여 해독하고 실행 ◆ 실행 결과를 다시 주기억장치에 저장 ◆ 입출력 장치들과도 데이터 교환 마이크로프로세서의 응용 ■ 마이크로컴퓨터, 군사용 무기, 가전제품 등 다양한 이용 ■ 공정 제어 분야, 사무자동화기기 등 ■ 여러 반도체 회사에서 개발하고 있어, 성능이 우수하면서 가격이 매우 저렴한 마이크로 프로세서가 많이 출시되고 있음 관련 용어 ■ 레지스터 : 데이터를 기억하는 소규모 기억.. 더보기
PC제어프로그램 1일차 (200417) 멀티플레서 https://m.blog.naver.com/asd7979/30109725011 멀티플렉서(Multiplexer) 이 포스트를 보기전에 아래 버튼(View on)을 꾹 눌러주시길 바랍니당 ^^ 재생하기 바로보기가 지원되지 않... blog.naver.com ALU https://opentutorials.org/module/2719/15503 ALU(Arithmatic Logic Unit) 만들기 - 1 - 개발자가 꼭 알아야 할 컴퓨터 하드웨어 ALU(Arithmatic Logic Unit) 만들기 - 1 2017-03-04 00:57:48 opentutorials.org 더보기