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  -
   56   57   58   59   60   61   62   63   64   65   66