회원가입 ID/PW 찾기

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

dkkkkk2010.09.24 15:0709.24조회 수 887댓글 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
번호 분류 제목 글쓴이 조회 수 날짜
38 ECAD 아무거나 HOTwin7에서 Pads2007이 호환되나요?2 릭정 2707 2011.01.25
37 ECAD 아무거나 HOTArtwork 은 어떤걸 많이 사용하나요?4 유럽여행 2896 2011.01.12
36 ECAD 아무거나 HOTpcb 임피던스 매칭에 대하여5 chumdan 10873 2011.01.11
35 ECAD 아무거나 HOTARTWORK 어떻게 해야할까요?8 하늘아이 2315 2010.12.31
34 ECAD 아무거나 HOT전자기사 실기 준비를 위한 책이 있나요??1 미스터김22 2545 2010.12.29
33 ECAD 아무거나 HOT정말 초보 질문입니다.9 기호1002 5235 2010.12.23
32 ECAD 아무거나 HOTPCB 완전 초보에서 지금까지 ... #313 내공수련중 6506 2010.12.16
31 ECAD 아무거나 HOTPCB 완전 초보에서 지금까지...#28 내공수련중 5639 2010.11.22
30 ECAD 아무거나 HOTAVR 128 사용할때 어떤 컴파일러 사용하세요???10 12몽키 2403 2010.11.03
29 ECAD 아무거나 HOT그림의 떡이란 말이 정확한듯1 바다거북 4829 2010.11.02
28 ECAD 아무거나 HOT50옴이라는 것은 특성임피던스로 알고 있는데 바다거북 4821 2010.11.02
27 ECAD 아무거나 HOTmultisim에서 회로모델 변경 방법 아시는 분 킹덤 4803 2010.10.28
26 ECAD 아무거나 HOT임피던스?10 엠군 4479 2010.08.03
25 ECAD 아무거나 HOT혼자서 집에서 에칭 하고 있습니다1 TreeOfDream 3814 2010.06.13
24 ECAD 아무거나 HOT혹시 PCB에 문제인가요??1 KillingS 3347 2010.05.23
23 ECAD 아무거나 HOTpcb설계 직종 괜찮나요??2 윤천재님 3233 2010.05.05
22 ECAD 아무거나 HOT고수님들 좀 도와주세요 ㅠㅠ cooper&cooper cut out1 폭주 2495 2009.11.04
21 ECAD 아무거나 HOTMS-DOS에서 만든 파일변환하는방법???1 두건이 2805 2009.09.24
20 ECAD 아무거나 HOT초보자 질문입니다.4 늘구막에 3265 2009.05.10
19 ECAD 아무거나 HOT혹시...3 날뽕녀 3424 2009.04.27
  • 벗이 먼곳으로부터 찾아오니 이 얼마나 즐거운가.
    - 유붕자원방래불역낙호논어
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.