Page 1002 - 3-3
P. 1002
void Toggle1_ LCD() // Toggle 스위치 1 - LCD 테스트
{
if((PING&0x01)==0) // Toggle1 의 Active Low 입력 시
{
point = lcd / 500; // lcd 값을 500 으로 나누어 point 에 저장
if(point != temp) { // point 가 이전 point 값(temp) 와 다를 경우
lcd_clear(); // LCD 초기화
lcd_gotoxy(point,line); // LCD 문자 출력 위치 설정
lcd_putsf("IEMHS-ICEM"); // IEMHS-ICEM 출력
}
temp = point; // 현재 point 값을 temp 변수에 저장
lcd++; // lcd 변수에 1 더함
if((lcd == 3500) && (line == 0)) { // lcd 값이 3500(3.5 초 가 되면 라인 값 초기화 후)
라인을 1 로 변경
lcd = 0;
line = 1;
}
else if((lcd == 3500) && (line == 1)) { // lcd 값이 3500(3.5 초 이 되면 라인 값 초)
기화 후 라인을 0 으로 변경
lcd = 0;
line = 0;
}
}
}
void Toggle2_KeyMatrix() // Toggle 스위치 2 – Key Matrix 테스트
{
keyout=0xfe; // K4 ~ 번을 모두 스캔해야 하므로7 0xfe → 0xfd → 0xfb → 0xf7 순으로 변
화시킴
for(i=0; i<=3; i++) // 4 번 반복 (Key Matrix 가 4×4 이므로)
{
PORTD = keyout; // Port D 의 출력을 keyout 값으로 설정
matrix=PIND; // Port D 의 입력을 matrix 변수에 저장
if((PING&0x02)==0) // Toggle2 의 Active Low 입력 시
{
PORTA=fnd[keymatrix(matrix)];
// Port D 입력 값을 keymatrix 함수에 넣어 key 값을 받아 출력
}
else{
PORTA=0xff; // Toggle 2 번 Switch 가 Active High 일 경우 FND Off
}
keyout=(keyout<<1)+0x01; // 스캔할 라인 변경
}
}
- 1002 -