BASIC4MCU | 질문게시판 | 답변 : 도어락 소스코드 오류수정 부탁드려요..
페이지 정보
작성자 master 작성일2018-12-18 22:59 조회11,972회 댓글3건본문
// MCU BASIC: https://www.basic4mcu.com// DateTime : 2018-12-18 오후 11:31:08// by Ok-Hyun Park//#include <mega128.h>#include <delay.h>#include <stdio.h>#include <alcd.h>//#define BYTE unsigned char//unsigned char key;int key_IN[4]; //입력되는 키값 저장배열int sec_num[4]={0x33,0x31,0x32,0x31}; //비밀번호int arr_cnt=1,right=1; //비밀번호 검사를 위한 변수 선언int g=0,s=0; //비밀번호 검사를 위한 변수선언char i=0; //LCD출력을 위한 변수//flash BYTE seg_hexfont[2]={0xc0,0xbf};BYTE FND_selector[3]={0xBF,0xDF,0xEF};BYTE seg_data[3]={0xbf,0xbf,0xbf};//---------------------------------------//unsigned char KeyCheck(void){PORTE=0x10; delay_ms(1);//if (PINE.4)return 0x30; // 0else if(PINE.5)return 0x34; // 4else if(PINE.6)return 0x38; // 8else if(PINE.7)return 0x41; // A//PORTE=0x20; delay_ms(1);//if (PINE.4)return 0x31; // 1else if(PINE.5)return 0x35; // 5else if(PINE.6)return 0x39; // 9else if(PINE.7)return 0x42; // B//PORTE=0x40; delay_ms(1);//if (PINE.4)return 0x32; // 2else if(PINE.5)return 0x36; // 6else if(PINE.6)return 0x2a; // *else if(PINE.7)return 0x43; // C//PORTE=0x80; delay_ms(1);//if (PINE.4)return 0x33; // 3else if(PINE.5)return 0x37; // 7else if(PINE.6)return 0x23; // #else if(PINE.7)return 0x44; // D//return 0xff;}//void sec_test(){if(arr_cnt==8){for(g=0; g<8; g++){if(key_IN[g]==sec_num[g])right++;}if(right==8){lcd_clear(); lcd_gotoxy(0,0); lcd_puts("open"); delay_ms(500);lcd_clear(); lcd_gotoxy(0,0); lcd_puts("password");PORTC=seg_data[1]; PORTD=FND_selector[2];arr_cnt=1; right=1; g=0; s=0; i=0;}else{lcd_clear(); lcd_gotoxy(0,0); lcd_puts("RETRY"); delay_ms(500);lcd_clear(); lcd_gotoxy(0,0); lcd_puts("password"); // LCD의 첫번째 라인PORTC=seg_data[2]; PORTD=FND_selector[2];arr_cnt=1; right=1; g=0; s=0; i=0;}}}//interrupt[EXT_INT4]void RETRY(void){ lcd_clear(); lcd_puts("password"); }interrupt[EXT_INT5]void sw5(void){ lcd_gotoxy(0,0); lcd_puts("1"); }interrupt[EXT_INT6]void sw6(void){ lcd_gotoxy(0,1); lcd_puts("2"); }interrupt[EXT_INT7]void sw7(void){ lcd_gotoxy(0,2); lcd_puts("3"); }//void main(void){PORTA=0xFF; DDRA=0xFF; // PORTA 출력PORTC=0xFF; DDRC=0xFF; // PORTC 출력PORTD=0xFF; DDRD=0xFF; // PORTD 출력lcd_clear();lcd_gotoxy(0,0); lcd_putsf("password"); delay_ms(100);DDRE=0xff;//EICRB=0xff; EIFR|=0xf0; EIMSK=0x0f; // 상승 에지SREG=0x80;while(1){key=KeyCheck();if(key!=0xff){lcd_gotoxy(i,1); delay_ms(1000);lcd_putchar(key); delay_ms( 500);if(i<15)i++;sec_test();}}}
PE4~PE7은 키 스캔 입력, 키스캔 출력, 외부인터럽트 등 몇군데에서 사용하고 있습니다.
출력에 스위치를 연결하면 고장납니다.
회로도 참고해서 수정하세요
다른 부분도 잘 체크하세요
댓글 3
조회수 11,972rkdeh님의 댓글
rkdeh 작성일
Error: C:\Users\user\Desktop\Debug\List\b.asm(1735): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1736): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1758): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1759): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1762): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1765): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1767): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1769): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1778): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1779): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1781): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1788): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1792): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1799): Undefined symbol: __lcd_port
Error: C:\Users\user\Desktop\Debug\List\b.asm(1865): Undefined symbol: __lcd_port
----------------------------------------------------------------------------------------------
이렇게 에러가 나오면서 error ocurred during assembly 라고 뜨는데 어떻게 처리해야 될까요??
master님의 댓글
master
프로젝트옵션/c컴파일러/라이브러리/LCD 라이브러리에서
체크하고
LCD 포트를 지정해줘야합니다.
master님의 댓글
master
평가버전이라면 라이브러리 사용하지 못합니다.
왼쪽 카테고리에서 디스플레이/LCD 게시판에서 LCD 예제를 참고하세요