디시인사이드 갤러리

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

갤러리 본문 영역

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

God Damn!!!갤로그로 이동합니다. 2011.09.02 20:19:40
조회 6414 추천 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 35358 62
2709312 독으로 만드는 약 발명도둑잡기갤로그로 이동합니다. 11:22 2 0
2709311 떡볶이 철판 군지좌 입대한지 벌써 2년 헬마스터갤로그로 이동합니다. 11:16 9 0
2709310 가족이 있다는건 큰 힘이 되는것 같다. 내가 망가지지않은 유일한 이유다. [2] ㅇㅇ(223.38) 11:11 15 1
2709309 비가와서 그런지 [4] 멍청한유라ㅋ갤로그로 이동합니다. 11:05 20 0
2709308 20~25년 전엔가 일기에 미라지인가 미라쥬라는 발명도둑잡기갤로그로 이동합니다. 10:58 10 0
2709307 아 ccna가 영어 시험 밖에 없는 시험이었구나 망했네 [4] 프갤러(180.64) 10:57 17 0
2709305 까치가 걸어다니네양 [1] ♥여래신장냥덩♥갤로그로 이동합니다. 10:46 12 1
2709304 4050 좌파들은 범죄자도태세대 ♥여래신장냥덩♥갤로그로 이동합니다. 10:40 9 0
2709303 직장 50대 한국아재의 20대 일본여자 성희롱.. [4] 프로외노자갤로그로 이동합니다. 10:38 28 0
2709302 + 저 진짜 사소한 고민 있어요 [1] qu(121.171) 10:37 19 0
2709300 리눅스 이거 어케쓰냐 [1] 덴분갤로그로 이동합니다. 10:35 26 0
2709299 컴퓨터를 살까말까 계속 고민만 하는 중이다... 이제 지긋지긋하다 [2] ㅇㅇ(223.38) 10:29 18 1
2709298 우울하다..ㅇㅅㅇ [1] 헤르 미온느갤로그로 이동합니다. 10:27 12 0
2709297 vscode에서 코드 폴딩 꼬이는거 어떻게 하냐?? [2] 프갤러(112.162) 10:24 13 0
2709296 방금 전 인스타그램 추천 발명도둑잡기갤로그로 이동합니다. 10:13 19 0
2709295 잡코는 거의 하청파견 뺑뺑이 좃소임 [3] 클갤(39.7) 10:05 35 0
2709294 ㅇㅅㅇ ♥여래신장냥덩♥갤로그로 이동합니다. 10:04 13 0
2709292 취업하고싶다 [2] ㅇㅇ(106.102) 10:01 30 0
2709291 포케로그 개재밌는데 타입스크립트갤로그로 이동합니다. 10:00 9 0
2709290 걍 질렀음 ㅇㅇ(211.234) 09:59 14 0
2709289 모닝 알고리즘 풀엇읍니다 [1] 피에로가르뎅갤로그로 이동합니다. 09:55 21 0
2709288 옛날 젠폰에서 고장난 유심이랑 현재폰 유심이 듀얼심이되다니... 도리스아(119.195) 09:51 8 0
2709286 은행은 160개나 있네 [2] 버거띠갤로그로 이동합니다. 09:37 42 0
2709285 증권으로 검색해도 72개나 있네 [1] 버거띠갤로그로 이동합니다. 09:35 27 0
2709284 잡코리아 가니까 웹개발자 2천개 있는데 [1] 버거띠갤로그로 이동합니다. 09:33 59 1
2709283 전원 모드 바꾸는거 만들었음 ㅇㅇ(122.199) 09:31 26 0
2709282 전 여친이 자꾸 스토킹함.txt [1] Kyle(120.17) 09:30 37 0
2709281 닭장암컷 약간 발정수컷 같은 어감임 딱국(118.235) 09:29 14 0
2709280 닭장이라고하면 진짜 개꼴리네 딱국(118.235) 09:28 20 0
2709279 나라장터 물건 보는 재미 나라장터쇼핑몰 일반인도 구매가능 도리스아(119.195) 09:25 13 0
2709278 비가 많이 온다. 나 에전에 집이 떠내려가는 꿈 꾸었는데 어디 안 나가야 [3] 도리스아(119.195) 09:16 17 0
2709277 죽엇!! 죽어엇!! ♥여래신장냥덩♥갤로그로 이동합니다. 09:11 17 0
2709276 검찰이 최근 조현옥 전 청와대 인사수석을 압수수색했습니다. 전주지검 형 검찰이 최근 조현옥 전 청와대 인사수(211.40) 09:04 17 0
2709275 현직 경찰관 B씨 강제추행 혐의로 불구속기소 된 A(54)씨에게 징역 1 현직 경찰관 B씨 강제추행 혐의로 불(211.40) 08:57 20 0
2709274 AI는 왜 벡터연산을 해야 하나? [2] ㅇㅇ(114.30) 08:50 32 0
2709273 하루 한 번 헤르미온느 찬양 헤르 미온느갤로그로 이동합니다. 08:30 26 0
2709272 5G NR 모드 기본 사용 내 폰 5G 되는거 아님? 도리스아(119.195) 08:23 12 0
2709271 트류미 히히 ㅇㅅㅇ [4] 나트륨찡갤로그로 이동합니다. 08:22 33 0
2709270 님 노트 8 제 폰 중고가 예상 가치좀. 도리스아(119.195) 08:15 17 0
2709268 따구기 히히 [1] 딱국(61.99) 08:04 32 0
2709267 운동을 하고 그래야 하는데 [2] 주아갤로그로 이동합니다. 07:56 33 1
2709266 망갤 테스트 [4] 나트륨찡갤로그로 이동합니다. 05:55 67 3
2709263 일본에서 노트 8 팔릴까요? [4] 도리스아(119.195) 04:32 37 0
2709262 시발 갤 망햇노 [1] 프갤러(180.71) 04:28 56 0
2709259 kmooc급 찾았노 [2] 덴분갤로그로 이동합니다. 03:52 70 2
2709258 딱국이 이쁜여자랑 눈마주치면 ㄹㅇ 고양이앞의 생쥐 딱국(61.99) 03:46 22 0
2709257 전라도차별?ㅋㅋ그럼북한욕하면북한차별이냐?졷같으니까뭐라하는건데 보법E노무현갤로그로 이동합니다. 03:46 23 0
2709256 솔직히 딱국 부럽징? 섹스밖에 모르는거 히히 [1] 딱국(61.99) 03:44 42 0
2709255 아 이쁜여자가 뭐라고 이렇게나 좋은걸까 딱국(61.99) 03:39 20 0
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2