회원가입 ID/PW 찾기

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

dkkkkk2010.09.24 15:0709.24조회 수 889댓글 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
번호 분류 제목 글쓴이 조회 수 날짜
732 마이크로프로세서 HOTUSART_Receive interrpt과 USART_string interrpt차이점.. 에류시온 1205 2010.10.01
731 마이크로프로세서 HOTinput capture mode 사용시 질문.1 김성진 1450 2010.09.30
730 마이크로프로세서 HOT초음파센서 srf-02에 대한 질문. 짱동만 1174 2010.09.30
729 마이크로프로세서 HOTPWM 제어3 makanoja 1332 2010.09.28
728 마이크로프로세서 HOT모터구동관련1 샤방 1095 2010.09.28
727 마이크로프로세서 HOT그냥 끄적끄적;; lvwlsehd1 958 2010.09.27
726 마이크로프로세서 HOTcan 통신을 공부하는데 필요한 책으로 어떤게 잇을까요.. Raphael 1568 2010.09.27
725 마이크로프로세서 HOTAVR은..?3 전기공도도 904 2010.09.27
마이크로프로세서 HOT소스좀 봐주세여4 dkkkkk 889 2010.09.24
723 마이크로프로세서 HOTatmega128 mp3플레이어3 안녕하세삼 1343 2010.09.24
722 마이크로프로세서 HOTatmega128로 ccd영상제어?? 쿨리 1602 2010.09.21
721 마이크로프로세서 HOT초보자가 atmega16으로 프로젝트를 하려는데1 나는빅토리아 1041 2010.09.18
720 마이크로프로세서 HOTatmega128 twi문의1 김성진 1279 2010.09.17
719 마이크로프로세서 HOT왜 strcpy가 에러가 나죠?4 이슬비00 1855 2010.09.17
718 마이크로프로세서 HOT짧은 예제 하나만 알려주세요2 이슬비00 793 2010.09.16
717 마이크로프로세서 HOT인터럽트좀 알려주세요..3 이슬비00 1266 2010.09.15
716 마이크로프로세서 HOTavr으로 만들수잇는것5 마검량 1010 2010.09.14
715 마이크로프로세서 HOT리눅스(우분투)에서 사용가능한 프로그램있나요?1 하늘저아래 1130 2010.09.12
714 마이크로프로세서 HOTSD카드에 데이터기록 가능한 모듈입니다.2 남자는강 2484 2010.09.12
713 마이크로프로세서 HOT[질문] PIC SPI모드로 SD카드 제어해 보신분 계신가요? 남자는강 3566 2010.09.12
Prev 1 ... 17 18 19 20 21 22 23 24 25 26 ... 58 Next
  • 시간을 선택하는 것은 시간을 절약하는 것이다.
    - 베이컨
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.