회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
29 PADS HOTPADS 9.2 설치 후 ORCAD Capture 실행 않되는 문제.2 머털도사 6569 2010.10.12
28 PADS HOT윈도우7에서 PADS2005가 느립니다.1 윈다리아 2873 2010.10.03
27 PADS HOTpads 9.2 윈도우7 설치후 PCB 실행시 너무 느린 이유?3 호랭이윈 3653 2010.09.13
26 PADS HOTWin7 64Bit 운영체제에 Pads2009 설치문의3 망군 3095 2010.09.13
25 PADS HOT오토캐드로 그린 도면을 PADS로 import했는데...3 chani0988 2390 2010.09.08
24 PADS HOTpads 2007을 Window7에 설치할수 있나요?15 도연사랑 6576 2010.08.12
23 PADS HOTartwork에 관해 궁금한점이있습니다.4 artwork고수과정코스 1741 2010.08.05
22 PADS HOTartwork 부품배치 및 배선에 관련된 질문입니다.2 dkqp 2126 2010.07.30
21 PADS HOT현재 PCB를 가지고있는데요10 레즈온 1862 2010.06.30
20 PADS HOTPADS2007 설치관련 질문드려요7 식당 5627 2010.06.29
19 PADS HOT서적 추천좀 부탁드립니다.5 레즈온 1886 2010.06.24
18 PADS HOTPADS에 입문하고 싶은데요..12 쩡투 2032 2010.06.14
17 PADS HOTPads 풋 프린터 관련3 12몽키 2237 2010.06.07
16 PADS HOTAllegro에서 작성한 파일을 Pads에서 불러오는 방법이 궁금합니다.3 슈팅가드 2013 2010.06.01
15 PADS HOTbmp2asc1 der 3143 2010.05.11
14 PADS HOTAuto Cad의 DXF 파일 PADS 파이로 변환할때 발생하는 오류 질문요~4 하드초보 4532 2010.04.30
13 PADS HOT부품을 찾고 있습니다..ㅠ3 딸기녀 1959 2010.04.29
12 PADS HOTpowerpcb gerber file cam350에서 convert powerpcb에서 읽어들이기6 UNICORN 3461 2010.03.17
11 PADS HOTCopper Cut out 할때요..3 아픈이별 3872 2010.02.24
10 PADS HOTpads2007 file 메뉴가 안뜨는데 왜이런건가요??3 xnfldks 2342 2010.01.25
Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
  • 어리석은 자는 수치스러운 일을 할 때에도 그것이 언제나 그의 의무라고 선포한다.
    - 버나드쇼
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.