BASIC4MCU | AVR | 타이머 | mega8 코드비젼용 DS1302 fnd display
페이지 정보
작성자 키트 작성일2017-08-29 09:39 조회3,971회 댓글0건본문
#include <mega8.h>
#include <delay.h>// DS1302 Real Time Clock functions
#asm
.equ __ds1302_port=0x18 ;PORTB
.equ __ds1302_io=1 ;SDA
.equ __ds1302_sclk=0 ;SCL
.equ __ds1302_rst=4 ;RST
#endasm
#include <ds1302.h>
//
//#define 1302_SCL PORTB.0
//#define 1302_SDA PORTB.1
//#define 1302_RST PORTB.4
//
#define sec1 PORTC.0
#define sec10 PORTC.1
#define min1 PORTC.2
#define min10 PORTC.3
#define hour1 PORTC.4
#define hour10 PORTC.5
//
unsigned char fnd_seg[]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xd8,0x80,0x98,0xff //0,1,2,3 4,5,6,7,8,9,blank
};
//
unsigned char year, mon, date, hour, min, sec;
//
void fnd_display(void){
PORTD=fnd_seg[sec /10]; sec1=1; delay_ms(1); PORTC=0;
PORTD=fnd_seg[sec %10]; sec10=1; delay_ms(1); PORTC=0;
PORTD=fnd_seg[min /10]; min1=1; delay_ms(1); PORTC=0;
PORTD=fnd_seg[min %10]; min10=1; delay_ms(1); PORTC=0;
PORTD=fnd_seg[hour/10]; hour1=1; delay_ms(1); PORTC=0;
PORTD=fnd_seg[hour%10]; hour10=1; delay_ms(1); PORTC=0;
}
//
void main(void){DDRC=0xFF; DDRD=0xFF;
rtc_init(0,0,0); //1302 초기화. 내부 트리클 충전사용 안함.
while (1){
rtc_get_date(&date, &mon, &year);
rtc_get_time(&hour, &min, &sec);
fnd_display();
// rtc_set_date(date, mon, year);
// rtc_set_time(hour, min, sec);
delay_ms(1000);
}
}
댓글 0
조회수 3,971등록된 댓글이 없습니다.