Transcript 순 서

마이크로 프로세서를 이용한 자동화 교육
2006년도
uP 자동화 교육
기간 : 2006년 월 일 ~ 월 일
1
마이크로 프로세서를 이용한 자동화 교육
교육진행표
1 일차
13 : 00 ~ 13 : 50
강사 소개 및 디지털 논리회로 일반
이론
14 : 00 ~ 14 : 50
마이크로 프로세서의 구조와 기능
이론
15 : 00 ~ 15 : 50
C 언어의 기초 및 컴파일러 사용법
이론 및 실습
16 : 00 ~ 16 : 50
간단한 uP 프로그래밍
실습
17 : 00 ~ 17 : 50
간단한 uP 프로그래밍
실습
복습 및 요약
이론
10 : 00 ~ 10 : 50
uP를 이용한 제어 실습
실습
11 : 00 ~ 11 : 50
uP를 이용한 제어 실습
실습
13 : 00 ~ 13 : 50
uP를 이용한 제어 실습
실습
14 : 00 ~ 14 : 50
uP를 이용한 제어 실습
실습
15 : 00 ~ 15 : 50
수행 평가
평가
9 : 00 ~ 9 : 50
2일차
2
마이크로 프로세서를 이용한 자동화 교육
디지털 논리 회로 이론
순서
1-1. 수의 표현
디지털 논리 회로 이론
① 2진법 : 0과 1의 2개의 숫자로만 정수를 표현.
Microprocessor 개론
② 2진화 10진부호(BCD) : 10개의 숫자 0, 1, 2, 3, 4, 5, 6, 7, 8, 9를
각각 4자리 수의 2진법 0000, 0001, 0010,
8051구조와 기능
0011, 0100, 0101, 0110, 0111, 1000, 1001로
바꾸어 10진수를 나타내는 방법.
C 언어의 기초
③ 8진법 : 8개의 숫자 0∼7을 이용해서
실험장비 소개 및 사용법
컴파일러 사용법
정수를 나타내는 방법.
④ 16진법 : 16을 밑으로 하는 정수표현 방법.
10진수의 10, 11, 12, 13, 14, 15에
실험 실습
대응하는 숫자에 A, B, C, D, E, F로
대신해서 나타냄.
10진수
2진수
8진수
16진수
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
3
마이크로 프로세서를 이용한 자동화 교육
디지털 논리 회로 이론
순서
1-2. 2진-10진수 변환과 2진수의 사칙 연산
디지털 논리 회로 이론
(1) 2진수의 뺄셈
0
0
1
1
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
(2) 2진수의 덧셈
+
+
+
+
0
1
0
1
=
=
=
=
0
1
1
1 0
(3) 2진수의 뺄셈
① 1의 보수 :
0을 1로, 1을 0으로 변환시키는 것.
② 2의 보수 :
1의 보수에 1을 더한 값.
실험 실습
4
마이크로 프로세서를 이용한 자동화 교육
디지털 논리 회로 이론
순서
1-3. 기본 논리 소자
(1) AND 소자
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
③ 진리표
① 논리식 : F=A·B 또는 F=A∩B
② 논리기호 :
④ 논리동작 : A가 1이고,
B가 1일 때에만 F는 1이다.
C 언어의 기초
입력
출력
A
B
F
L(0)
L(0)
L(0)
L(0)
H(1)
L(0)
H(1)
L(0)
L(0)
H(1)
H(1)
H(1)
(2) OR 소자
실험장비 소개 및 사용법
① 논리식 : F=A+B 또는 F=A∪B
② 논리기호 :
컴파일러 사용법
실험 실습
④ 논리동작 : A가 1또는 B가
1이면 F는 1이다.
③ 진리표
입력
출력
A
B
F
L(0)
L(0)
L(0)
L(0)
H(1)
H(1)
H(1)
L(0)
H(1)
H(1)
H(1)
H(1)
5
마이크로 프로세서를 이용한 자동화 교육
디지털 논리 회로 이론
순서
1-3. 기본 논리 소자
(3) NOT 소자
디지털 논리 회로 이론
③ 진리표
① 논리식 :
Microprocessor 개론
② 논리기호 :
8051구조와 기능
④ 논리동작 : A가 1이면 F는 0으로
되고, A가 0이면 F는 1로 된다.
실험장비 소개 및 사용법
컴파일러 사용법
① 논리식 :
③ 진리표
② 논리기호 :
A
F
L(0)
H(1)
H(1)
L(0)
① 논리식
② 논리기호 :
④ 논리동작 : A가 1또는 B가 1이면 F는 0이다.
③ 진리표
출력
A
B
F
L(0)
L(0)
H(1)
L(0)
H(1)
H(1)
H(1)
L(0)
H(1)
H(1)
H(1)
L(0)
④ 논리동작 : A가 1이고, B가 1일 때에만 F는 0이다.
(5) NOR 소자
실험 실습
출력
입력
(4) NAND 소자
C 언어의 기초
입력
입력
출력
A
B
F
L(0)
L(0)
H(1)
L(0)
H(1)
L(0)
H(1)
L(0)
L(0)
H(1)
H(1)
L(0)
6
마이크로 프로세서를 이용한 자동화 교육
디지털 논리 회로 이론
순서
1-4. 조합 논리 소자
디지털 논리 회로 이론
① 논리식
Microprocessor 개론
③ 진리표
② 논리기호 :
8051구조와 기능
C 언어의 기초
입력
(1) 배타적 논리합 소자(exclusive-OR) :
출력
A
B
F
L(0)
L(0)
L(0)
L(0)
H(1)
H(1)
H(1)
L(0)
H(1)
H(1)
H(1)
L(0)
④ 논리동작 : 입력 A, B의 어느 한쪽만이 1일 때
출력 F가 1이 되고, 입력 A, B가 모두 0 또는 1일 때 출력 F가 0이 된다.
(2) 선택 게이트
실험장비 소개 및 사용법
컴파일러 사용법
① 멀티플렉서 : 복수개의 입력 중에서 필요한 입력 하나를 선택하는 회로.
② 디멀티플렉서 : 복수개의 출력 중에서 필요한 출력 하나를 골라내는 회로.
(3) 디코더와 인코더
① 디코더 : 복수개의 입력 단자와 복수개의 출력단자를 가지고, 입력 패턴에
실험 실습
대응해서 1개의 출력이 얻어지는 회로. 복호기
② 인코더 : 복수개의 입력 단자와 복수개의 출력단자를 가지며, 입력 단자의
어느 것 1개에 입력이 가해져 그것에 대응하는 출력 형태가
얻어지는 회로. 부호기
7
마이크로 프로세서를 이용한 자동화 교육
Microprocessor의 구성
Microprocessor의 역사
8
마이크로 프로세서를 이용한 자동화 교육
Microprocessor의 구성
비트단위 입출력
Port A
uP
9
마이크로 프로세서를 이용한 자동화 교육
인터럽트 처리
Interrupt
10
마이크로 프로세서를 이용한 자동화 교육
특별한 장치 내장
ADC
DAC
Micorprocessor
카운터
PWM
LCD제어기
11
마이크로 프로세서를 이용한 자동화 교육
타이머 내장
12
마이크로 프로세서를 이용한 자동화 교육
저 전력
13
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
⇒ 8비트 원칩(one-chip) 마이크로컴퓨터
⇒ 8비트 단위의 4개의 입출력 포트
디지털 논리 회로 이론
⇒ 클록 발진기 내장 (클럭 발생 회로 일부
내장. 실제 클럭을 발생시키는 크리스탈은
Microprocessor 개론
들어 있지 않다.)
⇒ 4개의 모드로 사용 가능한 2개의 16비트
8051구조와 기능
타이머/카운터(T0, T1)
⇒ 1개의 시리얼 통신 포트(또한, I/O 확장
C 언어의 기초
모드 사용가능 : I/O 포트로 사용)
⇒ 우선순위를 프로그램으로 설정 가능한
5개의 인터럽트
실험장비 소개 및 사용법
⇒ 4k바이트의 내부 프로그램 메모리(8031은
내부 프로그램 메모리 없음)
컴파일러 사용법
⇒ 64k바이트의 외부 프로그램 메모리 확장 영역
⇒ 64k바이트의 외부 데이터 메모리 확장 영역
실험 실습
⇒ 광범위한 불(Boolean) 명령 가능한
프로세서 (bit단위의 연산(부울 대수)과
제어에 뛰어나다 )
14
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
1) Vcc ; 전원 입력단자
디지털 논리 회로 이론
2) Vss : 회로의 접지단자
Microprocessor 개론
3) PORT 0 : PORT 0는 하나의 9비트
Open Drain의 쌍방향성 I/O 포트이다.
8051구조와 기능
외부 메모리의 데이타를 Accese할 때
포트 0은 데이타 버스와 어드레스버스의
C 언어의 기초
하위 8비트의 Multiplexor의 역할을 하는데
이러한 상황에서 "1"신호를 출력할 때
실험장비 소개 및 사용법
내부의 풀업회로를 사용 한 것이다.
4) PORT 1 : PORT 1역시 8비트 내부에 풀업회로를 갖고 있는 쌍방향성 I/O이다.
컴파일러 사용법
포트 1에 "1"을 써넣고자 할때 그 핀의 "L" 레벨는 내부의 풀업회로에 의해 "H"레벨로
되며, 포트1의 핀은 외부회로에 의해 "L"레벨로 된다.
실험 실습
5) PORT 2 : PORT 2역시 8비트 내부에 풀업회로를 갖고 있는 쌍방향성 I/O이다.
외부 16비트메모리를 Accese할 때 포트 2는 상위 8비트의 어드레스 신호를 출력하게 된다.
15
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
6) PORT 3: PORT 3역시 8비트 풀업회로를 갖고 있는 쌍방향성 I/P이다.
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
7) RST
:
P3.0
RXD
(시리얼 입력 포트)
P3.1
TXD
(시리얼 출력 포트)
P3.2
INT0
(0번째 인터럽트)
P3.3
INT1
(1번째 인터럽트)
P3.4
T0
(0번째 타이머의 외부 입력단자)
P3.5
TI
(1번째 타이머의 외부 입력단자)
P3.6
WR
(외부 데이타 메모리의 WRITE 신호)
P3.7
RD
(외부 데이타 메모리의 READ 신호)
RESET 입력단자로서 오실레이터 작업을 할 때 이핀에서는 2머신 사이클의
고전위을 유지하게 되어 CPU를 RESET할 수 있다.
8) ALE/PROG : ALE는 오실레이터 주파수의 1/6정도의 출력펄스로서 CPU가 외부 메모리를
엑세스하지 않을 때에도 정상적으로 출력한다. 그래서 이 핀은 외부 펄스 소스로
실험 실습
사용할 수 있다. 그러나 외부 데이타 메모리를 엑세스할 때는 한 ALE주기를 뛰어 넘게
된다. EPROM Writing 할때는 Writing 펄스의 입력단자로서의 작용을 한다.
16
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
9) PSEN(PROGRAM STORE Enable) : 외부 프로그램의 Read strobe 신호로서 CPU가 외부
프로그램 메모리로 실행할 때 PSEN은 주기마다 2회씩 동작하게 된다.
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
그러나 내부프로그램 메모리를 실행할 때 PSEN은 동작하지 않는다.
10) EA/Vpp : EA거 고전위일 때 CPU는 내부 프로그램 메모리를 실행하게 된다.
EA가 저전위일때 프로그램 카운터의 값이 얼마인가에 관계없이 일률적으로 CPU는 외부
프로그램 메모리의 명령을 실행하게 된다.
11) XTAL1 : 반전된 발진 증폭기에 대한 입력단자
C 언어의 기초
12) XTAL2 : 반전된 발진 증폭기에 대한 출력단자
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
17
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
18
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
◆ 중앙연산처리장치(CPU)
ⓐ 명령 디코더(CU : Control Unit) 혹은 명령 해독기
→ CPU의 명령 디코더는 각 명령을 해독하여, 실제로 그 명령을 실행해서 완료할 때까지
필요한 CPU 내부 신호를 만들어서, 주어진 기능을 완료시키는 부분.
ⓑ 프로그램 카운터(PC : Program Counter)
→ 프로그램 카운터는 프로그램 메모리에 저장되어 있는 명령군의 실행순서를 정하는
16비트 레지스터이며, 실행시킬 명령이 기억되어 있는 어드레스를 가리키고 있다.
ⓒ ALU(Arithmetic Logic Unit)
→ 8비트 산술 및 논리 연산을 하는 곳이다.
- 캐리 없는 덧셈, 캐리 있는 덧셈/뺄셈 처리 연산
- +1 증가, -1 감소 연산
- 곱셈/나눗셈 연산
- AND, OR, XOR, 로테이트 연산
- 보수화 연산
- 니블 단위의 데이터 교환 연산
- 조건 브랜치(점프) 처리
ⓓ 어큐뮬레이터(ACC : Accumulator)
→ A로도 표기한다. 가장 많이 사용되는 레지스터(A Register)
- 산술 논리 연산에서 연산자로 사용
- 논리, 연산, 명령 등의 오퍼런드로도 사용
- 데이터 참조 등에서 테이블 번지의 오프셋(offset)으로 사용
- 외부 확장 데이터 RAM과 데이터 전송에 사용
- 프로그램 메모리에서 데이터를 읽을 때도 사용.
- 로테이트, 패리티 계산, 제로 테스트 등의 명령 등에서도 사용.
19
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
ⓔ PSW(Program Status Word)
→ 프로그램의 수행 결과에 따라서 연산 처리 결과를 나타내는 레지스터이다.
PSW
CY AC F0 RS1 RS2 OV - P
- C(Carry flag)
․ 덧셈, 뺄셈 연 산시 올림 수나 내림수가 발생할 때 셋된다.
․ 1비트 논리 연산시에 비트 처리용으로 사용
․ DA명령어에서 결과 값이 99를 넘어가면 셋된다.
- AC(Auxiliary carry flag)
․ 보조 캐리로 사용된다.
- F0(사용자 범용 플래그)
․ 사용자가 임의로 사용 가능한 플래그이다.
- OV(Overflow flag)
․ 부호 있는 정수연산에서, 오버플로가 검출되면 셋 된다.
․ 2의 보수 연산을 할 수 있다.
- P(Parity flag)
․ 한 명령을 실행한 후, 어큐뮬레이터의 데이터에서 1의 개수가
짝수면 리셋 되고 홀수면 셋 된다.
- RS1, RS2(Register bank Select 1, 0)
․ 레지스터 뱅크를 선택하는 데 사용
․ 현재 사용되는 범용 레지스터 R0~R7이 4개의 뱅크 중
어느 뱅크에 있는지를 가리키며 또한 값의 변경을 통하여
선택할 수 있다.
RS1
RS0
0
0
1
1
0
1
0
1
Register
Bank
Bank
Bank
Bank
Bank
0
1
2
3
20
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
ⓕ 기타 레지스터
- B 레지스터
디지털 논리 회로 이론
․ 8비트 크기로 곱셈/나눗셈에서는 A레지스터와 함께 16비트 레지스터를 만든다.
․ 그 연산의 결과를 일시적으로 저장하는 데 사용한다.
Microprocessor 개론
- SP(Stack Pointer)
․ 8비트 크기로, 스택을 가리키는데 사용한다.
8051구조와 기능
- DPTR(Data Pointer)
․ 16비트로 구성된 레지스터
C 언어의 기초
․ 레지스터 간접 점프에서 점프할 어드레스를 저장.
․ 테이블 참조 명령에서는 베이스 레지스터로 사용.
실험장비 소개 및 사용법
․ 외부 RAM과 데이터 전송할 때는 외부 RAM의 어드레스 포인터로 사용.
컴파일러 사용법
실험 실습
21
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
22
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
8051은 하드웨어적으로 분리된 어드레스 구성과 전용 제어신호를 갖는 어드레스 영역
① 8051에 내장된 데이터 메모리
② 8051에 내장된 특수 기능 레지스터
③ 8051에 내장된 프로그램 메모리
④ 외부 확장 프로그램 메모리
⑤ 외부 확장 데이터 메모리
1) 내부 데이터 메모리
◆ 128바이트의 데이터 메모리
⇒ 256바이트의 내부 메모리 공간은 두 가지로 나누어진다.
․ 128바이트의 사용자 메모리 영역(데이터 RAM 영역)
․ 128바이트의 특수 기능 레지스터(SFR : Special Function Register)
00H~07H
08H~0FH
10H~17H
18H~1FH
20H~2FH
Bank 0
Bank 1
Bank 2
Bank 3
Bit
memory
30H~7FH
80H~FFH
SFR
컴파일러 사용법
실험 실습
23
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
1) 레지스터 뱅크 0~3
→ 메모리 어드레스 00H~1FH로 할당이 되어 있으며, 8개씩을 하
나로 묶어서 뱅크라 부른다. 각 뱅크에서는 절대 어드레스를 사용하지 않고, R0~R7이라는
범용 레지스터의 이름을 사용한다.
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
2) Bit 어드레스 영역 → 메모리 어드레스 20H~2FH까지 16바이트는 비트 어드레스 영역
으로 128바이트를 각각 비트 번지로 제어 가능한 영역이다. 따라서 비트 단위로 처리하기
위한 데이터는 이 번지 영역에 설정하여 사용한다.
3) 30H~7FH
→ 단순한 데이터 메모리로 사용된다.
24
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
디지털 논리 회로 이론
4) 특수기능레지스터(SFR)
→ 80H~FFH까지의 상위 128바이트
◆128바이트의 특수 기능 레지스터
(SFR : Special Function Register)
F8
F0
EF
ACC
E7
DF
D0
PSW
D7
C8
T2CON
CF
C0
C 언어의 기초
실험장비 소개 및 사용법
SFR 메모리 맵
실험 실습
F7
D8
8051구조와 기능
컴파일러 사용법
B
E8
E0
Microprocessor 개론
FF
I/O Port
Control
Other
C7
B8
IP
BF
B0
P3
B7
A8
IE
AF
A0
P2
A7
98
SCON
90
P1
88
TCON
TMOD
TL0
TL1
80
P0
SP
DPL
DPH
SBUF
9F
97
TH0
TH1
8F
PCON
87
25
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
* 비트 번지 지정 가능
순서
특수 기능 레지스터에서 각 니모닉
기호
이
름
디지털 논리 회로 이론
Microprocessor 개론
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
어드레스
(16진수)
*ACC
Accumulator
E0H
*B
B 레지스터
F0H
Program Status Word
81H
*PSW
8051구조와 기능
기호
DPTR
Data Pointer 2바이트
DPL
Low byte
82H
DPH
High byte
83H
*P0
Port 0
80H
*P1
Port 1
90H
이
름
어드레스
(16진수)
TMOD
Timer/counter Mode
control
89H
*TCON
Timer/counter
control
88H
*T2CON
Timer/counter 2
control
C8H
TH0
Timer/counter 0
High byte
8CH
TL0
Timer/counter 0 Low
byte
8AH
TH1
Timer/counter 1
High byte
8DH
Timer/counter 1 Low
byte
8BH
*P2
Port 2
A0H
*P3
Port 3
B0H
TL1
*IP
Interrupt Priority
control
B8H
*SCON
Serial control
98H
*IE
Interrupt Enable
control
A8H
SBUF
Serial data buffer
99H
PCON
Power control
87H
26
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
8051은 8비트씩 4개(P0, P1, P2, P3)의 포트로 구성되어 있다. 이 각각의 I/O 라인은 입력
또는 출력 양방향의 입출력으로 사용할 수 있도록 소프트웨어로 지정할 수 있다. 또, 비트
처리 혹은 바이트 처리가 가능하며 브랜치 명령을 이용할 수도 있다.
디지털 논리 회로 이론
1. Port 0(P0.0 ~ P0.7)
Microprocessor 개론
포트 0은 출력 포트로 사용할 경우에는 오픈 드레인(open drain)형의 출력 단자가 되고,
확장용 버스로 사용할 경우에는 3스테이트 출력 구동회로가 된다. 포트 0의 출력회로는
표준 TTL 2개(8개 LS TTL)를 구동할 수 있는 충분한 전류능력을 가고 있다.
8051구조와 기능
◆ 포트 0의 기능
․ 외부에 프로그램 메모리와 데이터 메모리를 인터페이스 하였을 때 하위 어드레스
C 언어의 기초
A0~A7과 데이터 버스로 사용된다.
․ 8751을 라이트할 때는 데이터 버스로 사용된다. 이때는 외부 풀업(pull up)
실험장비 소개 및 사용법
저항을 연결하여야 한다.
․ 외부에 메모리를 인터페이스하지 않았을 때는 범용 I/O 포트로 사용할 수 있다.
컴파일러 사용법
실험 실습
이때도 마찬가지로 외부에 풀업 저항을 연결하여야 한다.
2. Port 1(P1.0 ~ P1.7)
내부 풀업이 되어 있는 8비트 유사 양방향(quasi directional)포트이다. 이 포트는 1개의 표준
TTL(4개의 LS TTL)을 구동시킬 수 있다.
◆ 포트 1의 기능
․ 8751을 라이트할 때는 어드레스 버스 A0~A7으로 사용.
․ 범용 I/O 포트로 사용.
27
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
3. Port 2(P2.0 ~ P2.7)
디지털 논리 회로 이론
내부 풀업을 갖는 8비트 유사 양방향 입출력단자이다. 범용 I/O 포트로 사용할 경우에는
1개의 표준 TTL(4개의 LS TTL)를 구동시킬 수 있다.
◆ 포트 2의 기능
Microprocessor 개론
․ 외부 프로그램 메모리 혹은 데이터 메모리와 데이터 전송시, 상위 어드레스 A8~A15로
사용된다.
․ 8751을 라이트할 때는 상위 어드레스 버스로 사용한다.
8051구조와 기능
․ 외부에 8비트 어드레스만을 사용하는 기억소자를 인터페이스 하였을 경우에는 원래의
목적대로 포트 2로 사용할 수 있다.
C 언어의 기초
실험장비 소개 및 사용법
․ 외부에 메모리를 인터페이스하지 않았을 때는 범용 I/O 포트로 사용할 수 있다.
4. Port 3(P3.0 ~ P3.7)
내부 풀업을 갖는 8비트 유사 양방향 입출력 단자이다. 포트 3은 범용 I/O를 사용할
경우에는 표준 TTL 2개(LS TTL 4개)를 구동시킬 수 있다.
컴파일러 사용법
◆ 포트 3의 기능
․ 범용 I/O 포트로 사용할 수 있다.
실험 실습
․ 범용 I/O 포트의 기능이 아닌 기능으로도 사용할 수 있다.
28
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서

