디시인사이드 갤러리

갤러리 이슈박스, 최근방문 갤러리

갤러리 본문 영역

형들 atmega128로 도어락 만들고 있는데여

God Damn!!!갤로그로 이동합니다. 2011.09.02 20:19:40
조회 6407 추천 1 댓글 2


// ver1.1 변경사항 : 1. 키패드의 버튼을 눌렀을때, LCD에 *가 하나씩 표시되게 만들어야 함.
//                   2. LCD 서브함수를 이용하여 프로그래밍한다.

// 큰목표 : 1. 키패드를 이용하여 비밀번호를 설정하고, 비밀번호가 맞으면 문이 열리는 도어락을 설계한다.

// 작은 목표 : 1. LCD의 제어와 키패드의 제어를 합쳐서 관리할 수 있게 만든다.
//             2. 키패드의 버튼을 눌렀을때, LCD에 *가 하나씩 추가되어 표시되게 만들기.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 헤더파일 선언 부분

#include <mega128.h>

// Alphanumeric LCD Module functions
#asm
   .equ __lcd_port=0x12 ;PORTD
#endasm
#include <lcd.h>

#include <delay.h>

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 통용 전역변수 선언 부분

    char button = 0; // 버튼이 눌렸는지 안눌렸는지를 판단하는 변수
    
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// LCD 전역변수 선언 부분

    //char lcd_ast [5] = {\'*\',\'*\',\'*\',\'*\',\'0\'}; // 키패드의 버튼이 눌렸을 때, 이 배열의 문자가 하나씩 LCD화면에 추가됨
    char lcd_cnt = 0; // LCD에 관련된 카운트 변수는 이 변수를 사용할 것

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 키패드의 전역변수 선언 부분

#define DATA1 PINA.0
#define DATA2 PINA.1
#define DATA3 PINA.2
#define DATA4 PINA.3

#define SCAN1 PORTA.4
#define SCAN2 PORTA.5
#define SCAN3 PORTA.6

char scan[3] = {0x10,0x20,0x40},cnt = 0;
char data = 0;

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

// 서브함수 선언 부분

void keyscan ();
void lcd();               

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void main ()
{
    DDRA = 0xf0;
   
    PORTD=0x00;
    DDRD=0x00;

    // LCD module initialization
    lcd_init(16);
   
    ///////////////// LCD 처음 화면
   
    lcd_gotoxy( 0 , 0 );
    lcd_putsf("Password Please?");
   
    lcd_gotoxy( 0 , 1 );
    lcd_putsf("     _ _ _ _    ");
   
    ///////////////////////////
   
    while(1)
    {
        keyscan ();
        lcd();
       
        PORTA = ~scan[++cnt % 3] & 0xf0;
    }   
}

void keyscan ()
{   
    if(DATA1 == 0)
    {
        if(SCAN1 == 0) data = 1 , button = 1;
        if(SCAN2 == 0) data = 2 , button = 1;
        if(SCAN3 == 0) data = 3 , button = 1;
    }
   
    if(DATA2 == 0)
    {
        if(SCAN1 == 0) data = 4 , button = 1;
        if(SCAN2 == 0) data = 5 , button = 1;
        if(SCAN3 == 0) data = 6 , button = 1;
    }
   
    if(DATA3 == 0)
    {
        if(SCAN1 == 0) data = 7 , button = 1;
        if(SCAN2 == 0) data = 8 , button = 1;
        if(SCAN3 == 0) data = 9 , button = 1;
    }
   
    if(DATA4 == 0)
    {
        if(SCAN1 == 0) data = \'*\' , button = 1;
        if(SCAN2 == 0) data = 0 , button = 1;
        if(SCAN3 == 0) data = \'#\' , button = 1;
    }
}

