목차
머리말
1. 80C552의 구조
1.1 8XC552의 개요 = 1
1.2 80C51과의 차이점 = 2
1.2.1 프로그램 메모리 = 2
1.2.2 데이터 메모리 = 2
1.2.3 특수기능 레지스터 = 3
1.3 8051계의 종류별 특성 = 3
1.3.1 80C51 마이크로컨트롤러 계열 = 4
1.3.2 80C552의 메모리 구조 = 6
1.3.3 프로그램과 데이터 메모리의 논리적 분리 = 7
1.3.4 프로그램 메모리(80C51과의 차이점) = 8
1.3.5 데이터 메모리(RAM) = 10
1.4 83C562의 개요 = 16
1.5 MCS-51 계열의 특성비교 = 17
2. 80C552의 명령어 구성
2.1 어드레싱 모드 = 25
2.1.1 직접 어드레싱 = 25
2.1.2 간접 어드레싱 = 26
2.1.3 레지스터 어드레싱 = 26
2.1.4 레지스터-특정 레지스터 어드레싱 = 26
2.1.5 상수(즉치)형 어드레싱 = 27
2.1.6 색인 어드레싱 = 27
2.2 연산 명령어 = 28
2.3 논리적 명령어 = 30
2.4 데이터 전송 명령어 = 32
2.4.1 내부 RAM 액세스 명령 = 32
2.4.2 외부 RAM 액세스 명령 = 33
2.4.3 색인표 액세스 명령 = 35
2.5 불리언 명령어 = 36
2.6 상대적 오프셋 = 38
2.7 분기명령어 = 38
3. 하드웨어의 구조
3.1 기본구조 = 43
3.2 특수기능 레지스터 = 46
3.2.1 어큐뮬레이터 = 48
3.2.2 B레지스터 = 49
3.2.3 프로그램 스테이터스 워드 = 49
3.2.4 스택 포인터 = 49
3.2.5 데이터 포인터 = 49
3.2.6 포트 0 - 3 = 49
3.2.7 시리얼 데이터 버퍼 = 49
3.2.8 타이머 레지스터 = 50
3.2.9 켑처 레지스터 = 50
3.2.10 제어 레지스터 = 50
3.3 포트의 구조와 동작 = 50
3.3.1 I/O 포트의 구조 = 50
3.3.2 포트 1 동작 = 51
3.3.3 포트 5 동작 = 52
3.3.4 포트의 기능 = 53
3.3.4 구조 = 53
3.3.5 포트 라이트 = 54
3.4 프트 로딩과 인터페이스 = 55
3.5 특징 = 55
3.6 외부 메모리 호출 = 56
4. 카운터, 타이머, 비교기, 캡처
4.1 타아머, 카운터 0, 1(CT0, CT1) = 62
4.1.1 모드 0 = 62
4.1.2 모드 1 = 64
4.1.3 모드 2 = 64
4.1.4 모드 3 = 65
4.2 80C552의 타이머 2(T2) = 65
4.2.1 타이머 T2 확장 = 69
4.2.2 타이머 T2, 캡처와 비교 로직 = 70
4.2.3 타이머 T2 interrupt flag register TM2IR = 75
4.3 80C51의 타이머 2(T2) = 79
4.3.1 포착 = 81
4.3.2 오토리로드 모드 = 81
4.3.3 보 레이트 발생모드 = 81
5. 인터럽트
5.1 인터럽트 개요 = 85
5.2 외부 인터럽트 = 91
5.3 인터럽트 우선순위 구조 = 87
5.4 응답시간 = 93
5.5 인터럽트 처리 = 90
5.6 한단계 동작 = 94
6. 시리얼 인터페이스
6.1 시리얼 포트
6.1.1 모드 0 = 101
6.1.2 모드 1 = 101
6.1.3 모드 2 = 102
6.1.4 모드 3 = 102
6.2 멀티 프로세서 통신 = 103
6.3 시리얼 포트 레지스터 = 103
6.3.1 시리얼 인터페이스 = 104
7. I²C 시리얼 포트
7.1 직렬 I/O 포트 = 121
7.1.1 SIO0 = 121
7.1.2 SIO1 I²C 직렬 I/O = 121
7.2 동작모드 = 123
7.2.1 마스터 송신기 모드 = 123
7.2.2 마스터 수신기 모드 = 124
7.2.3 슬레이브 수신기 모드 = 124
7.2.4 슬레이브 송신기 모드 = 124
7.3 SIO1 실행 및 동작 = 125
7.3.1 입력필터와 출력정도 = 126
7.3.2 어드레스 레지스터 = 126
7.3.3 비교기 = 126
7.3.4 Shift 레지스터 = 126
7.3.5 조정과 동기화 로직 = 127
7.3.6 직렬 클록 발생기 = 128
7.3.7 Timming과 제어 = 128
7.3.8 제어 레지스터 = 129
7.3.9 상태 해독기와 상태 레지스터 = 129
7.3.10 4개 특수기능 레지스터 = 129
7.3.11 어드레스 레지스터 = 129
7.4 데이터 레지스터(S1DAT) = 130
7.5 제어 레지스터(S1CON) = 132
7.5.1 ENS1.SIO1 가능비트 = 132
7.5.2 STA : 스타트 플래그 = 133
7.5.3 STO : 스톱 플래그 = 133
7.5.4 SI : 직렬 인터럽트 플래그 = 134
7.5.5 AA 확인 표명 플래그 = 134
7.5.6 CR0, CR1, CR2 : 클록률 비트 = 135
7.6 상태 레지스터 = 136
7.6.1 SIO1 동작모드에 대한 정보 = 136
7.6.2 마스터 송신기 모드 = 137
7.6.3 마스터 수신기 모드 = 140
7.6.4 슬레이브 수신기 모드 = 142
7.6.5 슬레이브 송신기 모드 = 145
7.7 기타 상태 = 147
7.8 몇 가지의 특수한 경우 = 148
7.8.1 2개의 마스터로부터 동시에 반복된 START 조건 = 148
7.8.2 조정을 잃어버린 후의 데이터 전송 = 149
7.8.3 I²C 버스의 강제 액세스 = 149
7.9 I²C 버스가 SCL, SDA low 레벨에 의해 방해를 받을 경우 = 150
7.10 버스 에러 = 151
7.11 SIO1 서비스 루틴의 소프트웨어 예 = 152
7.11.1 초기화 = 152
7.11.2 송신이나 수신 버퍼로 동작하기 위해 SOI1에 RAM 할당 = 152
7.11.3 SIO1 인터럽트 루틴 = 153
7.11.4 상태 서비스 루틴 = 153
7.11.5 마스터 송신기, 마스터 수신기 모드 = 154
7.11.6 슬레이브 송신기, 슬레이브 수신기 = 154
7.11.7 다른 용도의 소프트웨어 적용 = 155
7.11.8 예제 프로그램 : SIO1 관련 = 156
8. PWM 동작
8.1 펄스폭 변조동작 = 167
9. A/D 변환기
9.1 Analog to digital = 173
10. 리셋, 파워 다운
10.1 리셋회로 = 185
10.2 power on reset = 190
10.3 power 절약 모드 = 190
10.4 CHMOS의 power 절감모드 = 190
10.5 아이들 모드 = 191
10.6 power down mode = 192
11. ROM, EPROM 프로그램
11.1 83C552 = 193
11.2 87C552 = 200
12. DS1278 실시간 시계사용법
12.1 레지스터 = 207
12.2 DS1287의 프로그램 예제 = 213
13. LCD 인터페이스
13.1 LCD 인터페이스 = 233
13.1.1 LCD 디스플레이 모듈 사양 = 233
13.1.2 LCD 모듈의 내부구성 = 236
13.1.3 CG ROM = 240
13.1.4 CG RAM = 240
13.1.5 LCD 명령어 = 241
13.2 명령어 초기설정 흐름도 및 프로그램 = 249
13.2.1 명령어 초기설정 흐름도 = 249
13.2.2 LCD 예제 프로그램 = 250
14. 80C552 제어용 보드제작
14.1 80C552 제어용 보드의 설계 예 = 271
14.2 80C552 MONITOR 프로그램 = 271
14.3 80C552 MONITOR 프로그램 SOURCE LIST = 273
14.3.1 개요 = 273
14.3.2 80C552 제어용 보드의 기동 = 275
14.3.3 80C552 컨트롤러의 명령어 = 276
14.4 80C552 제어용 보드의 모니터 프로그램 = 318
14.5 C 프로그램 작성 예 = 411
15. PID 온도제어 프로그램 사례
15.1 PID제어 위치형과 속도형 = 451
15.1.1 위치형 PID = 451
15.1.2 속도형 PID = 451
15.1.3 포화와 적분동작 WIND - UP = 453
15.2 Stop summation = 454
15.3 파라미터 동조 = 455
15.4 샘플링 시간 T_S의 선정법 = 457