회원가입 ID/PW 찾기

마이크로프로세서 HOT소스좀 봐주세여

dkkkkk2010.09.24 15:0709.24조회 수 1013댓글 4이 게시물을

AA

#include <mega128.h>
#include <delay.h>

#define lcd_dt PORTB
#define lcd_en PORTC.6
#define lcd_rw PORTC.5
#define lcd_rs PORTC.4
#define SERVO_1 PORTA.0
#define INPUTVALUE

unsigned int i;
unsigned char PW[6] = (/* 비밀번호 */);
unsigned int INPUTVALUE[6];
unsigned char setcnt = 0;
unsigned char keycnt = 0;
unsigned char value;
unsigned char keyvalue;

void SERVO_CLS()
{
    for(i=0;i<30;i++)
    {
        SERVO_1 = 1;
        delay_ms(1.45);
        SERVO_1 = 0;
        delay_ms(18.55);
    }
}
void SERVO_OPEN()
{
    for(i=0;i<30;i++)
    {
        SERVO_1 = 1;
        delay_ms(2.3);
        SERVO_1 = 0;
        delay_ms(17.7);
    }
}

#define pKEYPAD_OUT_A_HIGH PORTC |= 0x01
#define pKEYPAD_OUT_A_LOW  PORTC &= 0xFE
#define pKEYPAD_OUT_B_HIGH PORTC |= 0x02
#define pKEYPAD_OUT_B_LOW PORTC &= 0xFD
#define pKEYPAD_OUT_C_HIGH PORTC |= 0x04
#define pKEYPAD_OUT_C_LOW PORTC &= 0xFB
#define pKEYPAD_IN (PINC>>4)

char KeypadIn(void)
{
    char d;

    pKEYPAD_OUT_A_LOW;
    pKEYPAD_OUT_B_HIGH;
    pKEYPAD_OUT_C_HIGH;

    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;

    if(d==0x0E){
        return '1';
    }
    if(d==0x0D){
        return '4';
    }
    if(d==0x0B){
        return '7';
    }
    if(d==0x07){
        return '*';
    }
   
    pKEYPAD_OUT_A_HIGH;
    pKEYPAD_OUT_B_LOW;
    pKEYPAD_OUT_C_HIGH;

    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;

    if(d==0x0E){
        return '2';
    }
    if(d==0x0D){
        return '5';
    }
    if(d==0x0B){
        return '8';
    }
    if(d==0x07){
        return '0';
    }
   
    pKEYPAD_OUT_A_HIGH;
    pKEYPAD_OUT_B_HIGH;
    pKEYPAD_OUT_C_LOW;

    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
    d = pKEYPAD_IN;
   
    if(d==0x0E){
        return '3';
    }
    if(d==0x0D){
        return '6';
    }
    if(d==0x0B){
        return '9';
    }
    if(d==0x07){
        return '#';
    }
    return ' ';
}

