DS1302的AVR单片机C程序

发布者:温暖微风最新更新时间:2017-12-15 来源: eefocus关键字:DS1302  AVR单片机 手机看文章 扫描二维码
随时随地手机看文章

下面是DS1302的AVR 单片机 的C程序,这个程序结构很不错。但是没有调试这个AVR单片机的程序。 
#define ds1302_rst PC0  
#define ds1302_io PC1  
#define ds1302_sclk PC2  
#define set_ds1302_rst_ddr() DDRC|=1<

#define set_ds1302_rst() PORTC|=1<#define clr_ds1302_rst() PORTC&=~(1<#define set_ds1302_io_ddr() DDRC|=1<#define set_ds1302_io() PORTC|=1<#define clr_ds1302_io() PORTC&=~(1<#define clr_ds1302_io_ddr() DDRC&=~(1<#define in_ds1302_io() PINC&(1<#define set_ds1302_sclk_ddr() DDRC|=1<#define set_ds1302_sclk() PORTC|=1<#define clr_ds1302_sclk() PORTC&=~(1<
#define ds1302_sec_reg 0x80  
#define ds1302_min_reg 0x82  
#define ds1302_hr_reg 0x84  
#define ds1302_date_reg 0x86  
#define ds1302_month_reg 0x88  
#define ds1302_day_reg 0x8a  
#define ds1302_year_reg 0x8c  
#define ds1302_control_reg 0x8e  
#define ds1302_charger_reg 0x90  
#define ds1302_clkburst_reg 0xbe  
void ds1302_write(uchar reg,uchar data)  
{  
uchar i=0;  
set_ds1302_io_ddr();  
asm("nop");  
asm("nop");  
clr_ds1302_rst();  
asm("nop");  
asm("nop");  
clr_ds1302_sclk();  
asm("nop");  
asm("nop");  
set_ds1302_rst();  
asm("nop");  
asm("nop");  
for(i=8;i>0;i--)  
{  
if(reg&0x01) set_ds1302_io();  
else clr_ds1302_io();  
asm("nop");  
asm("nop");  
set_ds1302_sclk();  
asm("nop");  
asm("nop");  
clr_ds1302_sclk();  
asm("nop");  
asm("nop");  
reg>>=1;  
}  
for(i=8;i>0;i--)  
{  
if(data&0x01) set_ds1302_io();  
else clr_ds1302_io();  
asm("nop");  
asm("nop");  
set_ds1302_sclk();  
asm("nop");  
asm("nop");  
clr_ds1302_sclk();  
asm("nop");  
asm("nop");  
data>>=1;  
}  
clr_ds1302_rst();  
asm("nop");  
asm("nop");  
clr_ds1302_io_ddr();  
asm("nop");  
asm("nop");  
}  
uchar ds1302_read(uchar reg)  
{  
uchar data=0;  
uchar i=0;  
reg+=1;//读标志  
set_ds1302_io_ddr();  
asm("nop");  
asm("nop");  
clr_ds1302_rst();  
asm("nop");  
asm("nop");  
clr_ds1302_sclk();  
asm("nop");  
asm("nop");  
set_ds1302_rst();  
asm("nop");  
asm("nop");  
for(i=8;i>0;i--)  
{  

if(reg&0x01) set_ds1302_io();  
else clr_ds1302_io();  
asm("nop");  
asm("nop");  
set_ds1302_sclk();  
asm("nop");  
asm("nop");  
clr_ds1302_sclk();  
asm("nop");  
asm("nop");  
reg>>=1;  
}  
clr_ds1302_io_ddr();  
asm("nop");  
asm("nop");  
for(i=8;i>0;i--)  
{  
data>>=1;  
if(in_ds1302_io()) data|=0x80;  
asm("nop");  
asm("nop");  
set_ds1302_sclk();  
asm("nop");  
asm("nop");  
clr_ds1302_sclk();  
asm("nop");  
asm("nop");  
}  
clr_ds1302_rst();  
asm("nop");  
asm("nop");  
return(data);  
}  
uchar check_ds1302(void)  
{  
ds1302_write(ds1302_control_reg,0x80);  
if(ds1302_read(ds1302_control_reg)==0x80) return 1;  
return 0;  
}  
void ds1302_read_time(void)  
{  
year=ds1302_read(ds1302_year_reg); //年  
month=ds1302_read(ds1302_month_reg);//月  
day=ds1302_read(ds1302_date_reg); //日  
week=ds1302_read(ds1302_day_reg); //周  
hour=ds1302_read(ds1302_hr_reg); //时  
minute=ds1302_read(ds1302_min_reg); //分  
second=ds1302_read(ds1302_sec_reg); //秒  
}  
void ds1302_write_time(void)  
{  
ds1302_write(ds1302_control_reg,0x00); //关闭写保护  
ds1302_write(ds1302_sec_reg,0x80); //暂停  
ds1302_write(ds1302_charger_reg,0xa9); //涓流充电  
ds1302_write(ds1302_year_reg,year); //年  
ds1302_write(ds1302_month_reg,month); //月  
ds1302_write(ds1302_date_reg,day); //日  
ds1302_write(ds1302_day_reg,week); //周  
ds1302_write(ds1302_hr_reg,hour); //时  
ds1302_write(ds1302_min_reg,minute); //分  
ds1302_write(ds1302_sec_reg,second); //秒  
ds1302_write(ds1302_control_reg,0x80); //打开写保护  
}  


关键字:DS1302  AVR单片机 引用地址:DS1302的AVR单片机C程序

上一篇:SHT11温湿度传感器AVR单片机程序
下一篇:ATMege8的AD采样程序

推荐阅读最新更新时间:2024-03-16 15:49

