디시인사이드 갤러리

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

갤러리 본문 영역

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

God Damn!!!갤로그로 이동합니다. 2011.09.02 20:19:40
조회 6438 추천 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/07 - -
AD 디지털 액세서리 기간한정 세일! 운영자 25/07/11 - -
공지 프로그래밍 갤러리 이용 안내 [88] 운영자 20.09.28 45412 65
2871214 청혼 도중 폭포 아래로 추락…영상 확산에 누리꾼 '충격' 발명도둑잡기(118.216) 22:28 2 0
2871213 대동아냥덩권⭐ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 22:28 8 0
2871212 역대급 1위 터졌다…‘충격’에 휩싸인 일본 발명도둑잡기(118.216) 22:27 3 0
2871211 나도 코딩 개고수가 되고 싶어 [3] 아스카영원히사랑해갤로그로 이동합니다. 22:17 23 0
2871210 내일 칼럼 하나 쓸깡? 쓸 주제가 뭐 있을까낭? ♥로스트미디어냥덩이♥갤로그로 이동합니다. 22:12 12 0
2871208 주 1회 칼럼 써야하는댕,, ♥로스트미디어냥덩이♥갤로그로 이동합니다. 22:10 8 0
2871207 살 엄청 찌는 백종원피자 알바한 오해원 발명도둑잡기(118.216) 22:09 6 0
2871206 실존하는게 놀라운 지구상의 신비한 생물들 발명도둑잡기(118.216) 22:06 5 0
2871204 월 600 정도만 되어도 만족하겠다 아스카영원히사랑해갤로그로 이동합니다. 21:57 20 0
2871203 이효리, 달라진 예능 환경 언급 "10년 전 방송선 女 가슴 사이즈로 놀 발명도둑잡기(118.216) 21:28 17 0
2871202 친중좌파 2재명 탄핵운동행진⭐+ 가즈아앙 ♥로스트미디어냥덩이♥갤로그로 이동합니다. 21:27 13 0
2871201 [단독] “의리의 한소희”, 뒤늦게 알려진 미담…5천만원 상당 깜짝 선물 발명도둑잡기(118.216) 21:25 9 0
2871200 김충현의 죽음, 그날 그때 무슨 일이... "김충현은 어느 회사 직원이었 발명도둑잡기(118.216) 21:20 6 0
2871199 안녕하세요 선생님들 외주에 대해서 질문이 있습니다. 프갤러(119.192) 21:19 10 0
2871197 불과 한달만에 대한민국을 처참하게 망가뜨리고 잇는 2찢명 ♥로스트미디어냥덩이♥갤로그로 이동합니다. 21:11 9 0
2871195 SSD는 TRIM 동작하면 완전 복구 불가능이지 않나? [2] ㅆㅇㅆ(124.216) 21:09 22 0
2871193 드라마 <우리 영화> 재밌나요? 발명도둑잡기(118.216) 21:01 8 0
2871192 노래유튜버들은 롱런하기 힘든것같구나 [1] 헬마스터갤로그로 이동합니다. 20:52 21 0
2871191 현대차 비방글 올린 사람 아이디 rtOS인데 임베디드랑 관련있을지 모른다 발명도둑잡기(118.216) 20:52 28 0
2871190 오늘도 납골공원에 어르신들 바둑두시는구나 [4] 헬마스터갤로그로 이동합니다. 20:44 34 0
2871189 요즘시대에 스프링만으로는 살아남기 어렵지? [1] ㅇㅇ(118.235) 20:37 23 0
2871186 도로? ♥로스트미디어냥덩이♥갤로그로 이동합니다. 20:11 17 0
2871183 고졸 10년차 연봉 6500 질문받음 [4] 프갤러(14.51) 19:47 46 0
2871182 도로롱!! 이 세상을 구해조! ♥로스트미디어냥덩이♥갤로그로 이동합니다. 19:46 25 0
2871181 참 살기좋은나라 축복받은나라여 ㅋㅋㅋㅋ 뒷.통수한방(1.213) 19:39 16 0
2871180 싱글벙글 AI가 그린 코딩 고수...jpg [3] ㅇㅇ갤로그로 이동합니다. 19:25 50 0
2871179 나님 수학문제 내면 프갤에서 아무도 못맞춤 ㅇㅅㅇ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 19:25 19 0
2871178 지인 우연히 마주쳤는데 돈 얼마나 범?? [2] 프갤러(124.50) 19:23 36 0
2871177 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 19:22 15 0
2871175 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 19:14 14 0
2871173 2재명도 이렇게 되려나 ㅋㅅㅋ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 19:09 19 0
2871171 ❤✨☀⭐⚡☘♥+나님 시작합니당♥+☘⚡⭐☀✨❤ ♥로스트미디어냥덩이♥갤로그로 이동합니다. 19:04 12 0
2871170 esp32용 구형 macos 에뮬레이터 발명도둑잡기(118.235) 19:01 14 0
2871169 지금까지 구직 사이트를 한 번도 써본 적이 없음. [2] 프갤러(211.234) 18:54 54 0
2871167 큰거 온당! ♥로스트미디어냥덩이♥갤로그로 이동합니다. 18:47 30 0
2871166 인물이 싫더라도 공은 공이고 과는 과인데 진짜 미안한데 두창이는 [1] ㅆㅇㅆ(124.216) 18:46 49 2
2871164 가장 간단한 8비트 6502 브레드보드 컴퓨터 [1] 발명도둑잡기(118.235) 18:43 21 0
2871163 전라도 홍어 기생충 [1] ♥로스트미디어냥덩이♥갤로그로 이동합니다. 18:42 24 0
2871162 이번 상법개정안은 이전에 IMF랑 OECD에서 권고했던 사안인데 ㅆㅇㅆ(124.216) 18:42 29 0
2871161 걍 좌우 떠나서 찢<<그나마 뭐 할려고 하는듯 임기초 괜찮아보이는데 ㅆㅇㅆ(124.216) 18:40 37 1
2871160 애플1 브레드보드 구현 [1] 발명도둑잡기(118.235) 18:38 22 0
2871159 '주학년 & 아스카 키라라' 영상 뜸 ㄷㄷㄷ 프갤러(211.58) 18:38 19 0
2871157 앞에 부러운 커플이 있네 [2] 발명도둑잡기(118.235) 18:33 39 0
2871156 '김계란 얼굴 공개했네요ㅋㅋ 프갤러(211.58) 18:29 30 0
2871155 씹덕 학원물 청춘 애니 보고 있는데 [2] 아스카영원히사랑해갤로그로 이동합니다. 18:29 44 0
2871152 근데 확실한 건 윤보다 찢이 낫다는 거임 [3] 아스카영원히사랑해갤로그로 이동합니다. 18:17 65 0
2871150 GPT 시발년 개빡세노 ㅋㅋ [2] ←Backspace갤로그로 이동합니다. 18:15 52 0
2871149 오늘하루도 코딩을 열심히하였다 ㅆㅇㅆ(124.216) 18:14 18 0
2871143 코드구조를 잘짜는 수련? 은 어떻게해야할까요 [2] 프갤러(125.240) 17:57 42 0
뉴스 정선희, 결혼 1년 만에 남편 사별 후 음모론과 비난으로 고통스러운 시간...17년 만에 심경 고백 디시트렌드 07.11
갤러리 내부 검색
제목+내용게시물 정렬 옵션

오른쪽 컨텐츠 영역

실시간 베스트

1/8

뉴스

디시미디어

디시이슈

1/2