디시인사이드 갤러리

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

갤러리 본문 영역

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

God Damn!!!갤로그로 이동합니다. 2011.09.02 20:19:40
조회 6415 추천 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/06/03 - -
공지 프로그래밍 갤러리 이용 안내 [71] 운영자 20.09.28 35368 62
2709589 냥덩이 같은 후임 구하는 법 ㅇㅅㅇ 나트륨찡갤로그로 이동합니다. 20:35 6 0
2709588 뤼튼 같은 기업이 투자받을 수 있던 이유가 뭐임? [1] 딘퐁갤로그로 이동합니다. 20:35 9 0
2709585 뤼튼 250억 투자 더 받앗다고한다 [1] 헬마스터갤로그로 이동합니다. 20:31 13 1
2709584 앱히키 같은 후임 구하는 법 ㅇㅅㅇ 나트륨찡갤로그로 이동합니다. 20:30 5 0
2709583 초코냥 같은 후임 구하는 법 AppHiki갤로그로 이동합니다. 20:29 7 0
2709582 나트륨은 알고리즘 인공지능의 권위자 ㅇㅅㅇ 나트륨찡갤로그로 이동합니다. 20:24 10 0
2709580 초코냥 같은 후임 어디서 못구하나 포항의봄갤로그로 이동합니다. 20:21 8 0
2709579 나님 지금 조금 야한상태.. 다 벗엇어양.. ♥냥덩수면과학연구소♥갤로그로 이동합니다. 20:20 4 0
2709578 누가 나님꺼 빨아주는거야? [1] ♥냥덩수면과학연구소♥갤로그로 이동합니다. 20:19 6 0
2709577 진지하게 네카라쿠배 취업되는지 평가좀 프갤러(210.97) 20:16 13 0
2709576 인공지능쪽 제대로 갈려면 c언어 장인되야 하는거 아니냐? [9] 프갤러(175.124) 20:12 27 0
2709575 첩보에 의하면 냥덩 나이는 30대 극초반 발명도둑잡기갤로그로 이동합니다. 20:10 9 0
2709574 나 딱국이고, 앞으로 난 영웅이다 프리덤건담갤로그로 이동합니다. 20:06 12 0
2709573 나씻주준✨ ♥냥덩수면과학연구소♥갤로그로 이동합니다. 20:05 7 0
2709572 전산직은 비전공자는 못함? 프갤러(180.64) 20:02 12 0
2709568 남자를 죽여버리고 싶을정도로 사랑하는 여자 없나 딱국(61.99) 19:41 13 0
2709566 개발할때 화면분할 많이씀? [2] ㅇㅇ(106.101) 19:36 34 0
2709564 아 시발.. ㅠㅠ 보지 좋아 ㅠㅠ 딱국(61.99) 19:29 24 0
2709563 닭장녀 닭장ㅂㅈ 냄새맡구 핥구싶당 딱국(61.99) 19:27 12 0
2709562 나 피에로님 질문받는가르뎅 흠냐롱갤로그로 이동합니다. 19:27 8 0
2709560 4050 좌빨틀딱들 빨리 좀 죽어라 [1] ♥냥덩수면과학연구소♥갤로그로 이동합니다. 19:25 15 0
2709559 닭장녀랑 ㅈㄴ 섹스하고싶다 [1] 딱국(61.99) 19:25 24 0
2709558 남자가 돈이 많고 여자가 존나 이쁘고 부질없다 [3] 류류(203.229) 19:23 29 2
2709556 스테이블 디퓨전 빌드중 ㅇㅅㅇ [2] 초코냥갤로그로 이동합니다. 19:20 21 0
2709555 여자가 나이 30넘게 애새끼 싸지르니까 조현병 낳는거 [1] 류류(203.229) 19:20 18 2
2709554 인서울 컴공야간대학원 나왔는데도 이직 힘드네 [4] ㅇㅇ(211.36) 19:18 37 1
2709552 (240608) 프갤 정신병자 목록.txt ♥냥덩수면과학연구소♥갤로그로 이동합니다. 19:16 25 0
2709551 초크 씻어내고 보니 구멍이 생각보다 크구나 [3] 흠냐롱갤로그로 이동합니다. 19:15 23 0
2709550 플러터 웹 버그땜에 며칠째 기력을 잃으시다. [7] 헬마스터갤로그로 이동합니다. 19:14 32 0
2709549 [국가기밀] 오물 풍선 방지 작전계획 101 전격 공개 발명도둑잡기갤로그로 이동합니다. 19:14 21 0
2709547 슈카갤에 글썼다 썰렸습니다 [3] 헬마스터갤로그로 이동합니다. 19:11 29 0
2709546 adhd환자인데 개발자 할수있을까? [3] 프갤러(125.141) 19:10 31 1
2709545 야놀자 클라우드 직접 하네 [1] 발명도둑잡기갤로그로 이동합니다. 19:09 17 0
2709543 병신 갤러리 폐쇄 해라 [2] 프갤러(58.76) 19:06 33 3
2709541 나 딱지 리마 2급도 합격 [1] 딱지(211.234) 19:03 13 0
2709540 나 피에로님 오늘의 클라이밍 완료 [5] 흠냐롱갤로그로 이동합니다. 19:03 28 0
2709539 로리타 콤플렉스가 이상적인 취향임 ㅇㅅㅇ 류류(118.235) 19:02 14 1
2709537 나는내향적이야 나는조현병이야 통정희박대령갤로그로 이동합니다. 18:57 7 0
2709535 메이플+리니지 3클라+넷플릭스+vscode 컴터 견적좀 짜주세요 ㅇㅇ(223.38) 18:56 6 0
2709533 학식따리 지금 공부 [1] ㅇㅇ갤로그로 이동합니다. 18:50 21 0
2709532 디씨인싸이드 녹음 기능 업로드 계속 안된다 [1] 발명도둑잡기갤로그로 이동합니다. 18:48 15 0
2709528 요즘 취업 존나 빡세냐? 프갤러(39.7) 18:40 23 0
2709522 백엔드 면접보는데 스프링 빈 생명주기 대답못한거 ㅈㄴ크나? [7] 프갤러(122.32) 18:20 96 0
2709521 애플이 망할 수 밖에 없는 이유 ㅇㅅㅇ ㅇㅅㅇ(1.216) 18:18 32 0
2709517 네이버 이메일 vs 지메일 [2] qu(121.171) 18:08 41 0
2709516 진정한 개발자들만 프갤 오게 해야한다 ㅇㅅㅇ [2] 상한포도갤로그로 이동합니다. 18:07 51 0
2709515 개발자는 아닌데 개발은 하고 IT 직무이긴 한 직업이 뭐가있지 [2] 프갤러(112.150) 18:07 77 1
2709512 칭구.. ♥냥덩수면과학연구소♥갤로그로 이동합니다. 18:01 36 0
2709511 오늘 비타민디 합성 많이 한다 발명도둑잡기갤로그로 이동합니다. 17:59 24 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2