1602 AVR单片机版 报警指示功能
使用的是ATMEGA16芯片 功能说明:正常状态下,8个LED不停闪烁,1602显示normal indication指示 报警状态下, 8个LED全发亮不闪烁,1602显示alarm报警,只有按复位按钮才能解除报警. alarm状态时,由于PB口的低3位和,1602时能,读写,数据指令寄存器选择位复用,所以有点暗. #include iom16.h #include intrinsics.h #define uchar unsigned char #define uint unsigned int #define RS1 PORTB_Bit0=1 //数据指令寄存器
[单片机]
1602 <font color='red'>AVR单片机</font>版 报警指示功能
AVR单片机c程序设计编程时常见的问题总结分析
这两天在用AVR单片机做项目,这次是边做边深入学,尽量将以前忽略的知识用上,比如指针、文件包含、条件编译、变量作用域等一一调研清楚。收获不少,再次体会到学习的过程中没有无用的地方。用的越深入,才发现学时以为没用的东西都是最有用的,因为都被忽略了。幸亏学习时候的最重要的《c程序设计》如果不能解决,就找编译器的问题。这是这段时间总结的经验。 一、函数指针 1.int (*func)(void)--基本函数指针变量定义方式,变量func是一个指向返回值为int,没有参数的函数指针,这与其他变量定义有点区别,一般是把变量名放最后,如int a,而函数指针比较不直观, 2.typedef int(*ftype)(void); fty
[单片机]
<font color='red'>AVR单片机</font>c程序设计编程时常见的问题总结分析
基于AVR单片机的电梯外呼板系统设计
简介:本系统采用AVR单片机,使用CAN总线通信,通信安全可靠,实时性好,主要用在电梯系统中的外呼召唤显示,同时也可以用在电梯轿厢中用于楼层信息的显示。将其接入电梯仿真系统中,本系统能够快速响应,长时间运行期间安全可靠,增加和删除节点简单方便。 随着现代社会的发展,科学技术的进步,出现了众多高层建筑和智能建筑。电梯,作为高层建筑内部一种重要的交通工具,其应用规模日益扩大。而作为电梯系统中必不可少的一部分,电梯召唤显示板(简称电梯外呼板)的应用也随之剧增。 电梯外呼板应用于每层楼的电梯门外,供乘客及电梯维保人员使用。电梯外呼板将乘客及维保人员的需求信息通过CAN总线传达给电梯主板,电梯主板接收信息并执行相应的操作。同时,电梯
[单片机]
基于<font color='red'>AVR单片机</font>的电梯外呼板系统设计
AVR单片机的ISP全攻略+熔丝补救方
并行编程,最早的编程方法,功能最强大,但需要连接较多的引脚,通常需要12V~24V的高压,以示区别,下面称为 高压并行编程。 ISP(In System Programmability) 在系统编程,简称为 串行下载 IAP(In Application Programing) 在应用编程,BootLoader也是类似的意思 1 ISP虽然利用了SPI接口(例外:M64/M128为UASRT0接口,Tiny13等没有SPI接口)的引脚,但只在复位时起作用,而且下载完成后合格的下载器会自动断开端口的连接,对正常工作时没有影响的( 在产品应用中,下载器一定是不会一直粘在上面的)。 2 虽然高压并行下载能修复任何熔丝位,但对于贴片封
[单片机]
AVR单片机PWM产生
计数器的上限值决定了 PWM 的频率,比较匹配寄存器的值决定了占空比的大小 下面是一个用t0产生PWM的例子 #include avr/io.h #include avr/interrupt.h int main(void) { DDRA=0XFF; DDRB=0XFF; PORTA=0XFF; PORTB=0X00; TIMSK=0X00; TCNT0=0; OCR0=240; TCCR0=0B01101001; while(1); }
[单片机]
AVR单片机EEPROM学习
生活中我们经常会犯眼高手低的毛病,很多东西看着别人弄很容易,但轮到自己的时候就会发现其实没有想象中的简单。学完51单片机时,我以为小小的单片机无非就是进行一些IO口的控制罢了,但今天在进行AVR系列单片机学习的时候,才发现原来单片机还有很多的不同,自己原来掌握的东西还远远不足,所以无论到什么时候只有虚心学习,不断努力才能真正的掌握一门技术,学习的过程也是自己人格丰富的过程。下面来说说对EEPROM学习的一些感受。 AVR单片机内部已集成了512kb的EEPROM,对EEPROM的操作比51单片机相对简单一些。写EEPROM操作: 读操作: 主函数将记录打开开发板的次数,将开机数送EEPROM保存,开机后使用LED显示开
[单片机]
<font color='red'>AVR单片机</font>EEPROM学习
基于AVR单片机的125 kHz简易RFID阅读器设计
0 引言 无线射频识别(Radio Frequency IdentifICation,RFID)是利用感应、电磁场或电磁波为传输手段,完成非接触式双向通信、获取相关数据的一种自动识别技术。该技术完成识别工作时无须人工干预,易于实现自动化且不易损坏,可识别高速运动物体并可同时识别多个射频卡,操作快捷方便,已经得到了广泛的应用。 目前存在的一些读卡器,都需要读卡芯片作为基站,成本较高。本文介绍了一种采用分立元件构成的125 kHz RFID阅读器,电路结构简单,成本极低,用于读取EM4100型ID卡。 1 RFID系统的分类 RFID系统的分类方法有很多,在通常应用中都是根据频率来分,根据不同的工作频率,可将其分为以下四种
[单片机]
基于<font color='red'>AVR单片机</font>的125 kHz简易RFID阅读器设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

更多精选电路图
换一换 更多 相关热搜器件
更多每日新闻
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved