질문게시판 > 답변2 : 74HC245

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

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


BASIC4MCU | 질문게시판 | 답변2 : 74HC245

페이지 정보

작성자 master 작성일2018-03-09 16:34 조회6,623회 댓글0건

본문

	

e2db14983f07ec33f37ec8eda71e62b5_1520580536_2351.png
 

 

// CONFIG1
#pragma config FOSC=HS   // Oscillator Selection bits(HS oscillator: High-speed crystal/resonator on RA6/OSC2/CLKOUT and RA7/OSC1/CLKIN)
#pragma config WDTE=OFF  // Watchdog Timer Enable bit(WDT enabled)
#pragma config PWRTE=ON  // Power-up Timer Enable bit(PWRT disabled)
#pragma config MCLRE=ON  // RE3/MCLR pin function select bit(RE3/MCLR pin function is MCLR)
#pragma config CP=OFF    // Code Protection bit(Program memory code protection is disabled)
#pragma config CPD=OFF   // Data Code Protection bit(Data memory code protection is disabled)
#pragma config BOREN=OFF // Brown Out Reset Selection bits(BOR enabled)
#pragma config IESO=ON   // Internal External Switchover bit(Internal/External Switchover mode is enabled)
#pragma config FCMEN=ON  // Fail-Safe Clock Monitor Enabled bit(Fail-Safe Clock Monitor is enabled)
#pragma config LVP=ON    // Low Voltage Programming Enable bit(RB3/PGM pin has PGM function,low voltage programming enabled)
// CONFIG2
#pragma config BOR4V=BOR40V // Brown-out Reset Selection bit(Brown-out Reset set to 4.0V)
#pragma config WRT=OFF      // Flash Program Memory Self Write Enable bits(Write protection off)
#include
//
#define FND_C_EN   PORTBbits.RB0
#define KEY_EN     PORTBbits.RB1
#define FND_D_EN   PORTCbits.RC2
#define _XTAL_FREQ 20000000
//
#define COM_EN     {FND_C_EN=1;  FND_C_EN=0;}
#define SEG_EN     {FND_D_EN=1;  FND_D_EN=0;}
//
unsigned char seg[13]={
  0b11101011,0b00101000,0b10110011,0b10111010,0b01111000,// 0~4
  0b11011010,0b11011011,0b11101000,0b11111011,0b11111010,// 5~9
  0x10,0x00,0x02 //-, ,_
};
//
char key_buf=0xFF;
unsigned int num=0;
//
void key_input(void){ TRISD=0x00KEY_EN=0key_buf=PORTDKEY_EN=1TRISD=0xFF; }
//
void fnd_999(void){
  PORTD=8COM_ENPORTD=seg[num/1000  ]; SEG_EN__delay_ms(5);
  PORTD=2COM_ENPORTD=seg[num/100%10]; SEG_EN__delay_ms(5);
  PORTD=4COM_ENPORTD=seg[num/10 %10]; SEG_EN__delay_ms(5);
  PORTD=1COM_ENPORTD=seg[num    %10]; SEG_EN__delay_ms(5);
}
//
void main(){
  TRISBbits.TRISB1=1// key_IN/
  TRISBbits.TRISB0=0// FND_C_E
  TRISCbits.TRISC2=0// FND_D_EN
  TRISEbits.TRISE0=0;
  ANSELH=0x00;
  while(1){
    key_buf=key_input();
    fnd_999();
    if(++num>9999)num=0;
  }
}

 

 

void key_input(void){ TRISD=0x00KEY_EN=0    key_buf=PORTDKEY_EN=1TRISD=0xFF; } 

포트를 입력으로 변경하고

입력 받을 때 약간의 딜레이를 줘야하는 경우도 있습니다.

문제가 생기면 적색 색칠한 곳에 수us 정도의 딜레이를 준 후에 읽어보세요

 

 

만약 윗자리의 숫자가 아랫자리에 영향을 끼치는 경우에는

