회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
66 개발용역 HOTPCB Art Work 제작9 박팔뚝 5512 2010.10.18
65 개발용역 HOT계약직 또는 알바 형태로 프로그램 짜 주실분 찾습니다.(종료) 푸른하늘은하수 5670 2010.10.14
64 개발용역 HOT자동차 밧데리 충전기 개발1 C1 6577 2010.10.11
63 개발용역 HOT의뢰: Arduino로 제작된 코드를 ARM7용으로 포팅해 주실 분을 찾습니다.1 센서블유아이 5246 2010.09.28
62 개발용역 HOT삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 삼성 3.5인치 TFT-LCD (Touch 포함) 싸게 드려요. 띵요루슛 4723 2010.09.17
61 개발용역 HOT8051: 적외선 물체 감지3 enshiper 6464 2010.09.13
60 개발용역 HOTPCB 임베디드 프로그래밍 , 아르바이트 의뢰. 업체도 문의 가능1 대경 11846 2010.09.05
59 개발용역 HOT고압 파워 개발1 미스메이커 5546 2010.08.27
58 개발용역 HOTPCB 아트웍 / PCB 제작 / PCB 조립 전문 업체1 용가리3 12193 2010.08.14
57 개발용역 HOTPCB ARTWORK 설계 / 교육 업체 CADROOM 입니다.1 코딱지 5518 2010.08.11
56 개발용역 HOTserial port data를 pc로 전송하여 그래프화를 하고 싶습니다.1 Cool™ 5507 2010.08.10
55 개발용역 HOT사인파를 정류해서 led로 표시할려면3 초초 6217 2010.08.04
54 개발용역 HOT이런것도 개발 의뢰라고 해야하나...4 밤귀신 6254 2010.07.27
53 개발용역 HOT회로설계 & pcb 아트웍 배우고 싶으신분10 용가리3 12036 2010.07.17
52 개발용역 HOTWireless + Touch 제품 MCU S/W 개발 알바가능하신분 연락바랍니다. Quadro 11755 2010.07.17
51 개발용역 HOT전자회로,펌웨어등 유능한 인재를 모십니다. 파워짱 6407 2010.06.05
50 개발용역 HOTled콘트롤5 아크마 6847 2010.05.27
49 개발용역 HOT제작의뢰 : 8051 적외선센서5 벤트너 6204 2010.05.09
48 개발용역 HOT전광판 컨트롤러 개발자료 가지고 계신분 모십니다.3 쓰나미 5600 2010.05.03
47 개발용역 HOT샘플 보드 손으로 smd 땜해 주실분 있나요?5 땜고수 5138 2010.04.29
Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
  • 약속은 태산처럼 해놓고, 실천은 두더지 둔덕만큼 한다.
    - C.H.스퍼전
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.