디시인사이드 갤러리

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

갤러리 본문 영역

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

God Damn!!!갤로그로 이동합니다. 2011.09.02 20:19:40
조회 6439 추천 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
본문 보기

하단 갤러리 리스트 영역

왼쪽 컨텐츠 영역

갤러리 리스트 영역

갤러리 리스트
번호 제목 글쓴이 작성일 조회 추천
설문 반응이 재밌어서 자꾸만 놀리고 싶은 리액션 좋은 스타는? 운영자 25/07/28 - -
AD 휴대폰 액세서리 세일 중임! 운영자 25/07/28 - -
271418 혹시나 해서 그런데 토렌트 몇번 포트냐 로하로하알로하갤로그로 이동합니다. 11.09.11 49 0
271417 [프겔추석특선영화] - 실리콘밸리 전쟁 - 제공 : D.B.Cooper [9] arduous갤로그로 이동합니다. 11.09.11 180 0
271416 너희들 내기분이 얼마나 운지한지 암? [1] Adelposs갤로그로 이동합니다. 11.09.11 40 0
271415 아 시발 시발시발시발 Adelposs갤로그로 이동합니다. 11.09.11 38 0
271414 형들 자바에서 stack 을 string[]으로 캐스트 할수는 없는거야? [8] Noble.6갤로그로 이동합니다. 11.09.11 111 0
271413 HTML 가방 [4] [성대아싸]갤로그로 이동합니다. 11.09.11 154 0
271412 형들 여기 들어와봐... [8] arduous갤로그로 이동합니다. 11.09.11 95 0
271411 여친에게 얃옹처럼 해달라고 하면 어찌되냐?? [3] 거칠게갤로그로 이동합니다. 11.09.11 160 0
271410 꼭 컴타 부저로 비프음 내라는 법은 없잔아 Adelposs갤로그로 이동합니다. 11.09.11 44 0
271409 테이크다운(해커영화), 실리콘밸리전설(스티브잡스, 빌게이츠나오는영화)받으 [22] D.B.Cooper갤로그로 이동합니다. 11.09.11 194 0
271408 오브젝트 씨 하는 횽들 좀 봐봐 [1] 거칠게갤로그로 이동합니다. 11.09.11 78 0
271407 나 다시해서 됫다고 ㅋㅋㅋㅋㅋ [9] sadasd(218.39) 11.09.11 107 0
271406 어느 기업의 명절급여 [1] ㅇㅇ(61.77) 11.09.11 77 0
271405 애들아 우리도 다른갤처럼 딸딸이 이야기 아님 포경이야기나 하자 [3] Adelposs갤로그로 이동합니다. 11.09.11 139 0
271404 형들 c에서 비프음 나오면서 다른거 못할까? [14] 플래닛댄스갤로그로 이동합니다. 11.09.11 104 0
271403 횽들 만약에 [3] 써무사(50.131) 11.09.11 46 0
271402 형들 이거 스레드 쓰면 해결되는문제일까? [8] +어게인갤로그로 이동합니다. 11.09.11 92 0
271401 공고애들 보면 가끔 부럽 플래닛댄스갤로그로 이동합니다. 11.09.11 56 0
271400 우리나라는 1등아니면 다 소용없어 흐킁 [1] ㅇㅇ(61.77) 11.09.11 55 0
271399 부왘ㅋ 완전 뻘쭘함 [3] 三didas갤로그로 이동합니다. 11.09.11 69 0
271398 프로그래머는 닥치고 외국이다!! [3] 거칠게갤로그로 이동합니다. 11.09.11 123 0
271397 형들 c++입문 하루됫는데 오류나는데 모르겟어 [14] sadasd(218.39) 11.09.11 162 0
271396 로하는 호갱님임? Adelposs갤로그로 이동합니다. 11.09.11 34 0
271395 병신들아 Adelposs갤로그로 이동합니다. 11.09.11 30 0
271394 디씨 광고말야 [4] 로하로하알로하갤로그로 이동합니다. 11.09.11 50 0
271393 횽들 지금 제가 하려고 하는게 [5] 써무사(50.131) 11.09.11 47 0
271392 내 생각엔 우린 다 병신이야 [9] y녀6디리(220.118) 11.09.11 112 0
271391 프갤에 별 거지같은거나 물어보러 오네 [3] Adelposs갤로그로 이동합니다. 11.09.11 58 0
271390 전자결재 만들어본횽들 있어?~ [5] 웹형갤로그로 이동합니다. 11.09.11 61 0
271389 써니 본 게이들 있냐??? [1] 거칠게갤로그로 이동합니다. 11.09.11 61 0
271388 횽들아 array 이렇게 쓰면 안되나요? [23] 써무사(50.131) 11.09.11 138 0
271387 에러중 제일 좆같은 에러는 [2] Adelposs갤로그로 이동합니다. 11.09.11 58 0
271385 다 싫다 짜증난다 [2] Adelposs갤로그로 이동합니다. 11.09.11 47 0
271384 안드로이드 pc에 깔었는데 [1] 마타버터갤로그로 이동합니다. 11.09.11 50 0
271382 음멋봐라 호구새키야 로하로하알로하갤로그로 이동합니다. 11.09.11 40 0
271381 버쳐머신에 마켓 vending.apk파일 깔어서 돌리려는데 마타버터갤로그로 이동합니다. 11.09.11 52 0
271380 야 프갤 뒤짐? [1] Adelposs갤로그로 이동합니다. 11.09.11 41 0
271379 롭게 그세끼는 어디감? Adelposs갤로그로 이동합니다. 11.09.11 36 0
271378 고3은 봐봐 Adelposs갤로그로 이동합니다. 11.09.11 42 0
271377 버쳐박스에 진저브레드 설치했는데 마타버터갤로그로 이동합니다. 11.09.11 44 0
271376 임베디드시스템공학과 vs 컴퓨터 공학과 vs 정보통신공학과 [7] ㄴㅁㅇ(115.21) 11.09.11 242 0
271375 고데레 너 청량리삼? Adelposs갤로그로 이동합니다. 11.09.11 20 0
271374 그래 바로 이거야! [8] 천재해커(59.14) 11.09.11 120 0
271372 천재해거는 천재다 Adelposs갤로그로 이동합니다. 11.09.11 45 0
271371 버퍼오버플로우 [1] 버퍼링(121.186) 11.09.11 43 0
271370 jsp나 css는 자기가 디자인하고 눈에 금방 보이니까 재밌내 ㅋㅋ [2] 허세강갤로그로 이동합니다. 11.09.11 84 0
271369 형들 생일축하좀 해줘 [7] ,.,.,갤로그로 이동합니다. 11.09.11 48 0
271368 만약 실행파일을 리버싱하는게 [14] 로하로하알로하갤로그로 이동합니다. 11.09.11 160 0
271367 변태들아 Adelposs갤로그로 이동합니다. 11.09.11 31 0
271366 야 적어도 남자라면 컴터정돈 혼자 조립할줄 알아야지. 쵸쵸(219.251) 11.09.11 43 0
뉴스 기묘한 케이지, 오늘(30일) 정오 버벌진트 '좋아보여' 리메이크 음원 발매 디시트렌드 07.30
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2