void dsp_str(char n)
{
    lcd_rs=1;
    lcd_dt=n;
   
    lcd_en=1;
    delay_us(1);
   
    lcd_en=0;
    delay_us(50);
}
void dsp_cmd(char n)
{
    lcd_rs=0;
    lcd_dt=n; 
   
    lcd_en=1;
    delay_us(1);

    lcd_en=0;
    delay_us(50);
}
/*void dsp_num(char n)
{
    dsp_str(n + 0x30);
}*/
void lcd_init() //16x2line
{
    lcd_dt=0;
    lcd_rw=0;
    lcd_rs=0;
    lcd_en=0;
    delay_ms(10);    
   
    dsp_cmd(0x30); //8bit mode
    delay_ms(5);
   
    dsp_cmd(0x30);
    delay_ms(1);

    dsp_cmd(0x30);
    delay_ms(5);
   
    dsp_cmd(0x38); //function set
   
    dsp_cmd(0x0c); //display on/off
    dsp_cmd(0x14); //cursor/display
    dsp_cmd(0x06); //entry mode
    dsp_cmd(0x01);
    delay_ms(2); //display clear
}
char str01[]={ "Door lock system" };
char str02[]={ " PW : " };
void dsp_lcd()
{
    dsp_cmd(0x80); //line1
    for(i=0; i<16; ++i) dsp_str(str01[i]);
    dsp_cmd(0xc0); //line2
    for(i=0; i<6; ++i) dsp_str(str02[i]);
}
void pwcheck()
{
    if((PW[0] ==INPUTVALUE[0])&&(PW[1]==INPUTVALUE[1])&&(PW[2]==INPUTVALUE[2])&&(PW[3]==INPUTVALUE[3])&&(PW[4]==INPUTVALUE[4])&&(PW[5]==INPUTVALUE[5]))
   
{
    SERVO_OPEN();
    keycnt=0;
    dsp_cmd(0xc6);
    for(i=0;i<6;i++)
    {
        INPUTVALUE[i]=' ';
        dsp_str(INPUTVALUE[i]);
    }
}
else
{
    SERVO_CLS();
     keycnt=0;
    dsp_cmd(0xc6);  
    for(i=0;i<6;i++)
    {
        INPUTVALUE[i]=' ';
        dsp_str(INPUTVALUE[i]);
    }
}
}

void key_check()
{
    if(KeypadIn()== '*')
    {
        setcnt++;
        keycnt=0;
        dsp_cmd(0xc6);
        for(i=0;i<6;i++)
        {
            INPUTVALUE[i]= ' ';
            dsp_str(INPUTVALUE[i]);
        }
        if(setcnt>1) setcnt=0;
    }
    if(KeypadIn()== '#')
    {
        setcnt=0;
        pwcheck();
    }
    pKEYPAD_OUT_A_LOW;
    pKEYPAD_OUT_B_LOW;
    pKEYPAD_OUT_C_LOW;
    value = 0;
    value = pKEYPAD_IN &0x0f;
   
    if(setcnt==1)
    {
        if(value != 0x0f)?
        {
            PORTD=0x00;
            keyvalue = KeypadIn();
       
            if(( keyvalue != '*' ) &&( keyvalue != '#'))
            {
                keycnt++;
                if(keycnt == 1)
                {
                    INPUTVALUE[0] = KeypadIn();
                    dsp_cmd(0xc6);
                    dsp_str(INPUTVALUE[0]);
                }
                if(keycnt == 2)
                {
                    INPUTVALUE[1] = KeypadIn();
                    dsp_cmd(0xc6);
                    dsp_str('*');
                   
                    dsp_cmd(0xc7);
                    dsp_str(INPUTVALUE[1]);
                }
                if(keycnt == 3)
                {
                    INPUTVALUE[2] = KeypadIn();
                    dsp_cmd(0xc7);
                    dsp_str('*');
           
                    dsp_cmd(0xc8);
                    dsp_str(INPUTVALUE[2]);
                }
                if(keycnt == 4)
                {
                    INPUTVALUE[3] = KeypadIn();
                    dsp_cmd(0xc8);
                    dsp_str('*');
   
                    dsp_cmd(0xc9);
                    dsp_str(INPUTVALUE[3]);
                }
                if(keycnt == 5)
                {
                    INPUTVALUE[4] = KeypadIn();
                    dsp_cmd(0xc9);
                    dsp_str('*');
                   
                    dsp_cmd(0xca);
                    dsp_str(INPUTVALUE[4]);
                }
                if(keycnt == 6)
                {
                    INPUTVALUE[5] = KeypadIn();
                    dsp_cmd(0xca);
                    dsp_str('*');
               
                    dsp_cmd(0xcb);
                    dsp_str(INPUTVALUE[5]);

                     keycnt = 0;
                }
            }
            value=0;
        }
        else PORTD=0xff;
    }
    delay_ms(150);
}