void fnd_999(void){
  PORTD=seg[num/1000  ]; SEG_ENPORTD=8COM_EN__delay_ms(5); PORTD=0COM_EN
  PORTD=seg[num/100%10]; SEG_ENPORTD=2COM_EN__delay_ms(5); PORTD=0COM_EN
  PORTD=seg[num/10 %10]; SEG_ENPORTD=4COM_EN__delay_ms(5); PORTD=0COM_EN
  PORTD=seg[num    %10]; SEG_ENPORTD=1COM_EN__delay_ms(5); PORTD=0COM_EN
}

딜레이 후에 FND COMMON 핀을 clear 시키면 도움이 됩니다.

이래도 잔상이 남는다면 라인 제일 마지막에 수us~수십us 정도의 딜레이를 추가하세요

보통 12V 구동의 큰 FND를 구동 할 때 TR의 turn off time이 길어지면서 문제가 많이 생깁니다.

 

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

댓글 0

조회수 6,623

등록된 댓글이 없습니다.

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
질문 질문드립니다. 이호 18-04-06 6447
답변 답변글 답변 : 아두이노 시리얼 입력으로 FND 구동댓글[2] master 18-04-06 9795
질문 블루투스 신호 세기를 측정하려면 어떻게 해야하나요?? 노동 18-04-04 6995
답변 답변글 답변 : 블루투스 신호 세기를 측정하려면 어떻게 해야하나요?? master 18-04-04 8971
질문 아두이노 우노 및 ESP8266 와이파이 모듈 관련 질문 exia 18-04-04 6594
답변 답변글 답변 : 아두이노 우노 및 ESP8266 와이파이 모듈 관련 질문 이미지 master 18-04-04 5869
질문 AVR 4 질문요~ 비공개 18-04-04 5832
답변 답변글 답변 : AVR 4 질문요~ master 18-04-04 6153
질문 AVR atmaga128댓글[1] 첨부파일 비공개 18-04-03 7363
답변 답변글 답변 : AVR atmaga128 1개의 파일로 합침댓글[4] master 18-04-03 15190
답변 답변글 답변 : AVR atmaga128 소스코드 정리 master 18-04-03 6411
답변 답변글 답변 : 답변 : AVR atmaga128 소스코드 정리댓글[3] 첨부파일 턴업 18-04-04 11605
질문 웜기어 추가질문 드립니다!댓글[1] 까스활명 18-04-02 7622
질문 DMA 송수신 관련 질문 드립니다. 몽규 18-04-02 6942
답변 답변글 답변 : DMA 송수신 관련 질문 드립니다. master 18-04-02 6063
답변 답변글 답변2 : DMA 송수신 관련 질문 드립니다.댓글[1] master 18-04-02 6923
질문 웜기어를사용 한 스텝모터 제어댓글[3] 비공개 18-04-01 12786
답변 답변글 답변 : 웜기어를 사용 한 DC모터 이미지 master 18-04-02 7078
질문 왕초보가 질문 하나 또 드립니다댓글[1] Songyoun 18-03-31 7019
질문 자이로가속도 센서 제어댓글[2] 빠박이빠박 18-03-31 9054
질문 PWM관련 질문 드립니다 Songyoun 18-03-29 6252
답변 답변글 답변 : PWM 디지털제어 = 전력제어 master 18-03-29 5856
질문 ATmega128 USART 통신 관련해서 질문드립니다.댓글[1] 27315co 18-03-28 8655
답변 답변글 답변 : ATmega128 USART 통신 관련해서 질문드립니다.댓글[1] master 18-03-28 7732
질문 아두이노 프로그램 시리얼모니터에 나타내는건데요 cimi 18-03-28 5986
답변 답변글 답변 : 소스코드 실행 결과를 적어주세요 master 18-03-28 6128
질문 아두이노 아키텍처 질문댓글[1] 뭘보노옹 18-03-27 8841
질문 밑에 질문 관련 다시 올립니다. exia 18-03-27 6441
답변 답변글 답변 : 소스코드 오류 몇개 수정했습니다.댓글[1] master 18-03-27 6660
질문 아두이노 우노 dht11 센서 두개 동작 질문드립니다. exia 18-03-27 5734
게시물 검색

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