4.1 특수 기능 레지스터 (sfr) 영역의 액세스 방법 레지스터 약칭 이름과 비트 이름 묘사
RL78 패밀리 용 컴파일러는 # pragma sfr 지령을 선언함으로써 SFR 령 역내 주변 I / O 레지스터에 액세스 할 수 있습니다. 설명하는 레지스터 이름은 설명서에 나와있는 레지스터 약어 이름 및 □ 기재 비트 이름입니다.
주변 I / O 레지스터 이름 활성화 지정
레지스터 전체 액세스
1 비트 만 사용
레지스터 약칭 이름과 비트 이름 묘사 SFR 영역의 주변 I / O 레지스터의 액세스는 # pragma sfr 지령을 선언함으로써 가능해집니다.
# pragma sfr 지령을 선언하면
• 설명서 기재의 "레지스터 약칭 이름"에서 레지스터 전체 액세스 가능
• 설명서 □의 기재가있는 비트는 "비트 이름"에서 1 비트 액세스가 가능합니다
□ 기재되지 않은 비트는 레지스터 이름 뒤에 ". 비트 번호"로 작성 하여 액세스 할 수 있습니다.
그러나 비트 번호에 대한 액세스는 1 비트 액세스 가능한 레지스터 만 이고 여러 비트를 모아 작업하는 경우 논리 연산이 필요합니다
비트 번호로 묘사
비트 번호로 묘사 SFR 영역의 주변 I / O 레지스터의 액세스는 # pragma sfr 지령을 선언함으로써 가능해집니다. # pragma sfr 지령을 선언하면
• 설명서 □ 언급없이 "등록 약칭 이름. 비트 번호"1 비트 액세스가 가능
• 그러나 1 비트 액세스 가능한 레지스터에 한함
• 또한 여러 비트를 모아 작업하는 경우 비트 당 논리가 필요합니다.
4.2 포트 포트 구성
포트 구성 위는 RL78/G14의 P12 블록 다이어그램입니다. 모든 포트가 같은 블록 다이어그램은 없지만, 대표적인 포트의 블록도 생각하십시오. RL78/G14 포트는 대부분 입력 및 출력 포트 중 어느 것으로도 사용할 수 있고, 그것을 결정하는 레지스터 포트 모드 레지스터 (PMxx)입니다. 초기 상태는 입력 포트이며 단자에서의 입력 값은 포트 레지스터 (Pxx)를 리드하는 것으로 읽을 수 있습니다. 또한 포트 모드 레지스터 (PMxx)를 조작 해 출력 포트로 설정하면 포트 레지스터 (Pxx)에 쓴 값 (래치 값)이 단자에서 출력됩니다. 또한 입력 포트에서 사용할 경우, 풀업 저항 옵션 레지스터 (PUxx)은 내장 풀업 저항을 사용 할 수가 있습니다.
포트 모드 레지스터 (PMxx)과 포트 레지스터 (Pxx)
포트 모드 레지스터 (PMxx) 포트 입력 / 출력을 1 비트 단위로 설정하는 레지스터입니다. 포트 모드 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여, FFH됩니다.
포트 레지스터 (Pxx) 포트 출력 래치 값을 설정하는 레지스터입니다. 리드하면 입력 모드는 단자 레벨 출력 모드는 포트 출력 래치 값이 읽습니다. 포트 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여, 00H됩니다
.
풀업 저항 옵션 레지스터 (PUxx)와 포트 입력 모드 레지스터 (PIMxx)
풀업 저항 옵션 레지스터 (PUxx) 내장 풀업 저항을 사용하거나 여부를 설정하는 레지스터입니다. 풀업 저항 옵션 레지스터로 내부 풀업 저항의 사용을 지정한 단자에서 입력 모드로 설정 한 비트에만 비트 단위로 내부 풀업 저항을 사용할 수 있습니다. 출력 모드로 설정 한 비트는 풀업 저항 옵션 레지스터의 설정에 관계없이 내부 풀업 저항은 연결되지 않습니다. 겸용 기능의 출력 단자로 사용하는 경우도 마찬가지입니다. 풀업 저항 옵션 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여, 00H (PU4 만 01H)입니다.
포트 입력 모드 레지스터 (PIMxx) 입력 버퍼를 1 비트 단위로 설정하는 레지스터입니다. 다른 전위의 외부 장치와 시리얼 통신시 TTL 입력 버퍼를 선택할 수 있습니다. 포트 입력 모드 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여, 00H됩니다.
포트 출력 모드 레지스터 (POMxx)와 포트 모드 제어 레지스터 (PMCxx)
포트 출력 모드 레지스터 (POMxx) 출력 모드를 1 비트 단위로 설정하는 레지스터입니다. 다른 전위의 외부 장치와 시리얼 통신시와 같은 전위의 외부 장치와 간이 I2C 통신시 단자에 N-ch
오픈드레인 출력 (VDD 내압) 모드를 선택할 수 있습니다. 포트 출력 모드 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여, 00H됩니다.
포트 모드 제어 레지스터 (PMCxx) 디지털 입출력 / 아날로그 입력을 1 비트 단위로 설정하는 레지스터입니다. 포트 모드 제어 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로
설정합니다.리셋 신호를 발생하여, FFH됩니다.
RL78/G14에 탑재하고있다 PMxx, Pxx, PUxx, PIMxx, POMxx, PMCxx 레지스터와 비트 (1 / 5)
ポート | ビット名 | 64 pin | 52 pin | 48 pin | 44 pin | 40 pin | 36 pin | 32 pin | 30 pin | ||||||
PMxx | Pxx | PUxx | PIMxx | POMxx | PMCxx | ||||||||||
ポート 0 | 0 | PM00 | P00 | PU00 | - | POM00 | PMC00注1 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
1 | PM01 | P01 | PU01 | PIM01 | - | PMC01注1 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
2 | PM02 | P02 | PU02 | - | POM02 | PMC02 | ○ | ○ | - | - | - | - | - | - | |
3 | PM03 | P03 | PU03 | PIM03 | POM03注2 | PMC03 | ○ | ○ | - | - | - | - | - | - | |
4 | PM04 | P04 | PU04 | PIM04 | POM04 | - | ○ | - | - | - | - | - | - | - | |
5 | PM05 | P05 | PU05 | - | - | - | ○ | - | - | - | - | - | - | - | |
6 | PM06 | P06 | PU06 | - | - | - | ○ | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
ポート 1 | 0 | PM10 | P10 | PU10 | PIM10 | POM10 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
1 | PM11 | P11 | PU11 | - | POM11 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
2 | PM12 | P12 | PU12 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
3 | PM13 | P13 | PU13 | PIM13 | POM13 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
4 | PM14 | P14 | PU14 | PIM14 | POM14 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
5 | PM15 | P15 | PU15 | PIM15 | POM15 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
6 | PM16 | P16 | PU16 | PIM16 | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
7 | PM17 | P17 | PU17 | PIM17 | POM17 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
ポート 2 | 0 | PM20 | P20 | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
1 | PM21 | P21 | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
2 | PM22 | P22 | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
3 | PM23 | P23 | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
4 | PM24 | P24 | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - | |
5 | PM25 | P25 | - | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - | |
6 | PM26 | P26 | - | - | - | - | ○ | ○ | ○ | ○ | ○ | - | - | - | |
7 | PM27 | P27 | - | - | - | - | ○ | ○ | ○ | ○ | - | - | - | - | |
ポート 3 | 0 | PM30 | P30 | PU30 | PIM30 | POM30 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
1 | PM31 | P31 | PU31 | PIM31 | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
2 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
3 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
ポート 4 | 0 | PM40 | P40 | PU40 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
1 | PM41 | P41 | PU41 | - | - | - | ○ | ○ | ○ | ○ | - | - | - | - | |
2 | PM42 | P42 | PU42 | - | - | - | ○ | - | - | - | - | - | - | - | |
3 | PM43 | P43 | PU43 | - | - | - | ○ | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
주 1. 30 핀, 32 핀 제품 만 주 2. 64 핀 제품 만
RL78/G14에 탑재하고있다 PMxx, Pxx, PUxx, PIMxx , POMxx, PMCxx 레지스터와 비트 (2 / 5)
ポート | ビット名 | 64 | 52 | 48 | 44 | 40 | 36 | 32 | 30 | ||||||
PMxx | Pxx | PUxx | PIMxx | POMxx | PMCxx | pin | pin | pin | pin | pin | pin | pin | pin | ||
ポート 5 | 0 | PM50 | P50 | PU50 | PIM50 | POM50 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
1 | PM51 | P51 | PU51 | - | POM51 | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
2 | PM52 | P52 | PU52 | - | - | - | ○ | - | - | - | - | - | - | - | |
3 | PM53 | P53 | PU53 | - | - | - | ○ | - | - | - | - | - | - | - | |
4 | PM54 | P54 | PU54 | - | - | - | ○ | - | - | - | - | - | - | - | |
5 | PM55 | P55 | PU55 | PIM55 | POM55 | - | ○ | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
ポート 6 | 0 | PM60 | P60 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | |
1 | PM61 | P61 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||
2 | PM62 | P62 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - | ||
3 | PM63 | P63 | - | - | - | ○ | ○ | ○ | ○ | - | - | - | - | ||
4 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
ポート 7 | 0 | PM70 | P70 | PU70 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | - |
1 | PM71 | P71 | PU71 | - | POM71 | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - | |
2 | PM72 | P72 | PU72 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | - | - | |
3 | PM73 | P73 | PU73 | - | - | - | ○ | ○ | ○ | ○ | ○ | - | - | - | |
4 | PM74 | P74 | PU74 | - | POM74 | - | ○ | ○ | ○ | - | - | - | - | - | |
5 | PM75 | P75 | PU75 | - | - | - | ○ | ○ | ○ | - | - | - | - | - | |
6 | PM76 | P76 | PU76 | - | - | - | ○ | ○ | - | - | - | - | - | - | |
7 | PM77 | P77 | PU77 | - | - | - | ○ | ○ | - | - | - | - | - | - | |
ポート 12 | 0 | PM120 | P120 | PU120 | - | - | PMC120 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
1 | - | P121 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||
2 | - | P122 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||
3 | - | P123 | - | - | - | ○ | ○ | ○ | ○ | ○ | - | - | - | ||
4 | - | P124 | - | - | - | ○ | ○ | ○ | ○ | ○ | - | - | - | ||
5 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
ポート 13 | 0 | - | P130 | - | - | - | ○ | ○ | ○ | - | - | - | - | - | |
1 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
2 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
3 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
7 | - | P137 | - | - | - | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ||
ポート 14 | 0 | PM140 | P140 | PU140 | - | - | - | ○ | ○ | ○ | - | - | - | - | - |
1 | PM141 | P141 | PU141 | - | - | - | ○ | - | - | - | - | - | - | - | |
2 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
3 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | - | - | - | - | - | - | |
6 | PM146 | P146 | PU146 | - | - | - | ○ | ○ | ○ | ○ | - | - | - | - | |
7 | PM147 | P147 | PU147 | - | - | PMC147 | ○ | ○ | ○ | ○ | ○ | ○ | ○ | ○ |
RL78/G14에 탑재하고있다 PMxx, Pxx, PUxx, PIMxx, POMxx, PMCxx 레지스터와 비트 (3 / 5)
ポート | ビット名 | 100 pin | 80 pin | ||||||
PMxx | Pxx | PUxx | PIMxx | POMxx | PMCxx | ||||
ポート 0 | 0 | PM00 | P00 | PU00 | - | POM00 | - | ○ | ○ |
1 | PM01 | P01 | PU01 | PIM01 | - | - | ○ | ○ | |
2 | PM02 | P02 | PU02 | - | POM02 | PMC02 | ○ | ○ | |
3 | PM03 | P03 | PU03 | PIM03 | POM03 | PMC03 | ○ | ○ | |
4 | PM04 | P04 | PU04 | PIM04 | POM04 | - | ○ | ○ | |
5 | PM05 | P05 | PU05 | - | - | - | ○ | ○ | |
6 | PM06 | P06 | PU06 | - | - | - | ○ | ○ | |
7 | - | - | - | - | - | - | - | - | |
ポート 1 | 0 | PM10 | P10 | PU10 | PIM10 | POM10 | - | ○ | ○ |
1 | PM11 | P11 | PU11 | - | POM11 | - | ○ | ○ | |
2 | PM12 | P12 | PU12 | - | - | PMC12 | ○ | ○ | |
3 | PM13 | P13 | PU13 | PIM13 | POM13 | PMC13 | ○ | ○ | |
4 | PM14 | P14 | PU14 | PIM14 | POM14 | - | ○ | ○ | |
5 | PM15 | P15 | PU15 | PIM15 | POM15 | - | ○ | ○ | |
6 | PM16 | P16 | PU16 | PIM16 | - | PMC16 | ○ | ○ | |
7 | PM17 | P17 | PU17 | PIM17 | POM17 | PMC17 | ○ | ○ | |
ポート 2 | 0 | PM20 | P20 | - | - | ○ | ○ | ||
1 | PM21 | P21 | - | - | ○ | ○ | |||
2 | PM22 | P22 | - | - | ○ | ○ | |||
3 | PM23 | P23 | - | - | ○ | ○ | |||
4 | PM24 | P24 | - | - | ○ | ○ | |||
5 | PM25 | P25 | - | - | ○ | ○ | |||
6 | PM26 | P26 | - | - | ○ | ○ | |||
7 | PM27 | P27 | - | - | ○ | ○ | |||
ポート 3 | 0 | PM30 | P30 | PU30 | PIM30 | POM30 | - | ○ | ○ |
1 | PM31 | P31 | PU31 | PIM31 | - | - | ○ | ○ | |
2 | - | - | - | - | - | - | - | - | |
3 | - | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | |
ポート 4 | 0 | PM40 | P40 | PU40 | - | - | - | ○ | ○ |
1 | PM41 | P41 | PU41 | - | - | - | ○ | ○ | |
2 | PM42 | P42 | PU42 | - | - | - | ○ | ○ | |
3 | PM43 | P43 | PU43 | PIM43 | POM43 | - | ○ | ○ | |
4 | PM44 | P44 | PU44 | PIM44 | POM44 | - | ○ | ○ | |
5 | PM45 | P45 | PU45 | - | POM45 | - | ○ | ○ | |
6 | PM46 | P46 | PU46 | - | - | - | ○ | - | |
7 | PM47 | P47 | PU47 | - | - | - | ○ | - |
RL78/G14에 탑재하고있다 PMxx, Pxx, PUxx, PIMxx, POMxx, PMCxx 레지스터와 비트 (4 / 5)
ポート | ビット名 | 100 pin | 80 pin | ||||||
PMxx | Pxx | PUxx | PIMxx | POMxx | PMCxx | ||||
ポート 5 | 0 | PM50 | P50 | PU50 | PIM50 | POM50 | - | ○ | ○ |
1 | PM51 | P51 | PU51 | - | POM51 | - | ○ | ○ | |
2 | PM52 | P52 | PU52 | - | POM52 | - | ○ | ○ | |
3 | PM53 | P53 | PU53 | PIM53 | POM53 | - | ○ | ○ | |
4 | PM54 | P54 | PU54 | PIM54 | POM54 | - | ○ | ○ | |
5 | PM55 | P55 | PU55 | PIM55 | POM55 | - | ○ | ○ | |
6 | PM56 | P56 | PU56 | - | - | - | ○ | - | |
7 | PM57 | P57 | PU57 | - | - | - | ○ | - | |
ポート 6 | 0 | PM60 | P60 | - | - | ○ | ○ | ||
1 | PM61 | P61 | - | - | ○ | ○ | |||
2 | PM62 | P62 | - | - | ○ | ○ | |||
3 | PM63 | P63 | - | - | ○ | ○ | |||
4 | PM64 | P64 | PU64 | - | - | - | ○ | ○ | |
5 | PM65 | P65 | PU65 | - | - | - | ○ | ○ | |
6 | PM66 | P66 | PU66 | - | - | - | ○ | ○ | |
7 | PM67 | P67 | PU67 | - | - | - | ○ | ○ | |
ポート 7 | 0 | PM70 | P70 | PU70 | - | - | - | ○ | ○ |
1 | PM71 | P71 | PU71 | - | POM71 | - | ○ | ○ | |
2 | PM72 | P72 | PU72 | - | - | - | ○ | ○ | |
3 | PM73 | P73 | PU73 | - | - | - | ○ | ○ | |
4 | PM74 | P74 | PU74 | - | POM74 | - | ○ | ○ | |
5 | PM75 | P75 | PU75 | - | - | - | ○ | ○ | |
6 | PM76 | P76 | PU76 | - | - | - | ○ | ○ | |
7 | PM77 | P77 | PU77 | - | - | - | ○ | ○ | |
ポート 8 | 0 | PM80 | P80 | PU80 | PIM80 | POM80 | - | ○ | - |
1 | PM81 | P81 | PU81 | PIM81 | POM81 | - | ○ | - | |
2 | PM82 | P82 | PU82 | - | POM82 | - | ○ | - | |
3 | PM83 | P83 | PU83 | - | - | - | ○ | - | |
4 | PM84 | P84 | PU84 | - | - | - | ○ | - | |
5 | PM85 | P85 | PU85 | - | - | - | ○ | - | |
6 | PM86 | P86 | PU86 | - | - | - | ○ | - | |
7 | PM87 | P87 | PU87 | - | - | - | ○ | - | |
ポート 10 | 0 | PM100 | P100 | PU100 | - | - | PMC100 | ○ | ○ |
1 | PM101 | P101 | PU101 | - | - | - | ○ | - | |
2 | PM102 | P102 | PU102 | - | - | - | ○ | - | |
3 | - | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - |
RL78/G14에 탑재하고있다 PMxx, Pxx, PUxx, PIMxx, POMxx, PMCxx 레지스터와 비트 (5 / 5)
ポート | ビット名 | 100 pin | 80 pin | ||||||
PMxx | Pxx | PUxx | PIMxx | POMxx | PMCxx | ||||
ポート 11 | 0 | PM110 | P110 | PU110 | - | - | - | ○ | ○ |
1 | PM111 | P111 | PU111 | - | - | - | ○ | ○ | |
2 | - | - | - | - | - | - | - | - | |
3 | - | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | |
ポート 12 | 0 | PM120 | P120 | PU120 | - | - | PMC120 | ○ | ○ |
1 | - | P121 | - | - | - | - | ○ | ○ | |
2 | - | P122 | - | - | ○ | ○ | |||
3 | - | P123 | - | - | ○ | ○ | |||
4 | - | P124 | - | - | ○ | ○ | |||
5 | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | |
7 | - | - | - | - | - | - | - | - | |
ポート 13 | 0 | - | P130 | - | - | ○ | ○ | ||
1 | - | - | - | - | - | - | - | - | |
2 | - | - | - | - | - | - | - | - | |
3 | - | - | - | - | - | - | - | - | |
4 | - | - | - | - | - | - | - | - | |
5 | - | - | - | - | - | - | - | - | |
6 | - | - | - | - | - | - | - | - | |
7 | - | P137 | - | - | ○ | ○ | |||
ポート 14 | 0 | PM140 | P140 | PU140 | - | - | - | ○ | ○ |
1 | PM141 | P141 | PU141 | - | - | - | ○ | ○ | |
2 | PM142 | P142 | PU142 | PIM142 | POM142 | - | ○ | ○ | |
3 | PM143 | P143 | PU143 | PIM143 | POM143 | - | ○ | ○ | |
4 | PM144 | P144 | PU144 | - | POM144 | - | ○ | ○ | |
5 | PM145 | P145 | PU145 | - | - | - | ○ | - | |
6 | PM146 | P146 | PU146 | - | - | - | ○ | ○ | |
7 | PM147 | P147 | PU147 | - | - | PMC147 | ○ | ○ | |
ポート 15 | 0 | PM150 | P150 | - | - | ○ | ○ | ||
1 | PM151 | P151 | - | - | ○ | ○ | |||
2 | PM152 | P152 | - | - | ○ | ○ | |||
3 | PM153 | P153 | - | - | ○ | ○ | |||
4 | PM154 | P154 | - | - | ○ | - | |||
5 | PM155 | P155 | - | - | ○ | - | |||
6 | PM156 | P156 | - | - | ○ | - | |||
7 | - | - | - | - | - | - | - | - |
포트 샘플 프로그램
예제 4-1P12 (포트 1의 비트 2 )에 연결된 SW가 ON (로우 레벨 입력)시 P16 (포트 1의 비트 6)에 연결된 LED를 점등 (로우 레벨 출력)하는 프로그램을 작성하십시오. 또한 P12는 내장 풀업 저항을 사용한다.
1: #pragma sfr // Enable Peripheral I/O Register Name
2:
3: void main(void)
4: {
5: // P1 = 0x40; // P16 is High, Others is Low Level Latch
6: // PM1 = 0xBF; // P16 is Output, Others is Input
7: P1.6 = 1; // P16 is High Level Latch
8: PM1.6 = 0; // P16 is Output
9: PU1.2 = 1; // P12 Uses On-Chip Pull-Up Resistor
10: while( 1 ) {
11: P1.6 = P1.2; // P12(SW) to P16(LED)
12: // if( P1.2 == 0 ) // P12(SW) is ON(Low Level)
13: // P1.6 = 0; // P16(LED) is ON(Low Level)
14: // else
15: // P1.6 = 1; // P16(LED) is OFF(High Level)
16: }
17: }
해설 1 행 : 주변 I / O 레지스터 이름을 사용하기 위해 # pragma sfr 지령을 선언 있습니다.
5 ~ 8 호선 : P16 단자를 출력 포트 (초기 출력 하이 레벨), P12 단자를 입력 포트로 사용하기 위해 P1에 0x40, PM1에 0xBF을 설정합니다. 또한 초기 상태 P1은 모든 래치 0x00의 로우 레벨 PM1은 모든 단자 입력 포트 0xFF이므로 P1의 비트 6 만 "1"의 상부를 래치하고 PM1의 비트 6 만 "0"을 설정하고 높은 수준의 출력 포트에 초기화해도 상관 없습니다.
9 호선 : P92의 내장 풀업 저항을 이용하기 위해 PU1의 비트 6에 "1"을 설정하고 내부 풀업 저항을 사용합니다.
11 행 : P12의 SW 값을 입력하고 P16의 LED에 출력합니다. 제어 SW와 LED는 모두 1 비트이므로 , P1의 해당하는 비트를 1 비트끼리 할당합니다.
12 ~ 15 행 : SW와 LED의 제어는 P12 연결 SW 상태를 if 문으로 검사하고 그 결과에 따라 P16 연결 LED를 점등 / 소등해도 상관 없습니다.
4.3 인터벌 타이머 인터벌 타이머 구성 인터벌 구성되어
인터벌 타이머구성타이머는다음과 같은 하드웨어로 있습니다. 카운터 : 12 비트 카운터 제어 레지스터 : 주변 활성화 레지스터 0 (PER0) 동작 속도 모드 제어 레지스터 (OSMC) 인터벌 타이머 제어 레지스터 (ITMC)이 카운터 제어 레지스터에 따라 미리 설정 한 임의의 시간 간격으로 인터럽트 (INTIT)을 발생합니다.
주변 활성화 레지스터 0,1 (PER0, PER1)
주변 활성화 레지스터 0,1 (PER0, PER1)
주변 활성화 레지스터 0,1 (PER0, PER1)은 각 주변 하드웨어에 대한 클록 공급 허가 / 금지를 설정 레지스터입니다. 사용하지 않는 하드웨어에 클럭 공급을 중지시키는 것으로 저소비 전력화와 노이즈 저감을 도모합니다.
인터벌 타이머를 사용할 때는 반드시 PER0의 비트 7 (RTCEN)를 "1"로 설정하십시오. PER0, PER1 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여, 00H됩니다.
동작 속도 모드 제어 레지스터 (OSMC)
동작 속도 모드 제어 레지스터 (OSMC) WUTMMCK0 비트 인터벌 타이머의 동작 클럭을 선택할 수 있습니다. OSMC 레지스터는 8 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여, 00H됩니다.
인터벌 타이머 제어 레지스터 (ITMC)
인터벌 타이머 제어 레지스터 (ITMC) 인터벌 타이머의 작동 중지 / 시작 설정과 비교 값을 설정하는 레지스터입니다. ITMC 레지스터는 16 비트 메모리 조작 명령으로 설정합니다. 리셋 신호를 발생하여,
0FFFH됩니다.주의사항
• RINTE 비트를 1 → 0으로 변경하려면 INTIT을 인터럽트 마스크 플래그 레지스터 인터럽트 처리 금지하고 에서 재 작성. 또한 갱신 후 ITIF 플래그를 클리어하고 인터럽트 처리 허가합니다. • RINTE 비트 리드 값은 RINTE 비트 설정 후 카운트 클럭 클럭 후에 반영됩니다. • ITCMP11-ITCMP0 비트 설정을 변경하려면 반드시 RINTE = 0 일 때해야합니다. 그러나 RINTE = 0 →
1 또는 1 → 0으로 변경 함과 동시에 ITCMP11-ITCMP0 비트 설정을 변경할 수 있습니다.
인터벌 타이머 동작
인터벌 타이머 동작
ITCMP11-ITCMP0 비트에 설정 한 카운트 값을 간격으로 반복 인터럽트 요청 (INTIT)를
발생하는인터벌 타이머로 작동합니다.
RINTE 비트를 1로 설정하면 12 비트 카운터가 카운트를 시작합니다.
12 비트 카운터 값이 ITCMP11-ITCMP0 비트에 설정 한 값과 일치 할 때, 12 비트 카운터를 0으로
클리어하여 계산을 계속하는 동시에 인터럽트 요청 신호 (INTIT)을 발생합니다.
인터럽트 요구 플래그 레지스터 (IF1H)
인터럽트 요구 플래그 레지스터 (IF1H) 인터럽트 요구 플래그는 해당 인터럽트 요청 발생 또는 명령의 실행에 의해 세트 (1)되어 인터럽트 요청
접수시 리셋 신호 발생하거나 명령을 실행하여 클리어 (0)되는 플래그 입니다. 인터벌 타이머 INTIT 인터럽트 신호는 IF1H의 ITIF 플래그가 대응하고 있습니다. 인터럽트가 접수 된 경우, 먼저 인터럽트 요구 플래그가 자동으로 지워지지에서 인터럽트 루틴에
들어갑니다.
IF1L, IF1H 레지스터는 1 비트 메모리 조작 명령 또는 8 비트 메모리 조작 명령으로 설정합니다. 또한 IF1L 레지스터와 IF1H 레지스터를 맞춰 16 비트 레지스터, IF1로 사용하는 경우, 16 비트 메모리 조작 명령으로 설정 합니다.
리셋 신호를 발생하여, 00H됩니다.
【주의 사항】
인터럽트 요구 플래그 레지스터의 플래그 조작에는 1 비트 메모리 조작 명령 (CLR1)를 사용하십시오. C 언어에서의 기술의 경우 컴파일 된 어셈블러가 1 비트 메모리 조작 명령 (CLR1)이 필요하기 때문에 "IF1H.2 = 0;"나 "ITIF = 0;"같은 비트 조작 명령을 사용하십시오.
또한 C 언어 에서 "IF1H & = 0xFB;"같이 8 비트 메모리 조작 명령으로 작성하면 컴파일하면 3
명령어어셈블러입니다. mov a, IF1H and a # 0FBH mov IF1H, a이 경우 "mov a, IF1H"나중에 "mov IF1H, a"사이의 시간에 동일한 인터럽트 요청 플래그 레지스터
(IF1H)의 다른 비트 요구 플래그가 (1) 되어도, "mov IF1H, a"로 클리어 (0)됩니다. 따라서 C 언어 8 비트 메모리 조작 명령을 사용하는 경우는주의가 필요합니다.
인터벌 타이머 예제 프로그램
예제 4-2
인터벌 타이머를 사용하여 250ms 간격으로 P16에 연결된 LED를 점멸시키는 프로그램을 창조하십시오. 또한, 인터럽트는 사용하지 않고, 클럭은 15kHz의 저속 온칩 오실레이터 클럭 (f IL)을사용한다.
1: #pragma sfr // Enable Peripheral I/O Register Name
2:
3: void main(void)
4: {
5: PM1.6 = 0; // P16 is Output
6:
7: OSMC |= 0x10; // Clock Uses fIL
8: RTCEN = 1; // Interval Timer Enable
9: ITMC = 0x8000 + 15000/4-1; // 250ms Count and Interval Timer Start
10: while( 1 ) { // Endless Loop
11: while( ! ITIF ) // Wait INTIT Interrupt Signal
12: ;
13: ITIF = 0; // Clear Interrupt Request Flag
14: P1.6 ^= 1; // Reverse P16(LED)
15: }
16: }
해설
1 행 : 주변 I / O 레지스터 이름을 사용하기 위해 # pragma sfr 지령을 선언합니다.
5 호선 : P16를 출력 포트로 설정합니다.
7 호선 : OSMC의 WUTMMCK0에 "1"을 설정하고, 인터벌 타이머의 입력 클럭에 저속 온칩
오실레이터클럭 (f IL)를사용합니다.
8 행 : PER0의 RTCE에 "0"을 설정하고, 인터벌 타이머 클럭을 공급합니다.
9 호선 : ITMC의 fRINTE에는 ILITCMP11-ITCMP0에는카운트 클럭에서 250ms가 얻은 값을 설정하고
"1"을 설정하고, 인터벌 타이머를 시작합니다.
11 ~ 12 행 : IF1H의 ITIF (인터럽트 요구 플래그) 이 "1"이되는 것을 알아, INTIT 신호가 발생할 때까지 기다립니다.
13 행 : IF1H의 ITIF을 지우고 인터럽트 요청을 중지합니다.
14 행 : P16과 1 사이에서 배타적 논리합을 취, LED를 반전시킵니다.
'공부 > RL78' 카테고리의 다른 글
RL78 option byte (0) | 2014.08.28 |
---|---|
RL78-Cubesuite+ 구조체와 공용체 (0) | 2013.04.09 |
RL78 컴파일러 사용 9 (0) | 2013.04.05 |
RL78 컴파일러 사용 8 (0) | 2013.04.05 |
RL78 컴파일러 사용 7 (0) | 2013.04.05 |