void main()
{
    DDRA=0xff;
    DDRB=0xff;
    DDRC=0x0f;
    DDRB=0xff;
    lcd_init();
    dsp_lcd();
    PORTB=0xff;
              
    while(1) { //endless loop
        key_check();
    }
}                   
----------------------------------------------------------------------------------------------------------------------------------------------
위에 소스에서 12번째 줄에서 invalid expression 에러가 나는데 도통 모르겠어요

댓글 4
  • No Profile
    unsigned char PW[6] = (/* 비밀번호 */);
    --> unsigned char PW[6] = "(   )"; /* 비밀번호 */
  • 채병철님께
    No Profile
    글쓴이 dkkkkk 10.09.25 16:52 댓글 좋아요 0 싫어요 0

    위처럼 고쳐서 해봤는데 바로 다음줄에서 illegal symbol이라고 에러가 뜨는 이유가 뭘까요

  • No Profile
    unsigned char PW[6] = (/* 비밀번호 */);
    -> unsigned char PW[6] = {/* 비밀번호 */};
    이렇게 해주셔야 되지 싶은데요...
    아마 배열초기화를 () 로 해주셔서 알수없는 표현이다 라고 에러 뜨는거 같네요..

  • No Profile
    () 가 보니까 첨부터 거슬리긴 했어요 저도.... 비밀번호를 적으면 문이 열리는 기능인가요 ㅋ

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
1927 자유주제 HOT오늘 가입했습니다..4 alex.hc.lim 4043 2010.09.29
1926 자유주제 HOT엄마가 싸준 도시락19 Adrian Seo 1595 2010.09.29
1925 자유주제 HOT완전초보 가입했습니다.~!9 늘픔 4758 2010.09.28
1924 자유주제 HOT제가 이번에 청소기로봇을 만들려고하는데요2 남이 3424 2010.09.28
1923 자유주제 HOT댓글 달 수 있게 해주세요..ㅎ2 샤방 4234 2010.09.28
1922 자유주제 HOT이제 막시작한 초보자 ㅠㅠ5 브이프 4002 2010.09.27
1921 자유주제 HOT공부공부공부..정원회... 으...4 띠땁새 4214 2010.09.27
1920 자유주제 HOT추석 연휴가 정녕 끝난건가요??6 나냐얀 3922 2010.09.26
1919 자유주제 HOT저는 정회원이 되어야 합니다!!!13 머라하나 5063 2010.09.25
1918 자유주제 HOT코끼리 코가 ㅇ.ㅇ16 nopc 1661 2010.09.22
1917 자유주제 HOT추석 잘보내세요,.2 nopc 5032 2010.09.22
1916 자유주제 HOT개발 Kit 구입 문의 아큐르 4371 2010.09.22
1915 자유주제 HOT즐거운 한가위 되세요1 쿨리 3874 2010.09.21
1914 자유주제 HOT히틀러11 쿨리 1682 2010.09.21
1913 자유주제 HOT반가워요1 죽은인형 3504 2010.09.21
1912 자유주제 HOT이 책 갠찮으려나요?11 호진 4944 2010.09.20
1911 자유주제 HOT가입했어요~~1 크민 3741 2010.09.20
1910 자유주제 HOT오 맨유:리버풀 대박이네요 ㄷㄷㄷ3 AVR완전초보 4552 2010.09.19
1909 자유주제 HOT정회원이 되기위해2 나는빅토리아 4903 2010.09.19
1908 자유주제 HOT저도 정회원 되고싶어요ㅠㅠ5 jeeee 3672 2010.09.18
Prev 1 ... 34 35 36 37 38 39 40 41 42 43 ... 135 Next
  • 사람은 무엇인가 좋은 일을 할 수 있는 동안에는 자살 등을 생각해서는 안 된다. 좋은 일을 함으로써 삶의 보람을 찾아야 한다.
    - 베토벤
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.