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

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

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


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

페이지 정보

작성자 master 작성일2018-04-26 23:56 조회6,568회 댓글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,568

27315co님의 댓글

27315co 작성일

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

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 귀찮게 해서 죄송합니다,댓글[2] Songyoun 18-05-08 8585
질문 max9814 감도 어느정도인가요!!!댓글[2] 이미지첨부파일 길넴 18-05-08 9336
질문 안녕하세요댓글[2] Songyoun 18-05-08 8425
질문 아두이노 코딩 질문..댓글[2] 이미지첨부파일 sg2p1o 18-05-07 8119
답변 답변글 답변 : 터치센서 HIGH/LOW 변할 때마다 네오픽셀 색상 변경 master 18-05-07 6633
답변 답변글 답변 2: 포텐션미터 실시간 네오픽셀 밝기 변경 master 18-05-07 6260
답변 답변글 답변 3: 조도센서 네오픽셀 색상변경 master 18-05-07 6559
답변 답변글 답변 4: 조도센서 히스테리시스 master 18-05-07 6212
답변 답변글 답변 5: 조도센서 칼라변경 RGBR->GBRG->BRGB-> master 18-05-07 5878
질문 안녕하세요,댓글[5] Songyoun 18-05-07 13845
질문 초음파센서 2개로 거리측정 이미지첨부파일 hdki 18-05-07 12088
답변 답변글 답변 : 초음파센서 2개로 거리측정 master 18-05-07 6581
질문 적외선 센서2개로 상호간격측정 문의드립니다.댓글[3] hdki 18-05-07 10703
질문 출력이 이와같이 나옵니다.댓글[3] 이미지첨부파일 키츠네유즈 18-05-07 10294
답변 답변글 답변 : RSSI 히스테리시스 master 18-05-07 6039
질문 무게센서 추가질문 슈돌 18-05-07 6686
답변 답변글 답변 : 무게센서 추가질문댓글[2] master 18-05-07 9933
질문 블루투스 신호 서보모터제어관련 키츠네유즈 18-05-07 6880
답변 답변글 답변 : 블루투스 신호 서보모터제어관련댓글[3] master 18-05-07 11319
질문 FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다. 이미지첨부파일 27315co 18-05-06 6729
답변 답변글 답변 : FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다.댓글[5] master 18-05-07 17531
답변 답변글 답변 2: FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다.댓글[2] master 18-05-07 7715
답변 답변글 답변 : 답변 2: FND를 활용해서 덧셈결과를 출력하는 코드에대해서 질문드립니다. 첨부파일 27315co 18-05-07 5863
질문 오렌지 보드 BLE 앱인벤터2 블루투스 질문입니다.댓글[1] 이미지 문화시민 18-05-06 11191
질문 PID 제어 코드 관련3댓글[5] 첨부파일 서씨 18-05-05 19983
질문 PID제어 코드 관련 2댓글[4] 서씨 18-05-05 12984
질문 세개의 아두이노 코딩을 하나로 통합하는법 비공개 18-05-05 6631
답변 답변글 답변 : 세개의 아두이노 코딩을 하나로 통합하는법댓글[6] master 18-05-05 20189
질문 아두이노 버튼 인식 질문 드립니다 ㅠ댓글[2] hdki 18-05-04 8261
질문 PID제어 코드 관련 서씨 18-05-04 6236
게시물 검색

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
모바일버전으로보기