完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include
#include #define uint unsigned int #define uchar unsigned char #define rst PC4 #define sclk PC5 #define io PC6 #define rst_set PORTC|(1<<4) #define rst_cle PORTC&~(1<<4) #define sclk_set PORTC|(1<<5) #define sclk_cle PORTC&~(1<<5) #define io_set PORTC|(1<<6) #define io_cle PORTC&~(1<<6) uchar data[7]={0x00,0x00,0x00,0x00,0x00,0x00,0x00};//年周月日时分秒 uchar ds1302_write_add[7]={0x8c,0x8a,0x88,0x86,0x84,0x82,0x80}; uchar ds1302_read_add[7]={0x8d,0x8b,0x89,0x87,0x85,0x83,0x81}; void delay_us(uint a)//5/4是8MHz晶振下通过软件反复试验的数值 { uint i; a=a*5/4; for(i=0;i } void delay_ms(uint a) { uint i,j; for(i=0;i for(j=0;j<1141;j++); } void ds1302_portinit(void) { DDRC|=BIT(sclk)|BIT(rst)|BIT(io); } void ds1302_write(uchar cmd,uchar dat) { uchar i; ds1302_portinit(); rst_cle; sclk_cle; rst_set; delay_us(2); for(i=0;i<8;i++) { if(cmd&0x01) io_set; else io_cle; delay_us(2); sclk_set; delay_us(2); cmd>>=1; sclk_cle; } for(i=0;i<8;i++) { if(dat&0x01) io_set; else io_cle; delay_us(2); sclk_set; delay_us(2); dat>>=1; sclk_cle; } sclk_set; rst_cle; } uchar ds1302_read(add) { uchar i,value; ds1302_portinit(); rst_cle; delay_us(2); rst_set; delay_us(2); for(i=0;i<8;i++) { sclk_cle; if(add&0x01) { io_set; } sclk_set; add>>=1; } for(i=0;i<8;i++) { sclk_cle; delay_us(2); value>>=1; DDRC&=~(1<<6); if(PINC&(1<<6)) { value|=0x80; } DDRC|=(1<<6); sclk_set; delay_us(2); } rst_cle; delay_us(5); return value; } void set_rtc() { uchar i; ds1302_write(0x8e,0x00); for(i=0;i<7;i++) { ds1302_write(ds1302_write_add[i],data[i]); } ds1302_write(0x8e,0x80); } void read_rtc() { uchar i; for(i=0;i<7;i++) { data[i]=ds1302_read(ds1302_read_add[i]); } } void ds1302_init(void) { ds1302_write(0x8e,0x00); ds1302_write(0x80,0x00); ds1302_write(0x8e,0x80); } void main() { ds1302_init(); set_rtc(); while(1) { read_rtc(); delay_ms(2); } } |
|
相关推荐
3 个讨论
|
|
只有小组成员才能发言,加入小组>>
AVR Atmega16 Bootloader程序与上位机LabView程序
5131 浏览 6 评论
#include <ioavr.h>这个头文件我应该下什么编译器
7772 浏览 0 评论
3033 浏览 2 评论
3108 浏览 1 评论
10062 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 07:30 , Processed in 0.815686 second(s), Total 66, Slave 50 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号