void lcd ()
{
    int button_case = 1; // 스위치 케이스 문을 사용하기 위하여 선언
   
   
   
    // 키패드의 버튼이 눌렸을 때의 상황을 설정하는 부분 
   
    if(button == 1)
    {
        button = 0;
           
        switch (button_case)
        {
            case 1 : lcd_gotoxy ( 5 , 1 );
                         lcd_putsf("*");
                         button_case++;
                         break;
                        
            case 2 : lcd_gotoxy ( 7 , 1 );
                         lcd_putsf("*");
                         button_case++;
                         break;
                         
            case 3 : lcd_gotoxy ( 9 , 1 );
                         lcd_putsf("*");
                         button_case++;
                         break;
                        
            case 4 : lcd_gotoxy ( 11 , 1 );
                         lcd_putsf("*");
                         button_case++;
                         break;  
        }
    }
    //////////////////////////    

}

코드는 이정도인데, switch case 문에 넣은 내용이 작동을 하지가 않음요.
생각해보면 맞는 코드인것 같은데 뭐가 문제인지 알려주실 분?

추천 비추천

1

고정닉 0

0

원본 첨부파일 1

댓글 영역

전체 댓글 0
등록순정렬 기준선택
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 경제관념 부족해서 돈 막 쓸 것 같은 스타는? 운영자 24/05/13 - -
277855 노는 스마트 폰에 os 설치 불가능 할까?? [10] 거칠게갤로그로 이동합니다. 11.10.04 156 0
277853 USB로 윈7 까는데 도움좀.. [6] 에드라드(121.187) 11.10.04 80 0
277851 소스인사이트쓰는 횽들 질문 [3] 3(116.42) 11.10.04 230 0
277850 형들 오픈지엘 텍스쳐 Disable하면 아예 죽게하는법 없어? +어게인갤로그로 이동합니다. 11.10.04 31 0
277849 안녕! ㅁㄴㄻㄹ갤로그로 이동합니다. 11.10.04 36 0
277848 자바에서 메소드 클릭하면 이렇게 뜨는데 왜그런지 알아? [5] 좋은아버지갤로그로 이동합니다. 11.10.04 88 0
277846 정규식 알려주세요 [8] 정규식(58.184) 11.10.04 112 0
277843 혹시 시스템 프로그래머가 될려면 어떻게 준비해야 하는지 알아? [4] 좋은아버지갤로그로 이동합니다. 11.10.04 124 0
277841 스탠포드 무료 기계학습 과정 좋다 진짜 [2] 멸자(130.126) 11.10.04 94 0
277836 그런데 궁금한게 있는데 말이지 [3] 좋은아버지갤로그로 이동합니다. 11.10.04 57 0
277835 형들 비베 코딩 for문 좀 알려줄수 잇어요? [2] ㅇㅂ(218.237) 11.10.04 86 0
277834 워그화 신었는데 [1] Adelposs갤로그로 이동합니다. 11.10.04 48 0
277833 안드로이드로 숫자야구 앱 만들었는데 [3] ?(124.199) 11.10.04 103 0
277832 혹시 소프트웨어 마에스트로 에 대해서 잘 아는 형 있어? [1] 좋은아버지갤로그로 이동합니다. 11.10.04 57 0
277831 횽들 한글로 된 언어는 외쿡인들이 안 써줘서 망했다고 그랬자낭.. [1] LazyGyu갤로그로 이동합니다. 11.10.04 88 0
277830 좋은아침입니다 다들출근은했지요 三didas갤로그로 이동합니다. 11.10.04 38 0
277829 ㅋㅋ 너무 졸려서 [5] Adelposs갤로그로 이동합니다. 11.10.04 72 0
277827 내일이 지나면 나는 이제 3개월 차 에 돌입해. [5] 좋은아버지갤로그로 이동합니다. 11.10.04 106 0
277826 클래스 다이어그램 그릴일이 있는데.. [4] 쿄스케갤로그로 이동합니다. 11.10.04 113 0
277825 개발자 동호회 같은거 하고 싶은데 [23] 좋은아버지갤로그로 이동합니다. 11.10.04 213 0
277824 닌자파워어쌔신.zip [3] 회전매니아갤로그로 이동합니다. 11.10.04 114 0
277823 샘숭이말하는 대항마라는게 ㅂㅈㄷ(210.178) 11.10.04 43 0
277822 출근 is 죽고 싶다. [6] 좋은아버지갤로그로 이동합니다. 11.10.04 97 0
277819 크하하하하 만들었다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ forhappiness갤로그로 이동합니다. 11.10.04 37 0
277818 아게이 도대체 어디감? Adelposs갤로그로 이동합니다. 11.10.04 25 0
277816 아니 시발 ktx 개객기 Adelposs갤로그로 이동합니다. 11.10.04 38 0
277815 프갤여러분들 안녕! AnonyMous갤로그로 이동합니다. 11.10.04 27 0
277813 강남비트 자바 고급반 정보좀 줘~~부탁해,., 밥팅이야(59.10) 11.10.04 97 0
277812 1000원짜리 버스 막장갤신학생갤로그로 이동합니다. 11.10.04 43 0
277811 형들살려줘 [3] Adelposs갤로그로 이동합니다. 11.10.04 64 0
277810 아 시발 진ㄴ짜 지려온다 Adelposs갤로그로 이동합니다. 11.10.04 27 0
277809 아 피곤해 시발 Adelposs갤로그로 이동합니다. 11.10.04 22 0
277808 아 진짜 졸렵다 Adelposs갤로그로 이동합니다. 11.10.04 26 0
277807 C++ 오류 질문좀 드릴게요 [3] 라마(71.82) 11.10.04 46 0
277806 (c/c++)이게 왜 오류야? ㄷㄷ; [3] forhappiness갤로그로 이동합니다. 11.10.04 71 0
277805 오브젝티브 ㅆ ㅣ 공부하다가 [1] 돌아이바갤로그로 이동합니다. 11.10.04 50 0
277804 자바하는데 객체가 너무어렵다... [6] ^0^갤로그로 이동합니다. 11.10.04 131 0
277803 Bodhi(보디,버디) 리눅스를 써봤다 [3] 로하로하알로하갤로그로 이동합니다. 11.10.04 177 0
277802 내일이 대망의 프레젠테이션 발표인데 [3] 일광면(119.198) 11.10.04 80 0
277801 그냥 인증서 좀 백업하겠다는데 로하로하알로하갤로그로 이동합니다. 11.10.04 32 0
277800 밑에 스택프레임 보세요 [1] 일광면(119.198) 11.10.04 47 0
277799 카이스트나 서울대 컴공/대학원 나오면.. 으아(121.145) 11.10.04 486 0
277798 뒤늦게 이제서야 크라이시스를 해봤는데 [1] ㅋㄱ(183.96) 11.10.04 59 0
277797 6! (팩토리얼) 스택프레임 으로 그려오라는데 좀 알려줘 뀨읭(124.28) 11.10.04 108 0
277796 형들 WINHTTP를통해서 헤더PHPSESSID적용하려면어떻게해야하나요? [3] uxp갤로그로 이동합니다. 11.10.04 66 0
277794 C++ 도 폼을 볼수있나요? [1] 박구갤로그로 이동합니다. 11.10.04 68 0
277792 고작한시반인데 정전인척하는거야??? [1] 김호도갤로그로 이동합니다. 11.10.04 23 0
277791 데이터마이닝에서 .. nearest neighbor 알고리즘말인데.... 김호도갤로그로 이동합니다. 11.10.04 36 0
277790 좋은 아버지 짤 정했어 [10] 좋은아버지갤로그로 이동합니다. 11.10.04 166 0
277789 내일 과제 제출이냨ㅋㅋㅋ 조공 존나 많네 로하로하알로하갤로그로 이동합니다. 11.10.04 56 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2