종류
–
–
–
–
–
IE와
디지털 논리 회로 이론
Microprocessor 개론
•
동일 우선 순위
외부 인터럽터 0
타이머/카운터 0
외부 인터럽터 1
타이머/카운터 1
시리얼 포트
IP의 두 개의 레지스터로 제어
IE0
최우선순위
TF0
IE1
TF1
RI 또는 TI
TF2 또는 EXF1
8051구조와 기능
IE : Interrupt Enable Register
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
EA -- ET2 ES
ET1
EX1
ET0
IP: Interrupt 우선순위 Register
EX0
-- -- -- PS PT1 PX1 PT0 PX0
- EA : 전체 인터럽터
- PS : 시리얼포트 인터럽터
- ES : 시리얼 포트 인에이블
- PT1
: Timer 1.
- ET1
: 타이머 1 인터럽터
- PX1
: 외부 인터럽터 1
- EX1
: 외부 인터럽터 1
- PT0
: Timer 0.
- ET0
: 타이머 0 인터럽터
- PX0
: 외부 인터럽터 0
- EX0
: 외부 인터럽터 0
-‘1’로 하면 인터럽터 우선 순위가
-
0 = Disabled.
-
1 = Enabled.
높은 레벨로 된다.
29
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
TCON : Counter/Timer Control Register
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
- TF1, TF0 : 타이머/카운터 인터럽터 플래그
‘0’ : 인터럽터를 받으면 오토 리셋
‘1’ : 타이머/카운터가 오버플로가되면 세트
- TR1, TR0 : 제어 비트 ( ‘1’은 카운터 시작,
‘0’은 카운터 정지)
- IE1, IE0 : 외부 인터럽터 1 에지 플래그
(에지트리거의 경우만 INT1 = L에서 1로 세트)
- IT1, IT0 : 외부 인터럽터 Type 플래그
(‘1’은 에지 트리거,‘0’은 레벨트리거)
실험 실습
30
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
TMOD : Counter/Timer Mode Register
디지털 논리 회로 이론
GATE C/T M1 M0 GATE C/T M1 M0
Microprocessor 개론
Timer 1
Timer 0
8051구조와 기능
- GATE : 외부에서의 타이머/카운터 제어플래그
C 언어의 기초
TR1=‘1’,
GATE=‘1’일 때
INT..=‘1’에서 카운터 시작,
실험장비 소개 및 사용법
INT..=‘0’에서 카운터 정지
- C/T : 내부/외부 클럭 설정(1’:T1단자 입력 클럭(외부),‘0’: XTAL/12 클럭(내부))
- M1, M0 : 모드 설정
컴파일러 사용법
00 : 8비트 타이머/카운터
01 :16비트 타이머/카운터
실험 실습
10 : 8비트 Auto-Reload 모드
11 :Timer/Counter 0 : 두개의 독립된 8-bit 타이머/카운터
Timer/Counter 1 : 1개의 16비트 타이머/카운터
31
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
SCON(시리얼 포트 제어 레지스터) : SERIAL PORT CONTROL REGISTER
디지털 논리 회로 이론
Microprocessor 개론
SMO
SM1
SM2
REN
TB8
RB8
T1
R1
ADDR : (98H)
SM0
SM1
모드
설명
0
0
1
1
0
1
0
1
0
1
2
3
시프트 레지스터
8 비트 비동기
9 비트 비동기
9 비트 비동기
SM0
SCON.7 : 시리얼 포트 모드 선택
SM1
SCON.6 : 시리얼 포트 모드 선택
SM2
SCON.5 : 시리얼 포트에서 모드 2, 3일 때 ENABLE 멀티마이크로 프로세서 통신의
기능을 한다. 모드 2 또는 3에서 SM2=1일 때, 수신된 9번째 비트가 0일 때 RI는
8051구조와 기능
동작하지 않는다. 모드 1에서 SM2=1일 때 수신된 정지비트가 정확치 않을 때 RI 역시
동작하지 않는다.
C 언어의 기초
실험장비 소개 및 사용법
REN
SCON.4 : 소프트 웨어에의해 설정 또는 소거된다.
TB8
SCON.3 : 모드 2 또는 3일 때 송신된 9번째 비트. 소프트웨어에 의해 제어된다.
RB8
SCON.2 : 모드 2와 3에서 수신된 9번째 비트를 이 비트에 넣는다. 모드 1에서
SM2=0이면 RB8은 수신된 정지비트로서 모드 0에서는 RB8은 사용하지않는다.
컴파일러 사용법
T1
실험 실습
SCON.1 : 송신 인터럽터 플래그. 모드 0에서 8번째 비트 완료시 하드웨어에 위해
1로 설정된다. 이 비트는 반드시 소프트웨어에 의해 소거된다.
R1
SCON.0 : 수신 인터럽트 플래그. 모드 0에서 8번째 비트 완료시 하드웨어는 이를
1로 설정하고, 기타 모드에서는 정지비트의 절반일 때 하드웨어에 의해 설정된다.
이 비트 역시 소프트웨어에 의해 소거된다.
32
마이크로 프로세서를 이용한 자동화 교육
8051 구조와 기능
순서
디지털 논리 회로 이론
BAUD RATE의 발생방법
직렬로 비트를 전송하는데 기준이 되는 신호를 시리얼 클럭이라 하고 1비트를 만드는데
필요한 클럭수를 보(BAUD)라 한다.8051에서는 모드 0에서는 1비트를 전송하는데 클럭 1
주기가 필요하지만 모드 1,2,3인 경우에는 1비트를 만드는데 16개의 클럭이 필요하게
된다.
- 모드 0 에서의 보레이트는 다음과 같이 고정이 되어 있다.
Microprocessor 개론
8051구조와 기능
모드 0에서의 보레이트 = (시스템 클럭)/12
- 모드 2에서는 PCON 레지스터에 있는 SMOD비트와 관계가 있다.
SMOD=0인 경우에는 보레이트는 (시스템 클럭)/64이고
C 언어의 기초
SMOD=1인 경우에는 보레이트는 (시스템 클럭)/32이 된다.
즉, 모드 2에서 보레이트 = (시스템 클럭)*2SMOD / 64
실험장비 소개 및 사용법
- 모드 1,3에서 보레이트는 타이머/카운터 1의 오버플로에 의해서 결정이 된다.
모드 1,3에서 타이머/카운터 1을 보레이트 발생기로 사용하는 경우에는 타이머/카운터
컴파일러 사용법
1의 오버플로 레이트(즉 TH1,TL1의 시정수)와 SMOD로 결정한다.
모드1,3에서 보레이트 = 2SMOD/32*(타이머/카운터 1의 오버플로 레이트)
실험 실습
모드1,3에서 보레이트 = 2SMOD/32*(시스템 클럭)/[12*{256-(TH1)}]
또, 타이머을 사용하여 보레이트를 결정한다.
모드1,3에서 보레이트 = (타이머2의 오버플로 레이트)/16
모드1,3에서 보레이트 = (발진 주파수)/[32*{65535-(RCAP2H,RCAP2L)}]
33
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
2-1. C언어 소개
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
C언어는 벨 연구소의 데니스리치가 B라는 언어를 발전시켜 1972년에 만든 언어입니다
C언어의 장점은 '강력하면서도 유연하다'는 점입니다. 이런 장점 때문에 지구상에
설치된 컴퓨터 중에서 가장 많은 컴퓨터가 지원하는 컴퓨터언어가 되었습니다.
C++의 ++은 증가 연산자의 의미로 C++의 원래 이름은 'C with Class'입니다
C++은 C언어와 호환성이 있도록 만든 컴퓨터언어로 보통 C언어가 가진 기능에 새로운
개념과 문법내용이 추가된 언어입니다.
2-2. 프로그램 작성 과정
① C언어 문법에 맞게 작문합니다. 다른 말로 소스 파일을 짠다고 합니다.
편집기를 이용하여 소스 파일을 만들며 그 결과 확장자가 C인 문서파일이
만들어집니다.
② 컴파일러 프로그램을 이용하여 소스 파일을 컴파일 합니다. 그 결과
확장자가 C인 파일이 확장자가 OBJ인 중간 목적 파일로 만들어집니다.
소스 파일은 문서 파일이었지만 목적 파일은 기계어 파일입니다.
③ 컴파일 과정을 통해 만들어진 목적 파일들을 링커를 이용해 연결합니다.
링커는 목적 파일을 연결시키는 일을 하는데 그 결과 확장자가 EXE인
실행 파일이 만들어집니다.
34
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
2.3. C언어의 중요 기본 문법
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
1. 소스 파일의 이름은 마음대로 정해도 되지만 확장자는 C로 정합니다.
2. 소스 파일은 반드시 main() 이라는 이름을 가진 함수를 가지고 있어야 합니다.
3. 소스 파일의 첫머리에는 프로그램 실행 때 필요한 헤더 파일을 적어주어야 합니다.
헤더 파일을 적어주는 형식은 '#include <헤더 파일이름>'입니다. 헤더 파일은
확장자가 h입니다.
4. 함수를 알리는 함수 선언문이라면 이름 뒤에 둥근 괄호를 열고 닫습니다.
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
5. 함수의 본체 시작을 알리는 기호는 {이고, 함수 본체의 끝을 알리는 기호는 } 입니다.
함수는 본체를 가질 수도 있지만 안 가질 수도 있습니다.
6. 함수 안에 또 다른 함수를 사용할 수 있습니다.
7. 명령어나 함수는 명령의 끝을 알리기 위해 명령문의 끝에 ;기호를 넣어주어야 합니다.
8. 프로그램 실행과 관련은 없지만 프로그램의 내용을 쉽게 알아볼 수 있도록
주석(comment)을 달 수 있는데, 주석의 시작을 알리는 기호는 /* 이고, 끝을 알리는
기호는 */ 입니다. 주석문은 소스 파일의 어느 곳에 적어도 상관 없습니다.
9. 함수는 계산 결과를 되돌림 값으로 돌려줄 수 있습니다.
35
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
/* test.c,
디지털 논리 회로 이론
메카트로닉스 기능사 대비 연습 */
// #include <at89c51rb2.h> /* 헤더 파일을 포함시키라는 명령문 */
int Calc (char n, char m);
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
함수의 prototype 선언
void main(void) /* main() 함수의 시작 */
{ /* main 함수 본체 시작 기호 */
char i;
i = Calc(1, 2);
} /* main 함수 본체 끝 기호 */
int Calc (char a, char b) /* 두개의 매개변수 a,b를 더한 값을 리턴해주는 함수*/
{
char c;
c = a + b;
return c; // 결과 값을 되돌려 준다
}
36
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
C언어 함수의 기본 구조
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
C언어에서 사용하는 함수의 기본 구조는 다음과 같습니다.
[함수의 기본 구조]
함수형지정자 함수 이름(매개변수 리스트)
{
각종 명령문;
int는 함수의 자료형을 지정하는 명령어입니다.
return 되돌림값;
함수 이름 뒤에는 ()를 붙입니다.
}
[보기]
Calc(char a, char b)의 a, b은 매개변수 이름입니다.
함수 본체는 { 기호로 시작합니다.
실험장비 소개 및 사용법
int Calc (char a, char b)
함수 속에 또 다른 함수를 포함시킬 수 있습니다.
{
C언어는 모든 명령 뒤에 ; 기호로 문장의 끝을 알림
컴파일러 사용법
char c;
c = a + b;
return c;
실험 실습
}
되돌림값은 함수에서 수행한 명령의 결과를 이용해
함수를 호출한 곳에 돌려주는 값입니다.
{ 기호로 시작한 함수 본체는 } 기호로
닫아주어야 합니다.
C51 컴파일러는 CPU 레지스터를 통해 함수인자(argument)를 3개 까지 사용할 수 있습니다.
37
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
C언어의 자료형 종류 (C51에서는 8바이트 크기의 Double이 없음)
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
기본 정수형은 2바이트로 표현하므로 65536개의 숫자를 표시할 수 있습니다.
unsigned형에서 음수를 사용하면 자동으로 양수로 변환하는 오버플로우가 발생합니다.
38
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
정수형 상수 :
디지털 논리 회로 이론
0x,0X로 시작하면 16진 상수이고 O으로 시작하면 8진수 둘다 아닐 경우
10진수이다.숫자 끝에 L,l을 붙이면 long int형이고 U,u를 붙이면 unsigned
Microprocessor 개론
int형이며 UL,ul을 붙이면 unsigned long int형이다.
ex)1234l(long int형),123456U(unsigned int형)
8051구조와 기능
소수점을 찍어 정수부와 실수부로 나누는 고정 소수점상수(1234.56)과 e나 E로
C 언어의 기초
분리해서 표기하는 부동소수점 표기 방법이 있다.
실험장비 소개 및 사용법
실수형 상수 :
컴파일러 사용법
실수형 상수는 double형으로 내정되어 있어 4byte인 float형으로 표현하고 싶을
때는 접미사 f,F를 붙인다.문자열 상수문자열 상수의 끝에는 문자열의 끝을
실험 실습
나다내는 /0(zero)가 포함되어 있어 문자열 상수의 크기는 이 \0 때문에 1byte가
크다. C언어는 문자로 표시할수 없는 아스키코드를 확장열이라는 표현 방식으로
표기한다.
39
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
1.산술 연산자 (*,/,=,-,++,--) ?
․두피연산자가 모두 정수면 아무리 그 결과가 실수가 되도 소숫점 이하는 자른다.
디지털 논리 회로 이론
Microprocessor 개론
ex)7 / 2 == 3
․정수가피연산자라면 소수점 아래 버림의 방향은 0을 향한다.그림1 ex)-13 % 5 == -3
/*-13의 부호를 따라 -3이 된다.반면에 13 % -5는 13의 부호에 따라 3이 된다.
*/․++,--가 왼쪽에 붙어 있으면 먼저 변수의 값을 중가 시키고 변수의의 값을
사용하고,오른쪽에 붙을 경우 변수의 현재값을 이용한뒤 증가 시킨다.
8051구조와 기능
ꏩ ++,-- 사용시 주의사항
C 언어의 기초
1.어떤 변수가 어떤 함수안에 매개 변수로 2번이상 쓰이면 사용하지 않는다.
2.한변수가 수식내에 2번 이상 쓰이면 중감연산자를 쓰지 않는다.
실험장비 소개 및 사용법
컴파일러 사용법
3.2개 항을 필요로하는 연산자(&&,||,?:제외)는 컴파일러가 상황에 따라 어느항을 먼저
처리할지 결정.
2.대입 연산자 (=,+=,-=,*=,/=,%=,&=,^=,|=,<<=,>>=)
․단순대입 연산자는 결합순서를 보면 우측에서 좌측으로 씌어진다.
실험 실습
ex) x = y = z = p+q ⇔ x=(y=(z=p+q)
․혼합대입연산자 : [변수] [연산자]= [수식] ⇔ [변수] = [변수] [연산자] [수식]
․혼합대입연산자는 우측에서 좌측으로 쓰인다.
40
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
3.관계,상등 연산자 (<,>,<=,>=,==,!=)
디지털 논리 회로 이론
․참이면1 거짓이면 0을 갖는다.
․컴파이러는 a [연산자] b 를 a - b [연산자] 0 으로 해석한다.
Microprocessor 개론
․오른쪽에서 왼쪽으로 연산한다.
ex) 3 < j < 5 ⇔ (3 < j) < 5
8051구조와 기능
․ x < x + y 와 0 < y는 때에 따라 같지 않다.x가 비교적 큰수이고 y는 상대적으로
작은 수일때 그러하다. 그 이유는 컴파일러는 무한한 정확도를 가지지 못하기
때문이다.
C 언어의 기초
4.논리 연산자 (||,&&,!)
실험장비 소개 및 사용법
․!(논리 부정)는 수식이 0 값을 가질 때 1이 되고,0이 아닌 값을 가질때 0이 된다.
컴파일러 사용법
․!!5는 5가 아니라 !(!5) == !(0) == 1이 된다.
․char c = 'A'; 일 때 !c는 A의 아스키 코드값 65의 !65 == 0이 된다
실험 실습
․&&가 ||보다 우선 순위가 높고 좌측에서 우측으로 결합한다
․expr1 && expr2일때 expr1이 0값을 가지면 expr2를 처리하지 않고 0값을 가지며
,expr1 || expr2일때 expr1이 1을 가지면 expr2를 처리하지 않는다.
이것을 short circuit라 한다.
41
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
5.형변환 규칙과 캐스트 연산자
․산술 수식에서 형변환 규칙
디지털 논리 회로 이론
1.char,short는 int형으로 변환한다.
2.높은 순위의 피연산자 형으로 격상
Microprocessor 개론
8051구조와 기능
C 언어의 기초
(int < long < unsigned < unsigned long < float < double < long double)
․캐스트 연산자는 우측에서 좌측으로 결합하며 산술 연산자 +보다 우선 순위가 높다.
6.조건 연산자 (?:)
․expr1 ? expr2 : expr3 일때 expr1의 계산이 0이 아니면(참이면) expr2를 0이면
(거짓이면) expr3를 연산한다.
․대입 연산자 보다 우선 순위가 높고 우측에서 좌측으로 결합된다.
실험장비 소개 및 사용법
7.비트 연산자 (~,&&,||,^,<<,>>)
컴파일러 사용법
논리연산자
:
쉬프트 연산자 :
보수(~), 논리곱 (&), 논리합 (|), 적 논리합 (^)
실험 실습
왼쪽 쉬프트변수
<< 왼쪽으로 이동시킬 비트의 개수
오른쪽 쉬프트변수
>> 오른쪽으로 이동시킬 변수의 개수
․unsigned형을 오른쪽으로 쉬프트 시키면 혼자 이동하지만 int형은 계속 사인
비트를 1로 유지하며 이동한다.
ex)10000 >> 2 이고 int형이면 11100,unsigned형이면 00100이 된다.
42
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
(1) If문과 블록
디지털 논리 회로 이론
- if (조건식) 문장;
if (i==10) num=1;
- If (조건식) 문장1;
If (i==10) num=1;
else 문장2;
Microprocessor 개론
- If (조건식1) 문장1;
8051구조와 기능
If (조건식) {
문장1;
…
else num=0;
}
else {
If (i==10) num=0;
else if (조건식2) 문장2;
else if (i>10) num=1;
else 문장3;
else num=-1;
문장2;
}
C 언어의 기초
% C는 0은 거짓으로 0이외의 정수는 참으로 간주한다.
실험장비 소개 및 사용법
컴파일러 사용법
(2) For 순환문
- for (초기식;조건식;증감식) 문장
sum = 0;
for (i=0;i<1000;i++) {
실험 실습
- for (;;) { // 무한 루프
sum += I;
if (조건식) Break // for문에서 탈출
}
if (sum > 1000) break;
}
43
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
(3) While 문
디지털 논리 회로 이론
Microprocessor 개론
- while (조건식) 문장;
i = 1; sum=0;
i = 1; sum = 0;
while (i<=100) {
do {
sum += i;
i++;
i++;
sum += i;
- do 문장 while (조건식)
}
} while (i<=100)
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험 실습
for문은 일정횟수 루
프를 돌아야 할 경우
일반적으로 사용하며
while문은 조건이 맞
지 않을 경우 한번도
수행되지 않으나
do while문은 무조건
한번은 수행된다.
44
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
(4) Switch 문
디지털 논리 회로 이론
switch (num) {
case 0 : ch = ‘a’;
switch (변수) {
break;
case 값1 : 문장1;
case 1 : ch = ‘b’;
break;
Microprocessor 개론
break;
case 값2 : 문장2;
case 2 : ch = ‘c’
break;
8051구조와 기능
break;
…
case 4 :
default :
C 언어의 기초
case 8 :
문장n;
ch = ‘d’
break;
실험장비 소개 및 사용법
break;
}
default :
변수값과 같은 값을 갖는 case로 건너띄어 그 밑의 문장을
컴파일러 사용법
한다. 변수값과 같은 case가 없으면 default를 수행한다.
실험 실습
ch = ‘n’
실행한다. 변수값은 정수형이나 문자형 변수만을 사용해야
case의 뒤에 오는 값은 반드시 상수이어야 한다.
break;
}
범위를 지정해야 할때는 if-else문을 사용해야 하며 그렇지 않을 경우에만 switch문을
사용한다. 실제 switch문은 stack 소모가 큼으로 사용을 자제한다.
45
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
선행처리기 (Preprocessor) : 컴파일 하기 전에 소스를 재작성하는 것을 의미한다.
디지털 논리 회로 이론
(1) #define
․목적 : 전처리기 부분만 바꾸면 소스 전체를 바꾸는 효과가 있다.
Microprocessor 개론
․#define [대표문자] [바뀌는문자]  #define PI 3.141592
기억하기 힘든 수치나 데이타를 알아 보기 쉽게 하기 위해서도 사용한다.
8051구조와 기능
C 언어의 기초
․#undef [define 되었던 대표 문자]  #undef PI
define를 해제한다.
(2) 매크로 함수
․#define SQ(x) ((x)*(x))
실험장비 소개 및 사용법
SQ는 매크로 함수명이고 (x)는 형식 매개 변수이며 괄호로 묶인다는 것에 주의하자!
컴파일러 사용법
(3) #include
․#include <파일이름>
실험 실습
#include "파일이름"
<>는 include 디렉토리에서 파일을 찾고 ""는 현재 디렉토리에서 파일을 찾는다.
"" 안에 풀패스를 적을 때 '\\' 두개를 적어서는 안되고 '\'하나만 적어야 한다.
46
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
배열 (Array) :
디지털 논리 회로 이론
(1) 배열의 선언
type 배열명 [크기];
Microprocessor 개론
int ar[5];
C 에서는 정수형 변수 5개를 저장할 수
있는 메모리를 확보 한다.
ar[0]
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
ar[1]
ar[2]
ar[3]
ar[4]
(2) 배열의 특징
.
.
.
.
배열의 처음은 첨자가 0으로 시작된다.
배열의 크기가 N으로 정의될 때 최대 첨자는 N-1이다
배열 선언에 의해 초기화되지 않다. (초기화 필요)
배열의 끝을 점검하지 않는다.
0
1
2
…
N-1
(3) 배열의 초기화
type 배열명 [크기]={초기화 값들,…,};
int ar[5] = {1,1};
컴파일러 사용법
실험 실습
초기화를
. 초기화
. 초기화
. 초기화
. 배열의
하지
값이
값의
값의
크기
않으면
개수가
개수가
개수가
생략시
쓰레기 값이들어 있게 된다.
배열 크기와 같으면 문제없이 초기화 됨
배열크기보다 작으면 나머지는 0으로 초기화 됨
배열크기보다 많으면 에러 발생 됨
초기화 값의 개수 만큼 배열의 크기가 자동 생성됨
47
마이크로 프로세서를 이용한 자동화 교육
C언어 기초
순서
배열과 포인터 :
디지털 논리 회로 이론
Microprocessor 개론
int ar[7] = {8,9,0,6,2,9,9};
Int *ptr;
ptr=ar;
배열명이 단독으로 쓰이면 배열의
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
시작 위치를 나타내는 포인터 값이다.
포인터 변수의 가감, 증감은 포인터 변수의 데이터형의 바이트 수만큼 이루어진다.
포인터 변수 ptr이 배열의 ar의 선두 번지값을 가질때 다음은 모두 동일한 데이터를
나타낸다.
컴파일러 사용법
*(ptr+i)=ar[i]=prt[i]
실험 실습
48
마이크로 프로세서를 이용한 자동화 교육
49
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
- 시리얼 포트를 이용하여 89C51, AVR(ATmega8535), PIC(PIC16F874)
등을 프로그램하는 ISP 기본내장
- 모든 I/O port를 실험 및 LED S/W를 이용하여 다양한 실험 실습이 가능
하다.
- Dot matrix, LCD(16*2),7Segment,Buzzer,Motor 등의 실험이 가능하다
- 사용자의 회로구성에 영향을 미치지 않는 Dot matrix, LCD(16*2),
7Segment, Buzzer, Motor회로 구성
- 사용하기 편한 제품 구성
(실습 공간을 중심으로 한 부품 배치)
- Mechatronics 실험에 적합한 전원 구성
- Mechatronics 엑츄에이터들을 손쉽게 연결 가능
50
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
구성
Serial
Port 단자
LCD
7Segment
Photo
Coupler
Relay
Dot
Matrix
전
원
Buzzer
Application
Board
MCU
Module
Bread
Board
S/W
L
E
D
Keypad
51
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
- 하나의 실험장치를 3가지의 마이크로프로세서를 이용하여 실험실습 할 수 있다.
52
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
-별도의 연결 없이 Programming, PC 통신 가능
(포트 사용 제약이 없다.)
RS-232
Download
Select S/W
53
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
- 자유로운 PORT 선택 가능
마이크로프로세서의 모든
PORT를 사용 가능
따라서 PORT가 지정되어 출
제되는 모든 문제 사용가능.
Mode
Select S/W
54
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
- 사용자 중심의 부품 배치
PORT B
PORT A
PORT C
전원
PORT D
WorkSpace
Indicating
LED
Input S/W
55
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
별도의 공구가 필요없는 확실한 연결
(Screwless type의 커넥터 이용)
누
르
고
전선 삽입
56
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
메카트로닉스용 엑츄에이터 연결
57
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
고 출력의 MOTOR도 거뜬하게..
(24V 2A 기본 제공)
58
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
이론편 (PART 1)
장비 구성
마이크로프로세서 설명
C 언어 설명
컴파일러 사용법
59
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
실습편 (PART 2)
기본회로
응용회로
-LED 점등하기
-Relay를 이용한 LED 순차점멸하기
-외부입력 처리하기
-논리회로 실습하기
-DC Motor 구동하기
-자기유지회로 구성하기
-인터록회로 구성하기
-Timer회로 구성하기
-가산회로 구성하기
-모터 정역회로 구성하기
-카운터를 이용한 프로그램
-단동/연동 사이클 선택회로 구성하기
-시퀀스 회로 구성하기
-타이머를 이용한 스테핑 모터 실습하기
추가회로
-7-Segment 실습하기
-DOT matrix 실습하기
-LCD 제어하기
-Buzzer 제어하기
-Keypad 제어하기
-PC 통신하기
참고회로
-메카트로닉스 기능사 기출문제
-자동제어 기능경기대회 기출문제 I
-자동제어 기능경기대회 기출문제 II
-공유압기사 1급 기출문제
-디지털 제어 산업기사 1급 기출문제
-메카트로닉스 기능사 필기문제 수록
60
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
실습구성
61
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
실습구성
62
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
실습구성
63
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
실습구성
Ladder Diagram 프로그램과 C 프로
그램을 비교 설명한 장비는
ED-4510이 유일하다.
64
마이크로 프로세서를 이용한 자동화 교육
ED-4510 소개
실습구성
65
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
66
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
67
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
1. Startup의 변경 및 추가.
일반적으로 변경을 하지 않으면 lib\C51S.lib 내의 startup을 참조하며, 사용자가
startup을 변경 시에는 프로젝트폴더에 startup.a51을 추가를 하면 자동으로
이 startup이 어셈블, 링크 됩니다.
68
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
2. Target
디지털 논리 회로 이론
[ 프로젝트를 새로 만들면 CPU벤더와
CPU모델을 선택하고 처음 나오는
화면입니다. ]
Microprocessor 개론
Xtal : 11.0592Mhz, CPU 클럭 지정
8051구조와 기능
Memory model :
- small :
C 언어의 기초
내부메모리 DATA
- compact : 외부 PDATA(256byte)
- large : 외부 XDATA
실험장비 소개 및 사용법
Use multiple DPTR registers : memory lib를 사용한 memcopy()등의 함수를 사용할 경우에
효과가 있습니다.
컴파일러
C 언어의 사용법
기초
Off-chip Code memory : 외부에 program(code) 메모리를 사용한다면 설정해 줍니다.
Off-chip Data memory : 외부에 데이터 메모리를 사용한다면 설정해 줍니다.
실험 실습
(1,2,3의 메모리 영역은 띄엄 띄엄 있어도 됩니다.)
Code Bank : 프로그램이 64kbyte이상일 경우 메모리를 확장하기 위하여 사용합니다.
32bank 최대 2Mbyte까지 확장이 가능합니다. (standard 8051의 경우)
69
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
3. OUTPUT
Browse Information: 정상적인 컴파일이 되면 view메뉴에 source browse사용가능.
심볼(function/macro/data/sfr/parameters/types)을 추적관리.
RD/WR상태, define, callers, call등의 상태도 확인.
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
70
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
4. C51
1) Preprocessor Symbols
- 전치리기에서 운용되는 Define으로
Preprocessor symbol을 사용자가 직접
입력하여 사용 가능합니다.
2) Code Optimization Level
- 10개의 level을 선택하여 Optimizing
할 수 있습니다.
3) Emphasis
- Optimizing을 할 때 속도 &
코드사이즈 중 어떤 것을 우선으로 할지
설정 할 수 있습니다.
4) Don’t use absolute register accesses
- 레지스터 뱅크(R0 ~R7)를 절대번지로 번역하는 것을 금지하여 모든 레지스터 뱅크 영역을 자유롭게
사용하도록 하는 옵션.
5) Bit to round at address
- 부동소수점 끝수를 설정합니다.
6) interrupt vectors at address
- interrupt 시작번지를 설정합니다.
7) Keep Variables in Order
- C51컴파일러가 C소스 파일에 있는 변수들이 정의된 것을 유지할 것인지 선택하는 옵션이며 코드에는
영향을 미치지 않습니다.
8) Enable ANSI Integer promotion rules
- Expression을 사용 시 문장들은 호환되기 전 정수식에서 smaller type으로 촉진됩니다.
이것은 전형적으로 long code를 생성합니다. 그러나 ANSI 호환되기 위해선 선택해야 하는 옵션 입니다.
71
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
72
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
73
마이크로 프로세서를 이용한 자동화 교육
순서
Start debugging
Debug-Start/Stop Debug Session command로 샐행합니다.
디지털 논리 회로 이론
Vision2는 어플리케이션 프로그램을 load하고 startup code를 샐행합니다.
Disassembly Window
Microprocessor 개론
target program의 source와 assembly code를 보여줍니다.
이전에 수행된 instruction의 trace history 를 display 할 수 있습니다.
8051구조와 기능
이것을 enable시키기 위해서 Debug-Enable/Disable Trace Recording을 set해주고,
Debug-View Trace Records를 선택해 주면 됩니다.
C 언어의 기초
Debug-Inline Assembly 를 사용하여 CPU instruction을 수정할 수 있습니다.
Breakpoints
실험장비 소개 및 사용법
high-level statement, assembly code, 조건문에서 breakpoint를 설정하는 것은
어렵지 않습니다.
컴파일러
C 언어의 사용법
기초
실험 실습
마우스 포인터를 라인이나 명령으로 움직여서 더블클릭만 하면
됩니다.
Target Program Execution
target program을 실행시킵니다. ( F5 : Run, F11: step )
Watch Window
74
마이크로 프로세서를 이용한 자동화 교육
컴파일러 사용법
순서
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러
C 언어의 사용법
기초
실험 실습
75
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 1
디지털 논리 회로 이론
LED 점멸하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
76
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 1
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
77
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 1
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
78
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 2
디지털 논리 회로 이론
LED 순차점멸하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
79
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 1
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
80
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 2
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
81
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 2
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
82
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 2
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
83
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 2
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
84
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 3
디지털 논리 회로 이론
논리회로 실습
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
85
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 3
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
86
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 3
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
87
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 4
디지털 논리 회로 이론
DC 모터 구동하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
88
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 4
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
89
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 4
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
90
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 5
디지털 논리 회로 이론
자기 유지회로 구성하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
91
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 5
디지털 논리 회로 이론
자기 유지회로 구성하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
92
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 5
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
93
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 6
디지털 논리 회로 이론
자기 유지회로 구성하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
94
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 6
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
95
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 6
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
96
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 7
디지털 논리 회로 이론
가산회로 구성하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
97
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 7
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
98
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 7
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
99
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 8
디지털 논리 회로 이론
모터 정역회로 구성하기
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
100
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 8
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
101
마이크로 프로세서를 이용한 자동화 교육
실험 실습
순서
실습과제 8
디지털 논리 회로 이론
Microprocessor 개론
8051구조와 기능
C 언어의 기초
실험장비 소개 및 사용법
컴파일러 사용법
실험
실습기초
C 언어의
102