Page 61 - 2020학년도 MDP과제발표회 자료집 (통신과) (3)
P. 61
나 프로그램 소스.
- 코드비전
#include <mega128a.h> // atmega128a 헤더
#include <string.h>
#include <lcd.h> // LCD 헤더
#asm
.equ __lcd_port = 0x15; //portc lcd 로 사용
#endasm
unsigned char pin; // pin 이라는 변수 지정
unsigned int state = 0; state 라는 변수 지정
void main(void)
{
DDRA = 0xff; // 계전기 사용
DDRD = 0x00; // 스위치 사용
DDRC = 0xff; // LCD, Data 4 ~7 까지 사용
PORTA = 0x00; // 초기값 0
PORTD = 0xff; // 안정적이게 하기 위해 초기값 설정
PORTC = 0xff; // 초기값 0
lcd_init(16); // lcd 모듈 초기화 글자 수 . 16 글자
lcd_gotoxy(0, 0); // 위치 정해주기
lcd_clear(); // 화면에 아무것도 안 나타나게 함
lcd_putsf(" ELCT_JBTS "); // 초기 화면에 나올 글자 표기
lcd_gotoxy(0, 1); // 위치를 정해줌
lcd_putsf(" we are blind "); // 초기 화면에 나올 글자 표기
while (1)
{
pin = PIND; // 포트 의 D pind 를 pin 이라는 변수에 할당
switch(pin)
{ // active_low 여서 일 때 스위치와 0 Cds 동작
case 0xfe: state = 1; break; // 1 번 Cds 가 가려졌을 때
case 0xfd: state = 2; break; // 2 번 Cds 가 가려졌을 때
case 0x:fb state = 3; break; // 3 번 Cds 가 가려졌을 때
case 0xf7: state = 4; break; // 4 번 Cds 가 가려졌을 때
- 62 -