질문게시판 > 답변2 : 안녕하세요 4*3 키매트릭스와 Fnd array를 이용한 회로 질문드립니다.

TODAY1,035 TOTAL2,267,856
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | 답변2 : 안녕하세요 4*3 키매트릭스와 Fnd array를 이용한 회로 질문드립니다.

페이지 정보

작성자 master 작성일2018-04-26 23:56 조회6,004회 댓글1건

본문

	

 


// DateTime : 2018-04-26 오후 11:55:47
// by Ok-Hyun Park
#include <mega128.h>
#include <delay.h>
//
char FND[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E,0xFF};
char buf[4]={0,};
//
void Port_set(){
  PORTC=0xf0DDRC=0x0f//상위 4bit 입력,하위 4bit 출력
  DDRB=0xff;
  DDRE=0xf0;
}
//
int Scan_Col(int row){
  PORTC=~(1<<row); delay_us(1); return (~PINC)>>4;
}
//
char KeyNumScan(int row,int col){
  char num=0xFF;
  switch(row){
    case 0if(col==1)num=1if(col==2)num=2if(col==4)num=3break;
    case 1if(col==1)num=4if(col==2)num=5if(col==4)num=6break;
    case 2if(col==1)num=7if(col==2)num=8if(col==4)num=9break;
    case 3:                  if(col==2)num=0;                  break;
  }
  return num;
}
//
void display_segment(){
  PORTB=FND[buf[0]]; PORTE=0x80delay_ms(1); PORTE=0break//FND3(1000)
  PORTB=FND[buf[1]]; PORTE=0x40delay_ms(1); PORTE=0break//FND2(100)
  PORTB=FND[buf[2]]; PORTE=0x20delay_ms(1); PORTE=0break//FND1(10)
  PORTB=FND[buf[3]]; PORTE=0x10delay_ms(1); PORTE=0break//FND0(1)
}
//
void main(){
  char row=0,col=0,Num=0,key_cnt=0;
  Port_set();
  while(1){
    for(row=0;row<4;row++){
      col=Scan_Col(row); Num=KeyNumScan(row,col);
      if(Num<=9){ buf[key_cnt]=Numif(++key_cnt>=3)key_cnt=3; }
      display_segment();
    }
  }
}

 

질문 소스를 수정해서 만든 코드입니다.

소스를 만들 때 디바운싱을 고려하지 않은 상태라서 실제 구동 시에는 문제가 있을겁니다.

 

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 1

조회수 6,004

27315co님의 댓글

27315co 작성일

그렇다면 저 수정한 코드상에서는 소프트웨어적으로 디바운싱을 없애줄수는 없는건가요????

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
답변 답변글 답변 : RSSI 히스테리시스 master 18-05-07 5303
질문 무게센서 추가질문 슈돌 18-05-07 5524
답변 답변글 답변 : 무게센서 추가질문댓글[2] master 18-05-07 8393
질문 블루투스 신호 서보모터제어관련 키츠네유즈 18-05-07 6188
답변 답변글 답변 : 블루투스 신호 서보모터제어관련댓글[3] master 18-05-07 10267
질문 FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다. 이미지첨부파일 27315co 18-05-06 5902
답변 답변글 답변 : FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다.댓글[5] master 18-05-07 15047
답변 답변글 답변 2: FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다.댓글[2] master 18-05-07 6903
답변 답변글 답변 : 답변 2: FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다. 첨부파일 27315co 18-05-07 5151
질문 오렌지 보드 BLE 앱인벤터2 블루투스 질문입니다.댓글[1] 이미지 문화시민 18-05-06 10393
질문 PID 제어 코드 관련3댓글[5] 첨부파일 서씨 18-05-05 17941
질문 PID제어 코드 관련 2댓글[4] 서씨 18-05-05 11921
질문 세개의 아두이노 코딩을 하나로 통합하는법 비공개 18-05-05 5795
답변 답변글 답변 : 세개의 아두이노 코딩을 하나로 통합하는법댓글[6] master 18-05-05 18106
질문 아두이노 버튼 인식 질문 드립니다 ㅠ댓글[2] hdki 18-05-04 7437
질문 PID제어 코드 관련 서씨 18-05-04 5588
답변 답변글 답변 : PID제어 코드 관련댓글[2] master 18-05-04 8228
질문 아두이노 버튼 인식 질문 드립니다 ㅠ댓글[1] hdki 18-05-04 7880
답변 답변글 답변 : 아두이노 버튼 인식 질문 드립니다 ㅠ댓글[2] 이미지 master 18-05-04 9390
답변 답변글 답변 2: AVRstudio 스타일의 아두이노 키 매트릭스 예제댓글[1] 이미지 master 18-05-04 7190
답변 답변글 답변 3: 아두이노 8채널 쉬프트 레지스터 74HC165 이미지 master 18-05-04 6739
질문 도움좀 받고 싶습니다.. 일단 1단계부터..댓글[10] 이미지첨부파일 이호 18-05-04 37310
답변 답변글 답변 : 도움좀 받고 싶습니다.. 일단 1단계부터..댓글[2] master 18-05-04 7236
답변 답변글 답변 2: 5단계의 마지막은 이런식이 되겠죠 (Game Over) master 18-05-04 5053
답변 답변글 답변 : 3단계 master 18-05-04 4860
답변 답변글 답변 : 2단계 master 18-05-04 5265
답변 답변글 답변 : 4단계 master 18-05-04 5454
질문 코드비젼 led 스위치 제어 c린이 18-05-03 5870
답변 답변글 답변 : 코드비젼 led 스위치 제어댓글[1] master 18-05-03 7935
질문 a4988 스텝모터 스위치 제어 가즈아아아 18-05-03 5965
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기